:root{--bg:#dde4ed;--panel:#e8edf5;--panel-soft:#d4dbe6;--ink:#1a1c1e;--ink-soft:#3d4450;--accent:#1d6fa4;--accent-strong:#134e7c;--line:#b8c4d4;--select-bg:rgba(255, 255, 255, 0.14);--select-bg-hover:rgba(255, 255, 255, 0.2);--select-border:rgba(255, 255, 255, 0.45);--select-ink:#f2fbff;--select-option-bg:#e4eaf3;--select-option-ink:#1a1c1e;--select-focus:rgba(147, 197, 253, 0.9);--shadow:0 18px 50px rgba(18, 36, 66, 0.14);--radius:5px;--plan-font-scale:1;--sidebar-collapse-width:1000px}:root[data-theme=dark]{--bg:#23272b;--panel:#2c3136;--panel-soft:#353b41;--ink:#e2e6ea;--ink-soft:#9aa4af;--accent:#5ba8e5;--accent-strong:#93c5fd;--line:#44505a;--select-bg:rgba(20, 24, 28, 0.5);--select-bg-hover:rgba(20, 24, 28, 0.65);--select-border:rgba(191, 242, 255, 0.22);--select-ink:#e2e6ea;--select-option-bg:#2c3136;--select-option-ink:#e2e6ea;--select-focus:rgba(147, 197, 253, 0.95);--shadow:0 18px 50px rgba(0, 0, 0, 0.5)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:"Segoe UI","Trebuchet MS",Tahoma,sans-serif;color:var(--ink);overflow-x:auto;overflow-y:auto;background:radial-gradient(circle at 5% 10%,#c8d5e8 0,transparent 36%),radial-gradient(circle at 95% 8%,#c2d3e0 0,transparent 42%),linear-gradient(180deg,#dde4ed 0,#d0d9e6 55%,#ccd6e4 100%)}:root[data-theme=dark] body{background:radial-gradient(circle at 5% 10%,#1e2428 0,transparent 36%),radial-gradient(circle at 95% 8%,#1e2a2e 0,transparent 42%),linear-gradient(180deg,#1e2226 0,#23272b 55%,#20252a 100%)}.app-shell{display:grid;grid-template-columns:320px 1fr;align-items:start;gap:20px;max-width:1850px;min-width:0;margin:0 auto;padding:20px;min-height:calc(100vh - 40px)}.content,.sidebar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.sidebar{display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:18px 18px 14px;background:linear-gradient(135deg,#1a3a6e,#1d6fa4);color:#f2fbff}.sidebar-header h1{margin:0;font-size:1.4rem}.sidebar-header p{margin:8px 0 0;font-size:.9rem}.plan-select-wrap{margin-top:10px;display:grid;gap:6px;font-size:.82rem;font-weight:600}.plan-select-wrap select{width:100%;border:1px solid var(--select-border);border-radius:5px;padding:8px 36px 8px 10px;background-color:var(--select-bg);color:var(--select-ink);appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;font:inherit;font-size:larger;transition:background-color .16s ease,border-color .16s ease}.plan-select-wrap select:hover{background-color:var(--select-bg-hover)}.plan-select-wrap select:focus{outline:2px solid var(--select-focus);border-color:var(--select-focus);outline-offset:1px}.plan-select-wrap option{color:var(--select-option-ink);background:var(--select-option-bg)}.search-wrap{padding:14px 18px;display:grid;gap:8px;font-weight:600;color:var(--ink-soft)}.search-wrap input{border:1px solid var(--line);border-radius:5px;background:var(--panel-soft);color:var(--ink);padding:10px 12px;font-size:.96rem}.search-wrap input:focus{outline:2px solid #7ab8e8;border-color:var(--accent)}.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 18px 12px}.label-controls{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft);display:grid;gap:8px}.label-controls-title{margin:0;font-size:.84rem;font-weight:700;color:var(--ink-soft)}.toggle-line{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--ink)}.toggle-line input{margin:0;flex:0 0 auto;accent-color:var(--accent)}@media (min-width:861px){.label-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.label-controls-title{grid-column:1/-1}}.tab{border:1px solid var(--line);border-radius:var(--radius);background:0 0;color:var(--ink-soft);padding:8px 6px;font-weight:600;cursor:pointer}.tab.active{background:linear-gradient(120deg,var(--accent),#2b84c8);border-color:transparent;color:#fff}.item-list{list-style:none;margin:0;padding:8px 10px 14px;display:grid;gap:6px}.item-list button{width:100%;border:1px solid transparent;border-radius:var(--radius);text-align:left;padding:9px 11px;font-size:.93rem;background:0 0;color:var(--ink);cursor:pointer}.item-list button:hover{background:var(--panel-soft)}.item-list button.active{border-color:#7ab8e8;background:#e8f2fc;color:var(--accent-strong)}:root[data-theme=dark] .item-list button.active{background:#1a2e45}.content{--content-sticky-top:20px;padding:16px;display:flex;flex-direction:column;position:sticky;top:var(--content-sticky-top);align-self:start;overflow:visible}:root[data-panel-scroll-mode=separate] .content{max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;-ms-overflow-style:none;scrollbar-width:none}:root[data-panel-scroll-mode=separate] .content::-webkit-scrollbar{width:0;height:0}.content-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:14px}.header-actions{display:flex;align-items:center;gap:8px;justify-self:end}.font-controls{display:flex;gap:6px}.content-header h2{margin:0;font-size:1.16rem}.meta{margin:6px 0 0;color:var(--ink-soft);font-size:.9rem}.font-toggle,.header-icon-button,.header-icon-link,.menu-toggle,.theme-toggle{border:0;border-radius:999px;background:#dfe3ea;color:var(--ink);font-weight:100;padding:8px 12px;cursor:pointer;box-shadow:inset 0 2px 2px rgba(255,255,255,.8),inset 0 -2px 2px rgba(112,122,136,.15),0 0 2px rgba(0,0,0,.08)}.font-toggle{min-width:40px;height:40px;padding:0 10px;display:grid;place-items:center;font-size:1.05rem;letter-spacing:.02em;font-weight:100}.font-toggle#font-decrease{font-size:.9rem}.font-toggle#font-increase{font-size:1.3rem}.font-toggle:disabled{opacity:.45;cursor:default}.theme-toggle{width:80px;height:40px;padding:0;display:block;position:relative;overflow:hidden;background:0 0;border:0;border-radius:999px;justify-self:end;box-shadow:none}.theme-toggle-track{position:absolute;inset:0;display:block;border-radius:999px;background:#dfe3ea;box-shadow:inset 0 2px 2px rgba(66,72,80,.18),inset 0 -2px 2px rgba(255,255,255,.7),0 0 0 rgba(255,255,255,.42)}.theme-toggle-knob{position:absolute;top:50%;left:0;width:40px;height:40px;transform:translateY(-50%);border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f6d370 0,#f5b84a 100%);box-shadow:inset 0 2px 2px rgba(255,255,255,.8),inset 0 -2px 2px rgba(182,118,25,.18),0 2px 2px rgba(0,0,0,.15),0 0 0 2px rgba(255,255,255,.18);transition:left .25s ease,background .25s ease,box-shadow .25s ease}#theme-icon{font-size:1.2rem;line-height:1;color:rgba(255,255,255,.96);text-shadow:0 2px 3px rgba(64,48,18,.25)}:root[data-theme=dark] .theme-toggle-track{background:#2d3138;box-shadow:inset 0 2px 2px rgba(0,0,0,.38),inset 0 -2px 2px rgba(255,255,255,.05),0 0 0 rgba(255,255,255,.04)}:root[data-theme=dark] .theme-toggle-knob{left:calc(100% - 40px)}:root[data-theme=dark] #theme-icon{color:rgba(255,255,255,.92);text-shadow:0 2px 6px rgba(0,0,0,.35)}:root[data-theme=dark] .font-toggle,:root[data-theme=dark] .header-icon-button,:root[data-theme=dark] .header-icon-link,:root[data-theme=dark] .menu-toggle,:root[data-theme=dark] .theme-toggle-knob{background:#2e3439;color:#f0f4f8;box-shadow:inset 0 2px 2px rgba(255,255,255,.12),inset 0 -2px 2px rgba(0,0,0,.3),0 2px 2px rgba(0,0,0,.2),0 0 0 2px rgba(255,255,255,.02)}.header-icon-button,.header-icon-link{width:40px;height:40px;display:grid;place-items:center;padding:0;font:inherit;font-size:1.2rem;line-height:1;text-decoration:none;cursor:pointer}.header-icon-button span,.header-icon-link span{display:block;transform:translateY(-1px)}.menu-toggle{display:none}.schedule{flex:0 0 auto;overflow-x:auto;overflow-y:visible;border:1px solid var(--line);border-radius:var(--radius);font-size:calc(1rem * var(--plan-font-scale));background:var(--panel)}.mobile-days{display:none}.mobile-day{scroll-margin-top:12px}.mobile-day+.mobile-day{border-top:1px solid var(--line)}.mobile-day-toggle{width:100%;border:0;background:0 0;color:var(--ink);padding:16px;font:inherit;font-weight:700;text-align:left;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.mobile-day-toggle::after{content:"+";color:var(--accent);font-size:1.35rem;line-height:1}.mobile-day.active .mobile-day-toggle{background:var(--panel-soft)}.mobile-day.active .mobile-day-toggle::after{content:"−"}.mobile-day-toggle:focus-visible{outline:2px solid #7ab8e8;outline-offset:-2px}.mobile-day-panel{padding:10px 14px 14px;display:grid;gap:10px}.mobile-day-panel[hidden]{display:none}.mobile-day-empty{margin:0;color:var(--ink-soft)}.mobile-lesson{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft);padding:12px;display:grid;gap:10px}.mobile-lesson-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.mobile-lesson-number{font-weight:700}.mobile-lesson-time{color:var(--ink-soft);font-size:.88em}.mobile-entry-list{display:grid;grid-template-columns:repeat(var(--entry-columns,1),minmax(0,1fr));gap:8px}.timetable{width:100%;border-collapse:collapse;min-width:0;table-layout:fixed}.print-timetable{display:none}.timetable td,.timetable th{border-bottom:1px solid var(--line);vertical-align:top;padding:8px}.timetable th{background:var(--panel-soft);color:var(--ink);font-size:.92rem;position:sticky;top:0;z-index:1}.lesson-col{width:1%;min-width:max-content;padding-left:4px;padding-right:4px;text-align:center;font-weight:700;color:var(--ink);background:var(--panel-soft);white-space:nowrap}.time-col{width:1%;min-width:max-content;padding-left:6px;padding-right:6px;white-space:nowrap;color:var(--ink-soft);font-weight:lighter;background:var(--panel-soft)}.timetable th:first-child{width:40px;min-width:max-content;white-space:nowrap;padding-left:6px;padding-right:6px}.timetable th:nth-child(2){width:120px;min-width:max-content;white-space:nowrap;padding-left:6px;padding-right:6px}.day-cell{min-width:0;background:var(--panel)}@media (min-width:861px){.timetable td:nth-child(n+3),.timetable th:nth-child(n+3){border-left:1px solid var(--line)}}.entry-list{display:grid;grid-template-columns:repeat(var(--entry-columns,1),minmax(0,1fr));align-items:stretch;gap:6px}.entry{border:1px solid #c4d4e8;background:#eef4fb;border-radius:var(--radius);padding:6px;display:grid;gap:3px;flex:1 1 0;min-width:0;overflow:hidden}.entry.entry-placeholder{border:0;background:0 0;box-shadow:none}.entry-placeholder .subject{visibility:hidden}:root[data-theme=dark] .entry{border-color:#3c4f63;background:#2e3c4a}:root[data-theme=dark] .entry.entry-placeholder{border-color:transparent;background:0 0}.entry .subject{font-weight:600;color:var(--ink);overflow-wrap:break-word;word-break:break-word;overflow:hidden}.entry .details{color:var(--ink-soft);font-size:.85em}.entry-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:12px;row-gap:4px;font-size:.85em;color:var(--ink-soft)}.entry-links .details:nth-child(2n){text-align:right}.entry-link{color:var(--accent-strong);text-decoration:none;border-bottom:1px dashed transparent;overflow-wrap:anywhere;font-weight:lighter}.entry-link:hover{color:var(--ink-soft);border-bottom-color:var(--ink-soft)}.entry-link:active{color:var(--ink-soft);border-bottom-color:var(--ink-soft)}.entry-link:visited{color:var(--ink-soft);border-bottom-color:var(--ink-soft)}.empty{color:#8a96ab;font-size:.9rem}.status{padding:22px;color:var(--ink-soft)}.status.error{color:#d63349}.generated-info{margin-top:10px;padding:10px 4px 2px;font-size:.86rem;color:var(--ink-soft)}.generated-info a,.generated-info a:active,.generated-info a:focus,.generated-info a:hover,.generated-info a:visited{color:inherit}.content-footer{margin-top:8px;display:grid;gap:8px}:root[data-sidebar-mode=expanded] .entry .subject{font-weight:400}:root[data-sidebar-mode=expanded] .app-shell{min-width:var(--sidebar-collapse-width)}:root[data-sidebar-mode=collapsed] body{overflow-x:auto}:root[data-sidebar-mode=collapsed] .app-shell{grid-template-columns:1fr;min-width:0;width:100%;padding:10px}:root[data-sidebar-mode=collapsed] .sidebar{position:fixed;top:0;left:0;width:min(86vw,340px);max-width:340px;height:100vh;min-height:100vh;height:100dvh;min-height:100dvh;z-index:11;transform:translateX(-104%);transition:transform 220ms ease;border-radius:0 var(--radius) var(--radius) 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}:root[data-sidebar-mode=collapsed] .sidebar.open{transform:translateX(0)}:root[data-sidebar-mode=collapsed] .content{position:static}:root[data-sidebar-mode=collapsed][data-panel-scroll-mode=linked] .content{max-height:none}:root[data-sidebar-mode=collapsed] .menu-toggle{display:grid;place-items:center;font-size:1.6rem;padding:6px 10px;min-width:44px;height:44px;line-height:1;grid-area:menu}:root[data-sidebar-mode=collapsed] .title-wrap{min-width:0;grid-area:title}:root[data-sidebar-mode=collapsed] .content-header{grid-template-columns:auto 1fr;grid-template-areas:"title title" "menu actions";row-gap:10px}:root[data-sidebar-mode=collapsed] .header-actions{grid-area:actions}:root[data-sidebar-mode=collapsed] .schedule{overflow:visible}:root[data-sidebar-mode=collapsed] .timetable th{position:static;top:auto}@media (max-width:860px){body{overflow-x:hidden}.app-shell{min-width:0}#print-plan{display:none}.timetable{display:none}.mobile-days{display:grid}}@media print{@page{margin:12mm}.app-shell,.content,.entry,.label-controls,.print-timetable td,.schedule,.timetable td,.timetable th,body{color:#000!important;background:#fff!important}.app-shell{display:block;min-height:0;min-width:0;max-width:none;padding:0}.header-actions,.label-controls,.menu-toggle,.sidebar{display:none!important}.content{position:static;display:block;max-height:none!important;overflow:visible!important;border:0;box-shadow:none;padding:0}.content-header{display:block}.schedule{display:inline-block;width:75%;overflow:visible;border:0;border-radius:0}.timetable{display:none!important}.print-timetable{display:table!important;width:100%;border-collapse:collapse;table-layout:fixed;font-size:9pt}.print-timetable td,.print-timetable th{border:1px solid #000;border-radius:0;min-height:52px;padding:8px 4px;vertical-align:top}.print-timetable th{color:#fff!important;background:#404040!important;text-align:center;font-weight:700}.print-timetable .print-lesson-col{width:17%;text-align:left;white-space:nowrap;vertical-align:middle;font-weight:700}.print-timetable .entry-list{gap:0}.print-timetable .entry{border:0;border-radius:0;background:0 0!important;padding:2px;gap:1px}.print-timetable .details,.print-timetable .entry-link,.print-timetable .entry-link:visited,.print-timetable .entry-links,.print-timetable .subject,.print-timetable td{color:#202020!important}.mobile-days{display:none!important}}