:root{--color-navy:#01004c;--color-gold:#eab602;--color-blue-muted:#295c93;--color-accent-blue:#3a6b9c;--text-white:#fff;--bg-dark:var(--color-navy);--bg-top-bar:var(--color-navy);--bg-row-even:var(--color-navy);--bg-row-odd:var(--color-blue-muted);--bg-header:var(--color-gold);--header-h:10vh;--content-h:90vh;--row-h:calc(var(--content-h) / 18)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-white);width:100vw;height:100vh;font-family:Inter,sans-serif;overflow:hidden}.app-container{flex-direction:column;height:100%;display:flex}.top-bar{height:var(--header-h);background-color:var(--bg-top-bar);justify-content:space-between;align-items:center;padding:0 2vw;display:flex}.brand h1{letter-spacing:1px;margin-bottom:.2vh;font-size:2.8vh;font-weight:800}.brand .subtitle{color:var(--color-accent-blue);letter-spacing:.2em;text-transform:uppercase;font-size:1.4vh;font-weight:600}.clock-display{font-size:4.5vh;font-weight:800}.grid-container{height:var(--content-h);flex-direction:column;display:flex}.grid-row{width:100%;height:var(--row-h);grid-template-columns:.5fr 1.2fr .6fr 3fr 1.5fr 12px 1.2fr .6fr 3fr 1.5fr .5fr;align-items:center;padding:0 1vw;font-size:2.1vh;display:grid}.grid-row:nth-child(odd):not(.header-row):not(.footer-row){background-color:var(--bg-row-odd)}.grid-row:nth-child(2n):not(.header-row):not(.footer-row){background-color:var(--bg-row-even)}.header-row,.footer-row{background-color:var(--bg-header);color:#000;text-transform:uppercase;letter-spacing:.05em;font-size:2vh;font-weight:700}.footer-row{height:var(--row-h);justify-content:center;align-items:center;font-size:2.1vh;display:flex}.col-class{color:var(--bg-header);font-weight:bolder}.col-time,.col-room{text-align:center;font-weight:700}.col-time{font-family:monospace}.col-room{background-color:var(--bg-header);color:#000;border-radius:4px}.col-subject,.col-teacher{white-space:nowrap;overflow:hidden}.col-subject{text-overflow:ellipsis;padding:0 1vw}.col-teacher{text-align:right;opacity:.5;margin-right:1em;font-weight:400}.col-divider.line{background-color:var(--bg-header);opacity:.5;width:2px;height:100%}.right-align,.header-teacher{text-align:right}.center,.header-time,.header-room{text-align:center}.header-subject{padding:0 1vw}
