:root{color-scheme:light dark;--font-sans: "GT-Standard", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-weight-normal: 300;--font-weight-medium: 400;--font-weight-semibold: 500;--font-weight-bold: 600;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--leading-tight: 1.2;--leading-snug: 1.5;--leading-normal: 1.5;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--color-primary: #000000;--color-primary-action: #0085ff;--color-on-primary-action: #ffffff;--grey-50: #f7f5f2;--grey-100: #d9d9d9;--grey-200: #c9c9c9;--grey-300: #a3a3a3;--grey-400: #888888;--grey-500: #797979;--grey-600: #555555;--grey-700: #333333;--grey-800: #191919;--grey-900: #0a0a0a;--surface-0: #ffffff;--surface-100: #f2f0ed;--surface-200: #d5d7da;--surface-300: #e7e7e7;--status-green: #b4dc19;--status-amber: #edab1f;--status-red: #bf0c23;--status-red-tint: #ffe3e7;--status-purple: #6635ca;--status-purple-tint: #e9dcfe;--status-purple-tint-soft: #f7f2ff;--status-purple-tint-softest: #fbf9ff;--status-green-tint: hsl(72 62% 92%);--status-green-ink: hsl(72 78% 26%);--status-amber-tint: hsl(41 88% 93%);--status-amber-ink: hsl(41 88% 28%);--accent-tint: hsl(209 100% 95%);--sidebar-width: 200px;--header-height: 74px;--radius-button: 8px;--radius-content: 6px;--radius-pill: 999px;--space: .25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--shadow-xs: 0 1px 2px 0 #0000000d;--shadow-sm: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--bg: var(--surface-0);--bg-sidebar: var(--grey-50);--surface: var(--surface-0);--surface-alt: var(--surface-100);--surface-sunken: var(--grey-50);--border: var(--surface-300);--border-strong: var(--grey-100);--text: var(--color-primary);--text-muted: var(--grey-500);--text-subtle: var(--grey-400);--accent: var(--color-primary-action);--accent-text: var(--color-on-primary-action);--accent-soft: var(--accent-tint);--danger: var(--status-red);--danger-soft: var(--status-red-tint);--success: var(--status-green-ink);--success-soft: var(--status-green-tint);--success-line: var(--status-green);--warn: var(--status-amber-ink);--warn-soft: var(--status-amber-tint);--warn-line: var(--status-amber);--info: var(--status-purple);--info-soft: var(--status-purple-tint-soft);--info-line: var(--status-purple-tint);--radius: var(--radius-content);--gap: var(--space-4);--font: var(--font-sans);--mono: var(--font-mono)}:root[data-theme=dark] :root{--bg: var(--grey-800);--bg-sidebar: var(--grey-900);--surface: var(--grey-800);--surface-alt: #212121;--surface-sunken: var(--grey-900);--border: var(--grey-700);--border-strong: var(--grey-600);--text: var(--grey-50);--text-muted: var(--grey-300);--text-subtle: var(--grey-400);--accent-soft: hsl(209 62% 18%);--danger: hsl(352 85% 68%);--danger-soft: hsl(352 44% 17%);--success: hsl(72 70% 60%);--success-soft: hsl(72 38% 14%);--success-line: var(--status-green);--warn: hsl(41 85% 62%);--warn-soft: hsl(41 44% 15%);--warn-line: var(--status-amber);--info: hsl(260 72% 74%);--info-soft: hsl(260 34% 19%);--info-line: hsl(260 34% 30%);--shadow-xs: 0 1px 2px 0 #00000059;--shadow-sm: 0 1px 3px 0 #00000073, 0 1px 2px -1px #00000073}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{margin:0;font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight);color:var(--text)}h1{font-size:var(--text-2xl);line-height:var(--leading-tight)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}p{margin:0}code,.mono{font-family:var(--font-mono);font-size:.875em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--text-muted);font-size:var(--text-sm);margin:0}.hint{display:block;color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-snug);margin:2px 0 0}.hint-inline{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--font-weight-normal)}.req{color:var(--danger)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{display:flex;align-items:stretch;min-height:100%}.sidebar{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-sidebar);border:none;position:sticky;top:0;align-self:flex-start;height:100vh;display:flex;flex-direction:column;gap:var(--space-6);padding:0 var(--space-3) var(--space-4);overflow-y:auto}.sidebar-brand{display:flex;align-items:center;height:var(--header-height);padding-inline:var(--space-2);flex:0 0 auto}.brand{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);color:var(--text)}.brand:hover{text-decoration:none}.sidenav{display:flex;flex-direction:column;gap:2px}.sidenav-group{margin-block-start:auto}.sidenav a,.sidenav-link,.topbar-link{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-button);color:var(--grey-600);font-size:var(--text-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-normal)}:root[data-theme=dark] .sidenav a,:root[data-theme=dark] .sidenav-link,:root[data-theme=dark] .topbar-link{color:var(--text-muted)}.sidenav a:hover,.sidenav-link:hover,.topbar-link:hover{background:var(--surface-alt);color:var(--text);text-decoration:none}.sidenav a.active,.sidenav-link.active,.topbar-link.active{background:var(--surface-0);color:var(--text);box-shadow:var(--shadow-xs)}:root[data-theme=dark] .sidenav a.active,:root[data-theme=dark] .sidenav-link.active,:root[data-theme=dark] .topbar-link.active{background:var(--surface-alt)}.shell-body{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.topbar{display:flex;align-items:center;gap:var(--gap);padding:0 var(--space-6);height:var(--header-height);flex:0 0 var(--header-height);background:var(--bg);border-block-end:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar-end{margin-inline-start:auto;display:flex;align-items:center;gap:var(--space-2)}.topbar-user{color:var(--text-muted);font-size:var(--text-sm);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-switcher select{width:auto;min-width:140px;font-size:var(--text-sm);background:var(--surface-alt);border-color:transparent}.main{flex:1;padding:var(--space-6) var(--space-6) var(--space-8)}.page{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:var(--gap)}.page-centered{align-items:center;text-align:center;padding-top:var(--space-8);gap:var(--space-3)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap);min-height:40px}.page-head h1{font-size:var(--text-2xl);font-weight:var(--font-weight-medium)}.crumbs{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:var(--tracking-wide);margin-block-end:var(--space-1)}.section-title{margin-block-start:var(--space-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider);font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 12px;border-radius:var(--radius-button);border:1px solid var(--surface-alt);background:var(--surface-alt);color:var(--text);font-family:inherit;font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.25;letter-spacing:var(--tracking-normal);cursor:pointer;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.btn:hover:not(:disabled){border-color:var(--border-strong)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-sm{padding:6px 10px;font-size:var(--text-sm)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,#000);border-color:color-mix(in srgb,var(--accent) 88%,#000)}.btn-secondary{background:var(--surface-alt);border-color:var(--surface-alt);color:var(--text)}.btn-secondary:hover:not(:disabled){border-color:var(--border-strong)}.btn-ghost{background:transparent;border-color:transparent;color:var(--grey-500);padding:8px}.btn-ghost.btn-sm{padding:6px}.btn-ghost:hover:not(:disabled){background:var(--surface-alt);border-color:transparent;color:var(--text)}.btn-danger{background:transparent;border-color:var(--border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-link{background:none;border:none;color:var(--accent);padding:0;font:inherit;cursor:pointer}.btn-link:hover{text-decoration:underline}input,select,textarea{font-family:inherit;font-size:var(--text-base);font-weight:var(--font-weight-normal);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-content);padding:8px 10px;width:100%}input::placeholder,textarea::placeholder{color:var(--text-subtle)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--grey-300)}input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.tab:focus-visible,.sidenav a:focus-visible,.topbar-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=checkbox]{width:auto;accent-color:var(--accent)}input[type=file]{padding:6px;font-size:var(--text-sm)}textarea{resize:vertical;line-height:var(--leading-snug)}.form-row{display:flex;flex-direction:column;gap:var(--space-1)}.form-row>label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text)}.form-row-error input,.form-row-error select,.form-row-error textarea{border-color:var(--danger)}.form-error{margin:0;color:var(--danger);font-size:var(--text-xs)}.form-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.fieldset{border:1px solid var(--border);border-radius:var(--radius-content);padding:var(--space-3) var(--space-4);margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.fieldset>legend{padding:0 var(--space-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.check{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer}.check input{margin-top:3px}.check-row{flex-direction:row;flex-wrap:wrap;gap:var(--space-4)}.toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.toolbar-spacer{flex:1}.search{max-width:320px;font-size:var(--text-sm)}.inline-field select{width:auto;font-size:var(--text-sm)}.inline-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-content)}.inline-form .form-row{min-width:160px;flex:1}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-content);box-shadow:var(--shadow-xs);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.panel-head h2{margin-block-end:2px}.card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-content);box-shadow:var(--shadow-xs);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-content);box-shadow:var(--shadow-xs);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:2px}.stat-value{font-size:var(--text-3xl);font-weight:var(--font-weight-normal);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums}.stat-label{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-wide)}.table-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-content);box-shadow:var(--shadow-xs)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm);line-height:var(--leading-snug)}.table th,.table td{text-align:start;padding:10px 16px;border-block-end:1px solid var(--border);white-space:nowrap;vertical-align:middle}.table th{background:var(--surface);font-weight:var(--font-weight-semibold);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-muted);border-block-end:1px solid var(--border-strong);position:sticky;top:0;z-index:1}.table tbody tr:last-child td{border-block-end:none}.table tbody tr:hover{background:var(--surface-sunken)}.align-end{text-align:end;font-variant-numeric:tabular-nums}.row-clickable{cursor:pointer}.link-strong{font-weight:var(--font-weight-semibold);color:var(--text)}a.link-strong:hover{color:var(--accent)}.link-strong[data-initials]:before{content:attr(data-initials)}.link-strong[data-initials]:before,.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;margin-inline-end:var(--space-2);border-radius:var(--radius-pill);background:var(--surface-100);color:var(--grey-600);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-normal);text-transform:uppercase;vertical-align:middle}.pagination{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.tabs{display:flex;gap:var(--space-1);border-block-end:1px solid var(--border)}.tab{background:none;border:none;border-block-end:2px solid transparent;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-muted);cursor:pointer}.tab:hover{color:var(--text)}.tab-active{color:var(--text);font-weight:var(--font-weight-semibold);border-block-end-color:var(--color-primary)}:root[data-theme=dark] .tab-active{border-block-end-color:var(--text)}.steps{display:flex;gap:var(--space-2);list-style:none;margin:0 0 var(--space-3);padding:0;font-size:var(--text-xs);color:var(--text-muted)}.step{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--surface-alt);letter-spacing:var(--tracking-wide)}.step-active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a73;display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:50}.scrim-end{align-items:stretch;justify-content:flex-end;padding:0}.modal,.drawer{background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;max-height:100%}.modal{border-radius:var(--radius-content);box-shadow:var(--shadow-sm);width:min(560px,100%)}.modal-wide{width:min(920px,100%)}.drawer{width:min(480px,100%);border-radius:0;border-block:none;border-inline-end:none;box-shadow:var(--shadow-sm)}.overlay-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-block-end:1px solid var(--border)}.overlay-body{padding:var(--space-4);overflow-y:auto;flex:1}.overlay-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-block-start:1px solid var(--border);background:var(--surface-sunken)}.notice{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-content);border:1px solid var(--border);font-size:var(--text-sm)}.notice-error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.notice-info{background:var(--info-soft);border-color:var(--info-line);color:var(--info)}.notice-list{margin:var(--space-2) 0 0;padding-inline-start:18px}.notice-key{font-weight:var(--font-weight-semibold)}.notice-body{min-width:0}.notice strong{font-weight:var(--font-weight-semibold)}.empty{padding:var(--space-8);text-align:center;color:var(--text-muted);font-size:var(--text-sm);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-content)}.loading{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3) 0}.spinner{width:14px;height:14px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:3s}.btn{transition:none}}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-content);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);background:var(--surface-alt);color:var(--text-muted);border:1px solid transparent;white-space:nowrap}.badge-live,.badge-approved,.badge-active,.badge-owner{background:var(--success-soft);color:var(--success);border-color:var(--success-line)}.badge-cancelled,.badge-rejected,.badge-suspended{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.badge-planned,.badge-submitted,.badge-incomplete{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.badge-admin,.badge-approver,.badge-completed{background:var(--info-soft);color:var(--info);border-color:var(--info-line)}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg-sidebar)}.auth-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-content);box-shadow:var(--shadow-sm);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}.auth-brand h1{font-size:var(--text-xl);font-weight:var(--font-weight-semibold)}.auth-links{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}@media (max-width: 720px){.shell{flex-direction:column}.sidebar{flex:0 0 auto;width:100%;height:auto;position:static;flex-direction:row;align-items:center;align-self:stretch;gap:var(--space-3);padding:var(--space-2) var(--space-3);overflow-x:auto}.sidebar-brand{height:auto}.sidenav{flex-direction:row}.sidenav-group{margin-block-start:0;margin-inline-start:auto}.topbar{padding:0 var(--space-4)}.main{padding:var(--space-4) var(--space-4) var(--space-8)}}.sidebar{display:flex;flex-direction:column;border-inline-end:1px solid var(--border, #e7e7e7)}.sidebar-brand{display:flex;align-items:center;min-height:var(--header-height, 74px);padding-inline:20px}.sidebar-brand .brand{font-size:1.375rem;font-weight:600;letter-spacing:-.025em;color:var(--text, #000);text-decoration:none}.sidenav{display:flex;flex-direction:column;gap:2px;padding:4px 12px}.sidenav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;font-size:1rem;font-weight:400;color:var(--text-muted, #555);text-decoration:none}.sidenav a:hover{background:#0000000a;color:var(--text, #000)}.sidenav a.active,.sidenav a[aria-current=page]{background:var(--surface-300, #e7e7e7);color:var(--text, #000);font-weight:500}.nav-icon{inline-size:20px;block-size:20px;flex:none}.sidenav-group{margin-block-start:4px;padding-block-start:8px;border-block-start:1px solid var(--border, #e7e7e7)}.sidenav-hint{padding:8px 12px;font-size:.875rem;color:var(--text-subtle, #797979)}.sidebar-foot{margin-block-start:auto;display:flex;flex-direction:column;gap:8px;padding:12px;border-block-start:1px solid var(--border, #e7e7e7)}.sidebar-user{font-size:.75rem;color:var(--text-subtle, #797979);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-inline:12px}.sidebar-signout{display:flex;align-items:center;gap:10px;justify-content:flex-start;inline-size:100%;padding:9px 12px;font-size:1rem}.sidebar-foot .org-switcher select{inline-size:100%;font-size:.875rem}
