:root{--paper:#f2f0ea;--paper-strong:#fffdf8;--ink:#15171a;--ink-soft:#3c3f44;--muted:#74716a;--line:#d8d3c8;--line-strong:#b9b2a4;--signal:#c81e2b;--signal-ink:#8e1019;--success:#1f6b4a;--warning:#a96a00;--winner:#e3a500;--font-display:"Arial Black", "Helvetica Neue", "Segoe UI", sans-serif;--font-body:"Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:"Cascadia Mono", "Consolas", "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:linear-gradient(#15171a06 1px,#0000 1px),linear-gradient(90deg,#15171a06 1px,#0000 1px);background-size:32px 32px;font-size:14px;line-height:1.45}a{color:inherit}button,input,select,textarea{font:inherit}h1,h2,h3,h4,p{margin:0}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.mono{font-family:var(--font-mono);font-size:.78rem}.muted{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;color:var(--paper);border-bottom:3px solid var(--signal);background:#14161a;position:sticky;top:0}.topbar__inner{align-items:center;gap:32px;max-width:1440px;min-height:64px;margin:0 auto;padding:0 28px;display:flex}.brand{color:inherit;flex:none;align-items:center;gap:11px;text-decoration:none;display:inline-flex}.brand__mark{background:var(--signal);color:#fff;width:34px;height:34px;font-family:var(--font-display);letter-spacing:.04em;clip-path:polygon(0 0,100% 0,87% 100%,0 100%);place-items:center;font-size:11px;display:grid}.brand__text{flex-direction:column;line-height:1.1;display:flex}.brand__text strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:14px}.brand__text small{font-family:var(--font-mono);color:#f2f0ea9e;letter-spacing:.06em;font-size:9px}.topnav{align-items:stretch;gap:4px;height:64px;display:flex}.topnav a{color:#f2f0eab3;border-bottom:3px solid #0000;align-items:center;margin-bottom:-3px;padding:0 12px;font-size:13px;text-decoration:none;display:inline-flex}.topnav a:hover{color:var(--paper)}.topnav a.is-active{color:var(--paper);border-bottom-color:var(--signal)}.userbox{align-items:center;gap:10px;min-width:0;margin-left:auto;display:flex}.userbox__name{color:#f2f0ead9;text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:12px;overflow:hidden}.role{font-family:var(--font-mono);color:#f2f0eacc;white-space:nowrap;border:1px solid #f2f0ea47;padding:3px 7px;font-size:9px}.role--supervisor{color:#f0c75a;border-color:#e3a500b3}.icon-button{width:32px;height:32px;color:var(--paper);cursor:pointer;background:0 0;border:1px solid #f2f0ea38;place-items:center;display:inline-grid}.icon-button:hover{background:#f2f0ea1a}.page{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:32px 28px 64px}.page-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;display:flex}.page-kicker{font-family:var(--font-mono);color:var(--muted);margin-bottom:6px;font-size:11px}.page-title{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(34px,4vw,52px);font-weight:900;line-height:.94}.page-subtitle{color:var(--muted);margin-top:8px;font-size:13px}.page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.footer{border-top:1px solid var(--line);width:100%;max-width:1440px;color:var(--muted);justify-content:space-between;gap:12px;margin:0 auto;padding:18px 28px 30px;font-size:11px;display:flex}.stat-strip{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:26px;display:grid}.stat{border-right:1px solid var(--line);min-width:0;padding:15px 16px 13px}.stat:last-child{border-right:0}.stat strong{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(26px,2.6vw,38px);line-height:1;display:block}.stat span{color:var(--muted);margin-top:5px;font-size:11px;display:block}.month-bar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.progress{border:1px solid var(--line);background:#e4e0d7;flex:1;min-width:120px;height:6px}.progress__bar{background:var(--signal);height:100%}.board{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;display:grid}.slot{--section:#bcd6f2;background:var(--paper-strong);border:1px solid var(--line);border-top:6px solid var(--section);flex-direction:column;min-height:246px;padding:13px 14px 12px;transition:background .12s;display:flex}.slot:hover{background:#fff}.slot__head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:9px;display:flex}.slot__index{font-family:var(--font-mono);color:var(--muted);margin-right:auto;font-size:10px}.chip{background:var(--section);color:#1b1c1e;white-space:nowrap;border:1px solid #15171a21;align-items:center;padding:2px 7px;font-size:10.5px;line-height:1.35;display:inline-flex}.chip--winner{background:var(--winner);border-color:#8f6a00;font-weight:700}.chip--danger{border-color:var(--signal);color:var(--signal-ink);background:#f6d5d5}.chip--muted{border-color:var(--line);color:var(--muted);background:#ece9e1}.slot__band{font-family:var(--font-display);letter-spacing:-.025em;overflow-wrap:anywhere;font-size:21px;font-weight:900;line-height:1.02}.video-link{text-align:left;cursor:pointer;appearance:none;background:0 0;border:0;padding:0;font-family:inherit}.video-link:hover{text-decoration:underline}.slot__video{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:30px;margin-top:4px;font-size:11.5px;line-height:1.3;display:-webkit-box;overflow:hidden}.files{border-top:1px dashed var(--line);margin-top:auto;padding-top:10px;display:grid}.file-row{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:12px;display:flex}.file-row+.file-row{border-top:1px dotted #e4e0d7}.file-row.is-done{color:var(--success)}.file-row__label{align-items:center;gap:6px;min-width:0;display:inline-flex}.file-row__meta{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:9.5px}.deliverable-list{border-top:1px dashed var(--line);margin-top:auto;padding-top:8px;display:grid}.deliverable-row{border-bottom:1px dotted #e4e0d7;padding:6px 0}.deliverable-row:last-child{border-bottom:0}.deliverable-row__main{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.deliverable-row__label{align-items:baseline;gap:4px;min-width:0;display:inline-flex}.deliverable-row__label strong{font-size:11.5px;font-weight:600}.deliverable-row__label span{font-family:var(--font-mono);color:var(--muted);font-size:9px}.deliverable-row__status{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;align-items:center;gap:4px;margin-left:auto;font-size:9.5px;display:inline-flex}.deliverable-row__status.is-done{color:var(--success)}.deliverable-row__actions{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.slot__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-top:10px;display:flex}.upload-control{flex-wrap:wrap;align-items:center;gap:5px;display:inline-flex}.upload-progress{border:1px solid var(--line);background:#e4e0d7;width:100%;height:4px;margin-top:3px}.upload-progress>div{background:var(--success);height:100%;transition:width .12s}.upload-error{color:var(--signal-ink);flex-basis:100%;margin:2px 0 0;font-size:11px;line-height:1.3}.slot__empty{border:1px dashed var(--line-strong);text-align:center;min-height:246px;color:var(--muted);background:#fffdf873;place-items:center;padding:22px;font-size:12px;display:grid}.button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:1px;justify-content:center;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.button:hover,.button--primary{background:var(--ink);color:var(--paper)}.button--primary:hover{background:var(--signal);border-color:var(--signal)}.button--accent{background:var(--signal);border-color:var(--signal);color:#fff}.button--accent:hover{background:var(--signal-ink);border-color:var(--signal-ink)}.button--ghost{border-color:var(--line-strong);color:var(--ink-soft)}.button--danger{border-color:var(--signal);color:var(--signal-ink)}.button--danger:hover{background:var(--signal);color:#fff}.button--small{padding:5px 8px;font-size:11px}.button:disabled{opacity:.4;cursor:not-allowed}.button:disabled:hover{color:var(--ink);background:0 0}.panel{background:var(--paper-strong);border:1px solid var(--line);padding:18px}.panel__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.panel__head h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:19px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:12.5px}.table th{text-align:left;color:var(--muted);border-bottom:2px solid var(--ink);white-space:nowrap;padding:8px 10px;font-size:10.5px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 10px}.table tbody tr:hover td{background:#f7f5ef}.table .num{font-family:var(--font-mono);color:var(--muted);font-size:10.5px}.section-dot{background:var(--section,#ccc);vertical-align:middle;border:1px solid #15171a26;width:9px;height:9px;margin-right:6px;display:inline-block}.status{white-space:nowrap;align-items:center;gap:5px;font-size:11.5px;display:inline-flex}.status.is-done{color:var(--success)}.status.is-pending{color:var(--muted)}.status.is-bad{color:var(--signal-ink)}.status__date{font-family:var(--font-mono);color:var(--muted);font-size:9.5px}.banner{border-left:3px solid var(--warning);background:#fff7e0;margin-bottom:18px;padding:11px 13px;font-size:12.5px}.banner--locked{border-left-color:var(--ink);background:#ece9e1}.empty{border:1px dashed var(--line-strong);text-align:center;color:var(--muted);background:#fffdf880;padding:26px 20px;font-size:12.5px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.toolbar form{flex-wrap:wrap;flex:560px;align-items:center;gap:6px;min-width:0;max-width:760px;display:flex}.input{border:1px solid var(--line-strong);background:var(--paper-strong);color:var(--ink);min-width:0;padding:8px 10px;font-size:13px}.input:focus{outline:2px solid var(--signal);outline-offset:1px}.month-switcher{background:var(--paper-strong);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:16px;padding:10px 12px;display:flex}.month-switcher__group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.month-switcher__label{color:var(--muted);font-size:11px;font-weight:600}.month-switcher select{min-width:190px}.month-switcher__group--end{margin-left:auto}.search-input{flex:auto;width:auto;min-width:0}.login-page{grid-template-columns:1.12fr .88fr;min-height:100vh;display:grid}.login-poster{color:var(--paper);background:#14161a;flex-direction:column;justify-content:space-between;min-height:100vh;padding:42px;display:flex;position:relative;overflow:hidden}.login-poster:before{content:"";border:1px solid #f2f0ea1f;border-radius:50%;width:560px;height:560px;position:absolute;bottom:-250px;right:-190px}.login-poster:after{content:"";border:1px solid #c81e2b8c;border-radius:50%;width:300px;height:300px;position:absolute;bottom:-120px;right:-60px}.login-poster__top{font-family:var(--font-mono);color:#f2f0ea9e;z-index:1;justify-content:space-between;align-items:center;gap:16px;font-size:10px;display:flex;position:relative}.login-poster__logo{width:auto;height:44px;display:block}.login-poster__title{z-index:1;font-family:var(--font-display);letter-spacing:-.055em;max-width:100%;margin:38px 0;font-size:clamp(28px,5vw,76px);font-weight:900;line-height:.88;position:relative}.login-poster__title em{white-space:nowrap;color:var(--signal);font-style:normal}.login-poster__stats{z-index:1;border-top:1px solid #f2f0ea33;grid-template-columns:repeat(2,1fr);gap:18px;max-width:420px;padding-top:18px;display:grid;position:relative}.login-poster__stats strong{font-family:var(--font-display);letter-spacing:-.03em;font-size:30px;line-height:1;display:block}.login-poster__stats span{color:#f2f0ea94;margin-top:4px;font-size:10.5px;display:block}.login-poster__foot{z-index:1;font-family:var(--font-mono);color:#f2f0ea73;margin-top:28px;font-size:9.5px;position:relative}.login-form-wrap{place-items:center;padding:40px;display:grid}.login-form{width:min(380px,100%)}.login-form h1{font-family:var(--font-display);letter-spacing:-.035em;margin:8px 0;font-size:36px;font-weight:900;line-height:1}.form{gap:13px;margin-top:22px;display:grid}.form label{color:var(--ink-soft);gap:6px;font-size:11.5px;font-weight:600;display:grid}.form input{border:1px solid var(--ink);color:var(--ink);background:0 0;border-radius:1px;padding:11px 12px;font-size:15px}.form input:focus{outline:2px solid var(--ink);outline-offset:1px}.form-error{border-left:3px solid var(--signal);color:var(--signal-ink);background:#fbe9e9;margin-top:14px;padding:9px 11px;font-size:12px}.login-help{border-top:1px solid var(--line);color:var(--muted);margin-top:20px;padding-top:13px;font-size:11px}.calendar-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-bottom:16px;font-size:11.5px;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-dot{border:1px solid var(--line-strong);background:var(--paper-strong);width:10px;height:10px;display:inline-block}.legend-dot.is-delivered{background:var(--success);border-color:var(--success)}.legend-dot.is-complete{background:var(--winner);border-color:var(--winner)}.legend-dot.is-progress{background:var(--ink);border-color:var(--ink)}.calendar-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.calendar-month{background:var(--paper-strong);border:1px solid var(--line);border-top:5px solid var(--line-strong);min-height:166px;color:inherit;flex-direction:column;gap:8px;padding:13px 14px;text-decoration:none;transition:background .12s;display:flex}.calendar-month:hover{background:#fff}.calendar-month.is-delivered{border-top-color:var(--success);background:#eff7f1}.calendar-month.is-complete{border-top-color:var(--winner);background:#fff8e6}.calendar-month.is-progress{border-top-color:var(--ink)}.calendar-month.is-empty{color:var(--muted);background:0 0;border-style:solid dashed dashed}.calendar-month__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.calendar-month__name{font-family:var(--font-display);letter-spacing:-.02em;text-transform:capitalize;font-size:21px;line-height:1}.calendar-month__mark{border:1px solid var(--line);width:24px;height:24px;color:var(--muted);flex:none;place-items:center;display:grid}.is-delivered .calendar-month__mark{background:var(--success);border-color:var(--success);color:#fff}.is-complete .calendar-month__mark{background:var(--winner);border-color:var(--winner);color:#1b1b1b}.calendar-month__status{font-size:11.5px;font-weight:600}.is-delivered .calendar-month__status{color:var(--success)}.is-complete .calendar-month__status{color:var(--warning)}.calendar-month__counts{color:var(--muted);flex-wrap:wrap;gap:3px 12px;margin-top:auto;font-size:10.5px;display:flex}.calendar-month__bar{border:1px solid var(--line);background:#e4e0d7;height:5px}.calendar-month__bar>div{background:var(--ink);height:100%}.is-delivered .calendar-month__bar>div{background:var(--success)}.is-complete .calendar-month__bar>div{background:var(--winner)}.calendar-month__action{font-family:var(--font-mono);color:var(--muted);font-size:9.5px}.calendar-month form{margin-top:2px}.config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.config-grid .panel--wide{grid-column:1/-1}.kv{grid-template-columns:150px 1fr;gap:8px 14px;font-size:12.5px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0}.config-form{gap:12px;margin-top:12px;display:grid}.config-form .row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.config-form label{color:var(--ink-soft);gap:5px;font-size:11.5px;font-weight:600;display:grid}.config-form input,.config-form select{border:1px solid var(--line-strong);background:var(--paper-strong);color:var(--ink);border-radius:1px;padding:8px 10px;font-size:13px}.notice{border-left:3px solid var(--line-strong);color:var(--ink-soft);background:#f7f5ef;padding:9px 11px;font-size:11.5px}@keyframes yt-fade{0%{opacity:0}to{opacity:1}}@media (max-width:1100px){.login-page{grid-template-columns:1fr}.login-poster{min-height:46vh;padding:32px}.login-poster__title{margin:26px 0;font-size:clamp(28px,9vw,64px)}.login-form-wrap{padding:38px 24px 56px}.config-grid{grid-template-columns:1fr}}@media (max-width:860px){.topbar__inner{flex-wrap:wrap;gap:10px 18px;min-height:0;padding:10px 18px}.brand{order:1}.userbox{order:2}.topnav{border-top:1px solid #f2f0ea24;order:3;width:100%;height:auto;padding-top:4px}.topnav a{border-bottom:2px solid #0000;margin-bottom:0;padding:8px 10px}.page{padding:24px 18px 48px}.page-head{flex-direction:column;align-items:flex-start}.page-actions{justify-content:flex-start}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.board{grid-template-columns:1fr}.footer{padding:16px 18px 26px}}.yt-modal{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08090bcc;justify-content:center;align-items:center;padding:20px;animation:.14s yt-fade;display:flex;position:fixed;inset:0}.yt-modal__panel{background:#0f1115;border:1px solid #f2f0ea29;width:min(980px,100%);box-shadow:0 30px 90px #0000008c}.yt-modal__bar{color:var(--paper);background:#15171a;border-bottom:1px solid #f2f0ea1f;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.yt-modal__title{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.yt-modal__close{width:32px;height:32px;color:var(--paper);cursor:pointer;background:0 0;border:1px solid #f2f0ea38;flex:none;place-items:center;display:grid}.yt-modal__close:hover{background:#f2f0ea1f}.yt-modal__frame{aspect-ratio:16/9;background:#000}.yt-modal__frame iframe{border:0;width:100%;height:100%;display:block}@media (max-width:1100px){.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.calendar-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
