.richtext{font-size:16px;line-height:1.9;overflow-wrap:anywhere;overflow-x:auto}
.settings-shortcut{display:flex;width:fit-content;gap:10px;align-items:center;margin:0 0 18px;min-height:50px;background:#e8f4f3;border:1px solid #89bebb;font-weight:700}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px}
.admin-tabs a{display:inline-flex;flex-direction:row;min-height:44px;white-space:normal;line-height:1.5}
.hub-calendar-card{background:var(--tint);color:var(--course);border-left:3px solid var(--course)}
.calendar-category .category-badge{font-size:12px;padding:2px 5px;margin-top:4px;white-space:normal}
#custom-css-input{font-family:ui-monospace,monospace;font-size:14px;line-height:1.7;tab-size:2}
#css-preview-frame{width:100%;height:620px;background:white;border:1px solid #c8d6e0;border-radius:12px}
details pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#f2f6f8}
@media(max-width:700px){.settings-shortcut{width:100%;justify-content:center}.admin-tabs{display:grid;grid-template-columns:1fr 1fr}.admin-tabs a{justify-content:center;padding:10px}.calendar-category .category-badge{font-size:11px;padding:2px 3px}}
.category-badge{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid currentColor;border-radius:7px;font-size:14px;line-height:1.5;font-weight:500}
.cat-study{color:#215b9a;background:#edf4fd}
.cat-seminar{color:#7044a0;background:#f3edfa}
.cat-present{color:#944b0b;background:#fff2df}
.cat-exam{color:#ae303a;background:#fff0f1}
.cat-deadline{color:#775031;background:#f6efe8}
.cat-other{color:#445970;background:#edf1f5}
.lesson-labels{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.content-readiness{font-size:14px;color:#567182;margin:10px 0 0}
.cal-event{overflow-wrap:anywhere;white-space:normal;line-height:1.4}
.calendar-category{display:block;font-size:12px}
.cal-day.is-today .day-number{background:#087f80;color:white;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}
.month-controls{flex-wrap:wrap}
.brand-image{width:52px;height:52px;object-fit:contain;flex-shrink:0}
.brand-copy{overflow-wrap:anywhere;min-width:0}
.brand-preview{border:1px solid var(--border);border-radius:12px;padding:18px;background:#f7fafc;margin-top:12px}
.brand-preview small{display:block}
.aside-note p,footer span{white-space:pre-wrap;overflow-wrap:anywhere}
header .brand{min-width:0}
@media(max-width:700px){.brand-image{width:40px;height:40px}.brand-copy{font-size:16px}.brand-copy small{display:block;font-size:12px}.cal-day{padding:5px}.cal-event b{font-size:12px}.cal-event{padding:4px 2px}.calendar-category{font-size:12px}.brand-preview small{display:block}.category-badge{font-size:14px}}
.richtext img{max-width:100%;height:auto;border-radius:10px}
.richtext table{border-collapse:collapse;width:100%;margin:16px 0}
.richtext td,.richtext th{border:1px solid #cbd9e3;padding:10px;min-width:90px}
.richtext a{color:#087f80;text-decoration:underline}
.prewrap{white-space:pre-wrap}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px}
.admin-row{display:flex;justify-content:space-between;gap:16px;align-items:center;background:white;border:1px solid var(--border);padding:18px;border-radius:12px;margin:12px 0}
.admin-row .tag{flex-shrink:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:8px;font-size:16px;margin:8px 0;min-width:0}
.field input,.field select,.field textarea{width:100%;max-width:100%;font:inherit;border:1px solid #c8d6e0;background:white;padding:10px 12px;border-radius:9px;color:var(--navy)}
.field input[type=color]{height:48px}
.check{display:flex;align-items:center;gap:8px;font-size:14px}
.check input{width:20px;height:20px;flex-shrink:0}
fieldset{border:1px solid var(--border);border-radius:10px}
.editor-tools{display:flex;flex-wrap:wrap;gap:6px;background:#f3f7f9;padding:12px;border:1px solid var(--border);border-radius:10px 10px 0 0;margin-top:16px}
.editor-tools button{font:inherit;font-size:14px;min-height:40px;background:white;border:1px solid var(--border);border-radius:8px;padding:6px 12px}
.editor{min-height:330px;border:1px solid #c8d6e0;padding:20px;border-radius:0 0 10px 10px;background:#fff;outline-offset:3px}
.save-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;margin:18px 0}
.save-bar .btn{min-width:0;min-height:46px;font-size:14px;line-height:1.5;padding:10px 12px;text-align:center;justify-content:center}
.save-bar .publish-main{grid-column:1/-1;min-height:64px;font-size:21px;font-weight:700;border-radius:12px;box-shadow:0 4px 12px #087f8024}
#save-status{grid-column:1/-1;width:100%;font-size:15px;line-height:1.7;overflow-wrap:anywhere;padding:14px 16px;border:1px solid #cadbe5;border-left:4px solid #7293a7;border-radius:10px;background:#f1f6fa;color:#304d63}
#save-status[data-state=success]{background:#e8f7ef;border-color:#acd9bf;border-left-color:#278054;color:#185b3b;font-weight:700}
#save-status[data-state=error]{background:#fff0ee;border-color:#efb9b1;border-left-color:#bd4637;color:#923426}
#save-status[data-state=busy]{background:#eaf3fc;border-color:#b4d0e9;border-left-color:#377bb5;color:#245980}
.quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.quick-actions .btn{min-height:48px;gap:8px;justify-content:center}
.related-actions h2{font-size:18px;margin:0}
.related-actions .muted{margin-bottom:0;font-size:14px}
.admin-tabs{margin:16px 0}
.field input[type=file]{padding:12px;background:#f2f8fa;border:1px dashed #86b9be}
.field input[type=file]::file-selector-button{font:inherit;color:white;background:#087f80;border:0;border-radius:8px;padding:12px 16px;margin-right:12px;cursor:pointer}
@media(max-width:700px){.quick-actions{flex-direction:column}.quick-actions .btn{width:100%}.save-bar .publish-main{font-size:21px;min-height:64px}.save-bar{padding:14px}}
.event-card{margin:12px 0}
.admin-entry{margin-left:16px}
header .term{margin-left:auto}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}.admin-row{display:block}.admin-row .tag{display:inline-block;margin-top:7px}.admin-entry{font-size:12px;padding:6px 10px;min-height:38px}.brand small{display:none}.term{display:none}.save-bar .btn{flex:1}.editor{padding:14px}.admin-tabs .btn{font-size:14px}.week-banner h2{font-size:18px}}
/* Admin workspace and consistent calendar controls */
.admin-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 24px}.admin-top .muted{margin-left:auto;font-size:14px;overflow-wrap:anywhere}.admin-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-tile{--tile:#2563a6;--tile-bg:#edf5ff;display:flex;flex-direction:column;gap:10px;border:1px solid color-mix(in srgb,var(--tile) 25%,white);border-left:5px solid var(--tile);background:white;padding:24px;border-radius:18px;text-decoration:none;color:#203449;transition:box-shadow .15s,transform .15s}.admin-tile:hover{box-shadow:0 8px 24px #20344912;transform:translateY(-2px)}.admin-tile strong{font-size:20px}.admin-tile>span:not(.tile-icon){color:#546478;font-size:15px}.admin-tile small{color:var(--tile);font-size:14px;font-weight:600}.tile-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--tile-bg);color:var(--tile)}.tile-icon svg{width:25px;height:25px}.admin-tile-file{--tile:#087f80;--tile-bg:#e5f5f3}.admin-tile-event{--tile:#7754ad;--tile-bg:#f1ebfb}.admin-tile-course{--tile:#b45b15;--tile-bg:#fff1e4}.admin-tile-settings{--tile:#455469;--tile-bg:#edf0f4}.admin-tabs{gap:8px;flex-wrap:wrap}.admin-row{gap:16px}.admin-row .tag{white-space:normal;max-width:250px}.btn:focus-visible,.admin-tile:focus-visible{outline:3px solid #187dba;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}.month-controls #calendar-today{width:auto;min-width:76px;min-height:44px;padding:8px 16px;font-size:16px;font-weight:600;border-radius:12px;white-space:nowrap}.cal-day .day-number{flex:none;align-self:flex-start;width:30px;height:30px;min-width:30px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;line-height:1}.cal-day.is-today .day-number{width:30px;height:30px;min-width:30px;min-height:30px;background:#087f80;color:white}.cal-day.selected{outline:2px solid #087f80;outline-offset:-2px}.editor-context{font-weight:600;margin-bottom:18px}.save-notice{overflow-wrap:anywhere}#upload-notice{margin-top:16px;overflow-wrap:anywhere}
@media(max-width:600px){.admin-dashboard{grid-template-columns:1fr;gap:12px}.admin-tile{padding:20px}.admin-top{gap:8px}.admin-top .muted{width:100%;margin:0}.admin-top .btn{flex:1}.admin-row{flex-direction:column;align-items:flex-start}.admin-row .tag{max-width:none}.month-controls{gap:6px}.month-controls #calendar-today{min-width:68px;padding:8px 12px}.cal-day .day-number,.cal-day.is-today .day-number{width:28px;height:28px;min-width:28px;min-height:28px}}
.term-highlights{margin-top:30px;padding:24px;border:1px solid #dbe5ec;border-radius:18px;background:#fff}.term-highlights .section-title{margin-top:0}.term-highlights .section-title p{margin:4px 0 0}.term-highlight-list{display:grid;gap:10px}.term-highlight{display:grid;grid-template-columns:58px 1fr 32px;align-items:center;gap:16px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--course) 24%,#dbe5ec);border-left:5px solid var(--course);border-radius:14px;background:linear-gradient(90deg,var(--tint),#fff 42%);color:#203449;text-decoration:none;transition:transform .15s,box-shadow .15s}.term-highlight:hover{transform:translateY(-1px);box-shadow:0 8px 20px #20344912}.term-highlight time{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#fff;border:1px solid color-mix(in srgb,var(--course) 25%,#dbe5ec);color:var(--course);line-height:1}.term-highlight time strong{font-size:22px}.term-highlight time span{font-size:13px;margin-top:5px}.term-highlight h3{font-size:17px;line-height:1.5;margin:7px 0 2px}.term-highlight p{margin:0}.term-highlight-arrow{display:flex;color:var(--course)}.term-highlight-arrow svg{width:21px;height:21px}.calendar-extra-event{border-style:dashed}
@media(max-width:600px){.term-highlights{padding:18px 14px;margin-top:22px}.term-highlight{grid-template-columns:48px 1fr 24px;gap:11px;padding:12px 10px}.term-highlight time{width:46px;height:46px;border-radius:12px}.term-highlight time strong{font-size:19px}.term-highlight h3{font-size:15px}.term-highlight .badge,.term-highlight .category-badge{font-size:12px}.term-highlight-arrow svg{width:18px;height:18px}}

/* Dedicated admin experience */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.admin-mode{background:#eef2f7;color:#172e46}
.admin-mode header{background:#122f48;border-bottom-color:#29465f;color:#fff}
.admin-mode header .brand{color:#fff}
.admin-mode header .brand small{color:#b9cad8}
.admin-mode header .term,.admin-mode header .admin-entry{display:none}
.admin-mode .shell{display:block;max-width:1180px;min-height:calc(100vh - 100px)}
.admin-mode aside,.admin-mode footer{display:none}
.admin-mode main{padding-top:28px;padding-bottom:90px}
.admin-ui-shell{margin-bottom:26px}
.admin-mode-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-radius:17px;background:#193c58;color:#fff;box-shadow:0 8px 24px #122f481a}
.admin-mode-title{display:flex;align-items:center;gap:13px;min-width:0}
.admin-mode-title>svg{width:26px;height:26px;flex-shrink:0}
.admin-mode-title span{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.admin-mode-title strong{font-size:18px;line-height:1.4}
.admin-mode-title small{display:inline-flex;align-items:center;min-height:27px;padding:2px 10px;border:1px solid #75d1c5;border-radius:999px;background:#0a797b;color:#fff;font-size:12px;font-weight:700;white-space:nowrap}
.admin-view-site{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 15px;border:1px solid #7390a5;border-radius:11px;background:#fff;color:#17374f;font-size:14px;font-weight:700;white-space:nowrap}
.admin-context{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px 10px}
.admin-back{display:inline-flex;align-items:center;gap:6px;color:#30526d;font-size:14px;font-weight:700}
.admin-location{color:#4e667b;font-weight:700}
.admin-account{color:#697d90;font-size:13px;text-decoration:none;border:0;overflow-wrap:anywhere;text-align:right}
.admin-ui-nav{display:flex;gap:7px;padding:6px;border:1px solid #d2dce6;border-radius:14px;background:#fff}
.admin-ui-nav a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:45px;padding:8px 14px;border-radius:10px;color:#526a7e;font-size:14px;font-weight:700}
.admin-ui-nav a.active{background:#1d4665;color:#fff}
.admin-ui-nav svg{width:18px;height:18px}
.admin-mode .topline{margin-bottom:18px}
.admin-mode .topline h1{font-size:27px}
.admin-list-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}
.admin-list-actions .admin-add{min-height:51px;padding:11px 20px;font-size:16px}
.admin-filterbar{display:grid;grid-template-columns:minmax(220px,1fr) 190px;gap:10px;margin:0 0 16px}
.admin-filterbar input,.admin-filterbar select{width:100%;max-width:none;min-height:48px;border:1px solid #c8d5df;border-radius:11px;background:#fff;padding:10px 13px;color:#243f55}
.admin-help{border-left:4px solid #4f829f;background:#e8f0f5}
.admin-list{display:grid;gap:10px}
.admin-list .admin-row{margin:0;padding:16px 18px;border-radius:13px}
.admin-row-copy{min-width:0}
.admin-row-copy strong{font-size:16px;line-height:1.55}
.admin-row-copy p{margin:5px 0 0}
.record-statuses{display:flex;align-items:flex-end;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:310px}
.record-badge{display:inline-flex;align-items:center;min-height:31px;padding:4px 9px;border:1px solid currentColor;border-radius:8px;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.status-live{color:#23724d;background:#eaf7f0}
.status-draft{color:#53677a;background:#edf1f5}
.status-changed{color:#95620e;background:#fff5dd}
.status-incomplete{color:#a65319;background:#fff0e5}
.admin-more{position:relative;margin:0}
.admin-more>summary{list-style:none;cursor:pointer}
.admin-more>summary::-webkit-details-marker{display:none}
.admin-more-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:40;display:grid;min-width:210px;padding:7px;border:1px solid #ccd8e2;border-radius:12px;background:#fff;box-shadow:0 12px 32px #17344920}
.admin-more-panel a,.admin-more-panel button{display:flex;align-items:center;width:100%;min-height:43px;padding:8px 11px;border:0;border-radius:8px;background:transparent;color:#354f64;font:inherit;font-size:14px;text-align:left;white-space:nowrap}
.admin-more-panel a:hover,.admin-more-panel button:hover{background:#edf3f7}
.admin-mode #editor-form>.panel,.admin-mode #editor-form>section.panel{border-color:#d4dee7;box-shadow:0 3px 12px #18364c08}
.admin-mode .editor-context{border-left:4px solid #466f8c;background:#e7eff5;color:#29485f}
.admin-mode .save-bar{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);position:relative;border-color:#c9d7e1;box-shadow:0 8px 24px #18364c12}
.admin-mode .save-bar .publish-main{grid-column:1/2;grid-row:2;min-height:58px;background:#0b7778;border-color:#0b7778;font-size:19px}
.admin-mode .save-bar .draft-main{grid-column:2/3;grid-row:2;min-height:58px;background:#fff;border-color:#7390a5;color:#294c64}
.admin-mode .save-bar .cancel-edit{grid-column:1/2;grid-row:3;display:inline-flex;align-items:center;justify-content:center;min-height:42px;color:#65798a;font-size:14px;font-weight:700}
.admin-mode .save-bar>.admin-more{grid-column:2/3;grid-row:3}
.admin-mode .save-bar>.admin-more>summary{width:100%;min-height:42px;background:transparent;border-color:transparent;color:#65798a}
.file-source-choice{grid-column:1/-1;margin-top:14px;padding-top:18px;border-top:1px solid #dbe3ea}
.file-source-choice h2{margin-bottom:10px;font-size:18px}
.source-choice{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.advanced-panel{margin:18px 0;border:1px solid #cfdbe4;border-radius:14px;background:#fff;overflow:hidden}
.advanced-panel>summary{padding:17px 20px;cursor:pointer;color:#345169;font-weight:700}
.advanced-panel>.panel{margin:0;border:0;border-top:1px solid #dde5eb;border-radius:0;box-shadow:none}
.admin-dashboard{margin-top:18px}

@media(max-width:700px){.admin-mode header{height:68px}.admin-mode header .brand{font-size:16px}.admin-mode .shell{min-height:calc(100vh - 68px)}.admin-mode main{padding:16px 14px calc(112px + env(safe-area-inset-bottom,0px))}.admin-mode-bar{align-items:flex-start;padding:15px;border-radius:14px}.admin-mode-title>svg{width:23px;height:23px}.admin-mode-title strong{font-size:16px}.admin-mode-title small{font-size:11px;min-height:24px}.admin-view-site{min-height:40px;padding:7px 10px;font-size:12px}.admin-view-site svg{display:none}.admin-context{align-items:flex-start;padding:11px 2px 8px;flex-direction:column;gap:5px}.admin-account{font-size:12px;text-align:left}.admin-ui-nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:1000;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:7px 5px;border-radius:22px;box-shadow:0 7px 32px #163c482b}.admin-ui-nav a{flex-direction:column;gap:3px;min-height:59px;padding:6px 1px;border-radius:15px;font-size:11px;line-height:1.3;white-space:nowrap}.admin-ui-nav a.active{background:#1d4665;color:#fff}.admin-ui-nav svg{width:21px;height:21px}.admin-mode .topline h1{font-size:24px}.admin-list-actions{align-items:stretch}.admin-list-actions .admin-add{flex:1}.admin-filterbar{grid-template-columns:1fr}.admin-list .admin-row{display:flex;align-items:flex-start;padding:15px}.record-statuses{justify-content:flex-start;align-items:flex-start;max-width:none}.record-badge{font-size:11px}.admin-more-panel{right:0}.admin-mode .save-bar{grid-template-columns:1fr 1fr;padding:12px;margin-bottom:20px}.admin-mode .save-bar .publish-main{min-height:56px;font-size:18px}.admin-mode .save-bar .draft-main{min-height:56px}.admin-mode .save-bar .cancel-edit{font-size:13px}.admin-mode .save-bar>.admin-more>summary{font-size:13px}.source-choice{display:grid;grid-template-columns:1fr 1fr}.source-choice .btn{font-size:13px;padding:8px}.advanced-panel>summary{padding:15px 17px}}
