@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.table{display:table}.hidden{display:none}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color:var(--sl-ink);background:var(--sl-canvas);font-synthesis:none;font-variant-numeric:tabular-nums;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Be Vietnam Pro,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0}button,input,select{font:inherit}button{cursor:pointer}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--sl-brand:#2e77df;--sl-brand-hover:#245fc0;--sl-brand-deep:#1f5fc0;--sl-brand-soft:#eff6ff;--sl-canvas:#f8fafc;--sl-surface:#fff;--sl-surface-muted:#f1f5f9;--sl-ink:#0f172a;--sl-text:#334155;--sl-muted:#64748b;--sl-outline:#e2e8f0;--sl-success:#047857;--sl-success-soft:#ecfdf5;--sl-warning:#b45309;--sl-warning-soft:#fffbeb;--sl-danger:#be123c;--sl-danger-soft:#fff1f2;--sl-shadow:0 10px 30px #0f172a0f;--sl-shadow-raised:0 18px 42px #0f172a1a;--sl-on-brand:#fff;--sl-brand-outline:#bfdbfe;--sl-focus:#dbeafe;--sl-success-outline:#a7f3d0;--sl-warning-outline:#fde68a;--sl-danger-outline:#fecdd3;--sl-outline-muted:#cbd5e1;--sl-nav-label:#94a3b8;--sl-skeleton:#e2e8f0cc;--sl-overlay:#0f172a47;--sl-surface-overlay:#fffffff2;--sl-shadow-brand:0 10px 22px #2e77df33;--color-canvas:var(--sl-canvas);--color-canvas-raised:var(--sl-surface-muted);--color-surface:var(--sl-surface);--color-surface-muted:var(--sl-surface-muted);--color-surface-sunken:var(--sl-surface-muted);--color-text:var(--sl-ink);--color-text-muted:var(--sl-text);--color-text-subtle:var(--sl-muted);--color-border:var(--sl-outline);--color-border-strong:var(--sl-outline);--color-primary:var(--sl-brand);--color-primary-hover:var(--sl-brand-hover);--color-primary-soft:var(--sl-brand-soft);--color-success:var(--sl-success);--color-success-soft:var(--sl-success-soft);--color-warning:var(--sl-warning);--color-warning-soft:var(--sl-warning-soft);--color-danger:var(--sl-danger);--color-danger-soft:var(--sl-danger-soft);--color-info:var(--sl-brand-deep);--color-info-soft:var(--sl-brand-soft);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-2xl:clamp(1.625rem, 1.25rem + 1vw, 2.25rem);--font-size-3xl:clamp(2rem, 1.45rem + 1.8vw, 3rem);--line-tight:1.18;--line-normal:1.5;--line-relaxed:1.65;--radius-xs:.75rem;--radius-sm:1rem;--radius-md:1.125rem;--radius-lg:1.5rem;--radius-xl:2rem;--border-width:1px;--shadow-xs:var(--sl-shadow);--shadow-sm:var(--sl-shadow);--shadow-md:var(--sl-shadow);--shadow-lg:var(--sl-shadow-raised);--transition-fast:.18s cubic-bezier(.16, 1, .3, 1);--transition-base:.2s cubic-bezier(.16, 1, .3, 1);--transition-slow:.24s cubic-bezier(.16, 1, .3, 1);--content-max:90rem;--content-readable:80rem;--content-narrow:48rem;--page-padding:clamp(var(--space-4), 2vw, var(--space-10));--control-height:2.75rem;--nav-width:16rem;--z-navigation:30;--z-popover:50;--z-dialog:70;--z-toast:90}html{scroll-behavior:smooth;min-inline-size:20rem}body{background:var(--color-canvas);min-inline-size:20rem;color:var(--color-text);font-size:var(--font-size-base);line-height:var(--line-normal);margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{white-space:nowrap;border:0}button:disabled{cursor:not-allowed;opacity:.52}img{max-inline-size:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--color-text);font-weight:700;line-height:var(--line-tight);text-wrap:balance}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:.125rem;outline:.1875rem solid #2468c847}.primary,.secondary,.danger-button,.row-action,.text-button,.icon-button{justify-content:center;align-items:center;gap:var(--space-2);min-block-size:var(--control-height);border:var(--border-width) solid transparent;border-radius:var(--radius-md);font-size:var(--font-size-sm);white-space:nowrap;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);font-weight:700;line-height:1;display:inline-flex}.primary{padding-inline:var(--space-4);background:var(--color-primary);color:#fff;box-shadow:var(--shadow-xs)}.primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.secondary{padding-inline:var(--space-4);border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.secondary:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-muted);box-shadow:var(--shadow-xs)}.danger-button{padding-inline:var(--space-4);background:var(--color-danger);color:#fff}.danger-button:hover:not(:disabled){background:#a9303d}.row-action,.text-button{min-block-size:2rem;padding-inline:var(--space-2);color:var(--color-primary);background:0 0}.row-action:hover:not(:disabled),.text-button:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary-hover)}.danger-text{color:var(--color-danger)}.danger-text:hover:not(:disabled){background:var(--color-danger-soft);color:#9e2d39}.icon-button{inline-size:var(--control-height);color:var(--color-text-muted);background:0 0;padding:0}.icon-button:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary)}.wide{inline-size:100%}.field-label{align-items:center;gap:var(--space-2);color:var(--color-text);font-size:var(--font-size-sm);font-weight:700;line-height:1.35;display:inline-flex!important}.field-label>svg{color:var(--color-primary)}.field-label>b{color:var(--color-danger)}.muted{color:var(--color-text-muted)}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.strong{font-weight:700}.eyebrow{color:var(--color-text-subtle);font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:800;line-height:1.35}.field-error{color:var(--color-danger);font-size:var(--font-size-xs);margin-block-start:var(--space-2);font-weight:600;line-height:1.45;display:block}input,textarea,select{inline-size:100%;min-block-size:var(--control-height);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);line-height:var(--line-normal);transition:border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base)}textarea{resize:vertical;min-block-size:7rem}input::-moz-placeholder{color:var(--color-text-subtle)}textarea::-moz-placeholder{color:var(--color-text-subtle)}input::placeholder,textarea::placeholder{color:var(--color-text-subtle)}input:hover,textarea:hover,select:hover{border-color:var(--color-border-strong)}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 .1875rem #2468c824}input:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted)}input[aria-invalid=true]{border-color:var(--color-danger)}.app-shell{background:var(--color-canvas);min-block-size:100dvh;display:flex}.workspace{flex-direction:column;flex:auto;min-inline-size:0;display:flex}.content{inline-size:min(100%, var(--content-max));padding:var(--page-padding);margin-inline:auto;padding-block-end:clamp(var(--space-8), 4vw, var(--space-16));container-type:inline-size}.sidebar{z-index:var(--z-navigation);flex:0 0 var(--nav-width);block-size:100dvh;padding:var(--space-5) var(--space-3) var(--space-4);border-inline-end:var(--border-width) solid #bfcbd894;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#ffffffd1;flex-direction:column;display:flex;position:sticky;inset-block-start:0;overflow-y:auto;box-shadow:.5rem 0 1.5rem #263b590a}.sidebar-top{justify-content:space-between;align-items:center;gap:var(--space-2);padding-inline:var(--space-2);display:flex}.brand-mark,.landing-brand,.auth-brand{align-items:center;gap:var(--space-2);color:var(--color-primary-hover);font-size:var(--font-size-sm);letter-spacing:.06em;font-weight:800;display:inline-flex}.sidebar-brand{padding:var(--space-2)}.sidebar-brand>svg,.auth-brand>svg,.landing-brand>span{block-size:2.25rem;inline-size:2.25rem;padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary);place-items:center;display:grid}.school-name{padding:var(--space-6) var(--space-3) var(--space-4);color:var(--color-text);font-size:var(--font-size-sm);font-weight:700;line-height:var(--line-relaxed)}.school-name span{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:600}.sidebar nav{gap:var(--space-1);display:grid}.nav-group{gap:var(--space-1);margin-block:var(--space-2) var(--space-3);display:grid}.nav-group-label{padding:var(--space-2) var(--space-3);color:var(--color-text-subtle);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:800}.nav-item{align-items:center;gap:var(--space-3);inline-size:100%;min-block-size:var(--control-height);padding:var(--space-2) var(--space-3);border:var(--border-width) solid transparent;border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:start;transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);background:0 0;font-weight:650;display:flex}.nav-item:hover,.nav-item.active{background:var(--color-primary-soft);color:var(--color-primary-hover)}.nav-item.active{border-color:#2468c829}.landing-link{margin-block:var(--space-3) var(--space-2);border-color:var(--color-border);background:#ffffff80}.nav-chevron{opacity:.62;margin-inline-start:auto}.sidebar-bottom{border-block-start:var(--border-width) solid var(--color-border);margin-block-start:auto;padding-block-start:var(--space-3)}.user-chip{align-items:center;gap:var(--space-3);padding:var(--space-3);display:flex}.user-chip strong,.user-chip span{text-overflow:ellipsis;white-space:nowrap;max-inline-size:11rem;display:block;overflow:hidden}.user-chip strong{color:var(--color-text);font-size:var(--font-size-sm)}.user-chip span{color:var(--color-text-subtle);font-size:var(--font-size-xs);margin-block-start:var(--space-1)}.logout{color:var(--color-text-muted)}.avatar,.top-avatar{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:2.25rem;inline-size:2.25rem;color:var(--color-primary-hover);font-size:var(--font-size-sm);flex:none;place-items:center;font-weight:800;display:grid}.avatar.small{block-size:2rem;inline-size:2rem}.avatar.large{block-size:3.75rem;inline-size:3.75rem;font-size:var(--font-size-xl)}.topbar{z-index:calc(var(--z-navigation) - 1);justify-content:space-between;align-items:center;gap:var(--space-4);min-block-size:4.25rem;padding-inline:clamp(var(--space-4), 2vw, var(--space-8));border-block-end:var(--border-width) solid #bfcbd894;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#ffffffc7;display:flex;position:sticky;inset-block-start:0}.header-context,.top-actions{align-items:center;gap:var(--space-2);display:flex}.breadcrumbs{align-items:center;gap:var(--space-2);color:var(--color-text-subtle);font-size:var(--font-size-sm);display:flex}.breadcrumbs b{color:var(--color-border-strong);font-weight:500}.breadcrumbs strong{color:var(--color-text);font-weight:700}.global-search{align-items:center;gap:var(--space-2);block-size:2.5rem;min-inline-size:0;padding-inline:var(--space-3);border:var(--border-width) solid #bfcbd8ad;border-radius:var(--radius-lg);color:var(--color-text-subtle);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(.875rem);backdrop-filter:blur(.875rem);background:#ffffffb8;flex:0 30rem;display:flex;position:relative}.global-search:focus-within{border-color:#2468c89e;box-shadow:0 0 0 .1875rem #2468c824}.global-search input{min-block-size:0;box-shadow:none;background:0 0;border:0;border-radius:0;outline:none;padding:0}.global-search input:focus{box-shadow:none}.global-search input:focus-visible,.search input:focus-visible{outline:none!important}.search-results,.account-menu{z-index:var(--z-popover);border:var(--border-width) solid #bfcbd8b3;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#ffffffe6;position:absolute}.search-results{max-block-size:min(28rem,60dvh);padding:var(--space-2);display:grid;inset-block-start:calc(100% + var(--space-2));inset-inline:0;overflow:auto}.search-results button{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);text-align:start;background:0 0;display:flex}.search-results button:hover{background:var(--color-primary-soft);color:var(--color-primary-hover)}.search-results span,.search-results small{display:block}.search-results small{color:var(--color-text-subtle);margin-block-start:var(--space-1)}.search-results p{padding:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm)}.notification-button{position:relative}.notification-button b{border:2px solid var(--color-surface);border-radius:var(--radius-xs);background:var(--color-danger);color:#fff;place-items:center;block-size:1rem;min-inline-size:1rem;font-size:.625rem;display:grid;position:absolute;inset-block-start:.125rem;inset-inline-end:.125rem}.top-avatar{border:var(--border-width) solid #2468c82e;cursor:pointer}.account-menu{inline-size:min(18rem, calc(100vw - var(--space-6)));padding:var(--space-2);display:grid;inset-block-start:3.75rem;inset-inline-end:clamp(var(--space-3), 2vw, var(--space-6))}.account-menu strong,.account-menu span{padding:var(--space-2) var(--space-3)}.account-menu strong{color:var(--color-text);font-size:var(--font-size-sm)}.account-menu span{color:var(--color-text-subtle);font-size:var(--font-size-xs)}.account-menu button{padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);text-align:start;font-size:var(--font-size-sm);background:0 0;font-weight:650}.account-menu button:hover{background:var(--color-primary-soft);color:var(--color-primary-hover)}.menu-button,.close-mobile{display:none}.section-stack{gap:clamp(var(--space-5), 2vw, var(--space-8));display:grid}.content-readable{inline-size:min(100%, var(--content-readable));margin-inline:auto}.page-header,.welcome-row,.toolbar{align-items:end;gap:clamp(var(--space-4), 2vw, var(--space-7));grid-template-columns:minmax(0,auto) minmax(0,1fr);margin-block-end:clamp(var(--space-5), 2vw, var(--space-8));display:grid}.toolbar{grid-template-columns:minmax(11rem,.56fr) minmax(0,1.44fr)}.toolbar-copy,.page-header>div:first-child,.welcome-row>div:first-child{min-inline-size:0}.toolbar h2,.page-header h2,.welcome-row h2{margin-block:var(--space-1) var(--space-2)}.toolbar-description,.page-header .muted,.welcome-row .muted{max-inline-size:68ch;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-relaxed)}.count{color:var(--color-text-subtle);font-size:var(--font-size-base);vertical-align:middle;margin-inline-start:var(--space-2);font-weight:600}.toolbar-actions,.page-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);min-inline-size:0;display:flex}.toolbar-actions{flex-wrap:nowrap}.toolbar-filters{align-items:center;gap:var(--space-2);flex:auto;min-inline-size:0;display:flex}.toolbar-filters>*{flex:12rem;min-inline-size:12rem}.search{align-items:center;gap:var(--space-2);min-inline-size:0;min-block-size:var(--control-height);padding-inline:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-subtle);transition:border-color var(--transition-base), box-shadow var(--transition-base);flex:15rem;display:flex}.search input{min-block-size:0;box-shadow:none;background:0 0;border:0;border-radius:0;outline:none;padding:0}.search input:focus{box-shadow:none;border:0;outline:none}.panel,.metric,.import-step,.catalog-card{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.panel{min-inline-size:0;padding:clamp(var(--space-5), 2vw, var(--space-7))}.panel-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);border-block-end:0;margin-block-end:var(--space-6);padding-block-end:0;display:flex}.panel-heading h3{margin-block-start:var(--space-1)}.panel-heading .muted{max-inline-size:58ch;font-size:var(--font-size-sm);margin-block-start:var(--space-2)}.selection-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-width) solid #2468c833;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary-hover);font-size:var(--font-size-sm);margin-block-end:var(--space-4);font-weight:700;display:flex}.table-panel{padding:0;overflow:auto}.table-panel>.panel-heading{padding:clamp(var(--space-5), 2vw, var(--space-7))}.table-panel table{border-collapse:collapse;font-variant-numeric:tabular-nums;inline-size:100%;min-inline-size:44rem}.table-scroll{overflow:auto}.table-scroll table{min-inline-size:52rem}th,td{padding:var(--space-3) var(--space-4);border-block-end:var(--border-width) solid var(--color-border);text-align:start;vertical-align:middle}th{z-index:1;background:var(--color-surface-muted);color:var(--color-text-subtle);font-size:var(--font-size-xs);letter-spacing:.025em;font-weight:800;position:sticky;inset-block-start:0}td strong{color:var(--color-text)}td small,.loan-item small{margin-block-start:var(--space-1);display:block}tbody tr{transition:background-color var(--transition-fast)}tbody tr:hover{background:var(--color-surface-muted)}tbody tr:last-child td{border-block-end:0}input[type=checkbox]{min-block-size:1rem;inline-size:1rem;accent-color:var(--color-primary)}.pagination{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-block-start:var(--border-width) solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.status,.tag,.catalog-foot>span{min-block-size:1.625rem;padding-inline:var(--space-2);border:var(--border-width) solid transparent;border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;font-weight:750;line-height:1;display:inline-flex}.tag,.catalog-foot>span{border-color:var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted)}.status.active,.status.approved,.status.fulfilled,.status.available,.status.returned,.status.resolved{background:var(--color-success-soft);color:var(--color-success)}.status.pending,.status.reserved,.status.partially_returned,.status.open{background:var(--color-warning-soft);color:var(--color-warning)}.status.overdue,.status.rejected,.status.cancelled,.status.expired,.status.lost,.status.damaged{background:var(--color-danger-soft);color:var(--color-danger)}.status.waived,.status.borrowed{background:var(--color-info-soft);color:var(--color-info)}.form-grid{gap:var(--space-4) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));display:grid}.reservation-form{gap:var(--space-4);display:grid}.reservation-book{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);margin:0;display:grid}.reservation-book span{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700}.reservation-book strong{color:var(--color-text);font-size:var(--font-size-base)}.form-grid label,.profile-form>label,.reservation-form>label,.auth-card label,.policy-row label{gap:var(--space-2);min-inline-size:0;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:650;display:grid}.form-wide{grid-column:1/-1}.selector{min-inline-size:0;display:block;position:relative}.selector-trigger{inline-size:100%;min-block-size:var(--control-height);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm);text-align:start;white-space:nowrap;transition:border-color var(--transition-base), box-shadow var(--transition-base);font-weight:500}.selector-trigger:hover,.selector.is-open .selector-trigger{border-color:var(--color-primary)}.selector.is-open .selector-trigger{box-shadow:0 0 0 .1875rem #2468c824}.selector-backdrop{z-index:calc(var(--z-popover) - 1);position:fixed;inset:0}.selector-menu{z-index:var(--z-popover);border:var(--border-width) solid #bfcbd8b8;border-radius:var(--radius-lg);background:var(--color-surface);block-size:auto;min-inline-size:0;box-shadow:var(--shadow-lg);position:absolute;inset-block-start:calc(100% + var(--space-2));inset-inline:0;overflow:hidden}.selector-options{block-size:auto;max-block-size:min(15rem,55dvh);overflow-y:auto}.selector-options button{box-sizing:border-box;block-size:3rem;min-block-size:3rem;inline-size:100%;padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:start;background:0 0;border-radius:0;flex:0 0 3rem;font-weight:500;display:block}.selector-options button:hover,.selector-options button.active,.selector-options button.selected{background:var(--color-primary-soft);color:var(--color-primary-hover)}.selector-options button:disabled{cursor:not-allowed;opacity:.5}.selector-empty{padding:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm)}.selector-hint{padding:var(--space-2) var(--space-3);border-block-start:var(--border-width) solid var(--color-border);color:var(--color-text-subtle);font-size:.6875rem}.role-choice{gap:var(--space-3);border:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));margin:0;padding:0;display:grid}.role-choice legend{inline-size:100%;padding-block-end:var(--space-2)}.role-option{align-items:center;gap:var(--space-3);min-block-size:3.75rem;padding:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);text-align:start;transition:border-color var(--transition-base), background-color var(--transition-base), box-shadow var(--transition-base);display:flex}.role-option:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted)}.role-option>svg:first-child{block-size:2rem;inline-size:2rem;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);flex:none}.role-option strong{color:var(--color-text);font-size:var(--font-size-sm)}.role-option.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.role-check{color:var(--color-success);margin-inline-start:auto}.role-option:not(.selected) .role-check{visibility:hidden}.modal-backdrop{z-index:var(--z-dialog);padding:var(--space-4);-webkit-backdrop-filter:blur(.375rem);backdrop-filter:blur(.375rem);background:#15233a5c;place-items:center;display:grid;position:fixed;inset:0}.modal{inline-size:min(100%,42rem);max-block-size:calc(100dvh - var(--space-8));padding:clamp(var(--space-5), 3vw, var(--space-7));border:var(--border-width) solid #ffffffd1;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);animation:dialog-enter var(--transition-slow) both;background:#fffffff0;overflow:auto}.modal-heading{justify-content:space-between;align-items:center;gap:var(--space-4);margin-block-end:var(--space-7);display:flex}.modal-actions{justify-content:flex-end;gap:var(--space-2);border-block-start:0;margin-block-start:var(--space-7);padding-block-start:0;display:flex}.modal .panel-heading{border-block-end:0;margin-block-end:var(--space-6);padding-block-end:0}.reservation-form .modal-actions{margin-block-start:var(--space-2)}.availability-no{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:var(--border-width) solid;border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-danger-soft);color:var(--color-danger);border-color:#be123c38;display:grid}.modal .icon-button:focus-visible{box-shadow:0 0 0 .1875rem var(--sl-focus);outline:0}.confirm-dialog{color:var(--sl-text);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;line-height:1.5;display:grid}.confirm-dialog>svg{color:var(--sl-danger)}@keyframes dialog-enter{0%{opacity:0;transform:translateY(.5rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.empty{justify-items:center;gap:var(--space-2);padding:clamp(var(--space-8), 6vw, var(--space-16));color:var(--color-text-subtle);text-align:center;display:grid}.empty>svg{color:var(--color-primary)}.empty strong{color:var(--color-text);font-size:var(--font-size-base)}.empty span{max-inline-size:42ch;font-size:var(--font-size-sm);line-height:var(--line-relaxed)}.loading-line{min-block-size:8rem;color:var(--color-text-muted);font-size:var(--font-size-sm);place-items:center;display:grid}.chart-tooltip{gap:var(--space-1);padding:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);color:var(--color-text-muted);font-size:var(--font-size-xs);display:grid}.chart-tooltip strong{color:var(--color-text)}.metric-grid,.status-grid{gap:clamp(var(--space-3), 1.5vw, var(--space-5));grid-template-columns:repeat(auto-fit,minmax(min(100%,11.5rem),1fr));display:grid}.metric-link{align-items:center;gap:var(--space-3);inline-size:100%;padding:var(--space-4);color:var(--color-text);text-align:start;cursor:pointer;transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.metric-link:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.metric>div:not(.metric-icon){gap:var(--space-1);display:grid}.metric span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:650}.metric strong{color:var(--color-text);font-size:var(--font-size-2xl);font-variant-numeric:tabular-nums;line-height:1}.metric small{color:var(--sl-muted);font-size:.75rem}.metric-link{grid-template-columns:minmax(0,1fr) auto;padding:1.25rem}.metric-link strong{grid-column:1;font-size:1.75rem}.metric-link small{grid-column:1}.metric-arrow{grid-area:1/2/span 3}.request-row{text-align:start;background:0 0;border:0;inline-size:100%}.request-row:hover{background:var(--sl-surface-muted)}.admin-reminders{align-content:start;gap:.75rem;display:grid}.reminder-row{border:1px solid var(--sl-outline);border-radius:var(--radius-md);background:var(--sl-surface-muted);color:var(--sl-text);text-align:start;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem;display:grid}.reminder-row svg{color:var(--sl-warning)}.reminder-row strong{color:var(--sl-ink);font-size:1.25rem}.metric-icon{border-radius:var(--radius-md);place-items:center;block-size:2.375rem;inline-size:2.375rem;display:grid}.metric-icon.blue{background:var(--color-primary-soft);color:var(--color-primary)}.metric-icon.green{background:var(--color-success-soft);color:var(--color-success)}.metric-icon.amber{background:var(--color-warning-soft);color:var(--color-warning)}.metric-icon.violet{background:var(--color-info-soft);color:var(--color-info)}.metric-arrow{color:var(--color-text-subtle)}.dashboard-grid{gap:clamp(var(--space-4), 2vw, var(--space-6));grid-template-columns:minmax(0,1.5fr) minmax(18rem,.85fr);display:grid}.activity-list{display:grid}.activity-row{align-items:center;gap:var(--space-3);min-inline-size:0;padding-block:var(--space-3);border-block-end:var(--border-width) solid var(--color-border);white-space:normal;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.activity-row:last-child{border-block-end:0}.activity-row strong,.activity-row span{overflow-wrap:anywhere;display:block}.activity-row>div:nth-child(2){min-inline-size:0}.activity-row strong{color:var(--color-text);font-size:var(--font-size-sm)}.activity-row span,.activity-row time{color:var(--color-text-subtle);font-size:var(--font-size-xs);overflow-wrap:anywhere;white-space:normal;margin-block-start:var(--space-1)}.activity-icon{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:2.125rem;inline-size:2.125rem;color:var(--color-primary);place-items:center;display:grid}.attention{align-content:start}.member-split{gap:var(--space-3);padding-block:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.member-split>div{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-muted);display:grid}.member-split strong{color:var(--color-text);font-size:var(--font-size-2xl);font-variant-numeric:tabular-nums}.member-split span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.mini-callout{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--font-size-sm);display:flex}.status-grid .metric{gap:var(--space-1);padding:var(--space-4);display:grid}.chart-wrap{block-size:clamp(15rem,32vw,23rem);padding-block-start:var(--space-5)}.book-cell,.incident-cell,.borrower-meta{align-items:center;gap:var(--space-3);display:flex}.book-cell>div:last-child,.incident-cell>div,.borrower-meta>div{min-inline-size:0}.book-cell strong,.book-cell span,.incident-cell strong,.incident-cell small,.borrower-meta strong,.borrower-meta small{display:block}.book-cell span,.incident-cell small,.borrower-meta small{color:var(--color-text-subtle);font-size:var(--font-size-xs);margin-block-start:var(--space-1)}.book-cover{border-radius:var(--radius-sm);background:var(--color-primary-soft);block-size:3rem;inline-size:2.5rem;color:var(--color-primary);flex:none;place-items:center;font-weight:800;display:grid}.catalog-grid{gap:clamp(var(--space-3), 1.5vw, var(--space-5));grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));display:grid}.catalog-card{min-inline-size:0;color:var(--color-text);transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.catalog-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);z-index:2;transform:translateY(-4px)scale(1.02)}.catalog-cover{background:var(--color-surface-sunken);block-size:clamp(12rem,18vw,17rem);color:var(--color-primary);place-items:center;display:grid;position:relative;overflow:hidden}.catalog-cover>img,.book-detail-cover>img,.detail-cover>img{-o-object-fit:cover;object-fit:cover;block-size:100%;inline-size:100%}.cover-fallback{place-items:center;gap:var(--space-2);padding:var(--space-5);color:var(--color-primary);text-align:center;display:grid}.cover-fallback span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700}.book-status{min-block-size:1.625rem;padding-inline:var(--space-2);border:var(--border-width) solid #ffffffbf;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:800;line-height:1.625rem;position:absolute;inset-block-start:var(--space-3);inset-inline-end:var(--space-3)}.book-status.available{background:var(--color-success-soft);color:var(--color-success)}.book-status.unavailable{background:var(--color-danger-soft);color:var(--color-danger)}.catalog-body{align-content:start;gap:var(--space-2);padding:var(--space-4);flex:auto;display:grid}.catalog-body h3{font-size:var(--font-size-base);line-height:1.35}.user-shell .catalog-card{box-shadow:none;background:0 0;border:0;border-radius:.625rem;position:relative;overflow:visible}.user-shell .catalog-card .catalog-cover{border-radius:.375rem;overflow:hidden}.user-shell .catalog-card .book-status{z-index:1;margin:0;position:absolute;inset-block-start:.75rem;inset-inline-start:.75rem}.user-shell .catalog-card .catalog-body>.status{z-index:1;margin:0;position:absolute;inset-block-start:.75rem;inset-inline-start:.75rem;box-shadow:0 .25rem .75rem #0f172a1f}.user-shell .catalog-grid{scroll-snap-type:x proximity;scrollbar-width:thin;background:0 0;border-radius:.875rem;flex-wrap:nowrap;gap:1rem;padding:.5rem .25rem 1rem;display:flex;overflow-x:auto}.user-shell .catalog-grid>.catalog-card{aspect-ratio:2/3;scroll-snap-align:start;flex:0 0 clamp(11rem,16vw,14rem)}.user-shell .catalog-grid>.catalog-card .catalog-cover{aspect-ratio:2/3;border-radius:var(--radius-lg);block-size:100%;inline-size:100%}.user-shell .catalog-grid>.catalog-card .catalog-cover>img{-o-object-fit:cover;object-fit:cover}.user-shell .notifications-panel{box-sizing:border-box;inline-size:100%}.book-line{align-items:flex-start;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-normal);display:flex}.book-line svg{color:var(--color-primary);flex:none;margin-block-start:.0625rem}.catalog-foot{justify-content:space-between;align-items:center;gap:var(--space-2);margin-block-start:var(--space-2);display:flex}.catalog-foot strong{color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:end}.back-link{align-items:center;gap:var(--space-2);inline-size:fit-content;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:700;display:inline-flex}.back-link:hover{color:var(--color-primary-hover)}.book-detail,.profile-grid{gap:var(--space-5);max-inline-size:var(--content-readable);display:grid}.book-detail-card,.detail-hero{gap:clamp(var(--space-5), 3vw, var(--space-8));padding:clamp(var(--space-5), 3vw, var(--space-8));border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);grid-template-columns:minmax(12rem,.42fr) minmax(0,1fr);display:grid}.book-detail-cover,.detail-cover{border-radius:var(--radius-md);background:var(--color-surface-sunken);min-block-size:15rem;color:var(--color-primary);place-items:center;display:grid;overflow:hidden}.book-detail-copy,.detail-meta{align-content:start;gap:var(--space-4);min-inline-size:0;display:grid}.book-detail-copy h2,.detail-meta h2{margin-block-start:calc(var(--space-2) * -1)}.detail-meta-grid,.loan-detail-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));display:grid}.detail-meta-grid>div,.loan-detail-grid>div{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-muted);display:grid}.detail-meta-grid span,.loan-detail-grid span{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:650}.detail-meta-grid strong,.loan-detail-grid strong{color:var(--color-text);font-size:var(--font-size-sm)}.detail-description{gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-relaxed);display:grid}.detail-description b{color:var(--color-text)}.availability-panel{border-radius:var(--radius-md);color:var(--sl-brand);background:#eff6ffb3;border:1px solid #dbeafe;align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.availability-panel strong,.availability-panel span{display:block}.availability-panel strong{color:var(--sl-ink);font-size:.9375rem}.availability-panel span{color:var(--sl-text);margin-block-start:.25rem;font-size:.8125rem}.user-list-panel{border:1px solid var(--sl-outline);border-radius:var(--radius-lg);background:var(--sl-surface);box-shadow:var(--sl-shadow);overflow:hidden}.user-loan-list{display:grid}.user-loan-row{border-block-end:1px solid var(--sl-outline);grid-template-columns:4rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.75rem;display:grid}.user-loan-row:last-child{border-block-end:0}.book-row-cover{aspect-ratio:2/3;background:var(--sl-surface-muted);inline-size:3rem;color:var(--sl-brand);border-radius:.75rem;place-items:center;display:grid}.user-loan-copy{min-inline-size:0}.user-loan-copy strong,.user-loan-copy span,.user-loan-copy small{display:block}.user-loan-copy strong{color:var(--sl-ink);font-size:.9375rem}.user-loan-copy span{color:var(--sl-muted);align-items:center;gap:.375rem;margin-block-start:.25rem;font-size:.8125rem;display:flex}.user-loan-copy small{color:var(--sl-danger);margin-block-start:.5rem;font-size:.8125rem}.user-loan-actions{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.user-loan-actions .danger-button{min-block-size:2.75rem}.profile-grid{max-inline-size:42rem}.auth-card,.login-card{border-color:var(--sl-outline);border-radius:var(--radius-xl);inline-size:min(100%,28rem);box-shadow:var(--sl-shadow)}.copy-code{gap:var(--space-1);padding:var(--space-4);border:var(--border-width) dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-muted);display:grid}.copy-code span,.copy-code small{color:var(--color-text-subtle);font-size:var(--font-size-xs)}.copy-code strong{color:var(--color-primary-hover);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--font-size-lg)}.borrow-create{max-inline-size:var(--content-max)}.segmented{inline-size:fit-content;padding:var(--space-1);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);display:inline-flex}.segmented button{align-items:center;gap:var(--space-2);min-block-size:2.25rem;padding-inline:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);background:0 0;font-weight:700;display:inline-flex}.segmented button.selected{background:var(--color-surface);box-shadow:var(--shadow-xs);color:var(--color-primary-hover)}.borrow-workspace{gap:clamp(var(--space-7), 4vw, var(--space-10));display:grid}.borrow-section{min-inline-size:0}.visitor-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.borrow-user-list{gap:var(--space-2);max-block-size:27rem;margin-block-start:var(--space-4);display:grid;overflow-y:auto}.borrow-user{gap:var(--space-1);padding:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);text-align:start;display:grid}.borrow-user strong{color:var(--color-text);font-size:var(--font-size-sm)}.borrow-user span{color:var(--color-text-subtle);font-size:var(--font-size-xs)}.borrow-user:hover,.borrow-user.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.request-book-meta,.incident-note{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:500;line-height:var(--line-normal);margin-block-start:var(--space-1);display:block}.loan-item{gap:var(--space-1);display:grid}.loan-item+.loan-item{margin-block-start:var(--space-3)}.loan-detail-hero{gap:var(--space-5);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.loan-detail-icon{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:3.25rem;inline-size:3.25rem;color:var(--color-primary);place-items:center;display:grid}.loan-detail-heading{gap:var(--space-1);display:grid}.loan-date-card{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-muted);display:grid}.loan-date-card span{color:var(--color-text-subtle);font-size:var(--font-size-xs)}.incident-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.incident-fee{align-items:center;gap:var(--space-2);color:var(--color-text-muted);display:inline-flex}.incidents-table .panel-heading{margin-block-end:0}.settings-page{max-inline-size:none}.settings-panel,.department-panel{gap:var(--space-5);max-inline-size:none;display:grid}.policy-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,32rem),1fr));display:grid}.policy-row{gap:var(--space-3);padding:var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr));display:grid}.policy-row>header{align-items:center;gap:var(--space-3);grid-column:1/-1;display:flex}.policy-row h3,.policy-row p{margin:0}.policy-row p{color:var(--color-text-subtle);font-size:var(--font-size-xs);margin-block-start:var(--space-1)}.policy-badge{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:2.25rem;inline-size:2.25rem;color:var(--color-primary-hover);font-size:var(--font-size-xs);place-items:center;font-weight:800;display:grid}.department-panel .panel-heading h3{margin-block:var(--space-1) var(--space-2)}.department-composer{align-items:center;gap:var(--space-2);inline-size:min(100%,42rem);display:flex}.department-composer input{flex:auto;min-inline-size:0}.department-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.department-chip{align-items:center;gap:var(--space-2);min-block-size:2.125rem;padding-inline:var(--space-2) var(--space-1);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:700;display:inline-flex}.department-chip button{border-radius:var(--radius-sm);block-size:1.5rem;inline-size:1.5rem;color:var(--color-text-subtle);background:0 0;place-items:center;display:grid}.department-chip button:hover{background:var(--color-primary-soft);color:var(--color-primary)}.import-page{gap:clamp(var(--space-5), 2vw, var(--space-8));max-inline-size:var(--content-max);display:grid}.import-workflow{gap:var(--space-4);grid-template-columns:1fr;display:grid}.import-step.is-disabled{opacity:.58}.import-step h2{font-size:var(--font-size-lg)}.import-step{gap:var(--space-4);padding:var(--space-5);grid-template-columns:auto minmax(0,1fr);display:grid}.import-step>span{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:2.125rem;inline-size:2.125rem;color:var(--color-primary-hover);font-size:var(--font-size-xs);place-items:center;font-weight:800;display:grid}.import-step>div{align-content:start;gap:var(--space-3);display:grid}.import-step h3{font-size:var(--font-size-lg)}.import-step p,.import-result p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-relaxed)}.file-drop{gap:var(--space-2);padding:var(--space-4);border:var(--border-width) dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-primary);cursor:pointer;justify-items:start;display:grid}.file-drop strong{color:var(--color-text);font-size:var(--font-size-sm)}.file-drop input{opacity:0;block-size:.0625rem;inline-size:.0625rem;position:absolute}.import-result{gap:var(--space-3);padding:var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--radius-md);grid-template-columns:auto minmax(0,1fr);display:grid}.import-result.success{background:var(--color-success-soft);color:var(--color-success);border-color:#137a5238}.import-result.error{background:var(--color-danger-soft);color:var(--color-danger);border-color:#bd3a4838}.import-result strong{color:var(--color-text)}.preview-errors{gap:var(--space-1);font-size:var(--font-size-xs);grid-column:1/-1;padding-block-start:var(--space-2);display:grid}.profile-form{gap:var(--space-5);display:grid}.profile-heading{align-items:center;gap:var(--space-4);border-block-end:var(--border-width) solid var(--color-border);padding-block-end:var(--space-5);display:flex}.profile-heading h3{margin-block:var(--space-1)}.profile-actions{justify-content:flex-end;display:flex}.member-editor-head{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-muted);margin-block-end:var(--space-5);display:flex}.member-editor-icon{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:2.25rem;inline-size:2.25rem;color:var(--color-primary);place-items:center;display:grid}.member-editor-head strong,.member-editor-head span,.member-editor-head small{display:block}.member-editor-head span,.member-editor-head small{color:var(--color-text-subtle);font-size:var(--font-size-xs);margin-block-start:var(--space-1)}.notification-row{inline-size:100%;color:inherit;text-align:start;background:0 0;border:0}.notification-row.unread{margin-inline:calc(var(--space-2) * -1);padding-inline:var(--space-2);border-radius:var(--radius-md);background:var(--color-primary-soft)}.notification-detail{gap:var(--space-5);color:var(--color-text-muted);line-height:var(--line-relaxed);display:grid}.notification-detail-heading{align-items:center;gap:var(--space-3);display:flex}.user-dashboard{gap:clamp(var(--space-4), 1.8vw, var(--space-6))}.user-dashboard-hero{align-items:center;gap:clamp(var(--space-5), 3vw, var(--space-10));padding:clamp(var(--space-6), 3vw, var(--space-10));grid-template-columns:auto minmax(0,1fr) minmax(12rem,.42fr);display:grid}.dashboard-book-mark{aspect-ratio:4/5;border:var(--border-width) solid #2468c82e;border-radius:var(--radius-lg);background:var(--color-primary-soft);inline-size:clamp(5.5rem,9vw,7.5rem);color:var(--color-primary);place-items:center;display:grid}.dashboard-hero-copy{gap:var(--space-3);display:grid}.dashboard-hero-copy h2{font-size:var(--font-size-2xl)}.dashboard-hero-copy>p:not(.eyebrow){max-inline-size:63ch;color:var(--color-text-muted);line-height:var(--line-relaxed)}.dashboard-hero-actions{gap:var(--space-2);flex-wrap:wrap;padding-block-start:var(--space-1);display:flex}.dashboard-hero-note{gap:var(--space-2);border-inline-start:var(--border-width) solid var(--color-border);padding-inline-start:clamp(var(--space-4), 2vw, var(--space-7));display:grid}.dashboard-hero-note span,.user-action-card span{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700}.dashboard-hero-note strong{color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-relaxed)}.user-action-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.user-action-card{align-items:start;gap:var(--space-3);min-inline-size:0;padding:var(--space-5);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.user-action-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.user-action-icon{border-radius:var(--radius-md);background:var(--color-primary-soft);block-size:2.5rem;inline-size:2.5rem;color:var(--color-primary);place-items:center;display:grid}.user-action-card strong,.user-action-card p{margin:0;display:block}.user-action-card strong{color:var(--color-text);font-size:var(--font-size-lg);margin-block-start:var(--space-2)}.user-action-card p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-relaxed);margin-block-start:var(--space-2)}.user-action-arrow{color:var(--color-primary);align-self:center}.landing{min-block-size:100dvh;padding:var(--page-padding);background:var(--color-canvas)}.landing-header,.landing-hero{inline-size:min(100%, var(--content-max));margin-inline:auto}.landing-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-3);display:flex}.landing-header nav{justify-content:flex-end;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);flex-wrap:wrap;font-weight:700;display:flex}.landing-header nav a:hover{color:var(--color-primary)}.nav-loading{color:var(--color-text-subtle);font-size:var(--font-size-xs)}.landing-hero{gap:clamp(var(--space-8), 8vw, var(--space-16));padding-block:clamp(var(--space-10), 10vw, 8rem);grid-template-columns:minmax(0,1fr) minmax(20rem,.82fr);align-items:center;display:grid}.hero-copy{gap:var(--space-5);max-inline-size:39rem;display:grid}.hero-badge{align-items:center;gap:var(--space-2);inline-size:fit-content;padding:var(--space-2) var(--space-3);border:var(--border-width) solid #2468c82e;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary-hover);font-size:var(--font-size-xs);font-weight:750;display:inline-flex}.hero-copy h1{letter-spacing:-.035em;font-size:clamp(2.5rem,5vw,5.25rem)}.hero-copy>p{color:var(--color-text-muted);line-height:var(--line-relaxed)}.hero-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.auth-page,.not-found-page{min-block-size:100dvh;padding:var(--page-padding);background:var(--color-canvas);place-items:center;display:grid}.auth-card,.login-card{inline-size:min(100%, var(--content-narrow));padding:clamp(var(--space-6), 4vw, var(--space-10));border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-md)}.auth-card-register{inline-size:min(100%,36rem)}.auth-brand{margin-block-end:var(--space-7)}.auth-card h1{margin-block:var(--space-2)}.auth-card>.muted{max-inline-size:52ch;font-size:var(--font-size-sm);line-height:var(--line-relaxed)}.auth-card form{gap:var(--space-4);margin-block-start:var(--space-7);display:grid}.auth-footer{gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;margin-block-start:var(--space-6);display:grid}.auth-footer a{color:var(--color-primary);font-weight:700}.auth-loading{padding-block:var(--space-8);color:var(--color-text-muted);text-align:center}.access-denied-page{min-block-size:100dvh;padding:var(--page-padding);place-items:center;display:grid}.access-denied-card{justify-items:center;gap:var(--space-4);inline-size:min(100%, var(--content-narrow));padding:var(--space-10);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);text-align:center;display:grid}.access-denied-icon{border-radius:var(--radius-lg);background:var(--color-danger-soft);block-size:3rem;inline-size:3rem;color:var(--color-danger);place-items:center;display:grid}.access-denied-actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@container (width<=64rem){.toolbar{grid-template-columns:1fr}.toolbar-actions{justify-content:flex-start}}@media (width<=64rem){.sidebar{transition:transform var(--transition-slow);position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar.open{box-shadow:var(--shadow-lg);transform:translate(0)}.menu-button,.close-mobile{display:inline-flex}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid .attention{max-inline-size:var(--content-readable)}.user-dashboard-hero{grid-template-columns:auto minmax(0,1fr)}.dashboard-hero-note{border-block-start:var(--border-width) solid var(--color-border);border-inline-start:0;grid-column:1/-1;padding-block-start:var(--space-4);padding-inline-start:0}}@media (width<=47.9375rem){.topbar{min-block-size:4rem;padding-inline:var(--space-4)}.breadcrumbs span,.breadcrumbs b,.global-search,.quick-action{display:none}.content{padding-block-end:6.25rem}.page-header,.welcome-row,.toolbar{grid-template-columns:1fr;align-items:start}.toolbar-actions,.page-actions{flex-wrap:wrap;justify-content:stretch}.toolbar-actions>.search,.toolbar-filters,.page-actions>input{flex:100%}.toolbar-filters{flex-wrap:wrap}.toolbar-filters>*{flex:min(100%,10rem);min-inline-size:0}.toolbar-actions>.primary,.toolbar-actions>.secondary,.page-actions>.primary,.page-actions>.secondary{flex:auto}.panel{padding:var(--space-4)}.panel-heading{flex-direction:column;align-items:flex-start}.selection-bar,.department-composer,.modal-actions{flex-direction:column;align-items:stretch}.selection-bar>*,.department-composer>*,.modal-actions>*{inline-size:100%}.book-detail-card,.detail-hero,.loan-detail-hero,.landing-hero{grid-template-columns:1fr}.loan-detail-hero{align-items:start}.loan-date-card{inline-size:fit-content}.detail-cover,.book-detail-cover{min-block-size:13rem}.catalog-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr))}.catalog-cover{block-size:11.5rem}.catalog-body{padding:var(--space-3)}.catalog-foot{flex-direction:column;align-items:flex-start}.catalog-foot strong{text-align:start}.activity-row{grid-template-columns:auto minmax(0,1fr) auto}.activity-row time{grid-column:2/-1}.user-dashboard-hero{gap:var(--space-5);grid-template-columns:1fr}.dashboard-book-mark{inline-size:5rem}.dashboard-hero-note{grid-column:auto}.user-action-grid{grid-template-columns:1fr}.user-mobile-nav{z-index:var(--z-navigation);min-block-size:4.5rem;padding:var(--space-2) var(--space-3) max(var(--space-2), env(safe-area-inset-bottom));border-block-start:var(--border-width) solid #bfcbd8b3;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#ffffffdb;justify-content:space-around;align-items:stretch;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -.5rem 1.5rem #263b5914}.mobile-nav-link{align-content:center;place-items:center;gap:var(--space-1);border-radius:var(--radius-md);color:var(--color-text-subtle);flex:1 1 0;font-size:.6875rem;font-weight:700;display:grid}.mobile-nav-link.active{background:var(--color-primary-soft);color:var(--color-primary-hover)}.user-shell .sidebar,.user-shell .menu-button{display:none}.landing{padding:var(--space-4)}.landing-header nav{gap:var(--space-3)}.landing-hero{padding-block:var(--space-10)}.hero-library-scene{min-block-size:18rem}.auth-page,.not-found-page{padding:var(--space-4);place-items:start center}.auth-card,.login-card{margin-block:var(--space-6);padding:var(--space-5)}.auth-card .role-choice{grid-template-columns:1fr 1fr}.modal{max-block-size:calc(100dvh - var(--space-6));padding:var(--space-5)}}@media (width<=30rem){.auth-card .role-choice,.role-choice,.catalog-grid{grid-template-columns:1fr}.top-actions{gap:0}.member-split,.detail-meta-grid,.loan-detail-grid{grid-template-columns:1fr}}:root{--space-7:2rem;--font-size-base:.9375rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.25rem}body{background:var(--sl-canvas);color:var(--sl-text);line-height:1.5}h1,h2,h3{color:var(--sl-ink);font-weight:600}h1{font-size:var(--font-size-3xl);line-height:1.2}.primary,.secondary,.danger-button,.icon-button{border-radius:var(--radius-md);min-block-size:2.75rem;font-size:var(--font-size-sm);font-weight:600}.primary{background:var(--sl-brand);box-shadow:var(--sl-shadow-brand)}.primary:hover:not(:disabled){background:var(--sl-brand-hover);transform:scale(.98)}.secondary{border-color:var(--sl-outline);color:var(--sl-text);box-shadow:var(--sl-shadow)}.secondary:hover:not(:disabled){border-color:var(--sl-brand-outline);background:var(--sl-brand-soft);color:var(--sl-brand)}.danger-button{border-color:var(--sl-danger-outline);background:var(--sl-danger-soft);color:var(--sl-danger)}.danger-button:hover:not(:disabled),.danger-button:focus-visible:not(:disabled){border-color:var(--sl-danger);background:var(--sl-danger);color:#fff}.icon-button{border-color:var(--sl-outline);background:var(--sl-surface);inline-size:2.75rem;box-shadow:var(--sl-shadow)}.row-action,.text-button{border-radius:var(--radius-md);min-block-size:2.75rem;font-weight:600}input,textarea,select,.selector-trigger{border-color:var(--sl-outline);border-radius:var(--radius-md);min-block-size:3rem;box-shadow:none;padding:.75rem 1rem;font-size:.9375rem}input:focus,textarea:focus,select:focus,.selector.is-open .selector-trigger{border-color:var(--sl-brand);box-shadow:0 0 0 2px var(--sl-focus)}.field-label,.form-grid label,.profile-form>label,.reservation-form>label,.auth-card label,.policy-row label{color:var(--sl-text);font-weight:500}.field-error{color:var(--sl-danger);font-size:var(--font-size-sm)}.app-shell{background:var(--sl-canvas)}.content{max-inline-size:90rem;padding:1.5rem}.panel,.metric,.import-step,.catalog-card{border-color:var(--sl-outline);border-radius:var(--radius-lg);box-shadow:var(--sl-shadow)}.panel{padding:1.5rem}.panel-heading{border-color:var(--sl-outline)}.page-header,.toolbar{gap:1rem;margin-block-end:1.5rem}.toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end}.toolbar-copy h1{margin:0}.toolbar-context{color:var(--sl-muted);font-size:.8125rem;font-weight:600;line-height:1.5}.toolbar-description{color:var(--sl-muted);font-size:.9375rem}.count{color:var(--sl-muted);font-size:.8125rem}.search{border-color:var(--sl-outline);border-radius:var(--radius-md);min-block-size:3rem}.search:focus-within{border-color:var(--sl-brand);box-shadow:0 0 0 2px var(--sl-focus)}.table-panel{border-radius:var(--radius-lg);padding:0}.table-panel table{min-inline-size:48rem}th,td{border-color:var(--sl-outline);padding:.75rem 1rem}th{background:var(--sl-surface-muted);color:var(--sl-muted);font-size:.75rem}td{color:var(--sl-text);font-size:.8125rem}.status,.tag,.catalog-foot>span{border:1px solid var(--sl-outline);border-radius:999px;min-block-size:auto;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.status-available{border-color:var(--sl-success-outline);background:var(--sl-success-soft);color:var(--sl-success)}.status-pending{border-color:var(--sl-warning-outline);background:var(--sl-warning-soft);color:var(--sl-warning)}.status-active{border-color:var(--sl-brand-outline);background:var(--sl-brand-soft);color:var(--sl-brand-deep)}.status-overdue{border-color:var(--sl-danger-outline);background:var(--sl-danger-soft);color:var(--sl-danger)}.status-neutral{background:var(--sl-surface-muted);color:var(--sl-muted)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a47}.modal{border-color:var(--sl-outline);border-radius:var(--radius-xl);background:var(--sl-surface);inline-size:min(100%,28rem);box-shadow:var(--sl-shadow-raised)}.empty{border:1px dashed var(--sl-outline-muted);border-radius:var(--radius-lg);background:var(--sl-surface-muted);min-block-size:14rem;padding:2.5rem 1.25rem}.empty-action{margin-block-start:.5rem}.skeleton{border-radius:var(--radius-md);background:var(--sl-skeleton)}.skeleton-page{gap:1rem;display:grid}.skeleton-heading{block-size:2.25rem;inline-size:min(100%,18rem)}.skeleton-copy{block-size:1rem;inline-size:min(100%,28rem)}.skeleton-panel{min-block-size:18rem}.sidebar{flex-basis:var(--nav-width);border-color:var(--sl-outline);background:var(--sl-surface);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:1.25rem .75rem}.nav-group-label{color:var(--sl-nav-label);letter-spacing:.12em;font-size:.6875rem}.nav-item{border-radius:var(--radius-md);min-block-size:2.75rem;color:var(--sl-text)}.nav-item:hover,.nav-item.active{background:var(--sl-brand-soft);color:var(--sl-brand);border-color:#0000}.topbar{border-color:var(--sl-outline);min-block-size:4rem;box-shadow:none;background:#fffffff2}.admin-shell .content{inline-size:min(100%,90rem);margin-inline:auto}.user-shell{min-block-size:100dvh;display:block}.user-shell .workspace{display:block}.user-shell .sidebar{display:none}.user-shell .content{max-inline-size:80rem;padding:1.25rem 1.5rem 2rem}.user-shell .topbar{z-index:var(--z-navigation);position:sticky;inset-block-start:0}.user-primary-nav{align-items:center;gap:.25rem;display:flex}.user-primary-nav>a{border-radius:var(--radius-md);min-block-size:2.75rem;color:var(--sl-text);align-items:center;padding:0 .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.user-primary-nav>a:hover,.user-primary-nav>a.active{background:var(--sl-brand-soft);color:var(--sl-brand)}.user-primary-nav .user-header-brand{color:var(--sl-brand-deep);letter-spacing:0;gap:.5rem;margin-inline-end:.75rem;padding-inline-start:0;font-weight:700}.user-primary-nav .user-header-brand:hover{color:var(--sl-brand);background:0 0}.user-mobile-title{color:var(--sl-ink);font-size:.9375rem;display:none}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.catalog-card{border-radius:var(--radius-lg);box-shadow:0 8px 24px #0f172a0d}.catalog-cover{aspect-ratio:2/3;background:var(--sl-surface-muted);block-size:auto}.book-status{inline-size:fit-content;margin:0;position:static}.catalog-body{gap:.5rem;padding:.75rem}.catalog-body h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.25rem;display:-webkit-box;overflow:hidden}.catalog-body .book-line:nth-of-type(n+3){display:none}.catalog-foot{flex-direction:column;align-items:flex-start;margin-block-start:.25rem}.catalog-skeleton{pointer-events:none}.catalog-skeleton .catalog-cover{min-block-size:0}.skeleton-text{block-size:1rem;inline-size:100%}.skeleton-text.short{inline-size:65%}.inline-error{border:1px solid var(--sl-danger-outline);border-radius:var(--radius-md);background:var(--sl-danger-soft);color:var(--sl-danger);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.9375rem;display:flex}.page-error{border:1px solid var(--sl-danger-outline);border-radius:var(--radius-lg);background:var(--sl-danger-soft);color:var(--sl-danger);justify-items:start;gap:1rem;padding:1.25rem;display:grid}.row-action-menu{display:inline-flex;position:relative}.row-action-popover{z-index:var(--z-dialog);border:1px solid var(--sl-outline);border-radius:var(--radius-md);background:var(--sl-surface);max-block-size:calc(100dvh - 1rem);min-inline-size:11rem;box-shadow:var(--sl-shadow-raised);padding:.25rem;display:grid;position:fixed;inset:auto;overflow-y:auto}.row-action-option{border-radius:var(--radius-sm);min-block-size:2.5rem;color:var(--sl-text);font:inherit;font-size:var(--font-size-sm);text-align:start;white-space:nowrap;background:0 0;border:0;align-items:center;gap:.5rem;padding-inline:.75rem;display:flex}.row-action-option:hover:not(:disabled),.row-action-option:focus-visible{background:var(--sl-brand-soft);color:var(--sl-brand)}.row-action-option.danger-text:hover:not(:disabled),.row-action-option.danger-text:focus-visible{background:var(--sl-danger-soft);color:var(--sl-danger)}.landing{background:var(--sl-canvas)}.landing-header{min-block-size:4rem;max-inline-size:80rem;padding-block:.75rem}.landing-header nav{align-items:center;gap:1rem}.landing-header nav>a:last-child{border:1px solid var(--sl-outline);border-radius:var(--radius-md);background:var(--sl-surface);min-block-size:2.75rem;color:var(--sl-text);align-items:center;padding:0 1rem;display:inline-flex}.landing-hero{grid-template-columns:minmax(0,.9fr) minmax(20rem,1.1fr);gap:3rem;max-inline-size:80rem;padding-block:3rem}.hero-copy{gap:1.25rem}.hero-school{color:var(--sl-brand-deep);font-size:.8125rem;font-weight:600}.hero-copy h1{letter-spacing:0;max-inline-size:12ch;font-size:2.5rem}.hero-copy h1 span{color:inherit}.hero-copy>p{color:var(--sl-text);font-size:1rem;line-height:1.75}.hero-library-image{aspect-ratio:4/3;border-radius:var(--radius-xl);-o-object-fit:cover;object-fit:cover;min-block-size:20rem;inline-size:100%;box-shadow:var(--sl-shadow)}.user-dashboard-hero{border-radius:var(--radius-xl);background:var(--sl-brand);color:#fff;box-shadow:var(--sl-shadow)}.user-dashboard-hero h2,.user-dashboard-hero strong{color:#fff}.user-dashboard-hero .eyebrow,.user-dashboard-hero p,.user-dashboard-hero span{color:#dbeafe}.user-dashboard-hero .dashboard-book-mark{color:#fff;background:#ffffff1f;border-color:#ffffff47}.user-dashboard-hero .secondary{color:var(--sl-brand-deep);background:#fff;border-color:#ffffff80}.user-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.user-metric{border:1px solid var(--sl-outline);border-radius:var(--radius-lg);background:var(--sl-surface);box-shadow:var(--sl-shadow);color:var(--sl-brand);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:1.25rem;display:grid}.user-metric span{color:var(--sl-muted);font-size:.8125rem}.user-metric strong{color:var(--sl-ink);grid-column:2;font-size:1.75rem;line-height:1}.user-metric>svg:last-child{color:var(--sl-muted);grid-area:1/3/span 2}.due-list{display:grid}.due-row{border-block-end:1px solid var(--sl-outline);color:var(--sl-brand);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem 0;display:grid}.due-row:last-child{border-block-end:0}.due-row strong,.due-row span{display:block}.due-row strong{color:var(--sl-ink);font-size:.9375rem}.due-row span{color:var(--sl-muted);font-size:.8125rem}.due-skeleton{gap:.75rem;display:grid}.due-skeleton .skeleton{block-size:3.5rem}@media (width>=640px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=768px){.content{padding:1.5rem}.catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1280px){.catalog-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width<=1023px){.admin-shell .sidebar{z-index:var(--z-dialog)}.admin-shell .content{padding:1.25rem 1rem}}@media (width<=767px){h1{font-size:1.75rem}.content,.user-shell .content{padding:1.25rem 1rem calc(6rem + env(safe-area-inset-bottom))}.toolbar,.page-header{grid-template-columns:1fr;align-items:stretch}.toolbar-actions{flex-wrap:wrap;justify-content:stretch}.toolbar-actions>.search,.toolbar-filters{flex:100%}.toolbar-actions>.primary,.toolbar-actions>.secondary{flex:auto}.panel{padding:1.25rem}.notifications-panel{min-inline-size:0;padding:1rem}.notifications-panel .panel-heading{align-items:flex-start;min-inline-size:0}.notifications-panel .panel-heading>div{min-inline-size:0}.notifications-panel .panel-heading h3{overflow-wrap:anywhere}.table-panel{padding:0;overflow-x:auto}.table-panel table{min-inline-size:42rem}.user-dashboard-hero{padding:1.5rem}.user-metric-grid{grid-template-columns:1fr}.user-loan-row{grid-template-columns:3.5rem minmax(0,1fr);align-items:start}.user-loan-actions{flex-flow:wrap;grid-column:2;align-items:flex-start}.user-mobile-nav{min-block-size:3.5rem;padding:.25rem .5rem max(.25rem, env(safe-area-inset-bottom));border-color:var(--sl-outline);background:#fffffff7;box-shadow:0 -10px 30px #0f172a0f}.mobile-nav-link{border-radius:.75rem;min-block-size:3.5rem;font-size:.6875rem}.user-primary-nav{display:none}.user-mobile-title{display:block}.landing{padding:1rem}.landing-header{min-block-size:3.5rem;padding-block:.5rem}.landing-header .nav-loading{display:none}.landing-hero{grid-template-columns:1fr;gap:1.5rem;padding-block:2rem}.hero-copy h1{max-inline-size:12ch;font-size:2rem}.hero-library-image{min-block-size:15rem}}@media (hover:hover) and (pointer:fine){.user-shell .catalog-card:hover{box-shadow:none;transform:translateY(-.5rem)scale(1.04)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.user-mobile-nav{display:none}@media (width<=47.9375rem){.user-mobile-nav{display:flex}}.eyebrow{color:var(--sl-muted);letter-spacing:0;text-transform:none;font-size:.8125rem;font-weight:600}.import-workflow,.import-step{grid-template-columns:1fr}.floating-label-field{min-inline-size:0;position:relative;display:block!important}.floating-label-field>.field-label{z-index:1;background:var(--color-surface);color:var(--color-text-subtle);font-size:var(--font-size-sm);pointer-events:none;transition:inset-block-start var(--transition-base), color var(--transition-base), font-size var(--transition-base);padding-inline:.25rem;font-weight:500;line-height:1;position:absolute;inset-block-start:1.5rem;inset-inline-start:.75rem;transform:translateY(-50%);display:inline-flex!important}:-moz-any(.floating-label-field:has(input:not(:-moz-placeholder-shown))>.field-label,.floating-label-field:has(textarea:not(:-moz-placeholder-shown))>.field-label),.floating-label-field:focus-within>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}:is(.floating-label-field:has(input:not(:placeholder-shown))>.field-label,.floating-label-field:has(textarea:not(:placeholder-shown))>.field-label),.floating-label-field:focus-within>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-label-field:has(input:not(:placeholder-shown))>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-label-field:has(textarea:not(:placeholder-shown))>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-label-field:has(input[type=date])>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-label-field:has(select:valid)>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-label-field:has(option:checked:not([value=""]))>.field-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-label-field>input,.floating-label-field>textarea{z-index:0;position:relative}.floating-input-field{align-items:center;gap:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-block-size:3rem;min-inline-size:0;color:var(--color-text-subtle);transition:border-color var(--transition-base), box-shadow var(--transition-base);flex:15rem;padding-inline:.75rem;display:flex;position:relative}.floating-input-field:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 .1875rem #2468c824}.floating-input-field>input{min-block-size:0;inline-size:100%;box-shadow:none;background:0 0;border:0;border-radius:0;outline:none;padding:0}.floating-input-field>input:focus,.floating-input-field>input:focus-visible{box-shadow:none;border:0;outline:none!important}.floating-input-field>.floating-input-label{z-index:1;background:var(--color-surface);color:var(--color-text-subtle);font-size:var(--font-size-sm);pointer-events:none;transition:inset-block-start var(--transition-base), color var(--transition-base), font-size var(--transition-base);padding-inline:.25rem;line-height:1;position:absolute;inset-block-start:1.5rem;inset-inline-start:.75rem;transform:translateY(-50%)}.floating-input-field.has-icon>.floating-input-label{inset-inline-start:2.25rem}.floating-input-field:has(>input:not(:-moz-placeholder-shown))>.floating-input-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-input-field:focus-within>.floating-input-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.floating-input-field:has(>input:not(:placeholder-shown))>.floating-input-label{color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:700;inset-block-start:0}.landing-simple{background:#f8fafc;align-items:center;min-block-size:100dvh;padding:2rem clamp(1.5rem,5vw,4.25rem);display:grid}.landing-simple .landing-hero{grid-template-columns:minmax(0,1fr) minmax(24rem,.96fr);align-items:center;gap:clamp(3rem,6vw,7rem);min-block-size:calc(100dvh - 4rem);inline-size:min(100%,100rem);padding:2rem 0;display:grid}.landing-simple .hero-copy{gap:1.75rem;max-inline-size:43rem}.landing-simple .hero-school{color:#2874df;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:.5rem;inline-size:fit-content;margin:0;padding:.6rem .9rem;font-size:1rem;font-weight:700;display:inline-flex}.landing-simple .hero-copy h1{color:#101828;letter-spacing:0;max-inline-size:12ch;margin:0;font-size:5.5rem;font-weight:500;line-height:.98;display:grid}.landing-simple .hero-copy h1 span:last-child{color:#147f79}.landing-simple .hero-copy>p:not(.hero-school){color:#56708f;max-inline-size:45rem;font-size:1.15rem;line-height:1.8}.landing-simple .hero-actions{gap:.75rem;padding-block-start:.25rem}.landing-simple .hero-actions .primary,.landing-simple .hero-actions .secondary{border-radius:.875rem;min-block-size:3.75rem;padding-inline:1.35rem;font-size:1rem}.landing-simple .hero-library-scene{aspect-ratio:1.14;background:#f8fbff;border:1px solid #cbd5e1;border-radius:1.5rem;align-content:space-between;min-block-size:0;inline-size:100%;padding:4rem 1.75rem 1.75rem;display:grid;box-shadow:1.1rem 1.1rem #dbeafe}.shelf-row{border-block-end:.6rem solid #334155;align-items:flex-end;gap:.7rem;min-block-size:40%;padding:0 1.75rem 1rem .5rem;display:flex}.shelf-book{border-radius:.35rem .35rem 0 0;flex:0 0 2.75rem;position:relative;box-shadow:inset .45rem 0 #ffffff24}.shelf-book:after{content:"";background:#ffffff85;block-size:.12rem;position:absolute;inset-block-start:1rem;inset-inline:.45rem;box-shadow:0 .45rem #ffffff6b}.shelf-book-blue{background:#2867e3}.shelf-book-orange{background:#f25b0a}.shelf-book-gold{background:#d89509}.shelf-book-teal{background:#138078}.shelf-book-slate{background:#475569}.shelf-book-tall{block-size:9rem}.shelf-book-high{block-size:7.5rem}.shelf-book-medium{block-size:6.8rem}.shelf-book-short{block-size:5.6rem}@media (width<=1023px){.landing-simple .hero-copy h1{font-size:4rem}.landing-simple .landing-hero{gap:3rem}}@media (width<=767px){.landing-simple{align-items:start;padding:1.25rem}.landing-simple .landing-hero{grid-template-columns:1fr;gap:2.5rem;min-block-size:auto;padding-block:1.25rem 2rem}.landing-simple .hero-copy{gap:1.25rem}.landing-simple .hero-copy h1{font-size:3.25rem}.landing-simple .hero-copy>p:not(.hero-school){font-size:1rem}.landing-simple .hero-library-scene{border-radius:1.125rem;padding:2.75rem 1rem 1rem;box-shadow:.65rem .65rem #dbeafe}.shelf-row{border-block-end-width:.4rem;gap:.35rem;padding-inline:.5rem}.shelf-book{flex-basis:1.6rem}.shelf-book-tall{block-size:6rem}.shelf-book-high{block-size:5rem}.shelf-book-medium{block-size:4.5rem}.shelf-book-short{block-size:3.75rem}}
