:root{--rx-color-brand-50: #effafc;--rx-color-brand-100: #d7f3f6;--rx-color-brand-200: #b3e5ee;--rx-color-brand-300: #74cdde;--rx-color-brand-400: #44b4cc;--rx-color-brand-500: #2898b2;--rx-color-brand-600: #247b96;--rx-color-brand-700: #24647a;--rx-color-brand-800: #255365;--rx-color-brand-900: #234656;--rx-color-brand-950: #122d3a;--rx-color-neutral-50: #f6f6f6;--rx-color-neutral-100: #e7e7e7;--rx-color-neutral-200: #d1d1d1;--rx-color-neutral-300: #b0b0b0;--rx-color-neutral-400: #888888;--rx-color-neutral-500: #6d6d6d;--rx-color-neutral-600: #5d5d5d;--rx-color-neutral-700: #4f4f4f;--rx-color-neutral-800: #454545;--rx-color-neutral-900: #3d3d3d;--rx-color-neutral-950: #000000;--rx-color-green-50: #f3faf3;--rx-color-green-100: #e3f5e3;--rx-color-green-200: #c8eac9;--rx-color-green-300: #9dd89f;--rx-color-green-400: #6bbd6e;--rx-color-green-500: #4caf50;--rx-color-green-600: #358438;--rx-color-green-700: #2d6830;--rx-color-green-800: #275429;--rx-color-green-900: #224525;--rx-color-green-950: #0e2510;--rx-color-red-50: #fef2f2;--rx-color-red-100: #fee6e5;--rx-color-red-200: #fccfcf;--rx-color-red-300: #f9a8a8;--rx-color-red-400: #f57779;--rx-color-red-500: #ec474f;--rx-color-red-600: #dc3545;--rx-color-red-700: #b7192c;--rx-color-red-800: #99182c;--rx-color-red-900: #83182c;--rx-color-red-950: #490812;--rx-color-yellow-50: #fdfbe9;--rx-color-yellow-100: #fcf8c5;--rx-color-yellow-200: #faef8e;--rx-color-yellow-300: #f7de4d;--rx-color-yellow-400: #f2c811;--rx-color-yellow-500: #e3b20f;--rx-color-yellow-600: #c48b0a;--rx-color-yellow-700: #9c630c;--rx-color-yellow-800: #814f12;--rx-color-yellow-900: #6e4015;--rx-color-yellow-950: #402108;--rx-color-navy-50: #eff7ff;--rx-color-navy-100: #dcedfd;--rx-color-navy-200: #c1e0fc;--rx-color-navy-300: #96cefa;--rx-color-navy-400: #64b2f6;--rx-color-navy-500: #4093f1;--rx-color-navy-600: #2a76e6;--rx-color-navy-700: #2260d3;--rx-color-navy-800: #224eab;--rx-color-navy-900: #214487;--rx-color-navy-950: #1b2f5a;--rx-color-white: #ffffff;--rx-color-black: #000000;--rdx-color-brand-primary-navy-base: var(--rx-color-navy-950);--rx-primary-base: var(--rx-color-brand-300);--rx-primary-background: var(--rx-color-brand-300);--rx-primary-background-strong: var(--rx-color-brand-500);--rx-primary-text: var(--rx-color-brand-950);--rx-primary-text-on-color: var(--rx-color-white);--rx-primary-border: var(--rx-color-brand-300);--rx-primary-main: var(--rx-color-brand-300);--rx-primary-light: var(--rx-color-brand-100);--rx-primary-medium: var(--rx-color-brand-500);--rx-primary-dark: var(--rx-color-brand-800);--rx-secondary-base: var(--rx-color-brand-300);--rx-secondary-background: var(--rx-color-brand-50);--rx-secondary-background-strong: var(--rx-color-brand-500);--rx-secondary-text: var(--rx-color-brand-900);--rx-secondary-text-on-color: var(--rx-color-white);--rx-secondary-border: var(--rx-color-brand-300);--rx-secondary-main: var(--rx-color-brand-100);--rx-secondary-light: var(--rx-color-brand-50);--rx-secondary-medium: var(--rx-color-brand-300);--rx-secondary-dark: var(--rx-color-brand-500);--rx-tertiary-base: var(--rx-color-brand-300);--rx-tertiary-background: var(--rx-color-brand-50);--rx-tertiary-background-strong: var(--rx-color-brand-500);--rx-tertiary-text: var(--rx-color-brand-900);--rx-tertiary-text-on-color: var(--rx-color-white);--rx-tertiary-border: var(--rx-color-brand-300);--rx-tertiary-main: var(--rx-color-brand-100);--rx-tertiary-light: var(--rx-color-brand-50);--rx-tertiary-medium: var(--rx-color-brand-300);--rx-tertiary-dark: var(--rx-color-brand-500);--rx-positive-base: var(--rx-color-green-500);--rx-positive-background: var(--rx-color-green-50);--rx-positive-background-strong: var(--rx-color-green-500);--rx-positive-text: var(--rx-color-green-900);--rx-positive-text-on-color: var(--rx-color-white);--rx-positive-border: var(--rx-color-green-300);--rx-positive-main: var(--rx-color-green-500);--rx-positive-light: var(--rx-color-green-50);--rx-positive-medium: var(--rx-color-green-300);--rx-positive-dark: var(--rx-color-green-500);--rx-negative-base: var(--rx-color-red-600);--rx-negative-background: var(--rx-color-red-50);--rx-negative-background-strong: var(--rx-color-red-500);--rx-negative-text: var(--rx-color-red-900);--rx-negative-text-on-color: var(--rx-color-white);--rx-negative-border: var(--rx-color-red-300);--rx-negative-main: var(--rx-color-red-500);--rx-negative-light: var(--rx-color-red-50);--rx-negative-medium: var(--rx-color-red-300);--rx-negative-dark: var(--rx-color-red-500);--rx-warning-base: var(--rx-color-yellow-400);--rx-warning-background: var(--rx-color-yellow-50);--rx-warning-background-strong: var(--rx-color-yellow-500);--rx-warning-text: var(--rx-color-yellow-900);--rx-warning-text-on-color: var(--rx-color-white);--rx-warning-border: var(--rx-color-yellow-300);--rx-info-base: var(--rx-color-navy-950);--rx-info-background: var(--rx-color-navy-50);--rx-info-background-strong: var(--rx-color-navy-500);--rx-info-text: var(--rx-color-navy-900);--rx-info-text-on-color: var(--rx-color-white);--rx-info-border: var(--rx-color-navy-300);--rx-color-surface: #ffffff;--rx-color-surface-sunken: var(--rx-color-neutral-50);--rx-color-surface-raised: #ffffff;--rx-color-border: var(--rx-color-neutral-200);--rx-color-text: var(--rx-color-neutral-900);--rx-color-text-quiet: var(--rx-color-neutral-500);--rx-color-text-on-brand: var(--rx-color-white);--rx-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--rx-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--rx-font-size-xs: .75rem;--rx-font-size-sm: .875rem;--rx-font-size-md: 1rem;--rx-font-size-lg: 1.125rem;--rx-font-size-xl: 1.375rem;--rx-font-size-2xl: 1.75rem;--rx-font-size-3xl: 2.25rem;--rx-font-weight-normal: 400;--rx-font-weight-medium: 500;--rx-font-weight-semibold: 600;--rx-font-weight-bold: 700;--rx-line-height-tight: 1.2;--rx-line-height-normal: 1.5;--rx-space-3xs: .125rem;--rx-space-2xs: .25rem;--rx-space-xs: .5rem;--rx-space-sm: .75rem;--rx-space-md: 1rem;--rx-space-lg: 1.5rem;--rx-space-xl: 2rem;--rx-space-2xl: 3rem;--rx-space-3xl: 4rem;--rx-radius-sm: .25rem;--rx-radius-md: .5rem;--rx-radius-lg: .75rem;--rx-radius-xl: 1rem;--rx-radius-pill: 9999px;--rx-shadow-sm: 0 1px 2px 0 rgb(18 45 58 / .06);--rx-shadow-md: 0 2px 8px -1px rgb(18 45 58 / .08), 0 1px 3px -1px rgb(18 45 58 / .06);--rx-shadow-lg: 0 12px 28px -6px rgb(18 45 58 / .16), 0 4px 10px -4px rgb(18 45 58 / .08);--rx-motion-fast: .1s;--rx-motion-normal: .2s;--rx-motion-slow: .3s;--rx-motion-easing: cubic-bezier(.16, 1, .3, 1)}:root{color-scheme:light;--bg: var(--rx-color-surface-sunken);--panel: var(--rx-color-surface);--border: var(--rx-color-border);--text: var(--rx-color-text);--muted: var(--rx-color-text-quiet);--accent: var(--rx-color-brand-500);--accent-hover: var(--rx-color-brand-600);--appbar: var(--rdx-color-brand-primary-navy-base);--radius: var(--rx-radius-lg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--rx-font-sans);font-size:var(--rx-font-size-md);line-height:var(--rx-line-height-normal);-webkit-font-smoothing:antialiased}.rx-app{min-height:100vh;display:flex;flex-direction:column}.rx-appbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rx-space-sm) var(--rx-space-lg);padding:var(--rx-space-sm) var(--rx-space-lg);background:var(--appbar);color:var(--rx-color-text-on-brand);box-shadow:var(--rx-shadow-sm)}.rx-appbar__brand{display:inline-flex;align-items:center;gap:var(--rx-space-xs);color:inherit;text-decoration:none}.rx-appbar__logo{height:1.5rem;width:auto;display:block}.rx-appbar__divider{width:1px;align-self:stretch;margin-block:2px;background:color-mix(in oklab,currentColor 25%,transparent)}.rx-appbar__title{font-weight:600}.rx-appbar__nav{margin-left:auto;display:flex;gap:.5rem;align-items:center}.rx-page{flex:1;width:100%;max-width:56rem;margin:0 auto;padding:var(--rx-space-xl) var(--rx-space-lg) var(--rx-space-2xl)}.rx-title{margin:0 0 .25rem;font-size:var(--rx-font-size-2xl);font-weight:700;letter-spacing:-.02em}.rx-subtitle{margin:0 0 1.25rem;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--rx-shadow-sm)}.login-card{max-width:24rem;margin:2rem auto;display:flex;flex-direction:column;gap:.75rem}.login-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:500}input{font:inherit;padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--rx-radius-md);background:var(--panel);color:var(--text)}input:focus{outline:2px solid var(--rx-color-brand-400);outline-offset:1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem .9rem;border-radius:var(--rx-radius-md);border:1px solid transparent;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;background:var(--accent);color:#fff}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--panel);border-color:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--rx-color-brand-50);border-color:var(--rx-color-brand-300);color:var(--rx-color-brand-900)}.btn-sm{padding:.3rem .55rem;font-size:.8rem}.error{color:var(--rx-color-red-700);font-size:.9rem}.muted{color:var(--muted);font-size:.9rem}.campus-list{display:flex;flex-direction:column;gap:.75rem}.campus-card h2{margin:0 0 .15rem;font-size:1.05rem;font-weight:600}.campus-card .meta{margin:0 0 .75rem;font-size:.85rem;color:var(--muted)}.report-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem 0;border-top:1px solid var(--border)}.report-row:first-of-type{border-top:none;padding-top:0}.badge{display:inline-flex;padding:.12rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--rx-color-neutral-100);color:var(--rx-color-neutral-700)}.badge.ok{background:var(--rx-positive-background);color:var(--rx-positive-text)}.badge.warn{background:var(--rx-warning-background);color:var(--rx-warning-text)}.badge.err{background:var(--rx-negative-background);color:var(--rx-negative-text)}.empty{text-align:center;padding:2rem 1rem;color:var(--muted)}
