/* MMNT Availability – colours: dark blue #0E1726, blue #1846B8, red #E2231A (focus only) */
@font-face{font-family:"Archivo";src:local("Archivo"),local("Archivo-Regular");font-weight:400;font-display:swap}
@font-face{font-family:"Archivo";src:local("Archivo SemiBold"),local("Archivo-SemiBold");font-weight:500 600;font-display:swap}
@font-face{font-family:"Archivo";src:local("Archivo ExtraBold"),local("Archivo-ExtraBold");font-weight:700 800;font-display:swap}

:root{
  --bg:#f1f4fa; --surface:#ffffff; --fg:#0e1726; --muted:#56627a; --line:#dbe1ec;
  --red:#e2231a; --blue:#1846b8; --on-blue:#ffffff;
  --full:#1f9d55; --half:#d48a06; --half-bg:#fdeec9; --no:#8a93a3; --no-bg:#e7eaf0;
  --req:#1846b8; --req-bg:#dfe7fb; --wkend:#eef1f6; --ok:#1f9d55;
  --logo-z:#0e1726; --logo-b:#1846b8; --logo-r:#e2231a;
  --font:"Archivo",Arial,system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0b121e; --surface:#0e1726; --fg:#e8ecf2; --muted:#98a2b3; --line:#243047;
  --red:#f2392e; --blue:#7ea6ff; --on-blue:#0b121e;
  --full:#3ccf7a; --half:#f2b23a; --half-bg:#4a3810; --no:#8a93a3; --no-bg:#232b38;
  --req:#7ea6ff; --req-bg:#1a2a4f; --wkend:#121b2b; --ok:#3ccf7a;
  --logo-z:#ffffff; --logo-b:#7ea6ff; --logo-r:#f2392e;
  color-scheme:dark }}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 var(--font)}
[hidden]{display:none!important}
.stripe{height:5px;background:linear-gradient(90deg,var(--red) 0 50%,var(--blue) 50% 100%)}
.brandbar{max-width:1180px;margin:0 auto;padding:18px max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}
.brandbar .logo{display:block;height:56px;width:auto;max-width:100%;object-fit:contain;object-position:left center}
.wrap{max-width:1180px;margin:0 auto;padding:20px max(16px,env(safe-area-inset-right)) 48px max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:20px}
.wrap.narrow{max-width:460px}
h1{font-weight:800;font-size:clamp(1.5rem,4vw,2rem);letter-spacing:.02em;margin:0;text-wrap:balance}
h1 .b{color:var(--blue)}
header p{margin:4px 0 0;color:var(--muted);max-width:65ch}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px}
.stack{display:flex;flex-direction:column;gap:14px}
.row-between{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.lbl{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-weight:600}
input[type=text],input[type=password],textarea{font:inherit;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg)}
textarea{resize:vertical}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.hint{color:var(--muted);font-size:.88rem;margin:0}
.err{color:var(--red);margin:0;font-weight:600}
.flash{margin:0;padding:10px 14px;border-radius:8px;background:var(--req-bg);color:var(--fg)}
.empty{color:var(--muted);text-align:center;padding:28px 12px;margin:0}

.btn{font:600 .95rem var(--font);padding:9px 16px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;text-decoration:none;display:inline-block}
.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.btn.danger{color:var(--red);border-color:var(--red)}
.btn.small{padding:6px 11px;font-size:.85rem;white-space:nowrap}

.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{font:600 .92rem var(--font);border:1px solid var(--line);background:var(--surface);color:var(--fg);padding:7px 14px;border-radius:999px;cursor:pointer;text-decoration:none}
.tab[aria-selected="true"],.tab[aria-current="page"]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}

/* status swatches */
.brushes{display:flex;gap:8px;flex-wrap:wrap}
.brush{display:flex;align-items:center;gap:8px;font:600 .95rem var(--font);padding:8px 12px;border-radius:8px;border:2px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer}
.brush[aria-pressed="true"]{border-color:var(--fg)}
.brush i,.legend i{width:14px;height:14px;border-radius:3px;display:inline-block;flex:none}
.sw-f{background:var(--full)}
.sw-h{background:linear-gradient(135deg,var(--half) 50%,var(--half-bg) 50%)}
.sw-a{background:var(--req-bg);border:2px dashed var(--req)}
.sw-n{background:var(--no)}
.sw-x{background:transparent;border:1px dashed var(--muted)}
.status{font-size:.85rem;color:var(--muted)}
.status.ok{color:var(--ok)} .status.err{color:var(--red)}

/* person calendar */
.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.month{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;min-width:0}
.mhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.mhead h3{font-size:1.15rem;font-weight:800;margin:0}
.mfill{font:500 .8rem var(--font);background:none;border:none;color:var(--blue);cursor:pointer;padding:2px 0}
.grid7{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;user-select:none;-webkit-user-select:none;touch-action:none}
.dow{font-size:.7rem;text-align:center;color:var(--muted);font-weight:600}
.day{aspect-ratio:1;max-width:100%;border-radius:5px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:500 .85rem var(--font);font-variant-numeric:tabular-nums;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.day.we{background:var(--wkend)}
.day.f{background:var(--full);border-color:var(--full);color:#fff}
.day.h{background:linear-gradient(135deg,var(--half) 50%,var(--half-bg) 50%);border-color:var(--half)}
.day.a{background:var(--req-bg);border:2px dashed var(--req)}
.day.n{background:var(--no-bg);color:var(--no);text-decoration:line-through;border-color:var(--no-bg)}
.mcount{font-size:.78rem;color:var(--muted);margin-top:8px;font-variant-numeric:tabular-nums}

/* admin overview */
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:6px}
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
table.mx{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;font-size:.8rem}
.mx th,.mx td{padding:0;text-align:center;border-bottom:1px solid var(--line)}
.mx thead th{background:var(--surface);font-weight:600;color:var(--muted);padding:6px 0;cursor:pointer}
.mx thead th.we{background:var(--wkend)}
.mx thead th.sel{color:var(--blue);box-shadow:inset 0 -2px var(--blue)}
.mx th.name{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;padding:6px 12px;min-width:140px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;color:var(--fg);cursor:default;border-right:1px solid var(--line)}
.mx td.c{width:26px;min-width:26px;height:30px}
.mx td.c.we{background:var(--wkend)}
.mx td.c b{display:block;margin:3px;height:22px;border-radius:3px}
.mx td.c.f b{background:var(--full)}
.mx td.c.h b{background:linear-gradient(135deg,var(--half) 50%,var(--half-bg) 50%)}
.mx td.c.a b{background:var(--req-bg);border:2px dashed var(--req)}
.mx td.c.n b{background:var(--no-bg)}
.mx td.sum,.mx th.sumh{padding:0 10px;white-space:nowrap;font-weight:600;border-left:1px solid var(--line)}
.mx tfoot td{font-weight:600;color:var(--fg);padding:6px 0;font-size:.75rem}
.mx tfoot td small{color:var(--req);font-weight:600;font-size:.7rem}
.mx tfoot th.name{font-size:.8rem;color:var(--muted)}
.dayinfo{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.dayinfo h4{margin:0 0 6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}
.dayinfo ul{margin:0;padding-left:18px}
.totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}

/* people */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.person{display:flex;flex-direction:column;gap:10px;min-width:0}
.rename,.linkrow{display:flex;gap:8px}
.rename input{font-weight:600}
.linkrow input{font-size:.8rem;color:var(--muted)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.really{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.85rem}
@media (max-width:400px){.people{grid-template-columns:1fr}}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
