@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Georgian:wght@400;500;600;700;800&display=swap');
:root{color-scheme:light;--bg:#f7f8fc;--surface:#fff;--ink:#24273d;--muted:#81849a;--line:#e9eaf2;--accent:#7160e8;--accent-soft:#f0edff}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:14px 'Noto Sans Georgian',Arial,sans-serif}button,input,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{opacity:.6;cursor:wait}a{color:inherit;text-decoration:none}button,a,input,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b6acff;outline-offset:4px}svg{flex-shrink:0}.tri{display:flex;flex-direction:column;gap:4px;line-height:1.45}.tri>span{font-weight:600}.tri small{font-size:.85em;font-weight:400;opacity:.67}.tri.inline{display:inline-flex;flex-direction:row;gap:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--muted)}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.app-shell{min-height:100dvh;display:flex;flex-direction:column}.nav-link{display:flex;align-items:center;gap:8px;color:var(--muted);padding:10px 13px;border-radius:10px;font-size:12px}.nav-link:hover,.nav-link.active{color:var(--accent);background:var(--accent-soft)}.main{flex:1;min-width:0;width:100%}.workspace{max-width:1540px;margin:auto;padding:20px 36px 35px}.page-heading{display:flex;align-items:center;gap:15px;margin:0 0 24px;min-width:0}.heading-search{display:flex;align-items:center;gap:20px;min-width:0;max-width:calc(100% - 50px)}h1{margin:0;font-size:32px;font-weight:750;letter-spacing:-.7px;line-height:1.4;overflow-wrap:anywhere}.heading-search h1{min-width:0}.heading-search h1 .tri>span{font-size:32px;font-weight:750}.heading-search h1 .tri small{font-size:17px;color:var(--muted)}.heading-search-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);border-radius:13px;color:var(--muted);flex-shrink:0}.heading-search:hover .heading-search-icon{color:var(--accent);border-color:#d2cafa}.favorite-button{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;flex-shrink:0;color:#bbc0d2;border-radius:11px}.favorite-button:hover{background:#faf4e2;color:#c99a2f}.favorite-button.saved{color:#c69a36}.heading-favorite{margin-left:auto}
.preferences{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.language-switch{display:flex;gap:4px;padding:4px;background:#edecf5;border-radius:11px}.language-switch button{padding:8px 18px;border-radius:8px;color:#85839a;font-size:12px;letter-spacing:.5px;font-weight:700}.language-switch button.active{background:var(--surface);color:var(--accent);box-shadow:0 2px 6px #35305c0d}.all-languages{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;cursor:pointer}.all-languages input{accent-color:var(--accent);height:16px;width:16px;flex-shrink:0}.all-languages .tri>span{font-weight:400}.search-page{max-width:780px;margin:22px auto 70px}.search-intro{text-align:center;margin-bottom:30px}.global-search{display:flex;align-items:center;gap:16px;padding:18px 22px;min-height:76px;background:var(--surface);border:1px solid #ddd9f0;box-shadow:0 10px 40px #6e5bc009;border-radius:18px;color:var(--accent)}.global-search:focus-within{border-color:#9f91ea;box-shadow:0 0 0 4px #7861ec0b}.global-search input{min-width:0;flex:1;border:0;outline:0;background:none;color:var(--ink);font-size:19px}.global-search input::placeholder{color:#aaa8bc}.global-search input:focus-visible{outline:0}.search-section-title{margin:28px 4px 14px;display:flex;align-items:center;gap:9px;color:#9590a8;font-size:12px}.search-section-title .tri>span{font-weight:500}.search-results{display:flex;flex-direction:column;gap:8px}.search-result{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:3px 10px 3px 3px;min-width:0}.search-result:hover{border-color:#d3ccec}.search-result.is-favorite .result-icon{color:#bc9342;background:#fbf5e7}.result-link{flex:1;min-width:0;padding:12px;display:flex;align-items:center;gap:14px}.result-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#f2f0fb;color:#9d91c9;flex-shrink:0}.result-link>strong{flex:1;min-width:0;font-size:15px;overflow-wrap:anywhere;font-weight:550}.result-link .tri>span{font-size:15px;font-weight:550}.result-link .tri small{font-size:12px;color:var(--muted)}.result-link>svg{color:#c8c5d6}.search-empty{display:flex;flex-direction:column;align-items:center;gap:16px;min-height:165px;justify-content:center;color:#aaa5ba;text-align:center;padding:30px}.search-empty .tri>span{font-size:13px;font-weight:400}.show-more{margin-top:7px;padding:16px;color:var(--accent);display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed #d6d0eb;border-radius:12px;font-size:12px}
.timetable-panel{border:1px solid var(--line);border-radius:17px;background:var(--surface);overflow:hidden}.timetable-toolbar{display:flex;align-items:center;justify-content:space-between;padding:19px 22px;border-bottom:1px solid var(--line);gap:15px}.week-label{display:flex;align-items:center;gap:10px;font-size:13px}.week-symbol{color:var(--accent);display:flex}.view-switch{display:flex;background:var(--bg);padding:4px;gap:3px;border-radius:9px}.view-switch button{display:flex;align-items:center;gap:7px;border-radius:6px;padding:7px 10px;color:#9793aa;font-size:11px}.view-switch button.active{background:white;color:var(--accent);box-shadow:0 2px 5px #00000007}.day-filter{display:flex;gap:7px;padding:13px 19px;border-bottom:1px solid var(--line)}.day-filter button{padding:8px 15px;border-radius:9px;color:#8c899f;font-size:12px}.day-filter button.active{background:var(--accent-soft);color:var(--accent)}.day-filter .tri{align-items:center}.mobile-day-picker{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);gap:15px}.mobile-day-picker label{display:flex;align-items:center;gap:8px;color:var(--accent);min-width:0}.mobile-day-picker select{border:0;background:transparent;color:var(--ink);font-size:14px;font-weight:600;max-width:220px;padding:7px}
.schedule-scroll{overflow-x:auto;scrollbar-width:thin}.schedule-grid{display:grid;grid-template-columns:58px repeat(6,minmax(155px,1fr));min-width:988px;isolation:isolate}.grid-corner{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#aaa7bb;font-size:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day-heading{display:flex;align-items:center;justify-content:center;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px}.day-heading .tri>span{font-size:12px}.day-heading .tri small{font-size:10px}.time-label{display:flex;justify-content:center;padding-top:12px;color:#aaa7ba;font-size:11px;font-variant-numeric:tabular-nums;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.grid-cell{border-bottom:1px solid var(--line);border-right:1px solid var(--line);z-index:-1}.grid-lesson{margin:4px;min-width:0;z-index:1;align-self:stretch}.grid-cluster{margin:4px;min-width:0;display:flex;flex-direction:column;gap:6px;z-index:1}.grid-cluster .lesson{flex:1}.parallel-label{font-size:10px;color:var(--muted);padding:1px}.parallel-label .tri>span{font-size:10px;font-weight:400}
.lesson{--card-bg:#f4f4f8;--card-border:#c2c2d1;--card-ink:#66657d;--card-text:#89869c;background:var(--card-bg);color:var(--card-ink);border:1px solid color-mix(in srgb,var(--card-border) 30%,transparent);border-radius:9px;padding:12px;min-width:0;overflow-wrap:anywhere}.lesson-lecture{--card-bg:#eaf4ff;--card-border:#8ab9e8;--card-ink:#32699c;--card-text:#6589ac}.lesson-practice{--card-bg:#fff0e3;--card-border:#edb17e;--card-ink:#a55c22;--card-text:#b58259}.lesson-lab{--card-bg:#eaf7f2;--card-border:#8dcbb9;--card-ink:#3d8773;--card-text:#80aa9d}.lesson-top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:7px;margin-bottom:10px}.lesson-top>span:first-child{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.lesson-type{font-size:9px;line-height:1.5;padding:2px 5px;background:#ffffff90;border-radius:4px;max-width:100%}.lesson h3{font-size:12px;line-height:1.65;font-weight:650;margin:0 0 5px}.course-code{display:block;font:9px/1.5 Arial,sans-serif;color:var(--card-text);margin:0 0 9px}.lesson-links{display:flex;flex-direction:column;gap:7px}.lesson-links>a,.lesson-groups,.subgroup-note{display:flex;align-items:flex-start;gap:6px;font-size:10px;line-height:1.6;color:var(--card-text)}.lesson-links svg{margin-top:2px;opacity:.85}.lesson-links .tri>span{font-size:10px;font-weight:400}.lesson-links .tri small{font-size:9px}.lesson-links a:hover{text-decoration:underline}.lesson-groups>span{min-width:0}.subgroup-note{font-size:9px}.agenda{padding:8px 22px 24px}.mobile-agenda{display:none}.agenda-day{margin:18px 0 25px}.agenda-day-title{margin-bottom:13px}.agenda-day-title h2{font-size:14px;margin:0}.agenda-day-title h2 .tri>span{font-size:14px}.agenda-day-title h2 .tri small{font-size:11px;color:var(--muted)}.agenda-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.agenda .lesson{padding:16px}.agenda .lesson h3{font-size:14px}.agenda .lesson-top>span:first-child{font-size:12px}.agenda .lesson-type{font-size:10px}.agenda .course-code{font-size:10px}.agenda .lesson-links>a,.agenda .lesson-groups{font-size:12px}.agenda .lesson-links .tri>span{font-size:12px}.agenda .lesson-links .tri small{font-size:11px}.free-day{background:var(--bg);border-radius:10px;padding:20px;display:flex;align-items:center;gap:12px;color:#a4a0b5;font-size:12px}.free-day>span:first-child{width:16px;height:2px;background:#cecadb;flex-shrink:0}.free-day .tri>span{font-weight:400}.schedule-placeholder{min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;gap:20px;text-align:center;color:var(--muted)}.schedule-placeholder p{overflow-wrap:anywhere}.text-button{color:var(--accent);text-decoration:underline}.source-notes{display:flex;align-items:flex-start;gap:10px;padding:20px;color:var(--muted);font-size:11px}.source-notes p{line-height:1.8}.source-notes p .tri{display:inline-flex}.source-notes .tri>span{font-size:11px}
.alert{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-radius:12px;border:1px solid var(--line);margin-bottom:20px;font-size:12px;line-height:1.6}.alert>span{flex:1;overflow-wrap:anywhere}.alert.error{background:#fff0ed;border-color:#f3cfc8;color:#a86757}.alert svg{margin-top:2px}.alert details{margin-top:10px}.alert pre,.run-row pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 monospace;max-height:180px;overflow:auto}.alert summary,.run-row summary{cursor:pointer}.archive-alert{align-items:center;background:var(--accent-soft);color:var(--accent)}.archive-alert>a{margin-left:auto;text-decoration:underline}.archive-page{max-width:850px;margin:auto}.archive-page h1{margin-bottom:25px}.archive-page h1 .tri>span{font-size:30px}.snapshot-list{display:flex;flex-direction:column;gap:9px}.snapshot-list>a{padding:20px;display:flex;align-items:center;gap:15px;background:white;border:1px solid var(--line);border-radius:12px;font-size:13px}.snapshot-list>a:hover{border-color:#c5bbed}.snapshot-list>a>strong{flex:1}.snapshot-list>a>svg{color:var(--accent)}.snapshot-list>a>.tri{color:var(--accent);font-size:11px}.run-history{border-top:1px solid var(--line);margin-top:30px;padding-top:15px}.run-history h3{font-size:13px;color:var(--muted)}.run-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.run-row>.tri{margin-left:auto}.run-row details{width:100%}
.page-bottom{padding:25px 25px 35px;max-width:1540px;width:100%;margin:auto;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:26px}.refresh-area{display:flex;flex-direction:column;align-items:center;gap:15px}.refresh-button{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 17px;border:1px solid #e1dced;border-radius:11px;color:#9b92b3;font-size:11px}.refresh-button:hover{background:var(--accent-soft);color:var(--accent)}.refresh-button .tri>span{font-weight:500}.import-status{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--accent)}
@media(min-width:1700px){.workspace,.site-header,.page-bottom{max-width:1750px}.lesson h3{font-size:13px}.lesson-links>a,.lesson-groups,.lesson-links .tri>span{font-size:11px}}
@media(max-width:1000px){.workspace{padding:15px 24px 30px}.search-page{margin-top:16px}}
@media(max-width:760px){.nav-link{padding:9px;font-size:10px;gap:6px}.nav-link .tri small{font-size:9px}.workspace{padding:16px 16px 26px}.page-heading{gap:8px;margin-bottom:20px}.heading-search{gap:11px;max-width:calc(100% - 42px)}.heading-search h1,.heading-search h1 .tri>span{font-size:25px}.heading-search h1 .tri small{font-size:13px}.heading-search-icon{width:36px;height:36px;border-radius:10px}.heading-search-icon svg{width:20px}.heading-favorite{width:36px}.heading-favorite svg{width:21px}.search-page{margin:18px auto 35px}.search-intro{margin-bottom:25px}.preferences{gap:13px}.search-intro .preferences{flex-direction:column}.language-switch button{padding:8px 19px}.all-languages{font-size:11px}.global-search{min-height:68px;padding:12px 15px;gap:11px;border-radius:15px}.global-search input{font-size:16px}.global-search>svg{width:21px}.search-section-title{margin-top:24px}.result-link{padding:11px 9px;gap:11px}.result-icon{width:36px;height:36px;border-radius:10px}.result-link>strong,.result-link .tri>span{font-size:13px}.search-result{padding-right:5px}.search-result .favorite-button{width:38px}.result-link .tri small{font-size:11px}.timetable-toolbar{display:none}.day-filter,.view-switch,.schedule-scroll{display:none}.timetable-panel{border-radius:14px}.agenda,.mobile-agenda{display:block;padding:2px 14px 12px}.agenda-day{margin:14px 0}.agenda-day-title{display:none}.agenda-cards{grid-template-columns:1fr;gap:12px}.agenda .lesson{padding:15px}.agenda .lesson h3{font-size:14px}.agenda .lesson-links>a,.agenda .lesson-groups,.agenda .lesson-links .tri>span{font-size:12px}.free-day{min-height:170px;justify-content:center;flex-direction:column;text-align:center;padding:28px}.free-day>span:first-child{width:23px;height:3px}.schedule-placeholder{min-height:260px;padding:25px 15px;font-size:12px}.source-notes{padding:17px 3px;overflow-wrap:anywhere}.page-bottom{padding:25px 16px 29px;gap:22px}.page-bottom>.preferences{flex-direction:column}.refresh-button{font-size:11px}.alert{padding:13px;gap:9px;font-size:11px}.archive-page h1 .tri>span{font-size:26px}.snapshot-list>a{padding:15px 12px;gap:10px;font-size:11px}.snapshot-list>a>.tri{font-size:10px}.run-row{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.mobile-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:12px 9px;border-bottom:1px solid var(--line)}.mobile-days button{padding:10px 0;border-radius:8px;font-size:11px;color:var(--muted)}.mobile-days button.active{background:var(--accent-soft);color:var(--accent);font-weight:700}.lesson-unknown{--card-bg:#fff3e5;--card-border:#d8ac71;--card-ink:#906631;--card-text:#aa8960}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px}.source-page{max-width:1000px;margin:auto;padding:24px}.source-page h1{margin-bottom:20px}.source-fragment{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin:18px 0}.source-fragment pre{max-height:450px;overflow:auto;white-space:pre;font:12px/1.6 monospace;background:var(--bg);padding:15px}.source-meta{overflow-wrap:anywhere;color:var(--muted);font:11px/1.7 monospace}.source-fragment a{display:inline-block;color:var(--accent);margin:12px 0}.source-back{color:var(--accent)}
.lesson-links>.comma-links{display:flex;align-items:flex-start;gap:6px;font-size:10px;line-height:1.6;color:var(--card-text)}.comma-links>span{min-width:0}.comma-links a{display:inline-flex;vertical-align:top}.comma-links .tri{display:inline-flex}.agenda .comma-links{font-size:12px}
.source-preview{display:block;width:100%;height:75vh;min-height:400px;border:1px solid var(--line);background:white;margin:12px 0}.source-fragment h2{font-size:18px;overflow-wrap:anywhere}.source-fragment summary,.related-sources>summary{cursor:pointer;color:var(--muted);padding:12px 0}.related-source{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.related-source>a{color:var(--accent)}@media(max-width:760px){.source-page{padding:0}.source-fragment{padding:12px}.related-source{flex-wrap:wrap}}

.update-panel{display:flex;flex-direction:column;gap:18px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:13px;margin-bottom:28px}.update-panel .refresh-area{align-items:flex-start}.update-panel .refresh-button{color:var(--accent);background:var(--accent-soft);border-color:#dcd5f4;font-size:13px}.update-panel .alert{margin:0}.archive-section-title{font-size:14px;margin:0 0 14px;color:var(--muted)}.archive-updates-link{border:1px solid #e1dced;color:var(--accent)}@media(max-width:760px){.update-panel{padding:16px}.archive-page h1 .tri>span{font-size:25px}.update-panel .refresh-button{width:100%}.update-panel .refresh-area{align-items:stretch}}

.share-area{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-bottom:14px}.share-button{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--accent);font-size:12px}.share-button:hover{background:var(--accent-soft)}.share-error{color:#a86757;font-size:12px;max-width:400px}.share-error button{display:inline-flex;align-items:center;gap:5px;margin-left:10px;color:var(--accent);text-decoration:underline}
@media(max-width:760px){.timetable-toolbar{display:flex;padding:10px 12px}.timetable-toolbar .week-label{display:none}.timetable-toolbar .view-switch{display:flex;width:100%}.view-switch button{flex:1;justify-content:center;padding:9px}.schedule-scroll{display:block;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.schedule-grid .time-label,.schedule-grid .grid-corner{position:sticky;left:0;background:white;z-index:3}.share-button{font-size:11px;min-height:42px}.share-area{margin-bottom:12px}}

.compact-option{justify-content:center;margin-top:16px}.heading-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.heading-actions .share-area{margin:0;position:relative}.heading-actions .share-error{position:absolute;right:0;top:100%;z-index:5;width:280px;padding:12px;border:1px solid var(--line);border-radius:9px;background:white;box-shadow:0 4px 20px #24273d12}.heading-actions .heading-favorite{margin:0}.page-heading .heading-search{max-width:none;flex:1}.heading-actions .share-button{white-space:nowrap}
@media(max-width:760px){.page-heading{flex-wrap:wrap}.heading-actions{margin-left:auto}.heading-actions .share-button{font-size:10px;padding:9px}.page-heading .heading-search{flex-basis:100%}.heading-actions .favorite-button{width:38px}}

/* Bound card paint on mobile Chrome without allocating a transform/GPU layer. */
@media(max-width:760px){.agenda .lesson{contain:paint}.agenda-cards{display:flex;flex-direction:column}}

.schedule-grid{--grid-row-min:112px}.install-area{display:flex;flex-direction:column;align-items:center;gap:10px}.install-button{color:var(--accent);border:1px solid var(--line);background:white}.install-help{display:flex;gap:12px;max-width:430px;padding:15px;border:1px solid var(--line);border-radius:10px;background:white;font-size:12px;line-height:1.6}.update-info{color:var(--muted);font-size:12px;line-height:1.7}
/* Full mode keeps the original large cards and automatic, equal-height grid rows. */
.is-compact .schedule-grid{--grid-row-min:60px}
.is-compact .grid-lesson,.is-compact .grid-cluster{margin:2px}
.is-compact .grid-cluster{gap:3px}
.is-compact .schedule-grid .lesson{padding:3px 6px;border-radius:6px}
.is-compact .schedule-grid .lesson-top{gap:3px;margin-bottom:2px}
.is-compact .schedule-grid .lesson-top>span:first-child{font-size:9px}
.is-compact .schedule-grid .lesson h3{font-size:10px;line-height:1.2;margin-bottom:2px}
.is-compact .schedule-grid .lesson-links{gap:2px}
.is-compact .schedule-grid .comma-links{font-size:9px;line-height:1.25}
.is-compact .schedule-grid .lesson-links svg{width:11px;height:11px;margin-top:0}
.is-compact .schedule-grid .tri{gap:1px}
.is-compact .time-label{padding-top:6px;font-size:10px}
.is-compact .day-heading{padding:5px}
.is-compact .day-heading .tri>span{font-size:11px}
.is-compact .agenda{padding:4px 12px 12px}
.is-compact .agenda-day{margin:10px 0 14px}
.is-compact .agenda .lesson{padding:10px}
.is-compact .agenda .lesson-top{margin-bottom:6px}
.is-compact .agenda .lesson h3{font-size:13px;line-height:1.4}
.is-compact .agenda .lesson-links{gap:3px}
.is-compact .agenda .comma-links{font-size:11px}
@media(min-width:761px){
  .app-shell.is-compact .workspace{padding-top:14px;padding-bottom:18px}
  .app-shell.is-compact .page-heading{margin-bottom:12px}
  .app-shell.is-compact h1,.app-shell.is-compact .heading-search h1 .tri>span{font-size:26px}
  .is-compact .timetable-toolbar{padding:8px 14px}
}
@media(max-width:760px){
  .page-heading{flex-wrap:nowrap;gap:6px}.page-heading .heading-search{flex:1 1 0;min-width:0}.heading-actions{gap:5px}
  .heading-actions .share-button{width:36px;height:36px;min-height:36px;padding:0;justify-content:center}.heading-actions .share-button>span{display:none}
  .heading-actions .favorite-button{width:36px;height:36px}.heading-actions .heading-search-icon{width:36px;height:36px}.heading-search h1,.heading-search h1 .tri>span{font-size:23px}
}

/* Identity stays on the left; only sharing and favorite actions align right. */
.heading-identity{display:flex;align-items:center;gap:12px;min-width:0;flex:0 1 auto}
.page-heading .heading-identity .heading-search{flex:0 1 auto;min-width:0}
@media(max-width:760px){.heading-identity{gap:8px}}

/* Edge-to-edge timetable with flatter lesson blocks and a narrow time gutter. */
.workspace:has(.timetable-panel){max-width:none;padding-left:0;padding-right:0}
.workspace:has(.timetable-panel)>.page-heading{padding-inline:16px}
.timetable-panel{border-left:0;border-right:0;border-radius:0;box-shadow:none}
.timetable-toolbar{padding:12px 16px}.schedule-fit{width:100%;overflow:hidden;position:relative}.schedule-fit .schedule-grid{min-width:0;width:100%}
.schedule-grid .time-label{font-size:9px;padding:9px 1px}.schedule-grid .grid-corner{font-size:8px;gap:3px}
.grid-lesson,.grid-cluster,.is-compact .grid-lesson,.is-compact .grid-cluster{margin:1px}
.lesson,.is-compact .schedule-grid .lesson{border:0;border-radius:2px;box-shadow:none}
.agenda,.is-compact .agenda{padding-inline:0}.agenda-cards{gap:4px}.agenda .lesson{border-radius:0}
.export-actions{display:flex;align-items:center;gap:6px}
.download-dialog{border:1px solid var(--line);border-radius:14px;padding:0;width:min(420px,calc(100vw - 32px));color:var(--ink);box-shadow:0 18px 80px #24273d33}
.download-dialog::backdrop{background:#24273d66}.download-dialog-content{padding:22px}.download-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.download-dialog-heading h2{font-size:18px;margin:0}.download-dialog-heading button{display:flex;padding:6px;color:var(--muted)}
.download-formats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.download-formats button{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 8px;background:var(--accent-soft);color:var(--accent);border-radius:8px}.download-formats button:hover{outline:1px solid var(--accent)}.download-dialog .text-button{margin-top:15px}
@media(max-width:760px){.timetable-toolbar{padding:8px}.agenda,.is-compact .agenda{padding:0 0 12px}.agenda-cards{gap:4px}.agenda{touch-action:pan-y pinch-zoom}.mobile-days{padding-inline:4px}.heading-identity{gap:4px}.heading-actions{gap:3px}.heading-actions .share-button{width:32px}.workspace:has(.timetable-panel)>.page-heading{padding-inline:8px}}

/* Solid cell boundaries with lesson backgrounds extending to every edge. */
.schedule-fit{overflow:hidden;touch-action:auto;overscroll-behavior:auto}
.schedule-fit .schedule-grid{min-height:inherit;--grid-row-min:var(--fit-row-min,80px);--grid-line:#000}
.is-compact .schedule-fit .schedule-grid{--grid-row-min:var(--fit-row-min,52px)}
.schedule-grid .grid-cell,.schedule-grid .time-label,.schedule-grid .grid-corner,.schedule-grid .day-heading{border-color:var(--grid-line);border-right-width:1px;border-bottom-width:1px}
.grid-lesson,.grid-cluster,.is-compact .grid-lesson,.is-compact .grid-cluster{margin:0;gap:0}
.schedule-grid .lesson,.is-compact .schedule-grid .lesson{border-radius:0;box-shadow:inset -1px -1px 0 var(--grid-line)}
.schedule-source-footer{padding:18px}
.agenda{overflow:hidden}.agenda-day{border-radius:14px;overflow:hidden}.agenda .lesson{border-radius:12px}.agenda-cards{gap:8px}
.mobile-days button{border-radius:13px}
@media(max-width:760px){.schedule-grid .grid-cell,.schedule-grid .time-label,.schedule-grid .grid-corner,.schedule-grid .day-heading{border-right-width:1px;border-bottom-width:1px}.schedule-grid .lesson,.is-compact .schedule-grid .lesson{box-shadow:inset -1px -1px 0 var(--grid-line)}.agenda-cards{gap:8px}}
.agenda-swipe-window{width:100%;overflow:hidden}

/* Uniform typography, with readable metadata on separate wrapping rows. */
.schedule-fit .schedule-grid{border-top:1px solid #000;grid-template-rows:var(--grid-header,36px) repeat(var(--grid-rows),minmax(var(--grid-row-min),1fr))!important}
.is-compact .schedule-fit .schedule-grid{grid-template-rows:var(--grid-header,32px) repeat(var(--grid-rows),minmax(var(--grid-row-min),1fr))!important}
.schedule-grid .lesson,.is-compact .schedule-grid .lesson{font-size:var(--grid-font);padding:calc(var(--grid-font)*.15) calc(var(--grid-font)*.3);line-height:1.1}
.schedule-grid .lesson h3,.is-compact .schedule-grid .lesson h3{font-size:calc(var(--grid-font)*1.25);line-height:1.05;margin:0 0 calc(var(--grid-font)*.15);text-wrap:balance}
.schedule-grid .lesson h3.short-subject{max-width:100%}
.schedule-grid .lesson-top,.is-compact .schedule-grid .lesson-top{gap:calc(var(--grid-font)*.2);margin-bottom:calc(var(--grid-font)*.15)}
.schedule-grid .lesson-top>span:first-child,.is-compact .schedule-grid .lesson-top>span:first-child{font-size:var(--grid-font);gap:calc(var(--grid-font)*.2)}
.schedule-grid .lesson-type{font-size:calc(var(--grid-font)*.9);line-height:1.1;padding:0 calc(var(--grid-font)*.2)}
.schedule-grid .course-code{font-size:calc(var(--grid-font)*.95);line-height:1.1;margin:0 0 calc(var(--grid-font)*.1)}
.schedule-grid .lesson-links,.is-compact .schedule-grid .lesson-links{display:flex;flex-direction:column;gap:calc(var(--grid-font)*.08);line-height:1.1}
.schedule-grid .lesson-links>.comma-links,.is-compact .schedule-grid .lesson-links>.comma-links{display:flex;max-width:100%;font-size:calc(var(--grid-font)*1.1);line-height:1.05;gap:calc(var(--grid-font)*.2);margin:0}
.schedule-grid .comma-links>span{min-width:0;flex:1;overflow-wrap:anywhere}
.schedule-grid .comma-links a,.schedule-grid .comma-links .tri{max-width:100%;white-space:normal}
.schedule-grid .lesson .tri>span,.schedule-grid .lesson-links .tri>span{font-size:inherit;line-height:inherit}
.schedule-grid .lesson .tri small{font-size:.95em;line-height:1.1}
.schedule-grid .lesson svg,.is-compact .schedule-grid .lesson-links svg{width:calc(var(--grid-font)*1.05);height:calc(var(--grid-font)*1.05);flex-shrink:0;margin-top:0}
.schedule-grid .day-heading{padding:4px 1px}.schedule-grid .day-heading .tri>span{font-size:clamp(7px,1vw,12px)}
.schedule-grid .time-label{font-size:clamp(5px,.7vw,9px)}
@media(max-width:760px){.schedule-grid .day-heading .tri>span{font-size:7px}.schedule-grid .grid-corner svg{width:10px;height:10px}.schedule-grid .grid-corner{font-size:5px}}

/* Scores overlay the bottom corner; all lesson metadata stays in the text flow. */
.lesson {position:relative;display:flex;flex-direction:column}
.lesson-grade {position:static;flex:0 0 auto;align-self:flex-end;margin-left:auto;font-weight:700;font-size:16px;line-height:1.15;color:#111}
.schedule-grid .lesson-grade {font-size:calc(var(--grid-font)*1.35)}
.vici-dialog {border:1px solid #d8dce5;border-radius:18px;padding:26px;width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;color:#172033;background:#fff;box-shadow:0 20px 70px #10182b33}
.vici-dialog::backdrop {background:#151b335c}
.vici-dialog h2 {font-size:21px;line-height:1.35;margin:0 0 20px}
.vici-dialog p {line-height:1.6;font-size:14px}
.vici-login {display:grid;gap:15px}
.vici-login label {display:grid;gap:7px;font-size:14px;font-weight:600}
.vici-login input {width:100%;padding:11px 12px;border:1px solid #c7cddd;border-radius:9px;background:white;color:#172033;font-size:16px}
.vici-login input:focus {outline:2px solid #7866ca;outline-offset:2px}
.vici-actions {display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
.vici-actions .primary-button {padding:11px 18px;border:0;border-radius:9px;background:#7160b8;color:white;font-weight:600;cursor:pointer}
.vici-actions button:disabled {opacity:.45;cursor:wait}
.vici-error {color:#a82f36;margin:0}
.footer-links button.nav-link {background:transparent;border:0;font:inherit;cursor:pointer}

.finance-favorite {margin-top:12px;border-top:1px solid #d9dce7}
.finance-page {padding:8px 0 32px}.finance-summary {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.finance-metric {padding:22px;background:#f2f4fb;border-radius:12px;display:grid;gap:12px}
.finance-metric>span,.finance-plan-summary span {color:#667085;font-size:14px}.finance-metric strong {font-size:30px;font-variant-numeric:tabular-nums}.finance-metric.has-debt strong{color:#ae3d28}
.finance-updated {font-size:12px;color:#758096;margin:14px 0 26px}.finance-years {display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.finance-years button {border:1px solid #d7dce7;border-radius:9px;padding:10px 14px;background:white;font:inherit;cursor:pointer}.finance-years button.active {background:#ede9fa;border-color:#8c7bc6;color:#63509c}
.finance-plan-summary {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}.finance-plan-summary>div {display:grid;gap:9px}.finance-plan-summary strong {font-size:21px;font-variant-numeric:tabular-nums}
.finance-table-scroll {overflow-x:auto}.finance-table {width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}.finance-table td,.finance-table th {padding:14px 12px;border-bottom:1px solid #dfe3eb;text-align:right}.finance-table th:first-child,.finance-table td:first-child{text-align:left}.finance-table thead th{font-weight:600;color:#667085;background:#f7f8fb}.finance-table tbody th{font-weight:500}.finance-empty{padding:32px 0;color:#68758a}
@media(max-width:760px){.finance-summary{gap:8px}.finance-metric{padding:14px 10px;gap:10px}.finance-metric strong{font-size:20px}.finance-metric>span{font-size:12px}.finance-plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-plan-summary strong{font-size:19px}.finance-table{font-size:13px}.finance-table td,.finance-table th{padding:12px 10px}}

/* Keep the desktop ledger; each mobile month becomes a readable two-column record. */
@media(max-width:760px){
 .finance-page,.finance-plan,.finance-table-scroll{min-width:0;max-width:100%}
 .finance-table-scroll{overflow:visible}
 .finance-table,.finance-table tbody{display:block;width:100%;min-width:0}
 .finance-table thead{display:none}
 .finance-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:18px 0;border-bottom:1px solid #cdd2dc}
 .finance-table th,.finance-table td{display:block;min-width:0;border:0;padding:0;text-align:left;white-space:normal;overflow-wrap:anywhere}
 .finance-table tbody th{grid-column:1/-1;font-size:17px;color:#24273d}
 .finance-table td::before{content:attr(data-label);display:block;color:#667085;font-size:12px;font-weight:400;margin-bottom:5px}
 .finance-table td{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
 .finance-table .finance-row-date,.finance-table .finance-row-share{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px}
 .finance-table .finance-row-date::before,.finance-table .finance-row-share::before{margin:0}
 .finance-table .finance-row-date{font-size:13px;font-weight:400}
 .finance-plan-summary>div,.finance-metric{min-width:0;overflow-wrap:anywhere}
 .finance-years{flex-wrap:wrap}
}

.tri.multilingual{display:inline;white-space:normal;line-height:inherit}
.tri.multilingual>span{display:inline;font-size:inherit;font-weight:inherit;line-height:inherit}
.lesson-top,.lesson-content,.lesson-bottom{flex:0 0 auto;min-width:0}
.lesson-top{width:100%;padding-right:0;align-items:baseline;justify-content:space-between}
.lesson-top .lesson-type{margin-left:auto}
.lesson-bottom{position:absolute;right:10px;bottom:8px;display:flex;min-width:0}
.schedule-grid .lesson-bottom{right:calc(var(--grid-font)*.3);bottom:calc(var(--grid-font)*.15)}

/* Desktop lists show the full week; mobile grids keep the header and gutter small. */
@media(min-width:761px){.agenda,.is-compact .agenda{padding-inline:16px}}
@media(max-width:760px){
 .schedule-grid{--time-gutter:26px}
 .schedule-grid .day-heading{padding:2px 1px}
 .schedule-grid .grid-corner{gap:1px}
 .schedule-grid .grid-corner svg{width:8px;height:8px}
 .schedule-grid .lesson-top,.is-compact .schedule-grid .lesson-top{flex-direction:column;align-items:flex-start;gap:calc(var(--grid-font)*.15)}
 .schedule-grid .lesson-top .lesson-type{order:-1;margin-left:0;padding:0}
 .schedule-grid .lesson-top>span:first-child svg{width:max(7px,calc(var(--grid-font)*1.35));height:max(7px,calc(var(--grid-font)*1.35))}
}

/* Shared language control stays above each page, including timetables. */
.page-language-header{display:flex;justify-content:center;padding:8px 16px 16px;flex-shrink:0}
.search-sign-in{display:flex;justify-content:center;margin-top:24px}
.search-sign-in .primary-button{display:flex;align-items:center;min-width:180px;min-height:46px;justify-content:center;padding:12px 28px;background:var(--accent);color:#fff;font-size:15px;font-weight:600;border-radius:12px}.search-sign-in .primary-button:hover{filter:brightness(.95)}

.heading-actions .language-switch{flex-shrink:0}
.heading-actions .language-switch button{padding:8px 10px}
.page-loading-bar{height:3px;width:100%;overflow:hidden;background:var(--accent-soft);border-radius:2px;margin:0 0 8px}
.page-loading-bar>span{display:block;height:100%;width:35%;background:var(--accent);animation:page-data-loading 1.25s ease-in-out infinite}
@keyframes page-data-loading{from{transform:translateX(-100%)}to{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){.page-loading-bar>span{animation:none;width:100%;opacity:.65}}
@media(max-width:760px){.page-heading{flex-wrap:wrap}.heading-actions{flex-wrap:nowrap;margin-left:auto}.heading-actions .language-switch{gap:1px;padding:2px}.heading-actions .language-switch button{font-size:10px;padding:7px 6px}}
.account-overview{max-width:660px}.users-directory{max-width:1280px}.account-title{display:flex;align-items:center;justify-content:space-between;margin:12px 0 24px}.account-title>span{font-size:13px;color:var(--muted)}.account-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px}.account-avatar{width:56px;height:56px;border-radius:16px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:20px;font-weight:700;margin-bottom:20px}.account-details{margin:0}.account-details>div{display:grid;grid-template-columns:1fr 1.6fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.account-details dt{color:var(--muted);font-size:13px}.account-details dd{margin:0;font-size:15px;font-weight:550;overflow-wrap:anywhere}.account-button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:white;border-radius:9px;padding:10px 16px;font-size:13px;min-height:40px}.account-button:disabled{opacity:.5;cursor:wait}.account-button.secondary{background:var(--accent-soft);color:var(--accent)}.account-logout{margin-top:24px;width:100%;background:#fff0f0;color:#b43c48}.account-note{color:var(--muted);font-size:13px}.users-filters{display:flex;gap:12px;margin-bottom:20px}.users-filters input,.users-filters select{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:12px;font:inherit;min-width:0;color:var(--ink)}.users-filters input{flex:1}.users-filters select{max-width:240px}.users-table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.users-table{width:100%;border-collapse:collapse;text-align:left;min-width:680px}.users-table th,.users-table td{padding:15px 14px;border-bottom:1px solid var(--line);font-size:13px}.users-table th{background:#f2f1f8;color:var(--muted);font-weight:600;white-space:nowrap}.users-table th button{font:inherit;color:inherit;text-align:left}.users-table tbody tr:hover{background:#faf9fe}.users-table tbody tr:last-child td{border-bottom:0}.user-login{font-variant-numeric:tabular-nums}.account-status{display:inline-block;padding:5px 8px;border-radius:6px;background:#fff1e5;color:#98601d;font-size:11px;white-space:nowrap}.account-status.active{background:#e7f5ef;color:#237253}.user-admin{color:var(--accent);font-size:12px}.user-permissions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;border:0;padding:12px}.user-permissions legend{font-size:12px;color:var(--muted)}.user-permissions label{display:flex;align-items:center;gap:8px}.user-permissions input{accent-color:var(--accent)}.users-empty{text-align:center;color:var(--muted)}@media(max-width:600px){.account-card{padding:20px}.users-filters{flex-direction:column}.users-filters select{max-width:none}.account-details>div{grid-template-columns:1fr 1.3fr}.users-table th,.users-table td{padding:12px 10px}}
.login-methods{display:flex;gap:8px}.login-methods button{flex:1;padding:10px;border-radius:8px;background:var(--accent-soft)}.login-methods button[aria-pressed=true]{background:var(--accent);color:white}.local-create{margin:16px 0}.local-create form,.edit-form,.editor-section form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:18px 0}.local-create label,.edit-form label,.editor-section label,.user-permissions label{display:flex;flex-direction:column;gap:6px;font-size:13px;align-items:stretch}.local-create input,.local-create select,.edit-form input,.edit-form select,.editor-section input,.user-permissions input,.user-permissions select{padding:10px;border:1px solid var(--line);border-radius:8px;min-width:0;background:var(--surface);color:var(--ink)}.editor-section{margin:22px 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.edit-page{max-width:1200px}.edit-form .account-button{align-self:end}.lesson{position:relative}.lesson-inactive{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(-35deg,#ffffff18 0 12px,#ffffff55 12px 24px);pointer-events:none;border:1px solid #b74351}.lesson-inactive .tri{background:#fff1f1e8;color:#a52d3b;border:1px solid #b74351;border-radius:5px;padding:4px 10px;font-weight:700}.week-picker input{max-width:135px;border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:6px;font-size:11px}@media(max-width:760px){.heading-actions{flex-wrap:wrap}.edit-form,.local-create form{grid-template-columns:1fr}.week-picker input{max-width:110px}}
/* Home navigation, device preferences and administration. */
.home-actions{margin-top:24px;display:grid;gap:12px}.home-action-row{display:flex;gap:12px}.home-action-row>a{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;min-height:58px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;font-size:15px;font-weight:650;text-decoration:none;color:var(--ink)}.home-action-row>a:hover{border-color:var(--accent);background:var(--accent-soft)}
.settings-page{max-width:760px;margin:24px auto 80px;padding:0 24px;color:var(--ink)}.settings-page h1{font-size:28px;margin:24px 0 12px}.settings-hint{font-size:13px;color:var(--muted);margin:12px 0 20px}.settings-card{background:var(--surface,#fff);border:1px solid var(--line);border-radius:20px;padding:8px 24px;margin:24px 0}.setting-toggle{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.setting-toggle:last-child{border-bottom:0}.setting-toggle span{display:grid;gap:7px}.setting-toggle small{color:var(--muted);line-height:1.6}.setting-toggle input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.setting-toggle select{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.admin-page{max-width:1200px}.admin-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px}.admin-links>a,.admin-link-disabled{display:flex;flex-direction:column;gap:9px;padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-decoration:none;color:var(--ink)}.admin-links>a:hover{border-color:var(--accent)}.admin-links span{font-size:13px;line-height:1.6;color:var(--muted)}.admin-link-disabled{opacity:.6}.changes-filters{display:flex;gap:12px;margin:24px 0}.changes-filters input{flex:1;min-width:120px}.changes-filters input,.changes-filters select{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.changes-table small,.change-edit-link{display:block;font-size:11px;margin-top:8px;color:var(--muted)}.change-edit-link{color:var(--accent)}.changes-table td{vertical-align:top;min-width:110px}.changes-table summary{cursor:pointer;font-weight:600}.change-payload{min-width:220px;max-width:340px;white-space:normal}.change-payload div{padding:6px 0}.change-payload dt{font-size:11px;color:var(--muted)}.change-payload dd{margin:4px 0;overflow-wrap:anywhere}.change-state{display:inline-block;border-radius:6px;padding:4px 7px;background:#edf0f6}.change-state.active{background:#e2f3ea;color:#246244}.change-state.conflict{background:#ffebdf;color:#a04219}.editor-history-links{display:flex;flex-wrap:wrap;gap:24px;margin:24px 0}
.editor-mode,.editor-timeline{grid-column:1/-1}.editor-mode{padding:16px;background:var(--accent-soft);border-radius:12px}.editor-mode p{font-size:13px;line-height:1.6;margin:12px 0 0;color:var(--muted)}.editor-mode-buttons{display:flex;gap:8px}.editor-mode-buttons button,.editor-days button{border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:10px 20px;cursor:pointer}.editor-mode-buttons button[aria-pressed=true],.editor-days button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.editor-timeline{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:12px 0}.editor-timeline-head{display:flex;align-items:center;justify-content:space-between;padding:16px;gap:12px}.editor-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:0 16px 16px}.editor-days button{padding:10px 4px}.editor-lessons{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:16px;background:var(--bg,#f7f8fc);border-top:1px solid var(--line)}.editor-lessons>button{text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:16px;display:flex;flex-direction:column;gap:9px;cursor:pointer}.editor-lessons>button.selected{border:2px solid var(--accent);background:var(--accent-soft);padding:15px}.editor-lessons time{font-size:12px;font-weight:700;color:var(--accent)}.editor-lessons span,.editor-lessons p{font-size:12px;line-height:1.5;color:var(--muted)}.edit-form>.account-button{grid-column:1/-1;justify-self:end;min-width:220px}.edit-form input[type=checkbox]{width:20px;height:20px}
.account-overview{max-width:640px!important;margin:32px auto 80px!important}.account-overview .account-title{justify-content:center;margin:24px 0}.account-overview .account-card{display:flex;flex-direction:column;align-items:center;padding:36px;border-radius:24px;background:var(--surface);box-shadow:0 8px 30px #1c264508;border:1px solid var(--line)}.account-overview .account-avatar{width:76px;height:76px;border-radius:50%;font-size:26px;margin-bottom:24px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.account-overview .account-details{width:100%;margin:0}.account-overview .account-details>div{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}.account-overview .account-details dd{text-align:right;overflow-wrap:anywhere}.account-overview .account-logout{margin-top:30px;min-width:180px}
.week-range{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);margin-left:10px}
/* Desktop height follows content, with uniform readable fonts and rows. */
.schedule-natural{--grid-font:calc(12px * var(--schedule-scale,1));--grid-line:#000}.schedule-natural .schedule-grid{height:auto;min-height:0;border-top:1px solid #000;grid-template-rows:var(--grid-header,36px) repeat(var(--grid-rows),minmax(150px,1fr))!important}.is-compact .schedule-natural .schedule-grid{grid-template-rows:var(--grid-header,32px) repeat(var(--grid-rows),minmax(92px,1fr))!important}.schedule-natural .lesson{overflow:visible}.schedule-natural .lesson-top{flex-wrap:wrap}.agenda .lesson h3{font-size:calc(18px * var(--schedule-scale,1))}.agenda .lesson-links{font-size:calc(14px * var(--schedule-scale,1))}.high-contrast .lesson{color:#111!important}.high-contrast .lesson-lecture{background:#c9e6ff!important}.high-contrast .lesson-practice{background:#ffdbb4!important}.high-contrast .lesson-lab{background:#bce9ce!important}
@media(max-width:760px){.settings-page{padding:0 16px;margin-top:16px}.settings-card{padding:4px 16px}.admin-links{grid-template-columns:1fr}.changes-filters{flex-wrap:wrap}.changes-filters input{flex-basis:100%}.home-action-row>a{font-size:14px;min-height:54px}.account-overview .account-card{padding:24px 20px}.week-label{flex-wrap:wrap;gap:4px}.week-range{font-size:10px;margin-left:5px}.editor-days{padding:0 8px 10px;gap:4px}.editor-lessons{grid-template-columns:1fr}.edit-form>.account-button{justify-self:stretch;min-width:0}}
/* Interactive timetable editor: independent draft canvas and inspector. */
.visual-editor{max-width:1800px;margin:16px auto 0;padding:0 20px 110px;color:var(--ink)}.visual-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0 24px}.visual-editor-heading h1{font-size:23px;margin:0}.visual-editor-heading a{font-size:13px;color:var(--accent)}.visual-context{display:flex;align-items:flex-start;flex-wrap:wrap;gap:16px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);margin:0}.visual-context>label{min-width:130px;flex:1}.visual-context>.visual-picker{min-width:220px;flex:2}.visual-context .editor-mode-buttons{align-self:center}.visual-context label,.visual-inspector label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}.visual-context input,.visual-context select,.visual-inspector input,.visual-inspector select{min-width:0;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit}.visual-context:disabled{opacity:.8}.editor-help{font-size:12px;line-height:1.6;color:var(--muted);margin:16px 2px}.editor-warning{padding:12px 16px;border-radius:10px;background:#fff2d5;color:#7a4c0c;font-size:13px}
.visual-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.visual-grid-panel{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:visible}.visual-grid-tools{display:flex;align-items:center;gap:14px;padding:14px 16px;font-size:12px;min-height:55px}.visual-grid-tools strong{margin-right:auto;font-size:16px}.visual-grid-tools button{color:var(--accent);padding:6px}.visual-grid-scroll{overflow:auto;border-radius:0 0 12px 12px}.visual-week-grid{position:relative;min-width:790px;background:white;isolation:isolate;user-select:none}.visual-grid-corner{position:absolute;top:0;left:0;width:var(--editor-gutter);height:var(--editor-head);font-size:9px;display:grid;place-items:center;border-right:1px solid #a9aebb;border-bottom:1px solid #a9aebb;background:#f6f7fb}.visual-day{position:absolute;top:0;height:var(--editor-head);display:grid;place-items:center;font-size:12px;font-weight:700;border-right:1px solid #a9aebb;border-bottom:1px solid #a9aebb;background:#f6f7fb;color:#000}.visual-hour{position:absolute;left:0;width:var(--editor-gutter);padding-top:8px;text-align:center;font-size:10px;color:#000;border-right:1px solid #a9aebb;border-bottom:1px solid #d7dbe4;background:#fbfcfe}.visual-grid-lines{position:absolute;top:var(--editor-head);left:var(--editor-gutter);right:0;bottom:0;background-image:linear-gradient(to right,#c2c6d0 1px,transparent 1px),linear-gradient(to bottom,#c2c6d0 1px,transparent 1px);background-size:calc(100% / 7) 100%,100% var(--editor-row);pointer-events:none}
.visual-lesson{position:absolute;z-index:2;display:flex;flex-direction:column;gap:4px;box-sizing:border-box;padding:12px 6px 10px;background:#f0edf8;color:#000;border:1px solid #b2a3d2;font-size:11px;line-height:1.2;cursor:grab;touch-action:none;transition:transform .14s ease,box-shadow .14s ease;transform-origin:center;overflow:hidden;border-radius:5px}.visual-lesson.type-lecture{background:#e2f0ff;border-color:#94bddf;color:#000}.visual-lesson.type-practice{background:#ffead7;border-color:#e3ad7e;color:#000}.visual-lesson.type-lab{background:#e0f3e8;border-color:#8abc9f;color:#000}.visual-lesson time{font-size:10px;font-weight:700;flex-shrink:0}.visual-lesson strong{font-size:12px;overflow-wrap:anywhere}.visual-lesson small{font-size:10px;overflow-wrap:anywhere}.visual-lesson:hover,.visual-lesson:focus-visible{transform:scale(1.08);z-index:30;box-shadow:0 10px 30px #1e2d4530;overflow:visible;min-height:max-content}.visual-lesson.selected{outline:2px solid var(--accent);outline-offset:-2px;z-index:12}.visual-lesson.dragging{z-index:40;cursor:grabbing;transform:none;box-shadow:0 12px 30px #1e2d4540;opacity:.9}.visual-lesson.inactive{opacity:.65;background-image:repeating-linear-gradient(-35deg,transparent 0 12px,#ffffff70 12px 24px)}.visual-lesson.conflicted{border:2px solid #cf334b;outline-color:#cf334b}.lesson-resize{position:absolute;left:0;right:0;height:9px;cursor:ns-resize;touch-action:none;z-index:3}.lesson-resize:after{content:'';position:absolute;width:28px;height:3px;background:currentColor;opacity:.35;border-radius:5px;left:calc(50% - 14px);top:3px}.lesson-resize.top{top:0}.lesson-resize.bottom{bottom:0}.lesson-resize:focus-visible{outline:2px solid var(--accent)}
.visual-inspector{position:sticky;top:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:20px;max-height:calc(100dvh - 130px);overflow-y:auto}.visual-inspector h2{margin:0 0 18px;font-size:18px}.visual-inspector>p{color:var(--muted);font-size:13px;line-height:1.6}.visual-inspector fieldset{border:0;padding:0;margin:0;display:grid;gap:16px;min-width:0}.visual-inspector .inspector-check{flex-direction:row;align-items:center;font-weight:400}.inspector-check input{width:18px;height:18px;accent-color:var(--accent)}.inspector-time{display:grid;grid-template-columns:.8fr 1.3fr .8fr;gap:8px}.visual-inspector details{font-size:12px}.visual-inspector details>label{margin-top:12px}.editor-delete{padding:10px;border:1px solid #e4bec5;border-radius:8px;color:#a52a40;background:#fff5f6}.visual-picker{position:relative;min-width:0}.picker-values{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.picker-values>span{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:6px;background:var(--accent-soft);font-size:11px;overflow-wrap:anywhere}.picker-values button{font-size:17px;color:var(--muted);padding:0 2px}.picker-results{position:absolute;top:100%;left:0;right:0;background:var(--surface);box-shadow:0 8px 24px #18213725;border:1px solid var(--line);border-radius:9px;max-height:220px;overflow:auto;z-index:60;padding:5px}.picker-results>button{display:block;width:100%;padding:10px;text-align:left;border-radius:5px;font-size:12px}.picker-results>button:hover,.picker-results>button:focus-visible{background:var(--accent-soft)}.picker-results small{display:block;color:var(--muted);margin-top:4px}.picker-results p{padding:8px;font-size:12px}.picker-results .picker-close{color:var(--accent)}
.conflict-badge{position:absolute;right:4px;top:9px;z-index:60}.conflict-badge>button{background:#fff0f1;color:#b02037;border:1px solid #d7445b;border-radius:50%;font-size:15px;width:25px;height:25px}.conflict-tooltip{display:none;position:absolute;right:0;top:27px;min-width:260px;max-width:340px;max-height:320px;overflow:auto;background:white;border:1px solid #e8b2bd;border-radius:10px;box-shadow:0 10px 30px #20203030;padding:12px;color:#3e2930;font-size:12px;cursor:auto}.conflict-badge:hover .conflict-tooltip,.conflict-badge:focus-within .conflict-tooltip{display:block}.conflict-tooltip ul,.inspector-conflicts ul{padding:0;margin:0;list-style:none}.conflict-tooltip li,.inspector-conflicts li{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-bottom:1px solid #f0d9df}.conflict-tooltip a,.inspector-conflicts a{color:var(--accent);text-decoration:underline}.inspector-conflicts{margin-top:22px;padding:12px;background:#fff0f2;border-radius:10px;color:#943449;font-size:12px}.inspector-conflicts h3{font-size:14px;margin:0 0 10px}.visual-savebar{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;align-items:center;gap:20px;padding:15px 28px;background:#fffffffa;border-top:1px solid var(--line);box-shadow:0 -4px 20px #18213708}.visual-savebar>div{margin-right:auto;display:flex;flex-direction:column;gap:5px;min-width:0}.visual-savebar strong{font-size:14px}.visual-savebar span{color:var(--muted);font-size:12px}.visual-savebar p{margin:0;font-size:12px;max-width:760px;color:#a32f44}.visual-savebar>button{font-size:13px;padding:12px 16px;border:1px solid var(--line);border-radius:9px}.visual-savebar .save-draft{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;min-width:140px}.visual-savebar button:disabled{cursor:not-allowed}.visual-context button:disabled{cursor:not-allowed}
@media(max-width:1000px){.visual-workspace{grid-template-columns:minmax(0,1fr) 280px}.visual-editor{padding:0 12px 130px}.visual-inspector{padding:14px}.visual-editor-heading h1{font-size:20px}}
@media(max-width:760px){.visual-workspace{grid-template-columns:1fr}.visual-inspector{position:static;max-height:none}.visual-editor-heading{flex-wrap:wrap;gap:12px}.visual-context{padding:12px;gap:12px}.visual-grid-tools{gap:8px;flex-wrap:wrap}.visual-savebar{padding:12px;gap:8px;flex-wrap:wrap}.visual-savebar>div{flex-basis:100%}.visual-savebar>button{padding:9px 12px}.visual-savebar .save-draft{margin-left:auto}.visual-lesson:hover{transform:none}.visual-editor{padding-bottom:180px}}
@media(prefers-reduced-motion:reduce){.visual-lesson{transition:none}}
/* Compact editor controls and save-time publication mode. */
.editor-table-title{display:flex;align-items:center;gap:8px;margin-right:auto}.editor-table-title a{display:flex;padding:5px;color:var(--accent)}.editor-table-title strong{margin:0}.visual-editor-heading{margin-bottom:14px}.visual-inspector{padding:12px;max-height:calc(100dvh - 85px)}.visual-inspector h2{margin-bottom:10px}.visual-inspector fieldset{gap:9px}.visual-inspector input,.visual-inspector select{padding:7px 8px}.visual-inspector label{gap:4px}.visual-picker>label{font-size:12px;font-weight:600;margin-bottom:4px}.picker-control{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:34px;border:1px solid var(--line);border-radius:7px;padding:3px 5px}.picker-control .picker-values{display:contents;margin:0}.picker-control .picker-values>span{max-width:100%;padding:3px 5px;gap:3px}.picker-control input{width:65px;min-width:50px;flex:1;border:0;padding:4px;background:transparent}.visual-savebar{left:50%;right:auto;transform:translateX(-50%);bottom:6px;width:max-content;max-width:calc(100% - 16px);padding:6px 10px;gap:12px;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 14px #18213720;flex-wrap:wrap}.visual-savebar>button{padding:7px 11px}.visual-savebar .save-draft{min-width:100px}.visual-savebar strong,.visual-savebar span{font-size:12px}.visual-savebar .editor-error-count{color:#bd203c;font-weight:700}.visual-editor{padding-bottom:80px}.conflict-badge{top:auto;bottom:9px;right:3px}.conflict-badge>button{background:#d51f38;color:white;animation:editor-conflict-pulse 1.2s ease-in-out infinite}.conflict-tooltip{top:100%;padding-top:10px}.visual-lesson.conflicted{overflow:visible}.visual-lesson:has(.conflict-badge:hover),.visual-lesson:has(.conflict-badge:focus-within){z-index:65}.conflict-badge:hover>button,.conflict-badge:focus-within>button{animation:none}@keyframes editor-conflict-pulse{50%{opacity:.38}}@media(prefers-reduced-motion:reduce){.conflict-badge>button{animation:none}}
.conflict-badge>button{display:grid;place-items:center;padding:0;line-height:1;cursor:pointer;animation:none}.conflict-tooltip{top:calc(100% + 3px);display:none;z-index:2;cursor:auto}.conflict-badge:hover .conflict-tooltip{display:none}.conflict-badge.is-open .conflict-tooltip{display:block}.visual-lesson:has(.conflict-badge.is-open){z-index:65;transform:none;overflow:visible}.conflict-badge.is-open>button{animation:none}.inspector-conflicts h3{display:flex;align-items:center;gap:7px}
.change-details-button{padding:0;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:600;text-align:left;cursor:pointer}.change-details-button:hover{text-decoration:underline}.change-details-dialog{width:min(620px,calc(100% - 28px));max-height:min(80dvh,760px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 24px 80px #10182840}.change-details-dialog::backdrop{background:#10182880;backdrop-filter:blur(3px)}.change-details-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}.change-details-dialog>header h2{margin:4px 0 0;font-size:21px}.change-details-dialog>header button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:23px;line-height:1;cursor:pointer}.change-details-eyebrow{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.change-details-context{display:flex;flex-direction:column;gap:5px;margin:0;padding:16px 24px;background:var(--bg,#f7f8fc);font-size:13px}.change-details-context a{font-weight:700;color:var(--accent)}.change-details-context span{color:var(--muted);font-size:12px}.change-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:var(--line);border-block:1px solid var(--line)}.change-details-grid>div{min-width:0;padding:13px 24px;background:var(--surface)}.change-details-grid dt{margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:600}.change-details-grid dd{margin:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.change-details-dialog>p:not(.change-details-context){padding:0 24px}.change-details-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px}.change-details-dialog>footer span{color:var(--muted);font-size:12px}.change-details-dialog>footer button{padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}@media(max-width:560px){.change-details-dialog>header,.change-details-dialog>footer{padding-inline:16px}.change-details-context{padding-inline:16px}.change-details-grid{grid-template-columns:1fr}.change-details-grid>div{padding:11px 16px}.change-details-dialog>footer{align-items:flex-start;flex-direction:column}}
.editor-save-dialog{border:1px solid var(--line);border-radius:16px;padding:24px;width:min(480px,calc(100% - 24px));max-height:85dvh;overflow:auto;color:var(--ink);background:var(--surface);box-shadow:0 16px 60px #17203640}.editor-save-dialog::backdrop{background:#17203665}.editor-save-dialog h2{margin:0 0 18px;font-size:20px}.editor-save-dialog fieldset{border:0;padding:0;display:grid;gap:12px}.editor-save-dialog label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.editor-save-dialog select,.editor-save-dialog input{padding:8px;border:1px solid var(--line);border-radius:7px;max-width:65%;background:var(--surface)}.editor-save-dialog p{font-size:13px;line-height:1.5}.editor-save-dialog [role=alert]{color:#bb2440}.editor-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.editor-dialog-actions button{padding:9px 16px;border:1px solid var(--line);border-radius:8px}.editor-dialog-actions .save-draft{background:var(--accent);color:white}.editor-search{max-width:760px;margin:30px auto;padding:0 18px}.editor-search h1{font-size:23px}.editor-search-input{display:flex;align-items:center;gap:10px;padding:12px;background:white;border:1px solid var(--line);border-radius:10px}.editor-search-input input{width:100%;border:0;outline:0;font:inherit}.editor-search-results{display:grid;margin-top:16px}.editor-search-results a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 8px;border-bottom:1px solid var(--line)}.editor-search-results span{font-size:12px;color:var(--muted)}
.change-details-dialog{overflow:auto}
.setting-suboptions{padding:0 0 10px 18px;border-left:2px solid var(--line);margin-left:8px}.setting-suboptions .setting-toggle{padding-block:9px}.setting-suboptions .setting-toggle strong{font-size:12px}
.grid-bootstrap .schedule-grid .lesson{border:1px solid color-mix(in srgb,var(--card-border) 68%,transparent);border-radius:10px;box-shadow:0 2px 7px #15203a16;overflow:hidden}.grid-bootstrap .schedule-grid .grid-lesson{margin:4px}.grid-bootstrap .schedule-grid .grid-cluster{margin:4px;gap:5px}.grid-bootstrap .schedule-grid .grid-cluster .lesson{border-radius:10px}
.hover-expand .schedule-grid .lesson:hover,.hover-expand .agenda .lesson:hover{position:relative;z-index:20;transform:scale(1.06);overflow:visible;box-shadow:0 8px 24px #15203a35;transition:transform .14s ease,box-shadow .14s ease}.hover-expand .schedule-grid .grid-cluster:has(.lesson:hover){z-index:21}
.schedule-grid{position:relative}.current-time-line{position:absolute;z-index:12;left:0;right:0;height:0;border-top:3px solid #e53935;pointer-events:none;transform:translateY(-1px)}.current-time-line::before{content:"";position:absolute;left:-4px;top:-5px;width:7px;height:7px;border-radius:50%;background:#e53935}
/* Account typography applies to every timetable label, including metadata. */
.agenda .lesson{--agenda-font:calc(14px * var(--schedule-scale,1));font-size:var(--agenda-font);contain:none}
.agenda .lesson h3,.is-compact .agenda .lesson h3{font-size:calc(18px * var(--schedule-scale,1))}
.agenda .lesson .lesson-top>span:first-child,.agenda .lesson .lesson-type,.agenda .lesson .course-code,.agenda .lesson .lesson-links,.agenda .lesson .lesson-links>.comma-links,.agenda .lesson .tri>span,.agenda .lesson .lesson-groups{font-size:var(--agenda-font)}
.agenda .lesson .tri small{font-size:.9em}.agenda .lesson svg{width:1em;height:1em}.agenda .lesson .lesson-grade{font-size:calc(16px * var(--schedule-scale,1))}
.agenda-day-title,.agenda-day-title .tri>span{font-size:calc(16px * var(--schedule-scale,1))}.agenda-day-title small{font-size:calc(12px * var(--schedule-scale,1))}
.schedule-grid .day-heading .tri>span{font-size:calc(12px * var(--schedule-scale,1))}.schedule-grid .time-label{font-size:calc(9px * var(--schedule-scale,1))}.schedule-grid .grid-corner{font-size:calc(8px * var(--schedule-scale,1))}.schedule-grid .grid-corner svg{width:calc(12px * var(--schedule-scale,1));height:calc(12px * var(--schedule-scale,1))}
.timetable-toolbar,.timetable-toolbar .tri>span,.day-filter button,.mobile-days button{font-size:calc(12px * var(--schedule-scale,1))}
/* Rounded containers no longer clip the heading or expanded cards. */
.timetable-panel:has(.agenda),.agenda-swipe-window,.agenda,.agenda-day,.agenda-cards{overflow:visible}.agenda-day{border-radius:0}.agenda-day-title{border-radius:10px;padding-left:4px}.agenda-day:has(.lesson:hover){position:relative;z-index:30}
.hover-expand .schedule-grid .lesson:hover,.hover-expand .agenda .lesson:hover{transform:scale(var(--lesson-hover-scale,1.1))}
@media(hover:hover){.hover-expand .agenda{padding-inline:calc(50% * (1 - 1 / var(--lesson-hover-scale,1.1)) + 12px)}.hover-expand .agenda-cards>.lesson:first-child{transform-origin:left center}.hover-expand .agenda-cards>.lesson:last-child{transform-origin:right center}.hover-expand .agenda-cards>.lesson:only-child{transform-origin:center}}
@media(max-width:760px){.schedule-grid .day-heading .tri>span{font-size:calc(7px * var(--schedule-scale,1))}.schedule-grid .time-label{font-size:calc(7px * var(--schedule-scale,1))}}
@media(prefers-reduced-motion:reduce){.hover-expand .lesson:hover{transition:none}}
.agenda-day-title h2,.agenda-day-title h2 .tri>span{font-size:calc(16px * var(--schedule-scale,1))}.agenda-day-title h2 .tri small{font-size:calc(12px * var(--schedule-scale,1))}
.agenda .free-day,.agenda .free-day .tri>span{font-size:calc(12px * var(--schedule-scale,1))}.source-notes,.source-notes .tri>span,.source-notes small{font-size:calc(11px * var(--schedule-scale,1))}.timetable-toolbar small,.timetable-toolbar .week-range{font-size:calc(12px * var(--schedule-scale,1))}

.users-directory{width:min(1120px,100%);margin:0 auto;padding:24px 20px 48px}.users-directory .account-title{align-items:center;margin-bottom:24px}.users-directory .account-title h1{margin:0}.users-directory .local-create{display:flex;justify-content:flex-end;margin:0 0 20px}.users-directory .users-table-scroll{box-shadow:0 4px 24px #24273d06}.users-directory .user-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:20px;background:#faf9fd;border-radius:12px}.user-permissions>.trusted-picker{grid-column:1/-1}.user-permissions>.account-button{justify-self:start}.trusted-picker{min-width:0}.trusted-selected{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.trusted-selected button{display:flex;gap:12px;align-items:center;padding:6px 10px;background:#eeebfa;color:#65538e;border-radius:7px}.trusted-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:5px;max-height:180px;overflow:auto;padding:6px;border:1px solid #e1e3ec;border-radius:8px}.trusted-options button{display:flex;justify-content:space-between;padding:9px;border-radius:5px;background:white}.trusted-options button:hover{background:#eeebfa}.trusted-options>span{grid-column:1/-1;padding:10px;color:#81849a}.create-user-dialog{width:min(600px,calc(100vw - 32px));max-height:90dvh;margin:auto;padding:0;border:1px solid #e1e3ec;border-radius:18px;color:#24273d;background:white;box-shadow:0 24px 80px #0003}.create-user-dialog::backdrop{background:#20243877;backdrop-filter:blur(3px)}.create-user-content{padding:26px}.create-user-content header{display:flex;align-items:center;justify-content:space-between;gap:20px}.create-user-content header h2{font-size:22px;margin:0}.create-user-content header button{font-size:26px;padding:0 8px}.create-user-content form{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.create-user-content .trusted-picker,.create-user-content form>p{grid-column:1/-1}.create-user-content form>.account-button{grid-column:1/-1;margin-top:8px}@media(max-width:600px){.users-directory{padding:16px 0 32px}.create-user-content{padding:20px}.create-user-content form,.users-directory .user-permissions{grid-template-columns:1fr}.users-directory .users-filters{flex-direction:column}.users-directory .users-filters select{max-width:none}}

.home-action-row>a{gap:9px}.home-action-row>a>svg{flex-shrink:0;color:var(--accent)}

.editor-autocomplete{position:relative;min-width:0}.editor-autocomplete>input{width:100%;box-sizing:border-box}.editor-multi-inputs{display:grid;gap:6px}.editor-autocomplete .picker-results [aria-selected="true"]{background:var(--accent-soft)}

/* Device-specific appearance and complete fitted grid outline. */
.appearance-devices{display:flex;gap:8px;padding:12px 0 20px}.appearance-devices button{flex:1;padding:12px;border:1px solid #d8dce6;border-radius:10px}.appearance-devices button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.app-shell.large-time .schedule-grid{--time-gutter:calc(66px * var(--schedule-scale,1))}.app-shell.large-time .time-label{font-size:calc(14px * var(--schedule-scale,1));font-weight:700;color:#111827}.app-shell.large-time .grid-corner{font-size:11px}
.app-shell.compact-time .schedule-grid{--time-gutter:calc(32px * var(--schedule-scale,1))}.app-shell.compact-time .time-label{font-size:calc(8px * var(--schedule-scale,1));color:#111827}
.app-shell .schedule-fit .schedule-grid{height:100%;grid-template-rows:var(--grid-header) repeat(var(--grid-rows),var(--fit-row-min))!important;position:relative}
.schedule-fit .schedule-grid:after{content:'';position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid #000;pointer-events:none;z-index:4}
.entity-directory{max-width:1100px;margin-inline:auto}.entity-name-fields{border:0;padding:0;display:grid;gap:16px}.entity-name-fields label{display:grid;gap:6px}.entity-name-fields input{padding:12px;border:1px solid #cbd5e1;border-radius:8px;width:100%}

.schedule-fit .time-label{min-height:0;overflow:hidden;padding:3px 1px;align-items:flex-start}.schedule-fit .day-heading{min-height:0;padding:2px}.schedule-fit .schedule-grid{min-height:0}

.appearance-devices button[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700;box-shadow:0 2px 8px #65538e30}
.high-contrast .lesson .course-code,.high-contrast .lesson .lesson-links,.high-contrast .lesson .comma-links,.high-contrast .lesson .lesson-top,.high-contrast .lesson .tri small,.high-contrast .setting-toggle small,.high-contrast .search-result small,.high-contrast .admin-links span{color:#000;opacity:1}
.lesson-dialog{width:min(560px,calc(100vw - 24px));max-height:90dvh;padding:48px 0 0;border:1px solid #cbd5e1;border-radius:16px;background:#fff;color:#111827;overflow:auto;box-shadow:0 24px 80px #0005}
.lesson-dialog::backdrop{background:#11182799}.lesson-dialog-close{position:absolute;right:10px;top:8px;display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#f1f3f7}
.lesson-dialog .lesson{padding:22px!important;border-radius:0;font-size:calc(16px * var(--schedule-scale,1));transform:none!important;overflow:visible}
.lesson-dialog .lesson h3{font-size:1.3em;line-height:1.35;margin:16px 0}.lesson-dialog .lesson-top{display:flex;flex-wrap:wrap;gap:10px;font-size:1em}.lesson-dialog .lesson-top>span:first-child,.lesson-dialog .lesson-type,.lesson-dialog .course-code,.lesson-dialog .comma-links,.lesson-dialog .tri>span{font-size:1em;line-height:1.5}.lesson-dialog .lesson-links{display:grid;gap:12px;margin-top:16px}.lesson-dialog .comma-links{display:flex;gap:8px;align-items:baseline;overflow-wrap:anywhere}.lesson-dialog .comma-links a{text-decoration:underline;text-underline-offset:3px}.lesson-dialog .lesson-bottom{margin-top:16px}.lesson[role="button"]{cursor:pointer}
