:root{--bg:#fff;--surface:#f2f4f7;--surface-2:#e6e9ee;--border:#c9ced6;--text:#0a0c10;--text-dim:#4a525e;--brand:#0b3d91;--brand-dark:#082c6b;--brand-tint:#e7edf138;--danger:#b3261e;--danger-bg:#fdecea;--warn:#8a5300;--warn-bg:#fff4e0;--ok:#17603a;--ok-bg:#e4f4ec;--radius:12px;--tap:48px;--pad:16px;--nav-height:62px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;overscroll-behavior-y:contain;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}h1,h2,h3{margin:0 0 8px;line-height:1.2}h1{font-size:1.5rem;font-weight:700}h2{font-size:1.15rem;font-weight:700}h3{font-size:1rem;font-weight:700}p{margin:0 0 12px}a{color:var(--brand)}.app{min-height:100%;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom));flex-direction:column;display:flex}.topbar{z-index:20;min-height:56px;padding:8px var(--pad);padding-top:calc(8px + env(safe-area-inset-top));background:var(--brand);color:#fff;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar h1{flex:1;margin:0;font-size:1.15rem}.topbar .back{color:#fff;min-width:var(--tap);min-height:var(--tap);cursor:pointer;background:0 0;border:0;margin-left:-12px;font-size:1.5rem}.content{padding:var(--pad);flex:1}.content.flush{padding:0}.bottom-nav{z-index:30;background:var(--bg);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:var(--nav-height);color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex;position:relative}.bottom-nav a.active{color:var(--brand)}.bottom-nav .icon{font-size:1.3rem;line-height:1}.nav-badge{background:var(--danger);color:#fff;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;font-weight:700;display:grid;position:absolute;top:6px;right:calc(50% - 24px)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);margin-bottom:12px}.card.tight{padding:12px}.card h2{margin-bottom:10px}.job-card{color:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:14px var(--pad);background:var(--bg);margin-bottom:10px;text-decoration:none;display:block}.job-card:active{background:var(--surface)}.job-card .address{overflow-wrap:anywhere;margin-bottom:2px;font-size:1.1rem;font-weight:700}.job-card .meta{color:var(--text-dim);flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:.88rem;display:flex}.job-card .time{font-variant-numeric:tabular-nums;color:var(--brand);font-weight:700}.chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-block}.chip-NEW{background:var(--surface-2);color:#1d2733}.chip-QUOTING,.chip-QUOTE_SENT{color:#0b3d91;background:#e3edfb}.chip-APPROVED,.chip-BOOKED{color:#3a238f;background:#ded7fb}.chip-IN_PROGRESS{background:var(--warn-bg);color:var(--warn)}.chip-COMPLETE,.chip-INVOICED{color:#10525f;background:#d9f0f7}.chip-PAID,.chip-CLOSED{background:var(--ok-bg);color:var(--ok)}.chip-DECLINED,.chip-CANCELLED{background:var(--danger-bg);color:var(--danger)}.chip-urgent{background:var(--warn-bg);color:var(--warn);border-color:currentColor}.chip-emergency{background:var(--danger-bg);color:var(--danger);border-color:currentColor}button,.btn{font:inherit;min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;text-align:center;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-weight:600;text-decoration:none;display:inline-flex}button:active,.btn:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-danger{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.btn-block{width:100%;display:flex}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.btn-row>*{flex:auto}.action-grid{grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px;display:grid}.action-grid .btn{flex-direction:column;gap:4px;min-height:68px;padding:12px 6px;font-size:.78rem;line-height:1.2}.action-grid .btn .icon{font-size:1.35rem}.action-grid .btn[aria-disabled=true]{opacity:.4;pointer-events:none}label{margin-bottom:12px;font-size:.9rem;font-weight:600;display:block}input,select,textarea{font:inherit;width:100%;min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);margin-top:4px;padding:11px 12px;font-size:16px;font-weight:400}textarea{resize:vertical;min-height:100px}input:focus,select:focus,textarea:focus{outline:3px solid var(--brand);outline-offset:-1px}.field-row{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.filter-bar{padding:12px var(--pad);margin:0 calc(var(--pad) * -1);scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--border);background:var(--bg);white-space:nowrap;border-radius:999px;flex:none;min-height:40px;padding:8px 14px;font-size:.88rem;font-weight:600}.filter-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.field-review{border-left:4px solid var(--warn);margin-left:-14px;padding-left:10px}.field-review label{color:var(--warn)}.confidence-note{color:var(--warn);margin-top:-8px;margin-bottom:12px;font-size:.8rem;font-weight:600}.candidate-row{flex-wrap:wrap;gap:6px;margin:-6px 0 12px;display:flex}.candidate{background:var(--surface);border-radius:999px;min-height:36px;padding:6px 12px;font-size:.85rem}.email{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.email>summary{padding:12px var(--pad);min-height:var(--tap);cursor:pointer;background:var(--surface);font-weight:600;list-style:none}.email>summary::-webkit-details-marker{display:none}.email[open]>summary{border-bottom:1px solid var(--border)}.email .subject{overflow-wrap:anywhere;display:block}.email .from{color:var(--text-dim);font-size:.85rem;font-weight:400;display:block}.email-body{padding:var(--pad);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9rem;line-height:1.5}.banner{padding:12px var(--pad);border-radius:var(--radius);border:1px solid;margin-bottom:12px;font-weight:600}.banner-error{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.banner-warn{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}.banner-info{background:var(--surface);border-color:var(--border);color:var(--text)}.banner a{color:inherit}.empty{text-align:center;color:var(--text-dim);padding:48px 24px}.empty .big{margin-bottom:8px;font-size:2.5rem}.muted{color:var(--text-dim)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Menlo,monospace}.stack>*+*{margin-top:12px}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:6px;font-size:.78rem;font-weight:700}.spinner{text-align:center;color:var(--text-dim);padding:48px}.detail-header{background:var(--surface);padding:var(--pad);border-bottom:1px solid var(--border)}.detail-header .address{overflow-wrap:anywhere;font-size:1.4rem;font-weight:700}.detail-header .suburb{color:var(--text-dim);font-size:1.05rem}.detail-header .chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.access-notes{background:var(--warn-bg);border:1px solid var(--warn);border-radius:var(--radius);color:var(--warn);white-space:pre-wrap;padding:12px;font-weight:600}.contact{border-top:1px solid var(--border);padding:12px 0}.contact:first-of-type{border-top:0}.contact .name{font-weight:700}.contact .type{text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em;font-size:.78rem}.note{border-top:1px solid var(--border);padding:10px 0}.note:first-of-type{border-top:0}.login-wrap{background:var(--brand);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--bg);border-radius:16px;width:100%;max-width:380px;padding:28px 24px}.login-card h1{text-align:center;margin-bottom:4px}.login-card .tagline{text-align:center;color:var(--text-dim);margin-bottom:20px}
