.mkt{--mkt-paper:#f7f5f0;--mkt-card:#ffffff;--mkt-ink:#16181d;--mkt-steel:#3d4654;--mkt-body:#4d5462;--mkt-rule:#ddd7c9;--mkt-rule-soft:#eae5d9;--mkt-amber:#ffb400;--mkt-amber-deep:#8f6400;--mkt-amber-wash:#fff7e0;--mkt-stamp:#1a7f4e;--mkt-navy:#1b2430;font-family:Public Sans,system-ui,sans-serif;background:var(--mkt-paper);color:var(--mkt-ink);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}.mkt *{box-sizing:border-box}.mkt .mkt-display{font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1.02;margin:0}.mkt .mkt-mono{font-family:IBM Plex Mono,monospace}.mkt a{color:inherit}.mkt-wrap{max-width:1040px;margin:0 auto;padding:0 24px}.mkt .mkt-btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;text-transform:uppercase;letter-spacing:.05em;padding:14px 26px;border:2px solid var(--mkt-ink);background:var(--mkt-ink);color:#fff;text-decoration:none;cursor:pointer;transition:transform .1s ease,background .1s ease}.mkt .mkt-btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--mkt-amber)}.mkt .mkt-btn:focus-visible{outline:3px solid var(--mkt-amber);outline-offset:3px}.mkt .mkt-btn.amber{background:var(--mkt-amber);border-color:var(--mkt-amber);color:var(--mkt-ink)}.mkt .mkt-line{background:transparent;color:var(--mkt-ink)}.mkt .mkt-line:hover{box-shadow:4px 4px 0 var(--mkt-rule)}.mkt .mkt-formlabel{font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mkt-amber-deep)}.mkt section{padding:88px 0}@media (max-width:720px){.mkt section{padding:60px 0}}.mkt-header{position:sticky;top:0;z-index:60;background:var(--mkt-paper);border-bottom:2px solid var(--mkt-ink)}.mkt-nav{display:flex;align-items:center;height:60px;gap:26px}.mkt-logo{font-family:Anton;font-size:1.3rem;text-transform:uppercase;text-decoration:none;letter-spacing:.02em}.mkt-logo em{font-style:normal;color:transparent;-webkit-text-stroke:1.4px var(--mkt-ink)}.mkt-nav nav{display:flex;gap:20px;flex:1}.mkt-nav nav a{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mkt-steel);text-decoration:none}.mkt-nav nav a:hover{color:var(--mkt-ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px;text-decoration-color:var(--mkt-amber)}.mkt-nav .mkt-btn{padding:9px 16px;font-size:.78rem}@media (max-width:820px){.mkt-nav nav{display:none}}.mkt-hero{padding:72px 0 88px;border-bottom:2px solid var(--mkt-ink);background:repeating-linear-gradient(0deg,transparent 0 35px,var(--mkt-rule-soft) 35px 36px)}.mkt-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:start}@media (max-width:920px){.mkt-hero-grid{grid-template-columns:1fr;gap:40px}}.mkt-hero h1{font-size:clamp(2.6rem,6vw,4.4rem);margin:18px 0 22px}.mkt-hl{background:linear-gradient(transparent 62%,var(--mkt-amber) 62% 94%,transparent 94%)}.mkt-lead{font-size:1.08rem;color:var(--mkt-body);max-width:30em;margin-bottom:30px}.mkt-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}.mkt-sub{font-size:.85rem;color:var(--mkt-steel)}.mkt-docket{position:relative;background:var(--mkt-card);border:2px solid var(--mkt-ink);box-shadow:8px 8px #16181d1f}.mkt-dhead{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--mkt-ink);padding:12px 16px;background:var(--mkt-navy);color:#fff}.mkt-t{font-family:Anton;text-transform:uppercase;font-size:1rem;letter-spacing:.03em}.mkt-t span{color:var(--mkt-amber)}.mkt-no{font-family:IBM Plex Mono;font-size:.68rem;color:#9aa5b8}.mkt-dfield{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--mkt-rule)}.mkt-k{font-family:IBM Plex Mono;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mkt-steel);padding:10px 14px;border-right:1px solid var(--mkt-rule)}.mkt-v{padding:9px 14px;font-weight:600;font-size:.92rem}.mkt-ok{color:var(--mkt-stamp);font-weight:700}.mkt-dgrid{padding:12px 14px}.mkt-dgrid table{border-collapse:collapse;width:100%;font-size:.72rem}.mkt-dgrid th{font-family:IBM Plex Mono;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mkt-steel);border-bottom:2px solid var(--mkt-ink);padding:6px 4px;text-align:center}.mkt-dgrid th:first-child,.mkt-dgrid td:first-child{text-align:left}.mkt-dgrid td{border-bottom:1px solid var(--mkt-rule);padding:7px 4px;text-align:center}.mkt-sh{display:inline-block;font-family:IBM Plex Mono;font-size:.62rem;font-weight:600;background:var(--mkt-amber-wash);border-left:3px solid var(--mkt-amber);padding:2px 6px;white-space:nowrap}.mkt-off{color:#c6c0b2}.mkt-dfoot{font-family:IBM Plex Mono;font-size:.62rem;color:var(--mkt-steel);padding:10px 14px;border-top:1px solid var(--mkt-rule)}.mkt-stamp{position:absolute;top:34px;right:-14px;transform:rotate(8deg);font-family:Anton;text-transform:uppercase;font-size:1.15rem;letter-spacing:.08em;color:var(--mkt-stamp);border:3px solid var(--mkt-stamp);border-radius:6px;padding:6px 14px;background:#fff9;animation:mktThump .5s cubic-bezier(.2,1.6,.4,1) .4s both}@keyframes mktThump{0%{opacity:0;transform:rotate(8deg) scale(2.2)}to{opacity:1;transform:rotate(8deg) scale(1)}}@media (prefers-reduced-motion:reduce){.mkt-stamp{animation:none}}.mkt-delivered{position:static;display:inline-block;transform:rotate(-4deg);font-size:.85rem;animation:none;margin-left:10px;padding:3px 10px}.mkt-shead{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--mkt-ink);padding-bottom:14px;margin-bottom:40px}.mkt-shead .mkt-display{font-size:clamp(1.6rem,3.4vw,2.4rem)}.mkt-shead .mkt-formlabel{margin-left:auto;white-space:nowrap}@media (max-width:620px){.mkt-shead{flex-wrap:wrap}.mkt-shead .mkt-formlabel{margin-left:0;width:100%}}.mkt-faults{background:var(--mkt-card);border-top:2px solid var(--mkt-ink);border-bottom:2px solid var(--mkt-ink)}.mkt-faultlist{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid var(--mkt-ink)}@media (max-width:760px){.mkt-faultlist{grid-template-columns:1fr}}.mkt-fault{display:flex;gap:14px;padding:20px;border-bottom:1px solid var(--mkt-rule);border-right:1px solid var(--mkt-rule)}.mkt-fault:nth-child(2n){border-right:none}.mkt-fault:nth-last-child(-n+2){border-bottom:none}@media (max-width:760px){.mkt-fault{border-right:none}.mkt-fault:nth-last-child(2){border-bottom:1px solid var(--mkt-rule)}}.mkt-box{flex-shrink:0;width:22px;height:22px;border:2px solid var(--mkt-ink);position:relative;margin-top:2px}.mkt-box:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--mkt-amber-deep);font-weight:700;font-size:.9rem}.mkt-fault h3{font-size:.95rem;font-weight:700;margin:0 0 3px}.mkt-fault p{font-size:.88rem;color:var(--mkt-body);margin:0}.mkt-modtable{border:2px solid var(--mkt-ink);background:var(--mkt-card)}.mkt-modrow{display:grid;grid-template-columns:52px 1fr 150px;border-bottom:1px solid var(--mkt-rule);align-items:center}.mkt-modrow:last-child{border-bottom:none}.mkt-code{font-family:IBM Plex Mono;font-size:.68rem;color:var(--mkt-steel);padding:18px 0 18px 18px;align-self:start}.mkt-desc{padding:16px 18px}.mkt-desc h3{font-size:1rem;font-weight:700;margin:0 0 3px}.mkt-desc p{font-size:.88rem;color:var(--mkt-body);margin:0}.mkt-status{padding-right:18px;text-align:right}.mkt-chip{display:inline-block;font-family:IBM Plex Mono;font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border:1.5px solid}.mkt-now{color:var(--mkt-stamp);border-color:var(--mkt-stamp);background:#eaf6f0}.mkt-soon{color:var(--mkt-amber-deep);border-color:var(--mkt-amber-deep);background:var(--mkt-amber-wash)}.mkt-plan{color:var(--mkt-steel);border-color:var(--mkt-rule);background:var(--mkt-paper)}@media (max-width:640px){.mkt-modrow{grid-template-columns:44px 1fr}.mkt-status{grid-column:2;text-align:left;padding:0 18px 16px}}.mkt-route{background:var(--mkt-card);border-top:2px solid var(--mkt-ink);border-bottom:2px solid var(--mkt-ink)}.mkt-routegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:2px solid var(--mkt-ink)}@media (max-width:760px){.mkt-routegrid{grid-template-columns:1fr}}.mkt-rstep{padding:26px 22px;border-right:1px solid var(--mkt-rule)}.mkt-rstep:last-child{border-right:none}@media (max-width:760px){.mkt-rstep{border-right:none;border-bottom:1px solid var(--mkt-rule)}.mkt-rstep:last-child{border-bottom:none}}.mkt-rstep .mkt-formlabel{display:block;margin-bottom:10px}.mkt-rstep h3{font-size:1.02rem;font-weight:700;margin:0 0 8px}.mkt-rstep p{font-size:.9rem;color:var(--mkt-body);margin:0}.mkt-truth{margin-top:34px;text-align:center;font-family:Anton;text-transform:uppercase;font-size:clamp(1.1rem,2.4vw,1.5rem);letter-spacing:.02em}.mkt-truth em{font-style:normal;background:linear-gradient(transparent 60%,var(--mkt-amber) 60% 95%,transparent 95%)}.mkt-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}@media (max-width:900px){.mkt-feature-grid{grid-template-columns:1fr}}.mkt-speclist{list-style:none;padding:0;margin:0 0 30px;border-top:1px solid var(--mkt-rule)}.mkt-speclist li{display:flex;gap:12px;padding:11px 2px;border-bottom:1px solid var(--mkt-rule);font-size:.94rem;color:var(--mkt-steel)}.mkt-speclist li:before{content:"—";color:var(--mkt-amber-deep);font-weight:700;flex-shrink:0}.mkt-speclist li b{color:var(--mkt-ink)}.mkt-sched{max-width:680px}.mkt-srow{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--mkt-rule);align-items:start}.mkt-srow:last-child{border-bottom:none}.mkt-ph{font-family:IBM Plex Mono;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mkt-steel);padding-top:4px}.mkt-srow h3{font-size:1rem;font-weight:700;margin:0}.mkt-srow p{font-size:.9rem;color:var(--mkt-body);margin-top:3px}.mkt-srow.mkt-done .mkt-ph{color:var(--mkt-stamp);font-weight:600}.mkt-signoff{background:var(--mkt-navy);color:#fff;border-top:4px solid var(--mkt-amber)}.mkt-signoff .mkt-display{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin-bottom:14px}.mkt-signoff p{color:#c3cbdb;max-width:34em;margin-bottom:30px}.mkt-signoff .mkt-formlabel{color:var(--mkt-amber)}.mkt-signline{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.mkt-signline .mkt-mono{font-size:.72rem;color:#8d97ab}.mkt-footer{padding:36px 0;border-top:2px solid var(--mkt-ink)}.mkt-footer .mkt-wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.mkt-fm{font-family:IBM Plex Mono;font-size:.7rem;color:var(--mkt-steel)}.mkt-fl{font-family:Anton;text-transform:uppercase;font-size:1.05rem}:root{--ink: #1b2430;--ink-2: #2c3a4d;--paper: #f6f7f8;--card: #ffffff;--line: #dde2e8;--muted: #64748b;--hivis: #ffb400;--hivis-ink: #3d2c00;--live: #1a9d55;--danger: #c73e3e;--radius: 6px;font-family:Barlow,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:15px}h1,h2,h3{font-family:Barlow Condensed,sans-serif;text-transform:uppercase;letter-spacing:.03em;margin:0}h1{font-size:1.7rem}h2{font-size:1.25rem}h3{font-size:1.05rem}a{color:inherit}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--hivis);outline-offset:1px}label{display:block;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}.stripe{height:8px;background:repeating-linear-gradient(-45deg,var(--hivis) 0 14px,var(--ink) 14px 28px)}.topbar{background:var(--ink);color:#fff;display:flex;align-items:center;gap:16px;padding:10px 18px}.topbar .brand{font-family:Barlow Condensed;font-weight:700;font-size:1.25rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none}.topbar .brand em{color:var(--hivis);font-style:normal}.topbar nav{display:flex;gap:4px;flex-wrap:wrap}.topbar nav a{color:#cbd5e1;text-decoration:none;padding:6px 10px;border-radius:var(--radius);font-weight:500}.topbar nav a.active,.topbar nav a:hover{background:var(--ink-2);color:#fff}.topbar .spacer{flex:1}.page{max-width:1100px;margin:0 auto;padding:20px 16px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted);font-size:.85rem}.stack>*+*{margin-top:12px}.btn{border:1px solid var(--line);background:#fff;padding:8px 14px;border-radius:var(--radius);font-weight:600}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--hivis);border-color:var(--hivis);color:var(--hivis-ink)}.btn.primary:hover{filter:brightness(.96)}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.danger{color:var(--danger);border-color:var(--danger);background:#fff}.btn.sm{padding:4px 9px;font-size:.82rem}.btn:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:500;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.badge.live{background:#e5f6ec;color:var(--live)}.badge.live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--live);animation:pulse 1.6s infinite}.badge.draft{background:#fdf1d4;color:#8a6400}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.badge.live:before{animation:none}}.grid-scroll{overflow-x:auto}.roster-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));gap:8px;min-width:980px}.daycol{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column}.daycol header{padding:8px 10px;border-bottom:2px solid var(--ink);font-family:Barlow Condensed;font-weight:700;text-transform:uppercase;display:flex;justify-content:space-between;align-items:baseline}.daycol header .date{font-family:IBM Plex Mono,monospace;font-size:.72rem;color:var(--muted);font-weight:500}.daycol .shifts{padding:8px;display:flex;flex-direction:column;gap:6px;flex:1}.shift{border:1px solid var(--line);border-left:3px solid var(--hivis);border-radius:4px;padding:7px 9px;background:#fff;text-align:left}.shift:hover{border-color:var(--muted);border-left-color:var(--hivis)}.shift .who{font-weight:600}.shift .time{font-family:IBM Plex Mono,monospace;font-size:.78rem;color:var(--ink-2)}.shift .role{font-size:.78rem;color:var(--muted)}.shift .notes{font-size:.78rem;color:var(--muted);font-style:italic;margin-top:2px}.addshift{border:1px dashed var(--line);background:none;color:var(--muted);border-radius:4px;padding:6px;font-size:.85rem}.addshift:hover{border-color:var(--hivis);color:var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a228c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:#fff;border-radius:8px;padding:20px;width:100%;max-width:430px;max-height:90vh;overflow-y:auto}.modal .stripe{margin:-20px -20px 16px;border-radius:8px 8px 0 0}table.list{width:100%;border-collapse:collapse}table.list th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px;border-bottom:2px solid var(--ink)}table.list td{padding:8px;border-bottom:1px solid var(--line)}.announce{background:#fffbea;border:1px solid #f2dd9b;border-radius:var(--radius);padding:10px 12px}.error{color:var(--danger);font-size:.85rem}.pub-day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.pub-day>h3{background:var(--ink);color:#fff;padding:8px 12px;display:flex;justify-content:space-between}.pub-day>h3 .date{color:var(--hivis);font-family:IBM Plex Mono,monospace;font-size:.75rem}.pub-day ul{list-style:none;margin:0;padding:0}.pub-day li{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:1px}.pub-day li:last-child{border-bottom:none}.pub-empty{padding:10px 12px;color:var(--muted);font-style:italic}@media (max-width: 640px){.page{padding:14px 10px 60px}h1{font-size:1.4rem}}.btn.big{padding:11px 20px;font-size:1.02rem}.btn.ghost{background:var(--ink-2);color:#fff;border-color:var(--ink-2)}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:9px 16px;border-radius:6px;z-index:60;font-size:.88rem}.legend{font-size:.8rem;color:var(--muted);gap:16px}.legend .sw{display:inline-block;width:12px;height:12px;border:1px solid var(--line);vertical-align:middle;margin-right:5px}.legend .sw.shift{background:#fdf6e3}.legend .sw.off{background:#eceef1}.legend .sw.warn{background:#fdecec}.weekcard{padding:0;overflow:hidden}.weekhead{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:var(--ink);color:#fff}.weekhead h3{color:#fff}.weekhead h3:after{content:""}.rostertable{border-collapse:collapse;width:100%;min-width:780px}.rostertable th{padding:7px 4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:2px solid var(--ink);text-align:center;background:#fff}.rostertable th .date{font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:500}.rostertable th.namecol,.rostertable td.namecol{text-align:left;padding-left:12px;min-width:130px;background:#fff}.rostertable td{border:1px solid var(--line)}.rostertable td.namecol{padding:5px 12px}.rostertable td.cell{padding:0;background:#fff}.rostertable td.cell.filled{background:#fdf6e3}.rostertable td.cell.off{background:#eceef1}.rostertable td.cell.warn{background:#fdecec}.rostertable td.cell>button{font:inherit;cursor:pointer;border:none;background:transparent;width:100%;min-height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 4px}.rostertable .time{font-family:IBM Plex Mono,monospace;font-size:.74rem;font-weight:600}.rostertable td.cell.warn .time{color:var(--danger)}.rostertable .warntext{font-size:.62rem;color:var(--danger)}.rostertable .notetick{font-size:.65rem;color:var(--muted)}.rostertable .plus{color:#d5dae1;font-size:.85rem}.rostertable td.cell.off .plus{color:#b6bcc6}.rostertable td.hours{text-align:center;font-family:IBM Plex Mono,monospace;font-size:.82rem;font-weight:600;padding:4px 8px}.rostertable.public tr.hit{background:#fff6d9}.rostertable.public tr.hit td.cell.filled{background:#ffedb3}.rostertable.public tr.dim{opacity:.35}.rostertable.public .pubcell{display:flex;flex-direction:column;align-items:center;padding:5px 3px;gap:1px}.rostertable.public .role{font-size:.7rem;color:var(--muted)}.rostertable.public .note{font-size:.68rem;color:var(--muted);font-style:italic}.availbtn{cursor:pointer;width:36px;height:32px;border-radius:5px;font-weight:700;font-size:.95rem}.availbtn.yes{border:1px solid var(--live);background:#e5f6ec;color:var(--live)}.availbtn.no{border:1px solid var(--line);background:#eceef1;color:var(--muted)}.warnbox{background:#fdecec;border:1px solid var(--danger);border-radius:6px;padding:8px 11px;font-size:.85rem;color:var(--danger)}.switchrow{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink);cursor:pointer;margin:0}.switchrow input{width:18px;height:18px;accent-color:var(--hivis);cursor:pointer}.authwrap{max-width:400px;margin:7vh auto;padding:16px}.info{color:var(--live);font-size:.88rem}.appshell{display:flex;min-height:100vh}.sidebar{width:190px;background:var(--ink);color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}.sidebrand{font-family:Barlow Condensed;font-weight:700;font-size:1.35rem;letter-spacing:.04em;text-transform:uppercase;padding:14px 16px 10px;color:#fff}.sidebrand:after{content:""}.sidebar nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar nav a{color:#cbd5e1;text-decoration:none;padding:11px 12px;border-radius:6px;font-weight:600;font-size:1rem}.sidebar nav a.active{background:var(--ink-2);color:#fff;border-left:3px solid var(--hivis)}.sidebar nav a:hover{color:#fff}.sidefoot{margin-top:auto;padding:12px}.appmain{flex:1;min-width:0}.mobilebar,.scrim{display:none}@media (max-width: 720px){.sidebar{position:fixed;left:0;top:0;z-index:70;transform:translate(-100%);transition:transform .2s ease;width:220px}.sidebar.open{transform:translate(0)}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#141a2273;z-index:65}.mobilebar{display:flex;align-items:center;gap:10px;background:var(--ink);padding:8px 12px}.hamburger{font-size:1.3rem;background:none;border:none;color:#fff;padding:6px 10px}}.rostertable.even{table-layout:fixed;width:100%}.rostertable.even th.namecol,.rostertable.even td.namecol{width:15%}.rostertable.even th.hourscol,.rostertable.even td.hours{width:7%}.rostertable.even .pubcell{word-wrap:break-word}.pubwrap{max-width:1000px;margin:0 auto}.pubhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.pubhead h1{margin-bottom:2px}.pubhead .muted{margin:0}.pubtools{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.findbox{flex:1 1 200px;max-width:300px}.pubstamp{font-family:IBM Plex Mono,monospace;font-size:.7rem;color:var(--hivis)}.previewbar{background:#fdf1d4;border:1px solid #e8cf8a;border-radius:6px;padding:9px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:.88rem}.leaderbtn{font:inherit;font-weight:600;cursor:pointer;padding:9px 13px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--muted);text-align:left}.leaderbtn.on{background:var(--hivis);border-color:var(--hivis);color:var(--hivis-ink)}.leaderstar{color:#b8860b;font-size:.8rem;line-height:1}.rostertable .leader{font-size:.68rem;font-weight:700;color:#b8860b;text-transform:uppercase;letter-spacing:.04em}.sitecol{font-size:.8rem}.sitecheck{display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink);margin:2px 0;cursor:pointer;white-space:nowrap}.sitecheck input{width:15px;height:15px;accent-color:var(--hivis)}.codebox{font-family:IBM Plex Mono,monospace;font-size:1.15rem;font-weight:600;letter-spacing:.12em;background:var(--paper);border:1px dashed var(--muted);border-radius:6px;padding:7px 14px}.page{padding-bottom:max(60px,env(safe-area-inset-bottom))}.mobilebar{padding-top:max(10px,env(safe-area-inset-top))}@media (max-width: 720px){.btn{padding:11px 16px;font-size:1rem}.btn.sm{padding:9px 13px;font-size:.9rem}.btn.big{padding:15px 20px;font-size:1.1rem}.rostertable td.cell>button{min-height:52px}.authwrap{margin:4vh auto}.card{padding:12px}.weekhead{flex-direction:column;gap:8px;align-items:flex-start}.weekhead .row{flex-wrap:wrap}.pubtools{flex-direction:column;align-items:stretch}.pubtools .findbox{max-width:100%}.pubtools .btn{width:100%}.pubhead{flex-direction:column;gap:6px}.modal{max-height:95vh}.row.legend{display:none}.announce{font-size:.9rem}}button,select,input{touch-action:manipulation}@media (max-width: 720px){.sidebar{z-index:200}.scrim{z-index:190}}@media (max-width: 600px){.rostertable.even{min-width:500px}}.pwwrap button:focus-visible{outline:2px solid var(--hivis);border-radius:4px}.sidebar{transition:transform .22s cubic-bezier(.4,0,.2,1)}.toast{z-index:300;max-width:90vw;text-align:center}@media (max-width: 720px){.card[style*=f0faf4] .muted{font-size:.8rem}.card[style*=f0faf4] p[style*=monospace]{font-size:.72rem}}.badge.expired{background:#ececf1;color:var(--muted)}.pastweekhead{font:inherit;cursor:pointer;border:none;width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--ink);color:#fff;text-align:left}.pastweekhead:hover{background:var(--ink-2)}.pastweekhead h3{font-family:Barlow Condensed,sans-serif;text-transform:uppercase;font-size:1rem;margin:0}@media (max-width: 720px){.pastweekhead{flex-direction:column;align-items:flex-start;gap:4px}}.rostertable th.ph{background:#f3eefe}.rostertable td.cell.ph{background:repeating-linear-gradient(-45deg,#f3eefe 0,#f3eefe 8px,#ece4fb 8px,#ece4fb 16px)}.rostertable td.cell.filled.ph{background:#fdf6e3;box-shadow:inset 0 0 0 2px #c9b3f0}.phlabel{font-size:.6rem;font-weight:700;color:#7a5cc4;text-transform:uppercase;letter-spacing:.04em}.dayhead{font:inherit;cursor:pointer;border:none;background:none;width:100%;padding:0;color:inherit;text-transform:inherit;letter-spacing:inherit;font-size:inherit;font-weight:inherit}.dayhead:hover .date{color:var(--ink)}.rostertable td.hours{white-space:nowrap}@media (max-width: 720px){.rostertable.even th.hourscol,.rostertable.even td.hours{width:44px;min-width:44px}.rostertable td.hours{font-size:.74rem;padding:4px 3px}.rostertable.even{min-width:700px}}
