:root{--bg:#0b0b10;--surface:#17161f;--line:rgba(232,222,255,.105);--line-strong:rgba(208,181,255,.25);--text:#f1eff7;--muted:#aaa5b6;--dim:#787381;--purple:#ae8cdf;--purple-bright:#d8c3f8;--mint:#83c8b9;--amber:#d6b785;--radius:14px}
body{background:#0c0b12;color:var(--text)}
.ambient{display:none}
.glass{background:rgba(26,24,35,.93);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.13);backdrop-filter:none;-webkit-backdrop-filter:none}
.app-shell{background:#0d0c13}
.sidebar{width:224px;padding:24px 12px 18px;background:#16141e;border-right:1px solid rgba(210,190,245,.09);box-shadow:none}
.brand{padding:0 10px 43px;gap:10px}.brand-mark{width:35px;height:35px;border-radius:10px;background:#30263f;box-shadow:none}.brand strong{font-size:16px;letter-spacing:.02em}.brand small{font-size:8px;letter-spacing:.13em;margin-top:5px}
.side-section-label{color:#80798b;padding-left:12px;font-size:9px;margin-bottom:11px}
.side-nav{gap:3px}.nav-item{padding:11px 12px;font-size:12px;font-weight:600;border-radius:9px;transition:background .2s,color .2s,transform .2s}.nav-item:hover{transform:translateX(2px);background:rgba(178,147,220,.09)}.nav-item.active{background:#332840;border-color:#4c3a61;color:#f3e8ff}.nav-indicator{width:2px;height:18px;right:0;background:#c4a2f1;box-shadow:none}.nav-icon svg{width:17px;height:17px}
.source-card{padding:12px 10px}.source-card strong{font-size:11px}.source-link{padding:11px 10px;font-size:11px}
.topbar{position:sticky;top:0;z-index:8;height:58px;padding:0 30px;background:rgba(15,14,21,.91);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.breadcrumb{font-size:9px;letter-spacing:.1em}.breadcrumb strong{color:#dbd2eb}.top-right{gap:15px}.avatar{width:29px;height:29px;border-radius:8px;background:#4e3769;border-color:#6e4d91}.connection-label{display:flex;align-items:center;gap:7px;color:#a9a2b2;font-size:10px;font-weight:600}.connection-dot{width:6px;height:6px;background:#70caa9;border-radius:50%;box-shadow:0 0 0 3px rgba(112,202,169,.1)}.connection-dot.offline{background:#d2948b;box-shadow:0 0 0 3px rgba(210,148,139,.1)}
.content{max-width:1580px;padding:30px 32px 60px}.page{animation:page-in .28s cubic-bezier(.2,.7,.2,1)}@keyframes page-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.page-heading{align-items:center;margin-bottom:20px}.page-heading h1{font-size:30px;letter-spacing:-.045em;margin:6px 0 4px}.page-heading p{font-size:12px;color:#8f8999}.eyebrow{font-size:9px;letter-spacing:.14em;color:#ab8ecb}.eyebrow-line{width:13px;background:#ab8ecb}.title-period{display:none}
.top-source-button{padding:9px 12px;background:transparent;border-color:#3a3047;border-radius:8px;color:#cbb9e3;font-size:11px}.top-source-button span{margin-left:9px}.top-source-button:hover{background:#241d2d;transform:none}
.notice{margin-bottom:14px;padding:8px 12px;min-height:36px;border-radius:8px;background:#1b1824;border-color:#312839;color:#ada4b9;font-size:10px}.notice[data-type="success"]{background:#171c20;border-color:#2b403b}.notice[data-type="error"]{background:#241b20;border-color:#59404a}.notice[data-type="quiet"]{background:#1b1923;border-color:#34303d}.notice-icon{width:15px;height:15px;font-size:10px;border-color:#80699c;color:#c7afe7}.notice a{font-size:10px}
.toolbar{background:#191722;border-radius:10px;padding:4px 5px;box-shadow:none}.entity-tabs{gap:1px}.entity-tab{font-size:11px;padding:9px 12px;border-radius:7px;color:#a29baa;transition:color .18s,background .18s}.entity-tab.active{background:#3a2b4c;color:#f0e8f8;box-shadow:none}.view-control{background:#101017;border-radius:8px;padding:2px}.view-button,.change-mode{border:0;background:transparent;color:#9b93a6;border-radius:6px;padding:7px 11px;font-size:10px;font-weight:700;white-space:nowrap}.view-button.active,.change-mode.active{background:#392c4b;color:#f3e9ff}
.selection-row{margin:12px 0 14px;gap:8px}.selector-wrap{width:270px}.entity-trigger{height:44px;border-radius:9px;padding:6px 9px;background:#1a1823}.selector-icon{width:27px;height:27px;border-radius:7px;background:#33263f}.selector-text small{font-size:8px}.selector-text strong{font-size:11px}.selector-popover{background:#201c2a;border-color:#52435f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 20px 45px rgba(0,0,0,.4)}.selector-option{font-size:11px;padding:9px}.selector-option.selected{background:#49365d}.search-box{background:#15131c;border-color:#39313f}.week-switcher{height:44px;border-radius:9px;background:#1a1823;gap:4px}.week-switcher span{font-size:11px;min-width:155px;text-align:center}.week-switcher button{width:29px;font-size:20px}.today-button{height:44px;border-radius:8px;font-size:10px;background:#18161e;padding:0 13px}.date-control{height:44px;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#1a1823;border-radius:8px;color:#c3aecf;padding:0 9px;transition:border .2s}.date-control:hover{border-color:#59446d}.date-control svg{width:16px;height:16px}.date-control input{width:118px;border:0;color:#ddd1e8;background:transparent;font-size:10px;font-weight:700;outline:0;color-scheme:dark}
.schedule-card{border-radius:13px;background:#18161f;box-shadow:none}.card-header{padding:17px 19px 15px;align-items:center}.card-header h2{font-size:20px;margin:4px 0 0}.card-kicker{font-size:9px;letter-spacing:.13em;color:#92869f}.tutor{font-size:10px}.live-tag{border:1px solid #35574c;background:#1c302b;color:#9ad4bd;border-radius:5px;padding:5px 7px;font-size:8px;font-weight:700;letter-spacing:.09em;white-space:nowrap}.live-tag[data-state="unpublished"]{background:#2a2530;border-color:#55465e;color:#cdb8d4}.live-tag[data-state="loading"]{background:#30293a;border-color:#58446f;color:#c1a5df}
.schedule-grid{padding:0 11px 10px;scrollbar-color:#4e405d #15131b}.grid-inner{transition:opacity .2s}.grid-inner.is-loading{opacity:.42}.period-head,.day-row{grid-template-columns:100px repeat(var(--period-count),minmax(100px,1fr));}.period-head{background:#121119;border-color:#332d3b;border-radius:8px 8px 0 0}.period-head>div{min-height:49px}.period-head strong{font-size:13px}.period-head small{font-size:8px}.day-row{min-height:86px;border-color:#322c38;transition:background .2s}.day-row:hover{background:#211d29}.day-label{background:#15131c;padding:11px;border-color:#332d3b;gap:3px}.day-label strong{font-size:12px;text-transform:capitalize}.day-label small{font-size:9px}.lesson-slot{padding:3px;border-color:#322c38;display:flex;flex-direction:column;gap:2px}.lesson-slot.has-lessons{background:rgba(255,255,255,.012)}.lesson{border-radius:5px;min-height:72px;height:auto;padding:6px 7px;text-align:left;display:flex;transition:transform .17s,filter .17s,border-color .17s}.lesson:hover{transform:translateY(-2px);filter:brightness(1.16);z-index:2;border-color:#b79bd2}.lesson.violet{background:#352b47;border-color:#5a466e}.lesson.mint{background:#263d3d;border-color:#436c67}.lesson.amber{background:#40352f;border-color:#6e5746}.lesson strong{font-size:9px;line-height:1.2;font-weight:700}.lesson small{font-size:8px;color:#d1c9d8}.lesson .room{font-size:8px;color:#d8c9e3}.more-lessons{border:0;background:#30283a;color:#e5d1f5;border-radius:4px;padding:5px;font-size:9px;font-weight:700}.more-lessons:hover{background:#483555}.card-footer{padding:11px 19px 13px;font-size:9px;background:#17151e}.legend-dot{width:6px;height:6px}.card-footer a{color:#bba3d3}
.changes-bar{padding:17px 18px;margin-bottom:12px;background:#191722;border-radius:11px}.changes-bar h2{font-size:19px;text-transform:capitalize}.changes-controls{gap:7px}.icon-button{width:35px;height:35px;background:#25202e;border:1px solid #393041;border-radius:7px;color:#d8c5e9;font-size:20px}.icon-button:hover{background:#392c48}.changes-filter{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px;gap:12px}.changes-filter>span{color:#857d8f;font-size:10px}.changes-search{width:320px}.change-card{border-radius:10px;background:#1a1822;box-shadow:none;padding:15px 17px;animation:page-in .23s ease both}.change-card h3{font-size:15px}.change-entry{font-size:11px;padding:8px 0}.period-pill{background:#382c48;border-color:#544264;font-size:10px;min-width:43px}.changes-empty{border:1px dashed #403748;background:#17151e;border-radius:10px;padding:42px 20px;color:#a99fb3;text-align:center;font-size:12px}.loading-pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}
.times-main{background:#191722;border-radius:12px;box-shadow:none}.times-head{padding:20px 22px 17px}.times-head h2{font-size:21px}.day-tabs{padding:0 20px 15px}.day-tab{background:#211e29;border-radius:7px;font-size:10px}.day-tab.active{background:#3d2d50;border-color:#6a4e80}.times-table-head,.time-row{padding:0 22px}.time-row{height:53px}.time-range{font-size:15px}.times-note{border-radius:12px;background:#211b2b;box-shadow:none;min-height:0}.times-note:after{display:none}.note-orb{margin-bottom:26px}.times-note h3{font-size:23px}
.lesson-dialog{width:min(430px,calc(100vw - 32px));border:1px solid #584768;border-radius:13px;padding:27px;background:#211c2b;color:#f5effb;box-shadow:0 24px 80px rgba(0,0,0,.55);animation:dialog-in .22s cubic-bezier(.2,.7,.2,1)}.lesson-dialog::backdrop{background:rgba(4,3,7,.7);backdrop-filter:blur(5px)}@keyframes dialog-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.lesson-dialog h2{font:600 23px/1.2 'Space Grotesk',sans-serif;letter-spacing:-.04em;margin:9px 30px 23px 0}.dialog-close{position:absolute;top:14px;right:15px;border:0;background:transparent;color:#aaa0b5;font-size:25px}.dialog-close:hover{color:white}.detail-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid #3b3145;font-size:11px}.detail-row span{color:#968ba2}.detail-row strong{text-align:right;font-weight:600}.detail-list-item{border-top:1px solid #3b3145;padding:12px 0;display:flex;flex-direction:column;gap:4px}.detail-list-item strong{font-size:12px}.detail-list-item span{font-size:10px;color:#9c91a9}
@media(max-width:1100px){.content{padding:25px 20px 50px}.sidebar{width:200px}.topbar{padding:0 20px}.selection-row{flex-wrap:wrap}}
@media(max-width:700px){.sidebar{width:100%;height:auto;padding:10px 12px 9px}.brand{padding:0 2px 9px}.topbar{position:sticky;top:0;height:47px;padding:0 14px}.connection-label{font-size:0}.connection-dot{width:7px;height:7px}.content{padding:19px 12px 40px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:25px}.page-heading p{font-size:11px}.top-source-button{font-size:10px;padding:8px}.toolbar{gap:5px}.entity-tabs{overflow:auto}.entity-tab{padding:8px 10px}.view-control{align-self:flex-end}.selector-wrap{width:100%}.selection-row{gap:7px}.week-switcher{flex:1;min-width:220px}.date-control{flex:none}.card-header{padding:14px;gap:8px}.card-header h2{font-size:18px}.card-header-right{align-items:center}.tutor{font-size:9px}.schedule-grid{padding:0 6px 7px}.card-footer{padding:11px 13px}.changes-bar{align-items:stretch}.changes-controls{flex-wrap:wrap}.changes-filter .changes-search{width:100%}.times-head{padding:17px}.day-tabs{padding:0 15px 12px}.times-table-head,.time-row{padding:0 15px}.times-note{padding:22px}.notice{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.lesson-cell{position:relative;z-index:2;min-width:0;min-height:0;margin:2px}.lesson-cell>.lesson-block{width:100%;height:100%;margin:0}.lesson-cell.has-change .block-teacher{padding-right:22px}.lesson-change-warning{position:absolute;z-index:5;top:4px;right:4px;display:grid;place-items:center;width:22px;height:22px;padding:3px;border:1px solid #e6b83f;border-radius:6px;background:#fff2c2;color:#805600;box-shadow:0 1px 3px rgba(0,0,0,.15)}.lesson-change-warning svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.lesson-change-warning:hover{background:#ffe58a;color:#684300}.mobile-lesson-wrap{position:relative;width:100%;min-width:0}.mobile-lesson-wrap>.mobile-lesson{width:100%}.mobile-lesson-wrap.has-change .mobile-lesson strong{padding-right:25px}.change-detail-text{padding:12px 13px;border:1px solid #e6b83f;border-radius:8px;background:#fff2c2;color:#49370d;font-size:12px;line-height:1.55}.change-detail-heading{margin:19px 0 3px;color:#c9b3e1;font-size:11px;font-weight:700}
