:root{--board:#14251f;--board-2:#193128;--line:#3a5146;--line-soft:#2c4338;--paper:#f5efdc;--yellow:#e7b73d;--soft:#a5c0b2;--dim:#77958a;--danger:#ff958e}*{box-sizing:border-box}html{background:var(--board)}body{margin:0;background:radial-gradient(circle at 95% 0,#1f3c30 0,transparent 30%),var(--board);color:var(--paper);font:14px/1.35 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.wrap{max-width:1320px;margin:auto;padding:16px 38px 30px}.schedule-shell{height:100dvh;overflow:hidden}.schedule-page{height:100dvh;padding-bottom:12px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto auto auto;overflow:hidden}.masthead{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:0 0 12px;border-bottom:1px solid var(--line)}.school-brand{display:flex;gap:12px;align-items:center;min-width:0}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--yellow);border-radius:50%;color:var(--yellow);font-family:Georgia,serif;font-weight:700;font-size:20px}.school-name{margin:0;font-family:Georgia,serif;font-size:17px;font-weight:700}.municipality,.corpus-address{margin:0;color:var(--soft);font-size:11px}.corpus-address{color:var(--dim)}.qr-card{display:grid;grid-template-columns:47px auto;align-items:center;gap:9px;color:var(--soft);font-size:9px;line-height:1.25}.qr-card img{width:47px;height:47px;padding:2px;background:#fffdf5;object-fit:contain}.hero{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:center;padding:16px 0 18px;border-bottom:1px solid var(--line)}.eyebrow,.section-label span{margin:0;color:var(--soft);font-size:10px;letter-spacing:.09em;text-transform:uppercase}.hero h1{margin:4px 0 0;font-family:Georgia,serif;font-size:32px;line-height:1;color:var(--paper)}.hero-note{max-width:620px;margin:0;color:#f2edcf;font-family:system-ui,sans-serif;font-size:12px;font-weight:600;line-height:1.45}.section-label{display:flex;align-items:center;gap:13px;margin-bottom:10px;color:var(--soft)}.section-label:after{content:"";height:1px;flex:1;background:var(--line)}.section-label b{order:-1;color:var(--yellow);font-size:10px;text-transform:uppercase}.bells-section,.parallel-section,.news-section{padding:12px 0;border-bottom:1px solid var(--line)}.schedule-section{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:12px 0 5px;border-bottom:1px solid var(--line)}.bells{display:grid;gap:9px}.bell-shift{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;align-items:center}.bell-shift>span{color:var(--dim);font-size:10px;text-transform:uppercase}.bell-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:0}.bell{position:relative;min-height:41px;padding:11px 7px 0;border-top:1px solid var(--line)}.bell i{position:absolute;top:-5px;left:50%;width:9px;height:9px;border:1px solid var(--soft);border-radius:50%;background:var(--board)}.bell b,.bell small{display:block;text-align:center;font-size:10px}.bell b{color:var(--soft);font-weight:500}.bell small{margin-top:2px;color:var(--dim);font-size:9px}.bell.current{margin-top:-1px;background:rgba(231,183,61,.13);border-top-color:var(--yellow)}.bell.current i{border-color:var(--yellow);background:var(--yellow);box-shadow:0 0 0 4px rgba(231,183,61,.16)}.bell.current b,.bell.current small{color:var(--yellow)}.empty-line{margin:0;color:var(--dim)}.parallel-list{display:flex;flex-wrap:wrap;gap:8px}.parallel-button,button{border:1px solid #5a7165;border-radius:3px;background:transparent;color:var(--paper);padding:8px 13px;font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer;transition:.15s}.parallel-button:hover,.parallel-button.active,button:hover{border-color:var(--paper);background:var(--paper);color:var(--board)}.schedule-swipe{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;scrollbar-color:#516a5d var(--board);scrollbar-width:thin}.parallel-schedule{min-width:1120px;display:grid;gap:10px;padding-bottom:8px}.class-schedule{display:grid;grid-template-columns:62px 1fr;gap:8px}.class-name{position:sticky;left:0;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:3px;background:var(--paper);color:var(--board);box-shadow:7px 0 10px rgba(8,22,17,.32)}.class-name strong{font-family:Georgia,serif;font-size:23px;writing-mode:vertical-rl;transform:rotate(180deg)}.class-name span{margin-top:8px;color:#59675f;font-size:8px;writing-mode:vertical-rl;transform:rotate(180deg)}.class-week{display:grid;grid-template-columns:repeat(6,minmax(155px,1fr));gap:7px}.week-day{min-height:218px;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:rgba(11,27,21,.12)}.week-day.today{border-color:var(--yellow);box-shadow:inset 0 3px 0 var(--yellow)}.week-day header{display:grid;grid-template-columns:1fr auto;gap:3px;padding:10px 10px 7px;border-bottom:1px solid var(--line)}.week-day header small{grid-column:1/-1;color:var(--yellow);font-size:9px;text-transform:uppercase}.week-day h3{margin:0;color:var(--paper);font-family:Georgia,serif;font-size:15px}.week-day header span{align-self:end;color:var(--dim);font-size:9px}.week-day ol{list-style:none;margin:0;padding:0 9px}.lesson{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:4px;padding:7px 0;border-bottom:1px solid var(--line-soft)}.lesson:last-child{border-bottom:0}.lesson>b{color:var(--soft);font-size:11px}.lesson span{min-width:0;color:var(--paper);font-family:system-ui,sans-serif;font-size:10px;font-weight:700}.lesson small{display:block;margin-top:2px;color:var(--dim);font:8px ui-monospace,SFMono-Regular,Consolas,monospace}.lesson em{align-self:center;color:var(--soft);font-size:8px;font-style:normal;white-space:nowrap}.lesson.current{margin:0 -5px;padding:7px 5px;background:rgba(231,183,61,.14);box-shadow:inset 2px 0 var(--yellow)}.lesson.current>b,.lesson.current span{color:var(--yellow)}.empty{padding:18px 10px;color:var(--dim);font-size:10px}.swipe-hint{display:none;margin:6px 0 0;color:var(--dim);font-size:9px}.news-viewport{height:78px;overflow:hidden;border:1px solid var(--line);padding:0 14px}.news-track{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:10px 0}.news-repeat{display:contents}.news-track.is-scrolling{animation:news-scroll 22s linear infinite}.news-item{min-height:46px}.news-item small{display:inline-block;margin-bottom:4px;padding:3px 5px;border:1px solid #966a36;color:var(--yellow);font-size:8px;text-transform:uppercase}.news-item b{display:inline;margin-left:7px;color:var(--paper);font-family:system-ui,sans-serif;font-size:11px}.news-item p{margin:4px 0 0;color:var(--soft);font-size:9px}.news-item em{color:var(--dim);font-size:8px;font-style:normal}.schedule-meta{margin:7px 0 0;color:var(--dim);font-size:9px;text-align:right}@keyframes news-scroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}.top,.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0 18px}.top b{font-size:18px}.muted,small{color:var(--dim)}.admin-link{color:var(--yellow);text-decoration:none}.admin-card{border:1px solid var(--line);padding:14px}.form{max-width:450px;display:grid;gap:12px}.form label{display:grid;gap:5px;color:var(--soft)}input,select{width:100%;padding:10px;border:1px solid #668077;border-radius:3px;background:#f8f5e9;color:#152018;font:inherit}.error{color:var(--danger);white-space:pre-wrap}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-card{display:grid;gap:12px}.compact{max-width:760px;grid-template-columns:1fr 1fr 160px auto;align-items:end}@media(max-width:800px){.schedule-page{padding:10px 16px 8px}.masthead{gap:12px}.school-name{font-size:14px}.municipality,.corpus-address{font-size:9px}.brand-mark{width:34px;height:34px;font-size:16px}.qr-card{grid-template-columns:38px auto;gap:5px;font-size:8px}.qr-card img{width:38px;height:38px}.hero{grid-template-columns:1fr;padding:10px 0 12px;gap:7px}.hero h1{font-size:27px}.hero-note{font-size:10px}.bells-section,.parallel-section,.news-section{padding:9px 0}.schedule-section{padding:9px 0 4px}.bell-shift{grid-template-columns:1fr;gap:5px}.bell-shift>span{padding-left:3px}.bell-timeline{grid-template-columns:repeat(4,minmax(74px,1fr));overflow-x:auto;scrollbar-width:none}.bell-timeline::-webkit-scrollbar{display:none}.bell{min-width:74px}.parallel-list{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.parallel-button{white-space:nowrap}.parallel-schedule{min-width:1040px}.class-schedule{grid-template-columns:52px 1fr}.class-week{grid-template-columns:repeat(6,minmax(155px,1fr))}.class-name strong{font-size:20px}.swipe-hint{display:block}.news-viewport{height:68px}.news-track{grid-template-columns:1fr;gap:8px;padding:8px 0}.schedule-meta{text-align:left;line-height:1.4;margin-top:5px;font-size:8px}.admin-grid,.compact{grid-template-columns:1fr}}
