@font-face{font-family:Manrope;src:url('/fonts/Manrope[wght].ttf') format('truetype');font-weight:200 800;font-display:swap}@font-face{font-family:InstitutionSerif;src:url('/fonts/InstrumentSerif-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--ink:#14231e;--muted:#65736e;--paper:#f4f5ef;--surface:#fff;--line:#dfe4dc;--forest:#173f32;--mint:#bfedcf;--shadow:0 18px 50px rgba(25,49,40,.08);--font-ui:Manrope,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-family:var(--font-ui)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}a{color:inherit}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:28px 20px;background:var(--forest);color:#eaf3ee;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin:0 8px 42px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--mint);color:var(--forest);font-weight:900}.brand strong,.brand small{display:block}.brand small{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;opacity:.62;margin-top:2px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;text-decoration:none;color:#c8d7d0}.nav-link.active,.nav-link:hover{background:rgba(255,255,255,.1);color:#fff}.sidebar-note{margin-top:auto;padding:14px;border-top:1px solid rgba(255,255,255,.12);font-size:.78rem;color:#b9cac2}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#6fe49b;margin-right:8px;box-shadow:0 0 0 4px rgba(111,228,155,.12)}.main-panel{min-width:0;background:var(--paper)}.topbar{height:78px;padding:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:rgba(244,245,239,.9);backdrop-filter:blur(12px)}.topbar strong,.topbar .eyebrow{display:block}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.68rem;font-weight:800;color:#648071}.account-link{padding:9px 14px;border:1px solid var(--line);border-radius:99px;text-decoration:none;background:var(--surface);font-size:.85rem}.content{padding:44px 38px;max-width:1500px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.page-heading h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1;margin:.35rem 0 .65rem;letter-spacing:-.045em}.page-heading p{margin:0;color:var(--muted);max-width:660px}.date-chip,.badge{font-size:.75rem;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 12px;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.metric-card.accent{background:var(--mint);border-color:transparent}.metric-card span,.metric-card small,.metric-card strong{display:block}.metric-card span{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:#557066}.metric-card strong{font-size:1.55rem;margin:15px 0 6px}.metric-card small{color:var(--muted)}.panel{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel h2{margin:.3rem 0 0}.roadmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}.roadmap-item{padding:18px;border-radius:13px;background:#f6f7f3}.roadmap-item>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#e6eae4;font-weight:800;font-size:.75rem;margin-bottom:28px}.roadmap-item strong,.roadmap-item small{display:block}.roadmap-item small{color:var(--muted);line-height:1.45;margin-top:6px}.roadmap-item.complete{background:var(--forest);color:#fff}.roadmap-item.complete small{color:#bfd0c8}.roadmap-item.complete>span{background:var(--mint);color:var(--forest)}.roadmap-item.current{outline:1px solid #d8aa58;background:#fffaf0}#blazor-error-ui{display:none;position:fixed;bottom:0;width:100%;padding:1rem;background:#fff3cd;color:#5f4300;z-index:1000}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:1rem}@media(max-width:1000px){.metric-grid,.roadmap{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:16px;flex-direction:row;align-items:center}.brand{margin:0}.sidebar nav{margin-left:auto}.sidebar-note{display:none}.topbar{padding:0 18px}.topbar>div:not(.account-actions){display:none}.content{padding:28px 18px}.page-heading{align-items:flex-start;flex-direction:column}.metric-grid,.roadmap{grid-template-columns:1fr}}

.institution-brand {
    /* Visible artwork bounds inside the original 1056 × 318 PNG. */
    --brand-art-width: 766;
    --brand-art-height: 270;
    --brand-display-width: 180px;
    position: relative;
    display: block;
    width: min(100%, var(--brand-display-width));
    aspect-ratio: var(--brand-art-width) / var(--brand-art-height);
    overflow: hidden;
    margin: 0 auto 40px;
}
.institution-brand img {
    position: absolute;
    inset-inline-start: 0;
    top: calc(-100% * 24 / var(--brand-art-height));
    display: block;
    width: calc(100% * 1056 / var(--brand-art-width));
    max-width: none;
    height: auto;
}
.account-actions{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%}.account-actions .account-link{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-actions form{margin:0}.logout-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--forest);font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}.logout-button svg{width:18px;height:18px;flex-shrink:0}.logout-button:hover{background:var(--forest);border-color:var(--forest);color:var(--surface)}.logout-button:focus-visible{outline:3px solid var(--forest);outline-offset:3px}.account-actions form{flex-shrink:0}.management-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:22px;align-items:start}.management-grid .panel{margin:0}.management-grid h2,.role-card h2{font-size:22px}.user-search{margin:24px 0}.user-search label{display:block;font-size:11px;margin-bottom:8px;color:var(--muted)}.user-search>div{display:flex;gap:8px}.management-grid input,.management-grid select{min-height:44px;border:1px solid var(--line);border-radius:7px;padding:10px 12px;font:inherit;font-size:12px;background:var(--surface);color:var(--ink);min-width:0}.user-search input{flex:1}.management-grid button{min-height:40px;border:1px solid var(--line);border-radius:7px;padding:9px 14px;background:var(--surface);color:var(--ink);font:inherit;font-size:11px;font-weight:700;cursor:pointer}.management-grid button:disabled{opacity:.5;cursor:default}.user-table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:10px;color:var(--muted);font-weight:600;padding:12px 8px;border-bottom:1px solid var(--line)}td{padding:18px 8px;border-bottom:1px solid var(--line);font-size:12px}td strong,td small{display:block}td small{color:var(--muted);margin-top:5px;font-size:10px;overflow-wrap:anywhere}.role-pill{display:inline-block;border-radius:20px;background:#e9f1e9;color:#245344;font-size:10px;padding:6px 9px}.management-grid .text-button{border:0;background:transparent;color:var(--ink);padding:8px}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:24px;font-size:11px}.user-editor label{display:block;font-size:11px;font-weight:700;margin:18px 0 8px}.user-editor input,.user-editor select{width:100%}.user-editor small{display:block;font-size:10px;color:var(--muted);line-height:1.7;margin-top:8px}.editor-note{font-size:11px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}.management-grid .primary-button{display:block;width:100%;background:#165448;color:#fff;border-color:transparent;margin-top:24px}.management-notice,.management-errors{padding:15px 20px;border-radius:8px;margin-bottom:20px;font-size:12px;background:#e5f1e5;color:#245344}.management-errors{background:#fceceb;color:#a52c32}.management-errors ul{margin:0;padding-left:18px}.user-editor .validation-errors{font-size:11px;color:#a52c32;padding-left:18px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.role-card p,.role-card li,.dashboard-card p,.panel>p{font-size:13px;color:var(--muted);line-height:1.8}.role-card li{padding:5px 0}.dashboard-card{text-decoration:none;transition:border-color .2s}.dashboard-card:hover{border-color:#3b8670}.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}:focus-visible{outline:3px solid #c7ad72;outline-offset:3px}@media(max-width:1100px){.management-grid{grid-template-columns:1fr}.role-grid{grid-template-columns:1fr}}@media(max-width:720px){.institution-brand{--brand-display-width:140px;margin:0}.sidebar{flex-wrap:wrap;gap:15px}.sidebar nav{display:flex;flex-wrap:wrap;font-size:11px}.nav-link{padding:8px}.account-link{max-width:200px;overflow:hidden;text-overflow:ellipsis}.topbar{justify-content:flex-end}.management-grid .panel{padding:18px}}

.sidebar-section-label{display:block;margin:24px 14px 10px;font-size:9px;font-weight:700;letter-spacing:.12em;color:#a6c5b6}.content-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;background:var(--forest);color:#fff;border:1px solid var(--forest);border-radius:8px;padding:12px 18px;font:inherit;font-size:12px;font-weight:700;text-decoration:none;cursor:pointer}.content-directory{margin:0}.content-search{margin:0 0 26px}.content-search label{display:block;margin-bottom:10px;font-size:11px;color:var(--muted)}.content-search>div{display:flex;gap:10px}.content-search input{flex:1;min-width:0}.content-search input,.content-directory button{min-height:43px;padding:10px 13px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;font-size:12px}.content-directory td:first-child{min-width:240px;max-width:600px}.content-directory td small{max-width:650px;line-height:1.6}.content-status{display:inline-block;border-radius:20px;padding:6px 10px;font-size:10px;white-space:nowrap}.content-status.published{background:#e5f1e5;color:var(--forest)}.content-status.draft{background:#fff3d9;color:#7a5c24}.content-edit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--forest);font-family:var(--font-ui);font-size:.8125rem;font-weight:700;line-height:1.4;letter-spacing:.015em;white-space:nowrap;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s}.content-edit svg{width:16px;height:16px;flex-shrink:0}.content-edit:hover{background:var(--forest);border-color:var(--forest);color:var(--surface)}.content-edit:focus-visible{outline:3px solid var(--forest);outline-offset:3px}@media(prefers-reduced-motion:reduce){.content-edit{transition:none}}.content-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:25px;gap:12px;font-size:11px}.content-directory button{cursor:pointer}.content-directory button:disabled{opacity:.45;cursor:default}.content-empty{padding:35px 0;color:var(--muted)}.content-empty h2{font-size:20px;color:var(--ink)}.content-empty p{font-size:13px}.content-editor>fieldset{margin:0;padding:0;border:0;min-width:0}.content-editor-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr);gap:22px;align-items:start}.content-editor .panel{margin:0 0 20px}.content-editor h2{font-size:21px;margin:8px 0 20px}.content-editor label:not(.content-check){display:block;margin:22px 0 9px;font-size:12px;font-weight:700}.content-editor input:not([type=checkbox]),.content-editor textarea,.content-editor select{width:100%;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}.content-editor textarea{resize:vertical;line-height:1.9}.content-editor input:disabled{background:var(--paper);color:var(--muted)}.content-editor small{display:block;margin-top:8px;color:var(--muted);font-size:10px;line-height:1.8}.content-editor .content-primary{width:100%}.content-check{display:flex;gap:10px;align-items:center;margin:22px 0;font-size:12px}.content-check input{accent-color:var(--forest)}.content-editor .validation-message,.content-editor .validation-errors{color:#a52c32;font-size:11px;line-height:1.8}.editor-cover{width:100%;max-height:250px;object-fit:contain;background:var(--paper);border-radius:8px}.content-text{border:0;background:transparent;color:var(--forest);font:inherit;font-size:11px;cursor:pointer;padding:10px 0;text-decoration:underline}.editor-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.editor-gallery>div{position:relative}.editor-gallery img{width:100%;height:80px;object-fit:cover;border-radius:6px}.editor-gallery button{position:absolute;top:3px;right:3px;width:27px;height:27px;border:0;border-radius:50%;background:white;color:var(--ink);cursor:pointer}.content-danger{border:1px solid #e6b6b3;background:#fceceb;color:#a52c32;border-radius:7px;padding:10px 13px;font:inherit;font-size:11px;cursor:pointer}.delete-panel p{font-size:12px;color:var(--muted);line-height:1.8}.content-home-links{display:flex;flex-wrap:wrap;gap:25px;margin-top:22px;font-size:13px}.sidebar{overflow-y:auto}@media(max-width:1050px){.content-editor-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:720px){.sidebar-section-label{display:none}.sidebar nav{flex:1 1 100%;margin:0}.content-editor input:not([type=checkbox]),.content-editor textarea,.content-editor select{font-size:16px}.content-editor .panel{padding:20px}.content-directory{padding:20px}.content-pagination{font-size:10px}}

.editor-time-picker{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;color:var(--muted)}.editor-time-picker select{width:100%;min-width:0}
.editor-schedule-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;align-items:end}.editor-schedule-row>div{min-width:0}.content-editor .editor-schedule-row label{font-size:11px}.content-editor .editor-schedule-row input,.content-editor .editor-schedule-row select{padding:11px 6px;font-size:12px;min-height:44px}.editor-schedule-row .editor-time-picker{gap:4px}.content-editor label.media-upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 14px;margin:16px 0 0;border:1px dashed var(--line);border-radius:12px;background:var(--paper);text-align:center;cursor:pointer;transition:border-color .2s,box-shadow .2s}.media-upload:hover{border-color:var(--forest)}.media-upload:focus-within{outline:3px solid var(--forest);outline-offset:3px}.media-upload-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--surface);color:var(--forest);font-size:26px}.media-upload-icon svg{width:24px;height:24px}.media-upload strong{font-size:12px;line-height:1.6;color:var(--ink)}.media-upload-hint{font-size:10px;font-weight:400;line-height:1.7;color:var(--muted)}.media-upload-action{border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--forest);padding:10px 14px;font-size:11px}.content-editor .media-upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.media-upload-compact .media-upload-icon{width:34px;height:34px}.content-editor fieldset:disabled .media-upload{opacity:.6;cursor:wait}
.editor-language-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0}.editor-language-tabs button{padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font:inherit;font-size:11px;cursor:pointer}.editor-language-tabs button.is-selected{background:var(--forest);border-color:var(--forest);color:var(--surface)}

