/* Series launch tracker, Zaneen corporate styling.
   Swiss type, light grey page with white panels, dark-grey accents, square corners. Light theme only.
   Amber is kept only for "lit" task lamps; red marks discontinued items. */

@font-face{font-family:"Swiss";font-weight:300;font-style:normal;font-display:swap;
  src:url("fonts/SwissLight.woff2") format("woff2"),url("fonts/SwissLight.woff") format("woff"),url("fonts/SwissLight.ttf") format("truetype")}
@font-face{font-family:"Swiss";font-weight:400;font-style:normal;font-display:swap;
  src:url("fonts/SwissRegular.woff2") format("woff2"),url("fonts/SwissRegular.woff") format("woff"),url("fonts/SwissRegular.ttf") format("truetype")}
@font-face{font-family:"Swiss";font-weight:700;font-style:normal;font-display:swap;
  src:url("fonts/SwissBold.woff2") format("woff2"),url("fonts/SwissBold.woff") format("woff"),url("fonts/SwissBold.ttf") format("truetype")}

:root{
  color-scheme:light;
  --bg:#EFEFEF; --surface:#FFFFFF; --surface-2:#F8F9FA; --ink:#141414; --text:#212529; --muted:#6C757D;
  --line:#E6E6E6; --line-strong:#CED4DA; --grey-dark:#343A40; --grey-mid:#919599;
  --lamp:#F2A900; --lamp-soft:#FFF4D6; --blue:#007BFF; --blue-soft:#E7F1FF;
  --red:#D10000; --red-bright:#FF0505; --red-soft:#FFEDED; --ok:#1E7B34;
  --shadow:0 10px 30px rgba(0,0,0,.12);
  --font:"Swiss","Helvetica Neue",Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{height:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--text);
  font:400 15px/1.5 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
strong,b{font-weight:700}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.muted{color:var(--muted)} .small{font-size:12.8px;letter-spacing:.02em} .block{display:block}
.m0{margin:0} .mt-10{margin-top:10px} .mt-14{margin-top:14px} .mt-18{margin-top:18px} .mb-6{margin-bottom:6px}
h1,h2,h3{margin:0;line-height:1.2;color:var(--ink)}
h1{font-size:26px;font-weight:300;letter-spacing:-.005em}
h2{font-size:18px;font-weight:400}
.warn{color:var(--red)} .ok-text{color:var(--ok)}

/* avatar colours: muted, corporate */
.c0{--c:#343A40}.c1{--c:#495057}.c2{--c:#6C757D}.c3{--c:#343A40}.c4{--c:#7A6A55}
.c5{--c:#4E5D6C}.c6{--c:#5E6B5A}.c7{--c:#8A7D72}.c8{--c:#3F4A5A}.c9{--c:#6B5B6E}

/* shell */
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}
.side{background:var(--surface-2);border-right:1px solid var(--line);padding:22px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:0 10px 22px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.brand.flush{padding:0;border-bottom:0;margin:0}
.brand span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.logo{display:block;height:30px;width:auto;max-width:170px}
.nav-group{margin:18px 0 6px;padding:0 10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;text-decoration:none;color:var(--text);border-left:2px solid transparent}
.nav-item:hover{background:var(--surface-2);color:var(--ink)}
.nav-item.active{background:var(--grey-dark);color:#fff;border-left-color:var(--grey-dark)}
.nav-item .count{font-size:11px;min-width:20px;text-align:center;padding:1px 6px;background:var(--lamp-soft);color:#141414;font-weight:700}
.nav-item.active .count{background:var(--lamp)}
.main{min-width:0;display:flex;flex-direction:column;position:relative}
.top{position:sticky;top:0;z-index:20;background:var(--surface);display:flex;align-items:center;gap:12px;padding:16px 28px;border-bottom:1px solid var(--line)}
.top .title{flex:1;min-width:0}
.live{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.live i{width:7px;height:7px;border-radius:50%;background:var(--ok)}
.live.pulse i{background:var(--lamp);box-shadow:0 0 0 4px var(--lamp-soft)}
.live.off i{background:var(--red)}
.icon-btn{position:relative;border:1px solid var(--line-strong);background:var(--surface);height:36px;min-width:36px;display:inline-grid;place-items:center;padding:0 8px}
.icon-btn:hover{border-color:var(--ink)}
.icon-btn .dot{position:absolute;top:-6px;right:-6px;background:var(--lamp);color:#141414;font-size:11px;font-weight:700;border-radius:9px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px}
.me-btn{display:flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:var(--surface);height:36px;padding:0 12px 0 6px}
.me-btn:hover{border-color:var(--ink)}
.content{padding:26px 28px 64px;min-width:0}
.popover{position:absolute;right:28px;top:62px;width:min(380px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);z-index:40;max-height:70vh;overflow:auto}
.pop-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.notif{display:flex;gap:10px;padding:11px 14px;border:0;border-bottom:1px solid var(--line);width:100%;text-align:left;background:none}
.notif:hover{background:var(--surface-2)}
.notif.unread{background:var(--lamp-soft)}
.notif .n-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--lamp)}
.notif.disc .n-dot{background:var(--red-bright)}
.notif:not(.unread) .n-dot{background:var(--line-strong)}
.menu{width:270px}
.menu button[type=submit]{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 14px}
.menu button[type=submit]:hover{background:var(--surface-2)}
.flash{margin:18px 28px 0;padding:11px 14px;border:1px solid var(--line-strong);border-left-width:3px;background:var(--surface)}
.flash.ok{border-left-color:var(--ok)}
.flash.error{border-left-color:var(--red-bright);color:var(--red);background:var(--red-soft)}
.flash.inline{margin:18px 0 0}

/* bits */
.av{width:24px;height:24px;border-radius:50%;background:var(--c,#6C757D);color:#fff;font-size:10px;font-weight:700;display:inline-grid;place-items:center;flex:none;letter-spacing:.04em}
.av.lg{width:34px;height:34px;font-size:12px}
.who{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.people{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.btn{display:inline-block;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:7px 14px;white-space:nowrap;text-decoration:none;line-height:1.3;border-radius:0}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--grey-dark);color:#fff;border-color:var(--grey-dark);font-weight:700;letter-spacing:.02em}
.btn.primary:hover{opacity:.85}
.btn.lampy{background:var(--lamp);border-color:var(--lamp);color:#141414;font-weight:700}
.btn.danger{color:var(--red);border-color:var(--red)}
.btn.danger:hover{background:var(--red-soft)}
.btn.danger.solid{background:var(--red);color:#fff}
.btn.ghost{border-color:transparent;color:var(--muted);background:transparent}
.btn.ghost:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink)}
.btn.sm{padding:3px 10px;font-size:13px}
.btn:disabled{opacity:.4;cursor:not-allowed}
select.inline{border:1px solid var(--line-strong);background:var(--surface);padding:4px 6px;border-radius:0;max-width:100%}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.03em;padding:2px 9px;white-space:nowrap}
.pill.waiting{color:var(--muted);background:var(--surface-2);font-weight:400}
.pill.ready{background:var(--lamp-soft);color:var(--ink)}
.pill.ready::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--lamp)}
.pill.progress{color:var(--blue);background:var(--blue-soft)}
.pill.done{color:var(--ink);padding-left:0}
.pill.done::before{content:"✓";font-weight:700}
.pill.skipped{color:var(--muted);text-decoration:line-through;padding-left:0;font-weight:400}
.badge{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap}
.badge.live{color:var(--ink);border-color:var(--ink)}
.badge.disc{color:var(--red);border-color:var(--red-bright);background:var(--red-soft)}
.flag{color:var(--red-bright);font-weight:700}
.lamps{display:inline-flex;gap:3px;align-items:center}
.lamp{width:10px;height:10px;border-radius:50%;background:var(--line);flex:none;display:inline-block}
.lamp.done{background:var(--lamp);box-shadow:0 0 7px var(--lamp)}
.lamp.ready{box-shadow:inset 0 0 0 2px var(--lamp);background:transparent}
.lamp.progress{box-shadow:inset 0 0 0 2px var(--lamp);background:var(--lamp-soft)}
.lamp.skipped{background:var(--red-soft)}
.panel{background:var(--surface);border:1px solid var(--line)}
.pad{padding:18px}
.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.panel-head p{margin:3px 0 0}
.scroll-x{overflow-x:auto}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}
.toolbar .grow{flex:1}
.check{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}
.check input{accent-color:var(--ink)}
.check.top{align-items:flex-start}
.row-actions{display:flex;gap:4px;justify-content:flex-end;flex-wrap:nowrap}
.row-actions form{margin:0}
.seg{display:inline-flex;border:1px solid var(--line-strong);background:var(--surface);flex-wrap:wrap}
.seg-btn{padding:7px 14px;text-decoration:none}
.seg-btn+.seg-btn{border-left:1px solid var(--line-strong)}
.seg-btn:hover{background:var(--surface-2)}
.seg-btn.on{background:var(--grey-dark);color:#fff}
.seg-btn.on .muted{color:inherit;opacity:.7}
.strong-link{font-weight:700;text-decoration:none;color:var(--ink)}
.strong-link:hover{text-decoration:underline;text-underline-offset:3px}

/* sheet */
.sheet{width:100%;border-collapse:collapse;min-width:940px}
.sheet th{text-align:left;font-weight:400;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px;border-bottom:1px solid var(--line-strong);background:var(--surface)}
.sheet td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.sheet .c-done{width:46px;text-align:center}
.sheet td.small{white-space:nowrap}
.series-head select.inline{max-width:240px}
.sheet tr.task:hover td{background:var(--surface-2)}
.sheet tr.series td{background:var(--surface-2);padding:12px 10px;border-top:8px solid var(--bg);border-bottom:1px solid var(--line-strong)}
.sheet tbody tr.series:first-child td{border-top:0}
.sheet tr.series.flash-row td{background:var(--lamp-soft)}
.sheet tr.sub td{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);padding:10px 10px 4px 46px;background:var(--surface)}
.sheet tr.sub.quiet td{color:var(--muted)}
.sheet tr.st-done .tname,.sheet tr.st-skipped .tname{color:var(--muted);text-decoration:line-through}
.sheet tr.st-done td,.sheet tr.st-skipped td{color:var(--muted)}
.sheet .tname{color:var(--ink)}
.series-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.series-head .nm{font-weight:700;font-size:16px;color:var(--ink)}
.series-head .right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reason{margin:6px 0 0 34px}
.caret{border:0;background:none;width:24px;height:24px;display:grid;place-items:center;color:var(--ink)}
.caret svg{transition:transform .15s}
.caret[aria-expanded=true] svg{transform:rotate(90deg)}
.done-box{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}
.done-box:disabled{cursor:not-allowed}
.note{width:100%;min-width:160px;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:0}
.note:hover{border-color:var(--line-strong)}
.note:focus{border-color:var(--ink);background:var(--surface);outline:none}
.wait{display:block;font-size:12px;color:var(--muted)}

/* lists */
.section{margin-bottom:30px}
.section>h2{margin-bottom:12px}
.list{background:var(--surface);border:1px solid var(--line)}
.item{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item .main-col{flex:1;min-width:0}
.item .t{font-weight:700;color:var(--ink)}
.item .m{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:2px}
.item .m a{color:var(--ink);text-underline-offset:3px}
.item .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.empty{padding:20px 18px;color:var(--muted)}
.empty.flush{padding-left:0}
.lede{color:var(--muted);margin:0 0 24px;max-width:70ch}
.grid2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:22px;align-items:start}
.tbl{width:100%;border-collapse:collapse}
.tbl.wide{min-width:680px}
.tbl th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:400;padding:10px 12px;border-bottom:1px solid var(--line-strong)}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl .c-order{width:60px}
.nowwith{display:flex;flex-direction:column;gap:4px;font-size:13px}
.num{text-align:right}
.act{display:flex;gap:10px;padding:11px 18px;border-bottom:1px solid var(--line);align-items:flex-start}
.act:last-child{border-bottom:0}
.admin-grid{display:grid;gap:22px}
.admin-grid>.panel{padding:18px}
.admin-grid>.panel>h2{margin-bottom:4px}
.row-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.row-form input,.inline-form input{border:1px solid var(--line-strong);background:var(--surface);padding:7px 10px;flex:1;min-width:160px;border-radius:0}
.inline-form{display:flex;gap:8px;margin:0}

/* sign in + error */
.signin{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.signin-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);padding:34px;box-shadow:var(--shadow)}
.signin-card h1{font-size:30px}
.signin .brand{gap:10px}
.signin .logo{height:34px}
.ms-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:22px;padding:12px;border:1px solid var(--grey-dark);background:var(--grey-dark);color:#fff;font-weight:700;letter-spacing:.02em;text-decoration:none}
.ms-btn:hover{opacity:.85}
.proto-note{margin:22px 0 0;font-size:12.8px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
.error-card{max-width:520px}
.error-card p{margin:10px 0 0}

/* dialogs */
dialog{border:0;padding:0;background:transparent;color:var(--text);max-width:calc(100vw - 32px)}
dialog::backdrop{background:rgba(0,0,0,.5)}
.modal{width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:var(--surface);box-shadow:var(--shadow);padding:24px;border-top:3px solid var(--grey-dark)}
.modal h2{font-size:20px;font-weight:300;margin-bottom:6px}
.field{display:block;margin-top:14px}
.field span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-strong);background:var(--surface);padding:9px 10px;border-radius:0}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.foot{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
.pick{border:0;padding:0;margin:14px 0 0;min-width:0}
.pick legend{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;padding:0}
.pick .opts{max-height:230px;overflow:auto;border:1px solid var(--line-strong);padding:4px}
.pick-row{display:flex;align-items:center;gap:10px;padding:6px;cursor:pointer}
.pick-row:hover{background:var(--surface-2)}
.pick-row input{accent-color:var(--ink);width:16px;height:16px}

#toasts{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:80;max-width:min(360px,calc(100vw - 32px))}
.toast{background:var(--grey-dark);color:#fff;padding:11px 14px;box-shadow:var(--shadow);font-size:13px;display:flex;gap:10px;align-items:flex-start;animation:tin .18s ease-out}
.toast i{width:8px;height:8px;border-radius:50%;background:var(--lamp);margin-top:5px;flex:none}
.toast.disc i,.toast.error i{background:var(--red-bright)}
.toast .sub{opacity:.75;display:block}
@keyframes tin{from{transform:translateY(6px);opacity:0}}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

@media (max-width: 860px){
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px 14px}
  .side nav{display:flex;gap:6px;overflow-x:auto}
  .brand{flex-direction:row;align-items:center;padding:0 0 10px;margin-bottom:8px}
  .logo{height:24px}
  .nav-group{display:none}
  .nav-item{white-space:nowrap;border-left:0}
  .top{padding:12px 16px}
  h1{font-size:22px}
  .content{padding:20px 16px 60px}
  .flash{margin:12px 16px 0}
  .grid2{grid-template-columns:1fr}
  .me-btn .nm{display:none}
  .popover{right:12px}
  .item{flex-wrap:wrap}
  .item .actions{width:100%;justify-content:flex-start;padding-left:24px}
}
