:root,:root[data-theme=dark]{color-scheme:dark;--bg:#071427;--surface:#10233d;--surface-strong:#142b49;--text:#f4f7fb;--muted:#a8b8ca;--line:#29425f;--accent:#73b7ff;--accent-text:#061426;--soft:#173656;--warning:#ffaaa8;--warning-bg:#3b2633;--nav:#0d2544}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}
.app{max-width:820px;margin:auto;min-height:100vh;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.masthead{display:flex;align-items:center;gap:12px;background:var(--nav);color:#fff;padding:calc(14px + env(safe-area-inset-top)) 20px 16px;border-bottom:1px solid #1d3a5c}.brand-logo{position:relative;width:60px;height:72px;overflow:hidden;flex:none}.brand-logo img{position:absolute;width:118px;max-width:none;height:auto;left:-28px;top:0;filter:invert(1)}.brand-name{font-size:13px;font-weight:800}.brand-subtitle{font-size:12px;color:#bdd0e4}.view{padding:22px 20px 32px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 20px}.eyebrow{display:block;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:1px;margin-bottom:4px}h1{font-size:29px;line-height:1.12;margin:0;letter-spacing:0}h2{font-size:18px;line-height:1.3;margin:0}.subtitle{display:block;font-size:14px;color:var(--muted);font-weight:500;margin-top:4px}.badge{font-size:12px;font-weight:700;background:var(--soft);color:var(--accent);padding:5px 8px;border-radius:5px;white-space:nowrap}
.group-bar,.date-row,.filter-row,.row,.dialog-actions{display:flex;align-items:center;gap:10px}.group-bar{padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:15px}.group-bar label{font-weight:700;white-space:nowrap}.group-bar select{flex:1;min-width:0}.group-bar button{white-space:nowrap}.date-row{justify-content:space-between;margin:12px 0 19px}.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:#091a30;padding:3px;gap:3px;border-radius:7px}.segmented.schedule-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.segmented button{min-width:0;border:0;background:transparent;color:var(--muted);padding:10px 3px;border-radius:5px;font-size:12px;font-weight:700}.segmented button.active{background:#17375d;color:#fff}.date-row label,.form-stack label,.settings-block label{font-weight:700}input,select,textarea{max-width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:10px 11px}input[type=date]{min-width:145px}.text-button{border:0;background:transparent;color:var(--accent);font-weight:700;padding:8px 0}.primary,.secondary,.danger-quiet,.upload-control{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:10px 14px;font-size:14px;font-weight:700;text-align:center}.primary,.upload-control{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text)}.secondary{border:1px solid var(--line);background:var(--surface);color:var(--text)}.danger-quiet{border:1px solid transparent;background:var(--warning-bg);color:var(--warning)}.upload-control{cursor:pointer;width:100%;margin:4px 0 14px}
.source-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}.vgik-controls{margin:16px 0}.vgik-controls .primary{width:100%}#vgik-status{margin:8px 0 4px}.stale-note{color:var(--warning)}
.day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 13px}.day-heading h2{font-size:20px}.day-heading span{color:var(--muted);font-size:12px;white-space:nowrap}.lessons,.week-days,.list,#film-list{display:grid;gap:9px}.lesson{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:15px}.lesson.is-next{border-color:var(--accent);background:var(--surface-strong)}.lesson-time{font-size:16px;font-weight:800;color:var(--accent)}.lesson-time small{display:block;font-size:12px;color:var(--muted)}.lesson h3{font-size:16px;margin:0 0 6px;line-height:1.3}.lesson p{font-size:13px;color:var(--muted);margin:3px 0}.next-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border-left:4px solid var(--accent);background:#0d213b;padding:14px;margin:0 0 18px;border-radius:0 6px 6px 0}.next-panel small{display:block;color:var(--accent);font-size:11px;font-weight:800}.next-panel strong{display:block;font-size:15px;margin:3px 0}.next-panel span{display:block;color:var(--muted);font-size:12px}.week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.week-toolbar strong{font-size:14px}.week-controls{display:flex;gap:7px}.week-controls button{width:42px;height:42px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font-size:22px}.calendar-scroll{overflow-x:auto;padding-bottom:4px}.week-calendar{display:grid;grid-template-columns:54px repeat(7,minmax(76px,1fr));min-width:620px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-corner,.calendar-day,.calendar-time,.calendar-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.calendar-day{border-top:0;border-left:0;background:#0b1d34;color:var(--muted);padding:8px 3px;font-size:11px;font-weight:700}.calendar-day b{display:block;color:var(--text);font-size:13px}.calendar-day.active{background:#183b63;color:var(--accent)}.calendar-time{padding:9px 3px;text-align:center;color:var(--muted);font-size:11px}.calendar-cell{min-height:72px;padding:4px;background:#09182c}.calendar-cell.active{background:#0d2139}.calendar-event{width:100%;height:100%;min-height:63px;border:0;border-radius:4px;background:#1a456d;color:#e9f4ff;padding:6px 5px;text-align:left;font-size:11px;line-height:1.2;overflow:hidden}.week-detail{margin-top:13px}.week-detail .lessons{margin-top:10px}.week-day,.list-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;padding:14px}.week-day span,.list-item span{color:var(--muted);font-size:12px}.empty{border:1px dashed var(--line);border-radius:6px;padding:29px 16px;text-align:center;color:var(--muted);background:var(--surface)}
.film,.entry{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:15px;overflow-wrap:anywhere}.film-top,.entry-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.film-top strong{background:var(--soft);color:var(--accent);border-radius:5px;padding:4px 8px;white-space:nowrap}.film p,.entry p{margin:8px 0 12px;white-space:pre-wrap}.muted{color:var(--muted);font-size:13px}.film .row,.entry .row{margin-top:14px;flex-wrap:wrap}.filter-row{margin-bottom:15px}.filter-row input{flex:1;min-width:0}.filter-row select{width:150px}.form-stack{display:grid;gap:16px;max-width:520px}.form-stack label{display:grid;gap:6px}.form-stack input:not([type=checkbox]),.form-stack select,.form-stack textarea{width:100%}.toggle-row{display:flex!important;justify-content:space-between;align-items:center}.toggle-row input{width:20px;height:20px}.settings-block{display:grid;gap:11px;max-width:520px}.settings-block .muted{margin:0 0 8px}.admin-tabs{margin-bottom:18px}.divider{border-top:1px solid var(--line);margin:24px 0}.warning-list{background:var(--warning-bg);color:var(--warning);border-radius:6px;padding:15px 15px 15px 32px}.warning{color:var(--warning)}.flag{background:var(--warning-bg);color:var(--warning);font-size:11px;border-radius:4px;padding:4px 6px;white-space:nowrap}#draft-detail .list{margin:16px 0}.list-item strong{font-size:14px}.list-item button{margin-left:auto}.list-item:has(button){cursor:default}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,820px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border-top:1px solid var(--line);padding:5px 4px calc(5px + env(safe-area-inset-bottom));z-index:10}body.has-admin .bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;gap:1px;font-size:10px;min-width:0;padding:5px 1px}.bottom-nav button svg{width:20px;height:20px;flex:none}.bottom-nav button.active{color:var(--accent);font-weight:800}dialog{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);width:min(94vw,500px);max-height:85vh;overflow:auto;padding:20px}dialog::backdrop{background:rgba(0,0,0,.55)}#editor-fields{display:grid;gap:12px}.dialog-actions{justify-content:flex-end}#toast{position:fixed;z-index:30;bottom:calc(86px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(90vw,460px);padding:12px 15px;border-radius:6px;background:var(--nav);color:#fff;text-align:center}
@media(max-width:520px){.view{padding:19px 14px 28px}.masthead{padding-left:14px;padding-right:14px}.section-title{align-items:start}.section-title .primary{font-size:12px;padding:8px}.group-bar{flex-wrap:wrap}.group-bar label{width:100%}.lesson{grid-template-columns:56px minmax(0,1fr);padding:12px}.lesson-time{font-size:14px}.filter-row{flex-wrap:wrap}.filter-row select{flex:1}.admin-tabs button{font-size:11px}.bottom-nav button{font-size:9px}}
body.has-admin:not(.is-owner) .admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
.week-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.week-square{aspect-ratio:1;border:1px solid var(--line);border-radius:6px;background:#0b1d34;color:var(--muted);padding:4px 1px;font-size:10px;font-weight:700}.week-square b{display:block;color:var(--text);font-size:15px;margin-top:2px}.week-square i{display:block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin:3px auto 0}.week-square.active{background:#183b63;border-color:var(--accent);color:var(--accent)}.week-detail{margin-top:17px}.admin-tabs{display:flex;overflow-x:auto}.admin-tabs button{flex:0 0 auto;padding-left:12px;padding-right:12px}.vgik-source{display:grid;gap:12px}.source-note{border-left:3px solid var(--accent);padding:10px 12px;background:#0d213b;color:var(--muted);font-size:13px}.source-day{margin-top:18px}.source-day h2{margin-bottom:10px}
.masthead>div:last-child{min-width:0}.brand-name{overflow-wrap:anywhere}.section-title>div{min-width:0}.badge{min-width:0;max-width:45%;overflow:hidden;text-overflow:ellipsis}.vgik-controls .text-button{justify-self:start}
.masthead .login-button{margin-left:auto;flex:none;border:1px solid #53779e;border-radius:6px;background:#173656;color:#fff;text-decoration:none;padding:8px 11px;font-size:13px;font-weight:700}.masthead .login-button[hidden]{display:none}
.bottom-nav:has(button[data-page="films"][hidden]){grid-template-columns:1fr}
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}body.has-admin .bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))}.bottom-nav:has(button[data-page="films"][hidden]){grid-template-columns:1fr}
.search-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 20px}.search-controls label{display:grid;gap:6px;font-weight:700;min-width:0}.search-controls select{width:100%;min-width:0}.week-controls input[type=date]{width:145px;min-width:0;padding:8px;font-size:12px}#view-search .week-toolbar{flex-wrap:wrap}#view-search .week-picker{margin-bottom:16px}#view-search .week-square:disabled{opacity:.5}@media(max-width:520px){.search-controls{grid-template-columns:1fr}.week-controls input[type=date]{width:130px}}
.project-note{margin:-8px 0 18px;padding-left:10px;border-left:2px solid var(--accent);color:var(--muted);font-size:12px;line-height:1.35}