/* Route navigation focuses the heading for assistive technology, without a decorative border. */
.main-panel h1:focus{outline:none}

/* Destructive actions use the existing editorial danger palette. */
:root {
    --danger: #a52c32;
    --danger-surface: #fceceb;
    --danger-line: #e6b6b3;
}
.content-editor .delete-panel {
    padding: 22px;
    border-color: var(--danger-line);
    background: var(--surface);
}
.delete-panel-heading { display: flex; align-items: center; gap: 12px; }
.delete-panel-heading > div { min-width: 0; }
.delete-panel-icon {
    display: grid;
    place-items: center;
    flex: 0 0 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--danger-surface);
    color: var(--danger);
}
.delete-panel-icon svg { width: 21px; height: 21px; }
.delete-panel-caption { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.content-editor .delete-panel h2 { margin: 0; font-size: 18px; line-height: 1.35; letter-spacing: -.02em; }
.delete-panel .delete-panel-description { margin: 16px 0 18px; font-size: 12px; line-height: 1.8; }
.delete-panel .content-danger, .delete-panel-cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--danger-line);
    border-radius: 9px;
    background: var(--surface);
    color: var(--danger);
    font: 700 12px/1.5 var(--font-ui);
    cursor: pointer;
    transition: background-color .18s, border-color .18s, color .18s;
}
.delete-panel .delete-panel-trigger { width: 100%; }
.delete-panel .content-danger:hover, .delete-panel .delete-panel-confirm { background: var(--danger); border-color: var(--danger); color: var(--surface); }
.delete-panel .delete-panel-confirm:hover { background: color-mix(in srgb, var(--danger), var(--ink) 18%); }
.delete-panel-confirmation { padding: 15px; border: 1px solid var(--danger-line); border-radius: 12px; background: var(--danger-surface); }
.delete-panel-confirmation p { margin: 0 0 15px; color: var(--ink); font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.delete-panel-confirmation strong { font-weight: 750; }
.delete-panel-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.delete-panel-actions .content-danger { flex: 1 1 auto; }
.delete-panel-cancel { border-color: var(--line); color: var(--ink); }
.delete-panel-cancel:hover { background: var(--paper); }
.delete-panel button:focus-visible { outline: 3px solid var(--danger); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    .delete-panel .content-danger, .delete-panel-cancel { transition: none; }
}
