:root{--ok-stripe:#2E7D32;--err-stripe:#BA1A1A;--warn-stripe:#C07000;}[data-theme="dark"],@media (prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="system"]){--ok-stripe:#4CAF72;--err-stripe:#E53935;--warn-stripe:#D4900A;}}[data-theme="black"]{--ok-stripe:#4CAF72;--err-stripe:#E53935;--warn-stripe:#D4900A;}[data-theme="black"] .lesson-num[data-num="1"]{--_ln-bg:#003060;--_ln-text:#C8E0FF;}[data-theme="black"] .lesson-num[data-num="2"]{--_ln-bg:#1E2D3D;--_ln-text:#C8DCF0;}[data-theme="black"] .lesson-num[data-num="3"]{--_ln-bg:#2A1A3A;--_ln-text:#E8D0FF;}[data-theme="black"] .lesson-num[data-num="4"]{--_ln-bg:#052010;--_ln-text:#90D4A8;}[data-theme="black"] .lesson-num[data-num="5"]{--_ln-bg:#1A1000;--_ln-text:#FFD070;}[data-theme="black"] .lesson-num[data-num="6"]{--_ln-bg:#2A0808;--_ln-text:#FFCDD2;}[data-theme="black"] .lesson-num[data-num="7"]{--_ln-bg:#160830;--_ln-text:#DDD0F8;}.layout{display:flex;flex-direction:column;min-height:100vh;}.main-area{flex:1;}@media (min-width:720px){.layout{padding-left:80px;}#menuBtn{display:none;}}@media (max-width:719px){.nav-rail{display:none !important;}}.page{max-width:680px;margin:0 auto;padding:20px 16px;display:flex;flex-direction:column;gap:12px;}@media (max-width:420px){.page{padding:12px 10px;}}.date-strip-wrap{background:var(--md-elev2);border-radius:20px;padding:14px 16px;box-shadow:var(--shadow-1);}.date-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none;}.date-strip::-webkit-scrollbar{display:none;}.date-chip{flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:8px 14px;border-radius:14px;border:1px solid var(--md-outline-var);background:transparent;color:var(--md-on-surf-var);cursor:pointer;transition:all .2s cubic-bezier(.2,0,0,1);position:relative;overflow:hidden;}.date-chip::after{content:'';position:absolute;inset:0;background:var(--md-primary);opacity:0;transition:opacity .15s;}.date-chip:hover{border-color:var(--md-primary);color:var(--md-on-surface);}.date-chip:hover::after{opacity:.05;}.date-chip.today{border-color:var(--md-primary);color:var(--md-primary);}.date-chip.selected{background:var(--md-primary);border-color:var(--md-primary);color:var(--md-on-primary);box-shadow:var(--shadow-2);}.date-chip.selected::after{display:none;}.dc-day{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;position:relative;z-index:1;}.dc-num{font-size:21px;font-weight:400;line-height:1.15;position:relative;z-index:1;}.dc-mon{font-size:11px;opacity:.75;position:relative;z-index:1;}.lesson-list{display:flex;flex-direction:column;gap:8px;}.lesson-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:12px 12px 12px 18px;background:var(--md-elev2);border-radius:16px;box-shadow:var(--shadow-1);position:relative;overflow:hidden;animation:fadeUp .28s cubic-bezier(.2,0,0,1) both;transition:box-shadow .15s,transform .15s;border:1.5px solid transparent;}.lesson-row:hover{box-shadow:var(--shadow-2);transform:translateX(2px);}.lesson-row.added .lesson-num{box-shadow:0 0 0 2px var(--ok-stripe);}.lesson-row.removed .lesson-num{box-shadow:0 0 0 2px var(--err-stripe);opacity:.65;}.lesson-row.changed .lesson-num{box-shadow:0 0 0 2px var(--warn-stripe);}.sg-row{align-items:flex-start;}.sg-split{display:flex;gap:0;margin-top:6px;border:1px solid var(--md-outline-var);border-radius:12px;overflow:hidden;}.sg-half{flex:1;min-width:0;padding:8px 10px;display:flex;flex-direction:column;gap:3px;}.sg-divider{width:1px;flex-shrink:0;background:var(--md-outline-var);margin:4px 0;}.sg-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--md-primary);}.sg-meta{margin-top:0 !important;}.sg-room-wrap{margin-top:2px;}.sg-room{padding:3px 8px !important;font-size:12px !important;}.lesson-list >:nth-child(1){animation-delay:0ms;}.lesson-list >:nth-child(2){animation-delay:35ms;}.lesson-list >:nth-child(3){animation-delay:70ms;}.lesson-list >:nth-child(4){animation-delay:105ms;}.lesson-list >:nth-child(5){animation-delay:140ms;}.lesson-list >:nth-child(6){animation-delay:175ms;}.lesson-list >:nth-child(7){animation-delay:210ms;}.lesson-list >:nth-child(8){animation-delay:245ms;}.lesson-list >:nth-child(9){animation-delay:280ms;}.lesson-num{width:40px;height:40px;border-radius:50%;background:var(--_ln-bg,var(--md-primary-con));color:var(--_ln-text,var(--md-on-primary-con));display:flex;align-items:center;justify-content:center;font-family:'Google Sans',sans-serif;font-size:17px;font-weight:500;flex-shrink:0;align-self:center;}.lesson-num[data-num="1"]{--_ln-bg:#D1E4FF;--_ln-text:#001D36;}.lesson-num[data-num="2"]{--_ln-bg:#D7E3F8;--_ln-text:#0F1D2B;}.lesson-num[data-num="3"]{--_ln-bg:#F3DAFF;--_ln-text:#261031;}.lesson-num[data-num="4"]{--_ln-bg:#D6F5E3;--_ln-text:#0D3D22;}.lesson-num[data-num="5"]{--_ln-bg:#FFF0CC;--_ln-text:#3D2800;}.lesson-num[data-num="6"]{--_ln-bg:#FFDAD6;--_ln-text:#410002;}.lesson-num[data-num="7"]{--_ln-bg:#E8DEF8;--_ln-text:#21005D;}@media (prefers-color-scheme:dark){:root .lesson-num[data-num="1"]{--_ln-bg:#004A80;--_ln-text:#D1E4FF;}:root .lesson-num[data-num="2"]{--_ln-bg:#3B4858;--_ln-text:#D7E3F8;}:root .lesson-num[data-num="3"]{--_ln-bg:#4A3A5A;--_ln-text:#F3DAFF;}:root .lesson-num[data-num="4"]{--_ln-bg:#0D3D22;--_ln-text:#A8E6BF;}:root .lesson-num[data-num="5"]{--_ln-bg:#3D2800;--_ln-text:#FFD680;}:root .lesson-num[data-num="6"]{--_ln-bg:#5C1A17;--_ln-text:#FFCDD2;}:root .lesson-num[data-num="7"]{--_ln-bg:#311057;--_ln-text:#E8DEF8;}}[data-theme="dark"] .lesson-num[data-num="1"]{--_ln-bg:#004A80;--_ln-text:#D1E4FF;}[data-theme="dark"] .lesson-num[data-num="2"]{--_ln-bg:#3B4858;--_ln-text:#D7E3F8;}[data-theme="dark"] .lesson-num[data-num="3"]{--_ln-bg:#4A3A5A;--_ln-text:#F3DAFF;}[data-theme="dark"] .lesson-num[data-num="4"]{--_ln-bg:#0D3D22;--_ln-text:#A8E6BF;}[data-theme="dark"] .lesson-num[data-num="5"]{--_ln-bg:#3D2800;--_ln-text:#FFD680;}[data-theme="dark"] .lesson-num[data-num="6"]{--_ln-bg:#5C1A17;--_ln-text:#FFCDD2;}[data-theme="dark"] .lesson-num[data-num="7"]{--_ln-bg:#311057;--_ln-text:#E8DEF8;}[data-theme="light"] .lesson-num[data-num="1"]{--_ln-bg:#D1E4FF;--_ln-text:#001D36;}[data-theme="light"] .lesson-num[data-num="2"]{--_ln-bg:#D7E3F8;--_ln-text:#0F1D2B;}[data-theme="light"] .lesson-num[data-num="3"]{--_ln-bg:#F3DAFF;--_ln-text:#261031;}[data-theme="light"] .lesson-num[data-num="4"]{--_ln-bg:#D6F5E3;--_ln-text:#0D3D22;}[data-theme="light"] .lesson-num[data-num="5"]{--_ln-bg:#FFF0CC;--_ln-text:#3D2800;}[data-theme="light"] .lesson-num[data-num="6"]{--_ln-bg:#FFDAD6;--_ln-text:#410002;}[data-theme="light"] .lesson-num[data-num="7"]{--_ln-bg:#E8DEF8;--_ln-text:#21005D;}.lesson-subject{font-family:'Google Sans',sans-serif;font-size:15px;font-weight:500;color:var(--md-on-surface);line-height:1.3;}.lesson-row.removed .lesson-subject{text-decoration:line-through;color:var(--md-on-surf-var);}.lesson-meta{font-size:13px;color:var(--md-on-surf-var);display:flex;flex-wrap:wrap;gap:2px;align-items:center;margin-top:2px;}.sched-title{font-family:'Google Sans',sans-serif;font-size:16px;font-weight:500;color:var(--md-on-surf-var);}.meta-link{display:inline-flex;align-items:center;gap:2px;padding:3px 8px 3px 4px;border-radius:99px;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--md-on-surf-var);font-family:inherit;transition:background .15s,color .15s;text-decoration:none;position:relative;overflow:hidden;}.meta-link::before{content:'';position:absolute;inset:0;border-radius:99px;background:var(--md-primary);opacity:0;transition:opacity .15s;}.meta-link:hover{color:var(--md-primary);}.meta-link:hover::before{opacity:.1;}.meta-link .material-symbols-rounded{font-size:14px;position:relative;z-index:1;}.meta-link span:last-child{position:relative;z-index:1;}.room-link{flex-shrink:0;padding:5px 12px;border-radius:99px;border:none;background:var(--md-surf-con-high);color:var(--md-on-surf-var);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;font-family:inherit;transition:background .15s,color .15s;}.room-link:hover{background:color-mix(in srgb,var(--md-primary) 15%,var(--md-surf-con-high));color:var(--md-primary);}.change-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:500;margin-top:4px;width:fit-content;}.change-pill.added{background:var(--ok-bg);color:var(--ok-on);}.change-pill.removed{background:var(--err-bg);color:var(--err-on);}.change-pill.changed{background:var(--warn-bg);color:var(--warn-on);}.class-section-head{display:flex;align-items:center;justify-content:space-between;background:var(--md-primary-con);color:var(--md-on-primary-con);border-radius:14px;padding:10px 16px;margin-top:12px;margin-bottom:6px;cursor:pointer;border:none;width:100%;font-family:'Google Sans',sans-serif;font-size:14px;font-weight:600;transition:opacity .15s,transform .15s;text-align:left;position:relative;overflow:hidden;}.class-section-head::before{content:'';position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity .15s;}.class-section-head:hover::before{opacity:.06;}.class-section-head:active::before{opacity:.12;}.class-section-head span{font-size:12px;font-weight:400;opacity:.75;}.section-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.7px;color:var(--md-on-surf-var);padding:8px 0 4px;}.info-chip{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--md-primary-con);color:var(--md-on-primary-con);border-radius:16px;font-family:'Google Sans',sans-serif;font-size:14px;font-weight:500;}.info-chip .material-symbols-rounded{font-size:18px;}.info-chip a{margin-left:auto;color:var(--md-primary);font-size:13px;text-decoration:none;}.info-chip a:hover{text-decoration:underline;}.changes-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--warn-bg);color:var(--warn-on);border-radius:14px;font-size:13px;font-weight:500;}.skel{border-radius:16px;height:68px;background:linear-gradient(90deg,var(--md-surf-con-high) 25%,color-mix(in srgb,var(--md-surf-con-high) 60%,var(--md-surface)) 50%,var(--md-surf-con-high) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.role-row{display:flex;gap:10px;flex-wrap:wrap;}.role-btn{flex:1 1 calc(50% - 10px);min-width:130px;height:52px;border-radius:16px;border:1.5px solid var(--md-outline-var);background:transparent;color:var(--md-on-surf-var);font-family:'Google Sans',sans-serif;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .18s;position:relative;overflow:hidden;}.role-btn .material-symbols-rounded{font-size:20px;}.role-btn.active{background:var(--md-primary-con);color:var(--md-on-primary-con);border-color:var(--md-primary);}.theme-btn{flex:1 1 calc(50% - 10px);min-width:130px;height:52px;border-radius:16px;border:1.5px solid var(--md-outline-var);background:transparent;color:var(--md-on-surf-var);font-family:'Google Sans',sans-serif;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .18s;position:relative;overflow:hidden;}.theme-btn .material-symbols-rounded{font-size:20px;}.theme-btn.active{background:var(--md-primary-con);color:var(--md-on-primary-con);border-color:var(--md-primary);}.class-grid{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0;}.class-chip{width:62px;height:44px;border-radius:12px;border:1px solid var(--md-outline-var);background:transparent;color:var(--md-on-surf-var);font-family:'Google Sans',sans-serif;font-size:15px;font-weight:500;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;}.class-chip:hover{border-color:var(--md-primary);color:var(--md-on-surface);}.class-chip.sel{background:var(--md-primary);border-color:var(--md-primary);color:var(--md-on-primary);}.teacher-item{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:12px;cursor:pointer;font-size:14px;color:var(--md-on-surface);transition:background .15s;position:relative;overflow:hidden;}.teacher-item::before{content:'';position:absolute;inset:0;border-radius:12px;background:var(--md-primary);opacity:0;transition:opacity .15s;}.teacher-item:hover::before{opacity:.07;}.teacher-item.sel{background:var(--md-primary-con);color:var(--md-on-primary-con);}.t-check{width:22px;height:22px;flex-shrink:0;border-radius:50%;border:2px solid var(--md-outline-var);display:flex;align-items:center;justify-content:center;transition:all .15s;position:relative;z-index:1;}.teacher-item.sel .t-check{background:var(--md-primary);border-color:var(--md-primary);}.teacher-item .t-name{position:relative;z-index:1;}.search-field{display:flex;align-items:center;gap:10px;padding:0 14px;height:48px;border-radius:28px;border:1px solid var(--md-outline-var);background:var(--md-surf-con-low);transition:border-color .2s,box-shadow .2s;}.search-field:focus-within{border-color:var(--md-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--md-primary) 14%,transparent);}.search-field .material-symbols-rounded{color:var(--md-on-surf-var);font-size:20px;}.search-field input{flex:1;border:none;background:transparent;font-family:'Roboto',sans-serif;font-size:15px;color:var(--md-on-surface);outline:none;}.search-field input::placeholder{color:var(--md-outline);}.empty-state{display:flex;flex-direction:column;align-items:center;padding:64px 24px;text-align:center;gap:12px;}.empty-state .material-symbols-rounded{font-size:56px;color:var(--md-outline);}.empty-title{font-family:'Google Sans',sans-serif;font-size:18px;font-weight:500;color:var(--md-on-surface);}.empty-sub{font-size:14px;color:var(--md-on-surf-var);line-height:1.6;max-width:260px;}.hidden{display:none !important;}.lesson-picker{display:flex;gap:6px;flex-wrap:wrap;}.lp-btn{width:44px;height:44px;border-radius:12px;border:none;background:var(--md-surf-con-high);color:var(--md-on-surf-var);font-family:'Google Sans',sans-serif;font-size:16px;font-weight:500;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}.lp-btn::before{content:'';position:absolute;inset:0;border-radius:12px;background:currentColor;opacity:0;transition:opacity .15s;}.lp-btn:hover::before{opacity:.07;}.lp-btn.sel-start,.lp-btn.sel-end{background:var(--md-primary);color:var(--md-on-primary);box-shadow:var(--shadow-2);}.lp-btn.in-range{background:var(--md-primary-con);color:var(--md-on-primary-con);}.room-grid{display:flex;flex-wrap:wrap;gap:8px;}.room-chip{padding:8px 16px;border-radius:12px;border:none;background:var(--md-surf-con-high);color:var(--md-on-surf-var);font-family:'Google Sans',sans-serif;font-size:15px;font-weight:500;cursor:pointer;transition:all .18s;text-decoration:none;display:inline-flex;align-items:center;}.room-chip:hover{background:var(--md-primary-con);color:var(--md-on-primary-con);transform:translateY(-1px);box-shadow:var(--shadow-2);}.room-grid-big{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;}.room-grid-named{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));opacity:.75;}.room-chip-big{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 8px;background:var(--md-elev2);border:1px solid var(--md-outline-var);border-radius:16px;font-family:'Google Sans',sans-serif;font-size:17px;font-weight:500;color:var(--md-on-surface);text-decoration:none;cursor:pointer;transition:all .2s cubic-bezier(.2,0,0,1);box-shadow:var(--shadow-1);animation:fadeUp .25s cubic-bezier(.2,0,0,1) both;}.room-chip-big .material-symbols-rounded{font-size:20px;color:var(--md-primary);font-variation-settings:'FILL' 1,'wght' 300,'GRAD' 0,'opsz' 24;}.room-chip-big:hover{background:var(--md-primary-con);color:var(--md-on-primary-con);border-color:var(--md-primary);transform:translateY(-2px);box-shadow:var(--shadow-2);}.room-chip-big:hover .material-symbols-rounded{color:var(--md-on-primary-con);}.room-grid-big >:nth-child(1){animation-delay:0ms;}.room-grid-big >:nth-child(2){animation-delay:25ms;}.room-grid-big >:nth-child(3){animation-delay:50ms;}.room-grid-big >:nth-child(4){animation-delay:75ms;}.room-grid-big >:nth-child(5){animation-delay:100ms;}.room-grid-big >:nth-child(6){animation-delay:125ms;}.room-grid-big >:nth-child(7){animation-delay:150ms;}.room-grid-big >:nth-child(8){animation-delay:175ms;}.room-grid-big >:nth-child(9){animation-delay:200ms;}.room-grid-big >:nth-child(10){animation-delay:225ms;}.room-grid-big >:nth-child(11){animation-delay:250ms;}.room-grid-big >:nth-child(12){animation-delay:275ms;}