
:root{font-family:Inter,Arial,sans-serif;color:#18263b;background:#f3f5f8;font-size:16px;--navy:#162336;--lime:#bcf277;--muted:#59677b;--line:#dce2e9}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{border:1px solid var(--line);background:white;color:var(--navy);padding:10px 15px;border-radius:8px;font-weight:600}button:hover{border-color:#6f8195}button.primary{background:var(--navy);color:white;border-color:var(--navy)}button:focus-visible,a:focus-visible{outline:3px solid #457ddd;outline-offset:3px}input,textarea,select{border:1px solid #bbc5d1;border-radius:7px;padding:10px;background:white;color:inherit;max-width:100%}input:not([type=checkbox]),textarea{width:100%}textarea{min-height:88px;resize:vertical}label{font-size:.875rem;font-weight:600;display:block}label input,label select,label textarea{margin-top:6px}header{background:var(--navy);color:white;padding:24px 4vw;display:flex;align-items:center;justify-content:space-between;gap:18px}header small{color:#bcc8d8}h1{font-size:1.65rem;letter-spacing:-.04em;margin:6px 0}h2{font-size:1.35rem;letter-spacing:-.03em;margin:0 0 10px}h3{overflow-wrap:anywhere;margin:0;font-size:1.05rem}p{line-height:1.5}.brand{font-size:.75rem;letter-spacing:.15em;color:var(--lime);font-weight:bold}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.shell{max-width:1440px;margin:auto;padding:26px 4vw}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.muted{color:var(--muted);font-size:.875rem;line-height:1.5}.intro p{margin:0}.nav{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:24px}.nav button{background:transparent;border:0}.nav button[aria-current=true]{background:var(--navy);color:white}.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:20px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card,.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:20px}.card{display:flex;flex-direction:column;gap:12px}.card .top{display:flex;gap:12px;align-items:center}.avatar{display:grid;place-items:center;background:#e9eff6;color:#263d5e;border-radius:10px;width:44px;height:44px;flex:none;font-weight:700}.card p{margin:0;overflow-wrap:anywhere}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:.75rem;padding:5px 8px;border-radius:5px;background:#edf2f7;color:#374b64}.status{font-size:.75rem;font-weight:600;color:#6f5100;background:#fff5d7;padding:5px 8px;border-radius:5px;align-self:flex-start}.card .actions{margin-top:auto}.card .actions button{font-size:.875rem}.panel{align-self:start}.panel p{font-size:.875rem}.panel .number{font-size:2.3rem;font-weight:700;letter-spacing:-.06em}.line{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.coverage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.coverage .card strong{font-size:1.75rem}.empty{padding:30px;text-align:center;grid-column:1/-1;color:var(--muted)}.notice{padding:12px 16px;background:#e9eff6;border-radius:8px;font-size:.875rem;line-height:1.5;margin-bottom:18px}.warn{background:#fff3d2}.short{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.short select{width:100%;margin:10px 0}.project-layout{display:grid;grid-template-columns:300px 1fr;gap:24px}.project-list button{display:block;width:100%;text-align:left;margin-top:8px}.project-list button.selected{background:#e7f6d6;border-color:#a5c77f}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wide{grid-column:1/-1}.checks{display:flex;flex-wrap:wrap;gap:8px}.checks label{display:flex;align-items:center;gap:6px;background:#f0f3f7;border-radius:6px;padding:8px;font-weight:400}.checks input{margin:0}.form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.danger{color:#a63030}dialog{border:0;border-radius:14px;padding:26px;width:min(760px,calc(100% - 28px));max-height:90vh;overflow:auto;box-shadow:0 20px 100px #10213c50}dialog::backdrop{background:#0e1b2ca0}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#162336;color:white;padding:14px 22px;border-radius:10px;max-width:90%;z-index:10}footer{margin-top:28px;font-size:.8rem;color:var(--muted);line-height:1.6}a{color:#235cab}#results-label{margin:0 0 12px}button:disabled{opacity:.5;cursor:default}@media(max-width:1000px){.layout{grid-template-columns:1fr}.coverage{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){header,.intro{align-items:flex-start;flex-direction:column}.cards,.filters,.fields,.project-layout,.coverage{grid-template-columns:1fr}.shell{padding:20px 16px}.nav{overflow:auto}.nav button{white-space:nowrap}.wide{grid-column:auto}.actions{gap:6px}h1{font-size:1.5rem}}

/* Dub Digital brand palette, shared with the agency website. */
:root{color-scheme:dark;--navy:#ef3c24;--lime:#ff705a;--muted:#b0b7c5;--line:#343c49;color:#f0edf6;background:#07080a;font-family:Arial,Helvetica,sans-serif}
body{background:#07080a}
header{background:#07080a;border-bottom:1px solid #292e38;padding-top:22px;padding-bottom:24px}
.brand-logo{display:block;width:200px;height:auto;margin-bottom:20px}
h1,h2,h3{color:#fff}h1{font-size:1.9rem;font-weight:800;letter-spacing:-.045em}header small{color:#b0b7c5}
button{background:#171c25;color:#f0edf6;border-color:#424b5a}button:hover{background:#222936;border-color:#7e899b}
button.primary{background:#ef3c24;border-color:#ef3c24;color:#07080a;font-weight:750}button.primary:hover{background:#ff5038;border-color:#ff5038}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #ff8b79;outline-offset:3px}
input,textarea,select{background:#0a0e14;color:#f0edf6;border-color:#596477}input::placeholder,textarea::placeholder{color:#939eb0}input[type=checkbox]{accent-color:#ef3c24}
.nav button{color:#b0b7c5}.nav button[aria-current=true]{background:#ef3c24;color:#07080a;font-weight:750}.nav button:hover{color:#fff;background:#252c38}.nav button[aria-current=true]:hover{color:#07080a;background:#ff5038}
.card,.panel{background:#0d1017;border-color:#343c49}.card{border-radius:12px}.avatar{background:#301a19;color:#ff8b79}
.chip{background:#1d2430;color:#d3d9e4}.status{background:#29231a;color:#e7c990}.brand{color:#ff705a;font-family:monospace;letter-spacing:.13em}
.notice{background:#192431;color:#d0dfef}.warn{background:#30261a;color:#f6d79e}
.project-list button.selected{background:#321a18;border-color:#ef3c24;color:#fff}.checks label{background:#1c2330;color:#e1e6ee}
dialog{background:#0d1017;color:#f0edf6;border:1px solid #465062}dialog::backdrop{background:#000b}.danger{color:#ff9485}a{color:#ff9485}
#toast{background:#212936;color:#fff;border:1px solid #647086}footer{color:#a0a8b8}
@media(max-width:650px){.brand-logo{width:175px}.nav{gap:3px}.nav button{padding:10px 9px;font-size:.875rem}}

[hidden]{display:none!important}.login{position:fixed;inset:0;background:#07080af5;z-index:8;overflow:auto;padding:50px 20px}.login .panel{max-width:430px;margin:5vh auto}.login label{margin-top:18px}.login button{margin-top:22px;width:100%}.login-error{color:#ffb3a8;min-height:24px;line-height:1.5}.save-status{font-size:.875rem;color:#b0b7c5}#recovery{margin-bottom:16px}
