:root{--hi-vis:#d7be0a;--navy:#16466a;--ink:#161714;--paper:#efeee9;--card:#ffffff;--hairline:#dedcd4;--field:#ffffff;--green:#2f6b45;--pending:#6e6b60;--needs-you:#a8431f;--red:#8c1f1f;--muted:#5c5f58;--faint:#8a8d84;--hairline-2:#e8e6df;--navy-2:#5e93be;--size-title:24px;--size-section:18px;--size-body:15px;--size-label:11px;--size-data:13px;--size-money:30px;--link:var(--navy);--radius:2px;--radius-chip:999px;--mono:var(--font-mono),ui-monospace,"SF Mono",Menlo,Consolas,monospace;--sans:var(--font-sans),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--paper:#101110;--card:#1b1c18;--field:#232420;--hairline:#33342e;--hairline-2:#232420;--ink:#ffffff;--muted:#c9c6ba;--faint:#9a978b;--navy-2:#7fb3d9;--link:#7fb3d9;--green:#5fbf84;--pending:#a6a398;--needs-you:#e8875c;--red:#e86a6a}.btn-primary{color:var(--paper)}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--size-body);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.topbar{border-bottom:2px solid var(--navy);background:var(--card)}.topbar-inner{max-width:1120px;margin:0 auto;padding:14px 28px;display:flex;align-items:baseline;gap:28px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:720;letter-spacing:-.01em;font-size:var(--size-section);color:var(--ink);text-decoration:none}.brand span{color:var(--navy)}.nav{display:flex;gap:20px;font-family:var(--mono);font-size:var(--size-data);letter-spacing:.04em;text-transform:uppercase}.nav a{color:var(--muted)}main{max-width:1120px;margin:0 auto;padding:32px 28px 80px}h1{font-size:var(--size-title);letter-spacing:-.015em;margin:0 0 4px}h2{font-size:var(--size-section);margin:0 0 12px;letter-spacing:-.01em}.subtle{color:var(--muted)}.eyebrow{font-family:var(--mono);font-size:var(--size-label);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin:0 0 6px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:12px;gap:12px;margin:20px 0 36px}.tile{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);padding:14px 16px}.tile .n{font-size:var(--size-money);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tile .l{font-family:var(--mono);font-size:var(--size-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px}.card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;margin-bottom:28px}.card-head{padding:14px 20px;border-bottom:1px solid var(--hairline-2);display:flex;justify-content:space-between;align-items:center}.card-head h2{margin:0}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:var(--size-body)}th{text-align:left;font-family:var(--mono);font-size:var(--size-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:11px 20px}td,th{border-bottom:1px solid var(--hairline-2)}td{padding:13px 20px;vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:color-mix(in srgb,var(--navy) 4%,transparent)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:var(--size-label);font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.badge:before{content:"";width:14px;height:14px;flex:none;background:currentColor}.badge-navy{color:var(--navy)}.badge-green{color:var(--green)}.badge-pending{color:var(--pending)}.badge-needs-you{color:var(--needs-you)}.badge-red{color:var(--red)}.badge-muted{color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px}.btn{font-family:var(--sans);font-size:var(--size-body);font-weight:560;padding:9px 16px;border-radius:var(--radius);border:1px solid var(--hairline);background:var(--card);color:var(--ink);cursor:pointer}.btn:hover{border-color:var(--muted)}.btn-primary{background:var(--hi-vis);border-color:var(--hi-vis);color:var(--ink)}.btn-primary:hover{filter:brightness(1.08)}tbody .btn-primary,td .btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn-danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,var(--hairline))}.btn-sm{padding:6px 12px;font-size:var(--size-data)}form.inline{display:inline}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:24px;gap:24px}@media (max-width:780px){.grid-2{grid-template-columns:1fr}}.kv{display:grid;grid-template-columns:8.5rem 1fr;grid-gap:8px 16px;gap:8px 16px;padding:18px 20px}.kv dt{font-family:var(--mono);font-size:var(--size-label);letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.kv dd{margin:0}.comp-banner{padding:12px 20px;font-size:var(--size-body);border-bottom:1px solid var(--hairline-2);display:flex;align-items:center;gap:10px}.comp-ok{background:color-mix(in srgb,var(--green) 10%,transparent);color:var(--green)}.comp-fail{background:color-mix(in srgb,var(--needs-you) 12%,transparent);color:var(--needs-you)}.trail{list-style:none;margin:0;padding:8px 20px 16px}.trail li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--hairline-2)}.trail li:last-child{border-bottom:none}.trail .act{font-weight:600;flex:1 1 15rem;min-width:0}.trail .meta{font-family:var(--mono);font-size:var(--size-label);color:var(--muted)}.trail .note{flex-basis:100%;font-size:var(--size-data);color:var(--muted)}.banner{border:1px solid color-mix(in srgb,var(--red) 45%,var(--hairline));background:color-mix(in srgb,var(--red) 9%,transparent);color:var(--red);border-radius:var(--radius);padding:12px 16px;margin-bottom:20px;font-size:var(--size-body)}.banner-notice{border-color:color-mix(in srgb,var(--navy) 40%,var(--hairline));background:color-mix(in srgb,var(--navy) 8%,transparent);color:var(--navy)}.banner-ok{border-color:color-mix(in srgb,var(--green) 40%,var(--hairline));background:color-mix(in srgb,var(--green) 8%,transparent);color:var(--green)}.settings{list-style:none;margin:0;padding:0}.settings li{padding:16px 20px;border-bottom:1px solid var(--hairline)}.settings li:last-child{border-bottom:0}.setting-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.settings .help{margin:4px 0 10px;font-size:var(--size-body);max-width:68ch}.setting-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.backlink{font-family:var(--mono);font-size:var(--size-data);color:var(--muted);display:inline-block;margin-bottom:14px}.form{padding:20px;grid-gap:16px}.form,.form-row{display:grid;gap:16px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.field{display:grid;grid-gap:6px;gap:6px;min-width:0}.field>label{font-family:var(--mono);font-size:var(--size-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.field input,.field select{font-family:var(--sans);font-size:var(--size-body);color:var(--ink);background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);padding:10px 12px;width:100%}.field input:focus,.field select:focus{outline:none;border-color:var(--navy)}.field .hint{font-size:var(--size-data);color:var(--muted)}.form-actions{display:flex;gap:12px;align-items:center}.rate-input{font:inherit;font-family:var(--mono);font-size:var(--size-data);width:90px;color:var(--ink);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:7px 9px;margin-right:6px}.opsmap{height:380px;z-index:0}.leaflet-container{background:var(--paper);font:inherit}.tilewarning{margin:8px 0 0;padding:8px 12px;border-radius:var(--radius);font-size:var(--size-data);color:var(--needs-you);background:color-mix(in srgb,var(--needs-you) 12%,transparent);border:1px solid color-mix(in srgb,var(--needs-you) 35%,transparent)}.signin{max-width:420px;margin:40px auto}.who{margin-left:auto;display:flex;align-items:baseline;gap:14px;font-family:var(--mono);font-size:var(--size-data)}.btn-link{border:0;background:none;padding:0;cursor:pointer;font:inherit;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.btn-link:hover{color:var(--navy)}.daypick{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}.daypick-day{cursor:pointer}.daypick-day input{position:absolute;opacity:0;width:0;height:0}.daypick-day span{display:inline-block;padding:7px 11px;border:1px solid var(--hairline);border-radius:var(--radius);font-size:var(--size-data);font-weight:600;color:var(--muted);background:var(--card)}.daypick-day input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}.daypick-day input:focus-visible+span{outline:2px solid var(--navy);outline-offset:2px}.shiftrow{display:flex;align-items:center;gap:8px}.shiftrow span{color:var(--muted);font-size:var(--size-body)}.invoice-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;border-bottom:1px solid var(--hairline);padding-bottom:20px}.invoice-from{text-align:right;font-size:var(--size-body)}.invoice-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:20px;gap:20px;margin-top:20px;font-size:var(--size-body)}.invoice-meta .l{font-family:var(--mono);font-size:var(--size-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.invoice-totals{margin-top:20px;margin-left:auto;max-width:320px}@media print{.backlink,.btn,form,header{display:none!important}.card{border:none;box-shadow:none}}