:root{color-scheme:light dark;--blue-10: #001e60;--blue-20: #00327a;--blue-30: #004794;--blue-40: #075faf;--blue-50: #3b77cb;--blue-60: #5c90e7;--blue-70: #7aabff;--blue-80: #98c6ff;--blue-90: #cfe4ff;--blue-95: #e8f2ff;--grey-0: #000000;--grey-5: #0f1113;--grey-10: #17191c;--grey-15: #1f2226;--grey-20: #292d32;--grey-30: #3d4248;--grey-40: #565c63;--grey-50: #6e747b;--grey-60: #8a9097;--grey-70: #a9aeb4;--grey-80: #c9cdd2;--grey-90: #e3e6e9;--grey-95: #f1f3f5;--grey-98: #f9fafb;--grey-100: #ffffff;--red-40: #b3261e;--red-30: #8c1d18;--red-80: #ffb4ab;--red-90: #ffdad6;--red-20: #5c1410;--green-40: #1e7d34;--green-80: #8fdb9c;--green-95: #e3f6e6;--green-20: #0f3d1a;--amber-40: #8a5a00;--amber-80: #ffcc66;--amber-95: #fff4dc;--amber-20: #3d2900;--color-bg: light-dark(var(--grey-95), var(--grey-5));--color-surface: light-dark(var(--grey-100), var(--grey-10));--color-surface-raised: light-dark(var(--grey-100), var(--grey-15));--color-surface-sunken: light-dark(var(--grey-90), var(--grey-0));--color-overlay: light-dark(rgb(15 17 19 / 45%), rgb(0 0 0 / 65%));--color-text: light-dark(var(--grey-10), var(--grey-95));--color-text-muted: light-dark(var(--grey-40), var(--grey-70));--color-text-subtle: light-dark(var(--grey-50), var(--grey-60));--color-heading: light-dark(var(--blue-30), var(--blue-80));--color-border: light-dark(var(--grey-90), var(--grey-20));--color-border-strong: light-dark(var(--grey-50), var(--grey-50));--color-primary: light-dark(var(--blue-40), var(--blue-80));--color-primary-hover: light-dark(var(--blue-30), var(--blue-90));--color-primary-active: light-dark(var(--blue-20), var(--blue-70));--color-on-primary: light-dark(var(--grey-100), var(--blue-10));--color-primary-subtle: light-dark(var(--blue-95), rgb(152 198 255 / 14%));--color-primary-subtle-hover: light-dark(var(--blue-90), rgb(152 198 255 / 24%));--color-on-primary-subtle: light-dark(var(--blue-20), var(--blue-90));--color-danger: light-dark(var(--red-40), var(--red-80));--color-danger-hover: light-dark(var(--red-30), var(--red-90));--color-on-danger: light-dark(var(--grey-100), var(--red-20));--color-danger-subtle: light-dark(var(--red-90), rgb(255 180 171 / 14%));--color-success: light-dark(var(--green-40), var(--green-80));--color-success-subtle: light-dark(var(--green-95), var(--green-20));--color-warning: light-dark(var(--amber-40), var(--amber-80));--color-warning-subtle: light-dark(var(--amber-95), var(--amber-20));--color-focus-ring: light-dark(var(--blue-50), var(--blue-70));--color-disabled-bg: light-dark(var(--grey-90), var(--grey-20));--color-disabled-text: light-dark(var(--grey-60), var(--grey-50));--font-sans: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: clamp(1.375rem, 1.2rem + .6vw, 1.5rem);--text-3xl: clamp(1.625rem, 1.3rem + 1.2vw, 2rem);--text-4xl: clamp(1.875rem, 1.4rem + 2vw, 2.5rem);--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.55;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-pill: 999px;--border-width: 1px;--border-width-strong: 2px;--shadow-sm: 0 1px 2px light-dark(rgb(7 95 175 / 10%), rgb(0 0 0 / 40%));--shadow-md: 0 1px 2px light-dark(rgb(7 95 175 / 8%), rgb(0 0 0 / 40%)), 0 4px 14px light-dark(rgb(7 95 175 / 14%), rgb(0 0 0 / 45%));--shadow-lg: 0 2px 4px light-dark(rgb(7 95 175 / 10%), rgb(0 0 0 / 45%)), 0 12px 32px light-dark(rgb(7 95 175 / 22%), rgb(0 0 0 / 55%));--focus-ring: 0 0 0 3px light-dark(rgb(59 119 203 / 35%), rgb(122 171 255 / 40%));--duration-fast: .12s;--duration-normal: .2s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--content-max-width: 72rem;--control-height: 2.75rem;--z-header: 10;--z-overlay: 100;--primary-color: var(--color-primary);--secondary-color: var(--color-primary-subtle);--error-color: var(--color-danger);--success-color: var(--color-success);--warning-color: var(--color-warning);--bg: var(--color-bg);--bg-light: var(--color-surface);--bg-dark: var(--color-surface-sunken);--text-color: var(--color-text);--text-color-muted: var(--color-text-muted);--border-color: var(--color-border);--shadow: var(--shadow-md)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-regular);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;color:var(--color-heading);font-family:var(--font-sans);line-height:var(--leading-tight);text-wrap:balance}h1{font-size:var(--text-3xl);font-weight:var(--weight-extrabold)}h2{font-size:var(--text-2xl);font-weight:var(--weight-bold)}h3{font-size:var(--text-xl);font-weight:var(--weight-bold)}h4{font-size:var(--text-lg);font-weight:var(--weight-semibold)}p{margin:0}a{color:var(--color-primary);text-underline-offset:.15em}a:hover{color:var(--color-primary-hover)}img{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}ul,ol{margin:0}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}::selection{background-color:var(--color-primary-subtle-hover)}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary);width:1.125rem;height:1.125rem}.page{display:flex;flex-direction:column;gap:var(--space-6);width:100%;max-width:var(--content-max-width);margin-inline:auto}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));gap:var(--space-6);width:100%}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.lead{font-size:var(--text-lg);color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);min-width:8rem;padding:var(--space-2) var(--space-5);border:var(--border-width-strong) solid transparent;border-radius:var(--radius-pill);background-color:var(--color-primary);color:var(--color-on-primary);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-bold);line-height:1.2;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-normal) var(--ease-standard),border-color var(--duration-normal) var(--ease-standard),color var(--duration-normal) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.btn:hover{background-color:var(--color-primary-hover)}.btn:active{background-color:var(--color-primary-active);transform:translateY(1px)}.btn--secondary{background-color:transparent;border-color:var(--color-primary);color:var(--color-primary)}.btn--secondary:hover{background-color:var(--color-primary-subtle);color:var(--color-primary-hover)}.btn--secondary:active{background-color:var(--color-primary-subtle-hover)}.btn--ghost{background-color:transparent;color:var(--color-primary)}.btn--ghost:hover,.btn--ghost:active{background-color:var(--color-primary-subtle);color:var(--color-primary-hover)}.btn--danger{background-color:var(--color-danger);color:var(--color-on-danger)}.btn--danger:hover,.btn--danger:active{background-color:var(--color-danger-hover)}.btn--sm{min-height:2.25rem;min-width:0;padding:var(--space-1) var(--space-4);font-size:var(--text-sm)}.btn--block{width:100%}.btn:disabled,.btn[aria-disabled=true]{background-color:var(--color-disabled-bg);border-color:transparent;color:var(--color-disabled-text);cursor:not-allowed;transform:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height);padding:0;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-primary);font-size:var(--text-2xl);line-height:1;cursor:pointer;transition:background-color var(--duration-normal) var(--ease-standard)}.icon-button:hover{background-color:var(--color-primary-subtle)}.icon-button svg{width:1.25rem;height:1.25rem}.link-button{padding:0;border:none;background:none;color:var(--color-primary);font-size:var(--text-md);font-weight:var(--weight-semibold);text-decoration:underline;text-underline-offset:.15em;cursor:pointer}.link-button:hover{color:var(--color-primary-hover)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.label{display:block;color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.input,.textarea{width:100%;min-height:var(--control-height);padding:var(--space-2) var(--space-4);border:var(--border-width-strong) solid var(--color-border-strong);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text);font-size:var(--text-md);line-height:var(--leading-normal);transition:border-color var(--duration-normal) var(--ease-standard),box-shadow var(--duration-normal) var(--ease-standard)}.textarea{min-height:8rem;resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--color-text-subtle)}.input:hover,.textarea:hover{border-color:var(--color-primary)}.input:focus,.textarea:focus,.input-group:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.input:disabled,.textarea:disabled{background-color:var(--color-disabled-bg);border-color:var(--color-border);color:var(--color-disabled-text);cursor:not-allowed}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--color-danger)}.field-error{margin:0;color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.clear-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--radius-pill);background-color:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--text-lg);line-height:1;cursor:pointer}.clear-button:hover{background-color:var(--color-primary);color:var(--color-on-primary)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2rem;padding:var(--space-1) var(--space-3);border:var(--border-width-strong) solid var(--color-primary);border-radius:var(--radius-pill);background-color:transparent;color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:1.2;white-space:nowrap}button.chip,.chip[tabindex]{cursor:pointer;transition:background-color var(--duration-normal) var(--ease-standard),color var(--duration-normal) var(--ease-standard)}button.chip:hover,.chip[tabindex]:hover{background-color:var(--color-primary-subtle)}.chip--selected,.chip--filled{background-color:var(--color-primary);color:var(--color-on-primary)}button.chip.chip--selected:hover,.chip--filled[tabindex]:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.chip--subtle{border-color:transparent;background-color:var(--color-primary-subtle);color:var(--color-on-primary-subtle)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.surface{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background-color:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);color:var(--color-text)}.card--interactive{cursor:pointer;transition:box-shadow var(--duration-normal) var(--ease-standard),border-color var(--duration-normal) var(--ease-standard),transform var(--duration-normal) var(--ease-standard)}.card--interactive:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card--interactive:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background-color:var(--color-danger-subtle);color:var(--color-danger);font-weight:var(--weight-semibold)}.dialog-backdrop{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);background-color:var(--color-overlay)}.dialog{display:flex;flex-direction:column;gap:var(--space-5);width:min(40rem,100%);max-height:100%;padding:var(--space-6);overflow-y:auto;background-color:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--color-text)}.dialog:focus{outline:none}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.dialog-header h2{overflow-wrap:anywhere}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.loading-spinner{width:3rem;height:3rem;margin:var(--space-8) auto;border:5px solid var(--color-primary-subtle);border-top-color:var(--color-primary);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);text-align:center}
