/* Original LSPK visual language. Decorative layers never capture controls. */
:root { --motif-opacity:.06; }
:root[data-palette="college"][data-effective-theme="light"] {
 --bg:#f4f7f5; --surface-soft:#f0f5f3; --surface-strong:#e5eeeb;
 --surface-muted:#e5eeeb; --border:#d3e0dc; --primary:#176c61;
 --primary-strong:#10554c; --primary-action:#176c61; --primary-action-strong:#10554c;
 --primary-soft:#e5f1eb; --shadow:0 8px 30px rgba(23,57,48,.07);
}
body { isolation:isolate; }
body::before,body::after {
 content:''; position:fixed; z-index:-1; pointer-events:none;
 background-repeat:no-repeat; background-size:contain; opacity:var(--motif-opacity);
}
/* All compositions follow the viewport; SVG proportions stay intact. */
body::before,body::after { inset:0; width:100%; height:100vh; height:100dvh; }
body::before { background-position:center; background-size:cover; background-image:url('/symbols/background-dove.svg?v=0.40.11'); }
body::after { background-position:72% 3%; background-size:auto 48%; background-image:url('/symbols/background-sprout.svg?v=0.40.11'); }
:root[data-motif="sprout"] body::before { background-image:url('/symbols/background-sprout.svg?v=0.40.11'); }
:root[data-motif="dove"] body::after,:root[data-motif="sprout"] body::after,:root[data-motif="geometry"] body::after { display:none; }
:root[data-motif="geometry"] body::before,:root[data-motif="geometry"] body::after { background-image:url('/symbols/background-geometry.svg?v=0.40.11'); }
:root:is([data-motif="none"],[data-high-contrast="true"]) body::before,
:root:is([data-motif="none"],[data-high-contrast="true"]) body::after { display:none; }
:root[data-effective-theme="dark"] body::before,:root[data-effective-theme="dark"] body::after { filter:brightness(2.8) saturate(.6); }
.ui-icon { stroke-width:1.7; }
.section-symbol { display:inline-block; width:22px; height:22px; margin-inline-end:10px; vertical-align:-3px; flex:0 0 22px; }
h1 > .section-symbol { width:30px; height:30px; }
:is(.navigation-link,.navigation-submenu a,.section-menu nav a,summary,[role="tab"]) > .section-symbol { margin-inline-end:0; }
.topbar { border-bottom:1px solid var(--border); background:var(--surface); box-shadow:0 2px 14px rgba(23,57,48,.035); }
.brand-mark { border:1px solid var(--border); padding:3px; border-radius:50%; background:var(--surface); }
.portal-shell { position:relative; }
.sidebar { background:var(--surface); border-color:var(--border); box-shadow:0 6px 26px rgba(23,57,48,.04); }
.navigation a,.navigation-group-toggle { border-radius:var(--radius-sm); }
.navigation :is(a,.navigation-group-toggle):hover { background:var(--surface-soft); }
.navigation [aria-current="page"] { background:var(--primary-soft); color:var(--primary); }
.navigation .ui-icon:not(.navigation-chevron) { width:22px; height:22px; flex:0 0 22px; }
.navigation-submenu a { display:flex; align-items:center; gap:10px; }
.navigation-submenu .ui-icon { width:19px; height:19px; flex-basis:19px; }
.page-heading { padding-bottom:12px; border-bottom:1px solid var(--border); margin-bottom:24px; }
.page-heading h1 { font-weight:750; letter-spacing:-.025em; }
.page-heading p { max-width:65ch; line-height:1.6; }
.panel-heading h2,.panel-heading h3 { letter-spacing:-.015em; }
.panel-heading { gap:16px; align-items:center; }
.panel,.auth-card,.kpi-card,.resource-card,.admin-user-card { box-shadow:0 4px 18px rgba(23,57,48,.035); }
.kpi-card { position:relative; overflow:hidden; border-color:var(--border); }
.kpi-card::after { content:''; position:absolute; width:48px; height:48px; right:12px; top:12px; border:1px solid var(--border); border-radius:50%; pointer-events:none; opacity:.45; }
.section-menu { border-radius:var(--radius-md); border-color:var(--border); background:var(--surface); }
.section-menu > summary { font-size:calc(14px * var(--font-scale)); font-weight:650; }
.section-menu[open] { box-shadow:var(--shadow); }
.section-menu nav a { display:flex; align-items:center; gap:10px; min-height:44px; }
.section-menu nav a[aria-current="page"] { background:var(--primary-soft); }
:is(input,select,textarea,.button,.icon-button) { border-radius:var(--radius-sm); }
.button { font-weight:650; }
.button-primary { box-shadow:0 3px 10px color-mix(in srgb,var(--primary-action) 16%,transparent); }
.auth-layout { gap:20px; }
.auth-card { border-top:3px solid var(--primary); }
.auth-heading { font-weight:750; letter-spacing:-.025em; }
.appearance-motif-control output { font-variant-numeric:tabular-nums; color:var(--muted); }
.appearance-motif-control input[type="range"] { padding:0; accent-color:var(--primary-action); }
/* Shared stacks keep neighbouring framed surfaces apart, including notices. */
#admin-authority { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
#admin-authority > * { margin-block:0; min-width:0; }
.authority-panel { display:grid; gap:20px; }
.authority-panel > * { margin-block:0; }
:where(.panel,.notice,.compact-disclosure) + :where(.panel,.notice,.compact-disclosure) { margin-block-start:20px; }
:where(.section-stack,.form-stack,.admin-section,#admin-authority,.authority-panel) > :where(.panel,.notice,.compact-disclosure) { margin-block:0; }
.registration-consent-row { align-items:flex-start; gap:12px; }
.registration-consent-row input { flex:0 0 auto; margin-top:4px; }
.consent-link[aria-disabled="true"] { color:var(--muted); cursor:default; }
.consent-document-current { overflow-wrap:anywhere; }
@media (min-width:1001px) {
 .navigation { column-gap:4px; }
 .navigation a,.navigation-group-toggle { padding-inline:12px; }
 .sidebar .user-summary { padding-bottom:8px; }
 .sidebar .navigation > .navigation-link > .ui-icon,
 .sidebar .navigation-group-toggle > .ui-icon:first-child { display:inline-block; }
}
@media (max-width:650px) {
 body::after { background-position:center 4%; background-size:auto 32%; }
 .page-heading { margin-bottom:18px; }
 .panel-heading { gap:12px; }
}
@media (forced-colors:active),(prefers-contrast:more) {
 body::before,body::after,.kpi-card::after { display:none; }
 .button-primary { box-shadow:none; }
}
