:root{--component-button-link-bg: rgba(0, 0, 0, 0);--core-color-white: #ffffff;--core-color-black: #000000;--core-color-brand-500: #0000fe;--core-color-brand-600: #0000d9;--core-color-slate-50: #f8fafc;--core-color-slate-100: #f1f5f9;--core-color-slate-200: #e2e8f0;--core-color-slate-300: #e3e3e3;--core-color-slate-900: #0f172a;--core-color-gray-500: #8d8d8d;--core-color-success-100: #d5fff0;--core-color-success-700: #1d8b62;--core-color-warning-100: #fffed5;--core-color-warning-700: #8b661d;--core-color-danger-100: #fee2e2;--core-color-danger-700: #b91c1c;--core-color-info-100: #dbeafe;--core-color-info-700: #1d4ed8;--core-color-overlay-700: rgba(15, 23, 42, .6);--core-radius-sm: 4px;--core-radius-md: 6px;--core-radius-lg: 8px;--core-size-container-width: 1040px;--core-size-sidebar-width: 324px;--core-font-family-base: Urbanist, Inter, sans-serif;--core-font-weight-medium: 500;--core-font-weight-semibold: 600;--core-font-size-xs: 12px;--core-font-size-sm: 14px;--core-font-size-md: 16px;--core-font-size-lg: 24px;--core-spacing-1: 4px;--core-spacing-2: 8px;--core-spacing-3: 12px;--core-spacing-4: 16px;--core-spacing-6: 24px;--core-spacing-8: 32px;--component-button-ghost-bg: var(--core-color-slate-100);--color-bg: var(--core-color-slate-50);--color-surface: var(--core-color-white);--color-text: var(--core-color-black);--color-text-muted: var(--core-color-gray-500);--color-text-strong: var(--core-color-slate-900);--color-brand: var(--core-color-brand-500);--color-brand-hover: var(--core-color-brand-600);--color-inverse: var(--core-color-white);--color-overlay: var(--core-color-overlay-700);--color-sidebar-bg: var(--core-color-brand-500);--color-sidebar-item-active-bg: var(--core-color-white);--color-sidebar-item-active-text: var(--core-color-brand-500);--color-sidebar-item-text: var(--core-color-white);--border-default: var(--core-color-slate-300);--border-subtle: var(--core-color-slate-200);--radius-sm: var(--core-radius-sm);--radius-md: var(--core-radius-md);--radius-lg: var(--core-radius-lg);--container-width: var(--core-size-container-width);--container-sidebar-width: var(--core-size-sidebar-width);--font-family-base: var(--core-font-family-base);--status-active-bg: var(--core-color-success-100);--status-active-text: var(--core-color-success-700);--status-pending-bg: var(--core-color-warning-100);--status-pending-text: var(--core-color-warning-700);--status-rejected-bg: var(--core-color-danger-100);--status-rejected-text: var(--core-color-danger-700);--status-info-bg: var(--core-color-info-100);--status-info-text: var(--core-color-info-700);--component-button-default-bg: var(--color-brand);--component-button-default-bg-hover: var(--color-brand-hover);--component-button-default-text: var(--color-inverse);--component-button-outline-bg: var(--color-surface);--component-button-outline-text: var(--color-text-strong);--component-button-outline-border: var(--border-subtle);--component-button-ghost-text: var(--color-text-strong);--component-button-link-text: var(--color-text-strong);--component-badge-active-bg: var(--status-active-bg);--component-badge-active-text: var(--status-active-text);--component-badge-pending-bg: var(--status-pending-bg);--component-badge-pending-text: var(--status-pending-text);--component-badge-rejected-bg: var(--status-rejected-bg);--component-badge-rejected-text: var(--status-rejected-text);--component-badge-info-bg: var(--status-info-bg);--component-badge-info-text: var(--status-info-text)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family-base);background:var(--color-bg);color:var(--color-text)}#root{min-height:100vh}a{color:var(--color-brand);text-decoration:none}a:hover{text-decoration:underline}.app-shell{height:100vh;overflow:hidden}.app-shell--student{display:grid;grid-template-columns:var(--container-sidebar-width) 1fr}.app-shell__content{padding:2rem;height:100vh;overflow-y:auto}.app-version-badge{position:fixed;top:.85rem;right:1rem;z-index:35;border:1px solid rgba(148,163,184,.45);background:#f1f5f9eb;color:#475569;border-radius:999px;padding:.2rem .6rem;font-size:.74rem;line-height:1.2;white-space:nowrap;pointer-events:none}.student-sidebar{background:var(--color-sidebar-bg);color:var(--color-sidebar-item-text);height:100vh;overflow-y:auto;overflow-x:hidden;padding:2rem 1.5rem;display:flex;flex-direction:column}.student-sidebar__brand{display:block;margin-bottom:2.5rem}.student-sidebar__logo{width:112px;height:auto;display:block}.student-sidebar__nav{display:grid;gap:.6rem;margin-bottom:1rem}.student-sidebar__section{display:grid;gap:.35rem}.student-sidebar__section-trigger{width:100%;border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--color-sidebar-item-text);font:inherit;font-size:1rem;font-weight:500;padding:.75rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.7rem;cursor:pointer;transition:background-color .14s ease,color .14s ease}.student-sidebar__section-trigger:hover{background:#ffffff1f}.student-sidebar__section-trigger.is-active{background:#ffffff14}.student-sidebar__section-trigger.is-open{font-weight:700}.student-sidebar__section-trigger-label{display:inline-flex;align-items:center;gap:.7rem}.student-sidebar__section-chevron{display:inline-flex;align-items:center;justify-content:center;transition:transform .14s ease}.student-sidebar__section-trigger.is-open .student-sidebar__section-chevron{transform:rotate(180deg)}.student-sidebar__section-items{display:grid;gap:.3rem}.student-sidebar__item{display:inline-flex;align-items:center;gap:.7rem;color:var(--color-sidebar-item-text);border-radius:var(--radius-lg);padding:.75rem;font-size:1rem;font-weight:500;transition:background-color .14s ease,color .14s ease,transform .14s ease}.student-sidebar__item--nested{padding-left:1.5rem}.student-sidebar__item:hover{text-decoration:none;background:#ffffff1f}.student-sidebar__item-icon{width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.student-sidebar__item.is-active{background:var(--color-sidebar-item-active-bg);color:var(--color-sidebar-item-active-text);box-shadow:0 10px 28px #0f172a2e}.student-sidebar__footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.student-sidebar__footer-actions{display:inline-flex;align-items:center;gap:.5rem}.dashboard{max-width:var(--container-width);margin:0 auto;display:grid;gap:1.5rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.dashboard-header__copy{display:grid;gap:.35rem}.dashboard-header__eyebrow{display:inline-flex;align-items:center;gap:.45rem;color:var(--color-brand);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.dashboard-header h1{margin:0;font-size:2rem;line-height:1.2}.dashboard-header p{margin:.4rem 0 0;color:var(--color-text-muted)}.dashboard-header__actions{display:flex;gap:.75rem;align-items:center}.dashboard-header__actions>.ui-button,.dashboard-header__actions>*>.ui-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center}.dashboard-card{background:var(--color-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:1rem 1.25rem}.dashboard-card--filters{position:sticky;top:0;z-index:2}.dashboard-grid{display:grid;gap:.8rem}.dashboard-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-section{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--border-default);padding:1rem 1.25rem}.dashboard-section__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.9rem;gap:1rem}.dashboard-section__heading{display:grid;gap:.35rem}.dashboard-section__title-row{display:flex;align-items:center;gap:.65rem}.dashboard-section__icon{width:2rem;height:2rem;border-radius:999px;background:#0000fe14;color:var(--color-brand);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-section__header h2{margin:0;font-size:1.5rem}.dashboard-section__subtitle{margin:0;color:var(--color-text-muted);font-size:.92rem;line-height:1.5}.dashboard-section__action-link,.dashboard-section__inline-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-brand);font-weight:600;text-decoration:none}.dashboard-section__action-link:hover,.dashboard-section__inline-link:hover{text-decoration:none}.summary-grid{display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-overview,.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.analytics-overview--compact{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card{background:var(--color-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:grid;gap:.35rem}.summary-card span,.resource-card__header p,.resource-card__notes,.resource-card__meta dt{color:var(--color-text-muted)}.summary-card strong{font-size:2rem;line-height:1}.summary-card p{margin:0}.analytics-card{min-height:220px;background:linear-gradient(180deg,#fffffffa,#f8fafceb);border:1px solid rgba(226,232,240,.9);border-radius:18px;box-shadow:0 18px 40px #0f172a0f,0 4px 12px #0f172a08;padding:1.2rem 1.2rem 1rem;display:grid;align-content:start;position:relative;overflow:hidden}.analytics-card:after{content:"";position:absolute;inset:auto -44px -70px auto;width:150px;height:150px;border-radius:999px;background:#0000fe0d}.analytics-card__metric{margin-top:2.35rem;font-family:IBM Plex Mono,monospace;font-size:clamp(2.35rem,4vw,3.1rem);font-weight:700;line-height:1.2;text-align:center;color:var(--color-brand);position:relative;z-index:1}.analytics-card__caption{margin:auto 0 1rem;color:var(--color-text-muted);font-size:.74rem;line-height:1.4;max-width:28ch;position:relative;z-index:1}.analytics-card__label{display:flex;align-items:center;gap:.8rem;color:var(--color-text-strong);font-size:.92rem;font-weight:700;line-height:1.45;position:relative;z-index:1}.analytics-card__accent{width:4px;height:25px;border-radius:999px;background:var(--color-brand);flex-shrink:0}.analytics-card--blue .analytics-card__metric{color:var(--color-brand)}.analytics-card--green .analytics-card__metric{color:#34dfa0}.analytics-card--green .analytics-card__accent{background:#34dfa0}.analytics-card--green:after{background:#34dfa014}.analytics-card--yellow .analytics-card__metric{color:var(--component-badge-pending-text)}.analytics-card--yellow .analytics-card__accent{background:#f3c949}.analytics-card--yellow:after{background:#f3c9491f}.analytics-card--red .analytics-card__metric{color:var(--component-badge-rejected-text)}.analytics-card--red .analytics-card__accent{background:#ef4444}.analytics-card--red:after{background:#ef44441a}.reservations-filters{display:grid;gap:.8rem;grid-template-columns:minmax(260px,2.2fr) repeat(3,minmax(140px,.9fr));align-items:end}.reservations-filters__search,.reservations-filters__compact{min-width:0}.dashboard-list{display:grid;gap:.5rem}.dashboard-list__header,.dashboard-list__row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:1rem;align-items:center}.dashboard-list__header{background:var(--core-color-slate-100);border-radius:var(--radius-lg);padding:.75rem 1rem;font-size:.9rem;color:var(--color-text-muted);font-weight:600}.dashboard-list__row{border:1px solid var(--border-default);border-radius:14px;padding:.9rem 1rem;background:var(--color-surface)}.dashboard-list__title{font-weight:600;color:var(--color-text-strong)}.dashboard-list__meta{color:var(--color-text-muted);font-size:.92rem}.dashboard-list__header--reservations,.dashboard-list__row--reservations{grid-template-columns:1.5fr 1.5fr .7fr .9fr 1.1fr 1.1fr 1.05fr 1fr}.dashboard-list__header--reservations-review,.dashboard-list__row--reservations-review{grid-template-columns:1.5fr 1.5fr .95fr .9fr 1.2fr 1.2fr}.dashboard-list__header--requests,.dashboard-list__row--requests{grid-template-columns:1.8fr 1fr .8fr 1.2fr 1.1fr 1.1fr}.dashboard-list__header--resources,.dashboard-list__row--resources{grid-template-columns:1.8fr .95fr .7fr 1fr 1.15fr 1fr 1.05fr}.dashboard-list__group{display:grid;gap:.35rem}.list-row-card{border:1px solid var(--border-default);border-radius:14px;background:var(--color-surface);padding:.9rem 1rem;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.list-row-card.is-collapsible{cursor:pointer}.list-row-card.is-collapsible:hover,.list-row-card.is-collapsible:focus-visible,.list-row-card.is-expanded{border-color:var(--color-brand);box-shadow:0 0 0 1px #0000fe24}.list-row-card>.dashboard-list__row{border:0;background:transparent;padding:0}.reservation-id{display:inline-flex;align-items:center;gap:.4rem;min-width:0}.reservation-id__value{font-size:.8rem;font-weight:500;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis}.reservation-id__copy{border:1px solid var(--border-default);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius-sm);width:1.8rem;height:1.8rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.reservation-id__copy:hover{color:var(--color-text-strong);border-color:var(--component-button-outline-border)}.reservation-date{font-size:.85rem;color:var(--color-text)}.reservation-end__meta{display:block;margin-top:.35rem}.reservation-row__details{border:0;border-radius:0;padding:.35rem 0 .1rem;color:var(--color-text-muted);background:transparent;font-size:.82rem;line-height:1.35}.reservation-row__details strong{color:var(--color-text-muted);font-weight:600}.policy-indicator{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.22rem .55rem;font-size:.74rem;font-weight:600;line-height:1;white-space:nowrap}.policy-indicator--auto{background:#34dfa024;color:#0f5132}.policy-indicator--review{background:#f3c94929;color:#8a6708}.policy-indicator--unknown{background:#94a3b829;color:#475569}.reservation-actions{display:inline-flex;gap:.45rem;align-items:center}.reserve-dialog__trigger{height:2.4rem;min-height:2.4rem;padding-top:0;padding-bottom:0}.resource-status-toggle{min-width:2.4rem;width:2.4rem;height:2.4rem;padding:0;display:inline-flex;align-items:center;justify-content:center}.ui-button.resource-status-toggle--offline{color:#b91c1c;border-color:#b91c1c59;background:#fee2e2b3}.ui-button.resource-status-toggle--offline:hover{color:#991b1b;border-color:#991b1b73;background:#fecacacc}.ui-button.resource-status-toggle--available{color:#166534;border-color:#16653459;background:#dcfce7b3}.ui-button.resource-status-toggle--available:hover{color:#14532d;border-color:#14532d73;background:#bbf7d0cc}.request-row__title{display:block}.request-row__id{display:block;margin-top:.25rem;font-size:.78rem;font-weight:500;color:var(--color-text-muted)}.request-row__details{border:0;border-radius:0;padding:.35rem 0 .1rem;background:transparent;color:var(--color-text-muted);font-size:.82rem;line-height:1.35}.request-row__details p{margin:0}.request-row__details p+p{margin-top:.55rem}.request-row__details strong{color:var(--color-text-muted);font-weight:600}.resource-row__title{display:block}.resource-row__subtitle{display:block;margin-top:.25rem;font-size:.82rem;font-weight:500;color:var(--color-text-muted)}.resource-row__details{border:0;border-radius:0;padding:.35rem 0 .1rem;background:transparent;color:var(--color-text-muted);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;font-size:.82rem;line-height:1.35}.resource-row__details p{margin:0;color:var(--color-text-muted)}.resource-row__details strong{color:var(--color-text-muted);font-weight:600}.dashboard-notifications{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.dashboard-notifications__item{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.75rem .9rem}.dashboard-notifications__item p{margin:.3rem 0}.dashboard-notifications__item time{color:var(--color-text-muted);font-size:.85rem}.data-state{border:1px dashed var(--border-default);border-radius:var(--radius-lg);background:var(--color-surface);padding:1rem}.data-state h3{margin:0}.data-state p{margin:.4rem 0 .8rem;color:var(--color-text-muted)}.data-state--error{border-color:var(--core-color-danger-700)}.resource-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.resource-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:1rem;display:grid;gap:1rem}.resource-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.resource-card__header h3,.resource-card__meta dd{margin:0}.resource-card__header p,.resource-card__notes{margin:.3rem 0 0}.resource-card__meta{margin:0;display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}.resource-card__meta div{display:grid;gap:.2rem}.resource-card__meta dt{font-size:.85rem}.status-badge{border-radius:var(--radius-sm);padding:.2rem .7rem;font-size:.8rem;font-weight:600}.status-badge--active,.status-badge--approved{background:var(--component-badge-active-bg);color:var(--component-badge-active-text)}.status-badge--available,.status-badge--reserved{background:var(--component-badge-info-bg);color:var(--component-badge-info-text)}.status-badge--pending,.status-badge--maintenance{background:var(--component-badge-pending-bg);color:var(--component-badge-pending-text)}.status-badge--rejected,.status-badge--cancelled,.status-badge--offline{background:var(--component-badge-rejected-bg);color:var(--component-badge-rejected-text)}.badge{border-radius:var(--radius-sm);padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge--brand{background:var(--color-surface);color:var(--color-brand)}.badge--neutral{background:var(--core-color-slate-100);color:var(--color-text-strong)}.badge--success{background:var(--component-badge-active-bg);color:var(--component-badge-active-text)}.badge--warning{background:var(--component-badge-pending-bg);color:var(--component-badge-pending-text)}.resource-card--browse{background:radial-gradient(circle at top right,rgba(0,0,254,.06),transparent 34%),linear-gradient(180deg,#fffffffa,#f8fafcf2)}.resource-card__availability{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.85rem .9rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#f8fafce6}.resource-card__availability-label,.reserve-dialog__eyebrow,.reservation-picker__summary-label,.reservation-picker__date-day,.reservation-picker__date-month{color:var(--color-text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.resource-card__footer{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.resource-card__footer-copy{display:grid;gap:.25rem}.reserve-dialog{display:grid;gap:1rem}.reserve-dialog__resource{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.reserve-dialog__resource h3{margin:.25rem 0 0}.reserve-dialog__meta{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.reserve-dialog__meta div{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.75rem;background:#f8fafcd9}.reserve-dialog__meta dt{color:var(--color-text-muted);font-size:.78rem;margin-bottom:.2rem}.reserve-dialog__meta dd{margin:0;color:var(--color-text-strong);font-weight:600}.reserve-dialog__hint{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.85rem .95rem;background:#0f172a08;color:var(--color-text-muted)}.reserve-dialog__availability-note{border:1px solid rgba(243,201,73,.45);border-radius:var(--radius-md);padding:.9rem 1rem;background:#f3c9491f}.reserve-dialog__availability-note strong{color:var(--color-text-strong)}.reserve-dialog__availability-note p{margin:.4rem 0 0;color:var(--color-text-muted)}.reservation-picker{display:grid;gap:1rem}.reservation-picker__legend{display:flex;flex-wrap:wrap;gap:.55rem}.reservation-picker__dates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.reservation-picker__date-card{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--color-surface);padding:.85rem .75rem;display:grid;gap:.18rem;text-align:left;cursor:pointer;transition:border-color .14s ease,background-color .14s ease,transform .14s ease}.reservation-picker__date-card:hover{border-color:#0000fe40;transform:translateY(-1px)}.reservation-picker__date-card.is-selected{background:#0000fe0f;border-color:#0000fe4d}.reservation-picker__date-card strong{color:var(--color-text-strong);font-size:1.25rem}.reservation-picker__summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.85rem .95rem}.reservation-picker__slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.reservation-picker__slot{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.7rem .8rem;background:var(--color-surface);color:var(--color-text-strong);font:inherit;font-weight:600;cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.reservation-picker__slot:hover:not(:disabled){border-color:#0000fe40}.reservation-picker__slot.is-selected{background:#34dfa01f;border-color:#34dfa073;color:#0f5132}.reservation-picker__slot.is-busy{background:#f3c94929;border-color:#f3c94966;color:#8a6708}.reservation-picker__slot.is-past{background:#94a3b829;color:var(--color-text-muted)}.reservation-picker__slot:disabled{cursor:not-allowed}.reservation-picker__busy{display:grid;gap:.6rem}.reservation-picker__busy-list{display:flex;flex-wrap:wrap;gap:.55rem}.reservation-picker__busy-chip{border-radius:999px;background:#f3c94929;color:#8a6708;padding:.45rem .75rem;font-size:.82rem;font-weight:600}.reservation-picker__empty{margin:0;color:var(--color-text-muted)}.csv-upload{display:grid;gap:1rem}.csv-upload__dropzone{border:1px dashed rgba(0,0,254,.28);border-radius:var(--radius-lg);padding:1rem;display:grid;gap:.35rem;background:radial-gradient(circle at top right,rgba(0,0,254,.05),transparent 40%),#f8fafcd9;cursor:pointer}.csv-upload__dropzone-title{color:var(--color-text-strong);font-weight:700}.csv-upload__dropzone-copy,.csv-upload__label,.csv-upload__meta,.csv-upload__progress-copy{margin:0;color:var(--color-text-muted);font-size:.9rem}.csv-upload__input{margin-top:.35rem}.csv-upload__status{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.95rem 1rem;display:grid;gap:.75rem}.csv-upload__progress-shell{height:10px;border-radius:999px;background:#94a3b82e;overflow:hidden}.csv-upload__progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0000fee6,#34dfa0e6);transition:width .18s ease}.csv-upload__result{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.95rem 1rem;background:#34dfa014}.csv-upload__result strong{color:var(--color-text-strong)}.csv-upload__result p{margin:.45rem 0 0;color:var(--color-text-muted)}.csv-upload__result-errors{margin-top:.8rem;display:grid;gap:.35rem}.organization-form{display:grid;gap:.8rem}.create-resource-suggestions{display:inline-flex;align-items:center;gap:.55rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:#f8fafce0;padding:.55rem .75rem}.create-resource-suggestions label{font-size:.9rem;color:var(--color-text-strong);font-weight:500}.create-resource-field{display:grid;gap:.2rem}.create-resource-preview{border:1px solid var(--border-default);border-radius:var(--radius-md);background:#0f172a08;padding:.7rem .85rem}.create-resource-preview p{margin:0;color:var(--color-text-muted);font-size:.88rem}.create-resource-preview strong{color:var(--color-text-strong)}.organization-form__actions{display:flex;justify-content:flex-end}.dashboard-list__header--users,.dashboard-list__row--users{grid-template-columns:1.9fr 1.2fr .9fr 1.1fr 1.1fr}.dashboard-list__header--policies,.dashboard-list__row--policies{grid-template-columns:1.6fr .9fr 1fr .8fr .7fr 1fr .95fr}.sidebar-profile{display:flex;align-items:center;gap:.7rem}.sidebar-profile__avatar{width:42px;height:42px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#ffffff24;color:#f1f5f9eb;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-profile__content{display:grid;gap:.25rem}.sidebar-profile__content .badge{justify-self:start;justify-content:center;text-align:center}.student-sidebar__logout-icon,.student-sidebar__notify-icon{width:2.35rem;height:2.35rem;border:1px solid rgba(148,163,184,.38);border-radius:999px;background:#ffffff1f;color:var(--color-sidebar-item-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .14s ease;flex-shrink:0;position:relative}.student-sidebar__logout-icon:hover,.student-sidebar__notify-icon:hover{background:#ffffff2e}.student-sidebar__notify-dot{position:absolute;top:.34rem;right:.34rem;width:.5rem;height:.5rem;border-radius:999px;background:#ef4444;box-shadow:0 0 0 2px var(--color-sidebar-bg)}.notifications-drawer__overlay{position:fixed;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:#0f172a33;z-index:40}.notifications-drawer{position:fixed;top:0;right:0;width:min(420px,100vw);height:100vh;background:var(--color-surface);border-left:1px solid var(--border-default);box-shadow:-18px 0 40px #0f172a24;z-index:41;display:grid;grid-template-rows:auto 1fr}.notifications-drawer__header{padding:1rem;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.notifications-drawer__header h3{margin:0;font-size:1rem}.notifications-drawer__header-actions{display:inline-flex;align-items:center;gap:.4rem}.notifications-drawer__close{width:1.9rem;height:1.9rem;border:1px solid var(--border-default);border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.notifications-drawer__close:hover{color:var(--color-text-strong);border-color:var(--component-button-outline-border)}.notifications-drawer__state{margin:0;padding:1rem;color:var(--color-text-muted);font-size:.9rem}.notifications-drawer__list{list-style:none;margin:0;padding:.75rem 1rem 1rem;display:grid;align-content:start;gap:.6rem;overflow-y:auto}.notifications-drawer__item{border:1px solid var(--border-default);border-radius:12px;padding:.75rem;display:grid;gap:.55rem;background:var(--color-surface)}.notifications-drawer__item.is-unread{border-color:#0000fe4d;background:#eef2ff70}.notifications-drawer__item-copy{display:grid;gap:.3rem}.notifications-drawer__item-copy h4{margin:0;font-size:.92rem}.notifications-drawer__item-copy p{margin:0;color:var(--color-text-muted);font-size:.86rem;line-height:1.45}.notifications-drawer__item-copy time{color:var(--color-text-muted);font-size:.76rem}.ui-button{border:1px solid transparent;border-radius:var(--radius-md);font-family:inherit;font-size:.95rem;font-weight:500;line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.ui-button:disabled{opacity:.6;cursor:not-allowed}.ui-button--md{min-height:40px;padding:.5rem 1rem;font-size:.95rem}.ui-button--sm{min-height:32px;padding:.25rem .8rem;font-size:.9rem}.ui-button--default{background:var(--component-button-default-bg);color:var(--component-button-default-text)}.ui-button--default:hover{background:var(--component-button-default-bg-hover)}.ui-button--outline{background:var(--component-button-outline-bg);color:var(--component-button-outline-text);border-color:var(--component-button-outline-border)}.ui-button--ghost{background:var(--component-button-ghost-bg);color:var(--component-button-ghost-text)}.ui-button--link{background:var(--component-button-link-bg);color:var(--component-button-link-text);padding-left:0;padding-right:0}.ui-field{display:grid;gap:.35rem;align-content:start}.ui-field__label{font-weight:600;font-size:.9rem}.ui-field__input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.55rem .7rem;font:inherit;background:var(--color-surface);width:100%}.ui-field__textarea{min-height:110px;resize:vertical}.ui-field[data-invalid] .ui-field__input{border-color:var(--core-color-danger-700)}.ui-field__input:focus{outline:2px solid var(--core-color-brand-500);outline-offset:1px}.ui-field__input-wrap{position:relative;display:flex;align-items:center}.ui-field__input-wrap .ui-field__input{padding-right:3rem}.ui-field__toggle{position:absolute;right:.75rem;border:0;background:transparent;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.ui-field__message,.ui-field__helper{color:var(--color-text-muted);font-size:.85rem;min-height:1.15rem}.ui-field__error,.form-error{color:var(--core-color-danger-700);font-size:.85rem}.form-note{font-size:.85rem;margin:0}.form-note--warning{color:var(--component-badge-pending-text)}.ui-dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:1000}.ui-dialog__positioner{position:fixed;top:0;right:0;bottom:0;left:0;padding:1rem;display:grid;place-items:center;z-index:1001}.ui-dialog__content{width:min(100%,680px);max-height:calc(100vh - 2rem);overflow:auto;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--color-surface);padding:1rem;position:relative;z-index:1002}.ui-dialog__close{position:absolute;top:.7rem;right:.7rem;width:1.9rem;height:1.9rem;border:1px solid var(--border-default);border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.ui-dialog__close:hover{color:var(--color-text-strong);border-color:var(--component-button-outline-border)}.ui-dialog__title{margin:0}.ui-dialog__description{margin:.3rem 0 .8rem;color:var(--color-text-muted)}.ui-dialog__actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.9rem}.ui-dialog__actions--spread{justify-content:space-between}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);background:#fff}.auth-layout__visual{min-height:100vh;position:relative;overflow:hidden;background:#eef1f7}.auth-layout__visual-slide,.auth-layout__visual-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.auth-layout__visual-slide{background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transform:scale(1.03);transition:opacity .9s ease,transform 5.2s ease}.auth-layout__visual-slide.is-active{opacity:1;transform:scale(1)}.auth-layout__visual-overlay{background:linear-gradient(180deg,#0f172a70,#0f172a8f),linear-gradient(135deg,#0000fe1f,#0f172a0a 52%)}.auth-layout__visual-copy{position:absolute;left:3rem;right:3rem;bottom:3rem;max-width:30rem;display:grid;gap:.75rem;z-index:1}.auth-layout__visual-kicker{display:inline-flex;width:fit-content;border-radius:999px;background:#ffffff29;color:#fffffff5;padding:.35rem .7rem;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.auth-layout__visual-copy h2{margin:0;max-width:12ch;font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.02;color:#fffffffa}.auth-layout__visual-copy p{margin:0;max-width:42ch;color:#ffffffd6;font-size:1rem;line-height:1.6}.auth-layout__content{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:4rem;padding:3rem 2rem;background:linear-gradient(180deg,#fbfbff,#fff)}.auth-layout__brand{display:flex;justify-content:center}.auth-brand__logo{width:172px;max-width:100%;height:auto;display:block}.auth-card{width:min(100%,420px);background:#f8f8ff;border:1px solid rgba(226,232,240,.72);border-radius:24px;padding:1.9rem 1.6rem 1.5rem;display:grid;gap:1.25rem}.auth-card__header{text-align:center}.auth-card__header h1{margin:0;font-size:2rem;line-height:1.1}.auth-card__form{display:grid;gap:.9rem}.auth-card__submit{width:100%}.auth-card__hint{margin:0;text-align:center;color:var(--color-text-muted);font-size:.86rem}.auth-card__footer{display:flex;justify-content:center;align-items:center;gap:.5rem;color:var(--color-text-strong);font-size:.92rem}.auth-card__link{color:var(--color-text-strong);font-weight:600;text-decoration:underline}.ui-form{display:grid;gap:.9rem}.request-dialog__actions{justify-content:flex-end;margin-top:.25rem}.request-page{gap:1.25rem}.request-page__form{display:grid;gap:1rem}.request-page__card{background:var(--color-surface);border:1px solid var(--border-default);border-radius:20px;padding:1.25rem;display:grid;gap:1rem}.request-page__card-header{display:grid;gap:.35rem}.request-page__card-header h2,.request-page__guidance h3{margin:0;font-size:1.25rem}.request-page__card-header p,.request-page__guidance{margin:0;color:var(--color-text-muted)}.request-page__grid{display:grid;gap:1rem}.request-page__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.request-page__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.request-page__grid--nested{gap:.75rem}.request-page__guidance{border-top:1px solid var(--border-subtle);padding-top:1rem}.request-page__subsection{border-top:1px solid var(--border-subtle);padding-top:1rem;display:grid;gap:1rem}.request-page__guidance ul{margin:.5rem 0 0;padding-left:1.1rem}.request-page__guidance li+li{margin-top:.35rem}.request-page__actions{display:flex;justify-content:flex-end;gap:.75rem;align-items:center}.request-page__submit-wrap{position:relative;display:inline-flex}.request-page__submit-wrap[data-tooltip]:after{content:attr(data-tooltip);position:absolute;right:0;bottom:calc(100% + .65rem);width:280px;padding:.7rem .8rem;border-radius:10px;background:var(--color-text-strong);color:var(--color-inverse);font-size:.82rem;line-height:1.45;box-shadow:0 12px 26px #0f172a29;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease}.request-page__submit-wrap[data-tooltip]:hover:after{opacity:1;transform:translateY(0)}.request-page__success{margin:0;color:var(--component-badge-active-text);font-size:.9rem;font-weight:600}.request-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.request-board__search{max-width:420px;margin-bottom:.9rem}.request-board__column{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:#f8fafc;min-height:420px;display:grid;grid-template-rows:auto 1fr}.request-board__column--pending{background:#f8fafc;border-color:#94a3b852}.request-board__column--approved{background:#f4fbf7;border-color:#1d8b623d}.request-board__column--rejected{background:#fff5f5;border-color:#dc262638}.request-board__column.is-drop-target{border-color:#0000fe59;box-shadow:inset 0 0 0 1px #0000fe2e}.request-board__column-header{padding:.85rem .9rem;border-bottom:1px solid var(--border-default)}.request-board__column--pending .request-board__column-header{background:#94a3b814}.request-board__column--approved .request-board__column-header{background:#1d8b621a}.request-board__column--rejected .request-board__column-header{background:#dc26261a}.request-board__column-header h3{margin:0;font-size:1rem}.request-board__column-list{padding:.85rem;display:grid;align-content:start;gap:.75rem}.request-board__column-empty{margin:0;color:var(--color-text-muted);font-size:.9rem}.request-board__card{border:1px solid rgba(226,232,240,.95);border-radius:12px;background:var(--color-surface);padding:.85rem .9rem;display:grid;gap:.45rem;cursor:grab;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.request-board__card:hover{border-color:#3b82f666;box-shadow:0 8px 18px #0f172a14;transform:translateY(-1px)}.request-board__card:active{cursor:grabbing}.request-board__card h4{margin:0;font-size:.97rem;color:var(--color-text-strong)}.request-board__card p{margin:0;color:var(--color-text-muted);font-size:.84rem}.request-review-modal{display:grid;gap:1rem}.request-review-modal__meta{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--core-color-slate-100);padding:.85rem 1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem}.request-review-modal__meta p{margin:0;color:var(--color-text-muted)}.request-review-modal__meta strong,.request-review-modal__notes strong{color:var(--color-text-strong)}.request-review-modal__notes{grid-column:1 / -1}.request-review-modal__actions{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.request-review-modal__top-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.request-review-modal__icon{flex-shrink:0}.request-review-modal__icon--reject{color:#dc2626}.request-review-modal__icon--approve{color:#15803d}.app-toaster{position:fixed;z-index:50;display:grid;gap:.75rem;width:min(360px,calc(100vw - 2rem))}.app-toast{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;border-radius:16px;border:1px solid var(--border-default);background:var(--color-surface);box-shadow:0 18px 40px #0f172a1f}.app-toast__body{display:grid;gap:.2rem;min-width:0}.app-toast__title{font-size:.95rem;font-weight:700;color:var(--color-text-strong)}.app-toast__description{font-size:.85rem;line-height:1.45;color:var(--color-text-muted)}.app-toast__close{width:1.75rem;height:1.75rem;border:0;border-radius:999px;background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.app-toast--success{border-color:#1d8b623d}.app-toast--success .app-toast__title{color:var(--component-badge-active-text)}.app-toast--error{border-color:#b91c1c3d}.app-toast--error .app-toast__title{color:var(--component-badge-rejected-text)}.app-toast--info{border-color:#1d4ed833}.assistant-widget{position:fixed;right:1rem;bottom:1rem;z-index:45;display:grid;justify-items:end;gap:.75rem}.assistant-widget__fab{border:0;border-radius:24px;width:4.1rem;height:4.1rem;padding:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 20px 36px #0000fe57,0 10px 20px #3a70ff3d,0 6px 14px #0f172a2e;overflow:visible}.assistant-widget__fab img{width:100%;height:100%;object-fit:contain;display:block;margin:0;flex-shrink:0}.assistant-widget__panel{width:min(390px,calc(100vw - 2rem));max-height:min(620px,calc(100vh - 5.2rem));border-radius:20px;border:1px solid rgba(148,163,184,.36);background:radial-gradient(circle at top right,rgba(0,0,254,.08),transparent 48%),linear-gradient(180deg,#fffffffc,#f8fafcfa);box-shadow:0 22px 42px #0f172a38;display:grid;grid-template-rows:auto minmax(140px,1fr) auto auto;overflow:hidden}.assistant-widget__header{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.85rem .9rem .7rem;border-bottom:1px solid rgba(226,232,240,.9)}.assistant-widget__eyebrow{margin:0;display:inline-flex;align-items:center;gap:.35rem;color:#334155;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.assistant-widget__header h3{margin:.15rem 0 0;font-size:1.05rem}.assistant-widget__title{display:inline-flex;align-items:center;gap:.45rem}.assistant-widget__title img{width:1.35rem;height:1.35rem;display:block}.assistant-widget__close{width:1.9rem;height:1.9rem;border-radius:999px;border:1px solid var(--border-default);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);cursor:pointer}.assistant-widget__messages{display:grid;align-content:start;gap:.7rem;padding:.9rem;overflow-y:auto;min-height:0}.assistant-widget__message{display:grid;gap:.5rem;max-width:92%}.assistant-widget__message p{margin:0;border-radius:14px;padding:.65rem .8rem;font-size:.88rem;line-height:1.45}.assistant-widget__message--assistant p{background:#eef2ff;border:1px solid rgba(99,102,241,.2);color:#1f2937}.assistant-widget__message--user{justify-self:end}.assistant-widget__message--user p{background:#0f172a;border:1px solid rgba(15,23,42,.8);color:#f8fafc}.assistant-widget__actions{display:flex;flex-wrap:wrap;gap:.4rem}.assistant-widget__form{border-top:1px solid rgba(226,232,240,.9);padding:.75rem .9rem .9rem;display:grid;gap:.45rem}.assistant-widget__label{font-size:.72rem;font-weight:600;color:var(--color-text-muted)}.assistant-widget__composer{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}.assistant-widget__input{width:100%;min-height:2.4rem;border-radius:12px;border:1px solid var(--border-default);background:#fff;color:var(--color-text);padding:0 .72rem}.table-pagination{margin-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.table-pagination__summary,.table-pagination__page{color:var(--color-text-muted);margin:0}.table-pagination__actions{display:flex;align-items:center;gap:.75rem}.usage-page{gap:1.25rem;padding:.5rem 0 2rem}.usage-page__header{display:flex;justify-content:space-between;align-items:end;gap:1.25rem}.usage-page__heading{display:grid;gap:.5rem;max-width:560px}.usage-page__header h1{margin:0;font-size:2rem;line-height:1.2}.usage-page__heading p{margin:0;color:var(--color-text-muted);font-size:.95rem;line-height:1.6}.usage-page__filters{display:flex;justify-content:flex-end;align-items:end;gap:.75rem;flex-wrap:wrap}.usage-page__filter{display:grid;gap:.35rem}.usage-page__filter--period{width:220px}.usage-page__filter--range{min-width:330px}.usage-page__range-inputs{display:inline-flex;align-items:center;gap:.5rem}.usage-page__date-input{width:150px;padding:.5rem .65rem;color:var(--color-text-muted)}.usage-page__date-separator{color:var(--color-text-muted)}.usage-page__date-range{display:flex;align-items:center;gap:.45rem;min-height:42px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--color-surface);padding:.35rem .45rem}.usage-table{display:grid;gap:.75rem;background:var(--color-surface);border:1px solid rgba(226,232,240,.9);border-radius:24px;padding:1rem}.usage-table__header,.usage-table__row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr .9fr;align-items:center;gap:1.5rem;padding:.95rem 1.25rem}.usage-table__header{border-radius:14px;background:#eef3fb;color:var(--color-text-muted);font-size:.84rem;font-weight:600;text-transform:none}.usage-table__body{display:grid;gap:.55rem}.usage-table__row{background:var(--color-surface);border:1px solid rgba(226,232,240,.95);border-radius:14px;min-height:58px}.usage-table__resource{color:var(--color-text-strong);font-weight:600}.usage-table__metric-copy{color:var(--color-text-strong);font-weight:500}.usage-table__date{color:var(--color-text-muted);font-size:.9rem}.usage-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.usage-chart-card{border:1px solid rgba(226,232,240,.9);border-radius:20px;background:var(--color-surface);padding:.95rem 1rem;display:grid;gap:.7rem}.usage-chart-card--wide{grid-column:1 / -1}.usage-chart-card__header h3{margin:0;font-size:1rem}.usage-chart-card__header p{margin:.3rem 0 0;color:var(--color-text-muted);font-size:.82rem}.usage-chart-card__empty{margin:0;color:var(--color-text-muted);font-size:.85rem}.usage-chart-card__legend{display:inline-flex;gap:.5rem}.usage-legend-item{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--color-text-muted)}.usage-legend-item:before{content:"";width:.55rem;height:.55rem;border-radius:999px;display:inline-block}.usage-legend-item--inbound:before{background:#0000fe}.usage-legend-item--outbound:before{background:#34dfa0}.usage-area-chart{width:100%;height:auto}.usage-area-chart__grid{stroke:#94a3b833;stroke-width:1}.usage-area-chart__line--inbound,.usage-area-chart__line--outbound{fill:none;stroke-width:2.5}.usage-area-chart__line--inbound{stroke:#0000fe}.usage-area-chart__line--outbound{stroke:#34dfa0}.usage-area-chart__tick{font-size:10px;fill:#475569d9}.usage-area-chart__label{font-size:10px;fill:#64748be6;text-anchor:middle}.usage-stack{display:grid;gap:.5rem}.usage-stack__row{display:grid;grid-template-columns:minmax(130px,1.25fr) minmax(0,2.5fr) auto;gap:.6rem;align-items:center}.usage-stack__title{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.usage-stack__bar{height:.72rem;border-radius:999px;background:#94a3b82e;overflow:hidden;display:flex}.usage-stack__segment{height:100%}.usage-stack__segment--inbound{background:#0000fe}.usage-stack__segment--outbound{background:#34dfa0}.usage-stack__value{font-size:.8rem;color:var(--color-text-muted)}.usage-donut{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:center}.usage-donut__chart{width:116px;height:116px}.usage-donut__track{fill:none;stroke:#94a3b82e;stroke-width:16}.usage-donut__segment{fill:none;stroke-width:16;transform:rotate(-90deg);transform-origin:center;stroke-linecap:butt}.usage-donut__legend{display:grid;gap:.35rem}.usage-donut__legend-row{display:grid;grid-template-columns:auto auto 1fr;gap:.45rem;align-items:center;font-size:.82rem}.usage-donut__dot{width:.55rem;height:.55rem;border-radius:999px}.usage-donut__label{color:var(--color-text-muted)}.usage-donut__value{justify-self:end;color:var(--color-text-muted)}@media(max-width:1200px){.app-shell--student{grid-template-columns:250px 1fr}}@media(max-width:940px){.app-shell{height:auto;overflow:visible}.auth-layout{grid-template-columns:1fr}.auth-layout__visual{min-height:220px}.auth-layout__visual-copy{left:1.25rem;right:1.25rem;bottom:1.25rem}.auth-layout__content{min-height:auto;gap:2rem;padding:1.5rem 1rem 2rem}.app-shell--student{grid-template-columns:1fr}.student-sidebar{height:auto;padding:1rem}.student-sidebar__nav{grid-template-columns:1fr}.app-shell__content{padding:1rem;height:auto}.dashboard-grid--3,.dashboard-grid--2,.summary-grid,.resource-grid,.resource-card__meta,.reserve-dialog__meta,.reservations-filters,.request-page__grid--2,.request-page__grid--3,.reservation-picker__dates,.reservation-picker__slots,.request-board,.request-review-modal__meta{grid-template-columns:1fr}.usage-page__filters{width:100%;justify-content:stretch}.analytics-overview,.analytics-overview--compact,.summary-grid{grid-template-columns:1fr}.usage-page__filter--period,.usage-page__filter--range{width:100%;min-width:0}.usage-page__header,.usage-charts,.usage-table__header,.usage-table__row,.usage-donut{grid-template-columns:1fr}.usage-donut__chart{margin:0 auto}.usage-page__date-range,.usage-page__range-inputs{display:grid}.dashboard-list__header,.dashboard-list__row{grid-template-columns:1fr}.dashboard-header,.dashboard-section__header,.resource-card__availability,.resource-card__footer,.reserve-dialog__resource,.reservation-picker__summary{align-items:stretch}.resource-card__availability,.resource-card__footer,.reserve-dialog__resource,.reservation-picker__summary{flex-direction:column}.table-pagination,.table-pagination__actions{flex-direction:column;align-items:stretch}.assistant-widget{right:.8rem;left:.8rem;bottom:.8rem;justify-items:stretch}.assistant-widget__panel{width:100%;max-height:min(66vh,520px)}.assistant-widget__fab{justify-self:end}}
