:root{--color-canvas:#f6f7f9;--color-surface:#fff;--color-surface-raised:#fff;--color-surface-sunken:#eceef2;--color-border:#e2e5ea;--color-border-strong:#c8cdd6;--color-text:#16181d;--color-text-muted:#5f6672;--color-text-on-accent:#fff;--color-accent:#2f5bd7;--color-accent-muted:#e6ecfb;--color-focus-ring:#2f5bd7;--color-scrim:#10121773;--elevation-overlay:0 8px 28px #1012172e;--color-danger:#b3243d;--color-danger-muted:#fdeaee;--color-warning:#8a5a00;--color-warning-muted:#fbf0da;--color-success:#1c7048;--color-success-muted:#e2f4ea;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:20px;--space-xl:32px;--radius-sm:4px;--radius-md:8px;--radius-pill:999px;--font-family:system-ui, -apple-system, "Segoe UI", roboto, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "Consolas", monospace;--font-size-xs:11px;--font-size-sm:13px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:20px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--size-header-height:52px;--size-status-bar-height:26px;--size-nav-rail:48px;--size-nav-panel:184px;--size-nav-width:calc(var(--size-nav-rail) + var(--size-nav-panel));--size-control:30px;--motion-fast:.12s;--motion-base:.2s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-canvas:#101216;--color-surface:#181b21;--color-surface-raised:#1f232b;--color-surface-sunken:#0c0e12;--color-border:#2a2f39;--color-border-strong:#3c434f;--color-text:#e8eaee;--color-text-muted:#9aa2b1;--color-text-on-accent:#fff;--color-accent:#6f93f0;--color-accent-muted:#1e2740;--color-focus-ring:#6f93f0;--color-scrim:#0009;--elevation-overlay:0 8px 28px #00000080;--color-danger:#f2778f;--color-danger-muted:#3a1b23;--color-warning:#e0a94a;--color-warning-muted:#352a11;--color-success:#59c48c;--color-success-muted:#14301f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--color-canvas:#101216;--color-surface:#181b21;--color-surface-raised:#1f232b;--color-surface-sunken:#0c0e12;--color-border:#2a2f39;--color-border-strong:#3c434f;--color-text:#e8eaee;--color-text-muted:#9aa2b1;--color-text-on-accent:#fff;--color-accent:#6f93f0;--color-accent-muted:#1e2740;--color-focus-ring:#6f93f0;--color-scrim:#0009;--elevation-overlay:0 8px 28px #00000080;--color-danger:#f2778f;--color-danger-muted:#3a1b23;--color-warning:#e0a94a;--color-warning-muted:#352a11;--color-success:#59c48c;--color-success-muted:#14301f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.app-shell{transition:grid-template-columns var(--motion-base) ease}.app-shell[data-nav=expanded]{--size-nav-panel-column:var(--size-nav-panel)}.app-shell[data-nav=collapsed]{--size-nav-panel-column:0px}.app-pressable{transition:background-color var(--motion-fast) ease, color var(--motion-fast) ease, border-color var(--motion-fast) ease}.app-pressable:hover:not([aria-current=page]):not([aria-checked=true]):not(:disabled){background-color:var(--color-surface-sunken);color:var(--color-text)}.app-pressable:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.app-scrim{display:none}@media (width<=768px){.app-shell[data-nav=expanded]{--size-nav-panel-column:0px}.app-shell[data-nav=expanded] .app-nav{inset-block:var(--size-header-height) var(--size-status-bar-height);z-index:20;width:var(--size-nav-width);box-shadow:var(--elevation-overlay);position:fixed;inset-inline-start:0}.app-shell[data-nav=expanded] .app-scrim{display:block}}@media (prefers-reduced-motion:reduce){.app-shell,.app-pressable,.app-nav,.app-nav-label{transition:none}}.app-control{transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease}.app-control:hover:not(:disabled):not([aria-invalid=true]){border-color:var(--color-border-strong)}.app-control:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px;border-color:var(--color-focus-ring)}.app-control:disabled{opacity:.55;cursor:not-allowed}.app-pressable:disabled{opacity:.6;cursor:not-allowed}.app-picker-item{transition:background-color var(--motion-fast) ease}.app-picker-item:hover{background-color:var(--color-surface-sunken)}.app-picker-item:focus-within{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.app-row{transition:background-color var(--motion-fast) ease}.app-row:hover{background-color:var(--color-surface-sunken)}.app-row-link{cursor:pointer}.app-row:last-child>td{border-bottom:none}@media (prefers-reduced-motion:reduce){.app-control,.app-picker-item,.app-row{transition:none}}.app-dialog[open]{flex-direction:column;display:flex}.app-dialog{max-height:calc(100dvh - 2 * var(--space-xl));color:var(--color-text);border:none;margin:auto;padding:0;overflow:hidden auto}.app-dialog::backdrop{background-color:var(--color-scrim)}.ag-row.sheet-row-problem{background-color:color-mix(in srgb, var(--color-danger) 14%, transparent)!important}.ag-row.sheet-row-done{background-color:color-mix(in srgb, var(--color-success) 14%, transparent)!important}.app-toasts{z-index:30;gap:var(--space-sm);width:min(360px, calc(100vw - 2 * var(--space-md)));flex-direction:column;display:flex;position:fixed;inset-block-end:calc(var(--size-status-bar-height) + var(--space-md));inset-inline-end:var(--space-lg)}.app-toast{box-shadow:var(--elevation-overlay);animation:app-toast-in var(--motion-base) ease-out}.app-toast-close{cursor:pointer;background:0 0;border:0;padding:0;line-height:1}@keyframes app-toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.app-toast{animation:none}}.app-grants-layout{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-template-areas:"table panel";align-items:start;display:grid}.app-grants-table{grid-area:table;min-width:0}.app-grants-panel-slot{top:var(--space-md);grid-area:panel;position:sticky}@media (width<=1024px){.app-grants-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"panel""table"}.app-grants-panel-slot{position:static}}.app-grant-panel{gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);flex-direction:column;display:flex}.app-person-chosen{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface-sunken);display:flex}.app-suggestions,.app-popover{inset-inline:0;z-index:20;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-surface-raised);box-shadow:var(--elevation-overlay);color:var(--color-text);position:absolute;top:calc(100% + 4px)}.app-suggestions{padding:var(--space-xs) 0;max-height:320px;margin:0;list-style:none;overflow-y:auto}.app-popover{padding:var(--space-md)}.app-suggestion{padding:var(--space-xs) var(--space-sm);cursor:pointer;flex-direction:column;gap:2px;display:flex}.app-suggestion[aria-selected=true]{background-color:var(--color-accent-muted)}.app-suggestion-new{border-top:1px solid var(--color-border);color:var(--color-accent);font-weight:var(--font-weight-medium)}.app-suggestion-empty{padding:var(--space-xs) var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.ag-row.sheet-row-changed{background-color:color-mix(in srgb, var(--color-accent) 10%, transparent)!important}.app-tabs{gap:var(--space-sm);flex-direction:column;min-width:0;display:flex}.app-tablist{gap:var(--space-xs);border-bottom:1px solid var(--color-border);display:flex}.app-tab{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:inline-flex}.app-tab:hover{color:var(--color-text)}.app-tab[aria-selected=true]{border-bottom-color:var(--color-accent);color:var(--color-text)}.app-tab:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.app-tab-badge{border-radius:var(--radius-pill);background-color:var(--color-surface-sunken);min-width:18px;color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center;padding:0 5px}.app-tab[aria-selected=true] .app-tab-badge{background-color:var(--color-accent-muted);color:var(--color-accent)}.app-assign{gap:var(--space-md);flex-direction:column;display:flex}.app-assign-filter{min-height:28px;font-size:var(--font-size-sm)}.app-assign-heading{align-items:baseline;gap:var(--space-xs);margin:0 0 var(--space-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);display:flex}.app-assign-list{padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);max-height:220px;margin:0;list-style:none;overflow-y:auto}.app-assign-item{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);display:flex}.app-assign-item:hover{background-color:var(--color-surface-sunken)}.app-assign-item[data-change=added]{background-color:var(--color-accent-muted)}.app-assign-item[data-change=removed]{background-color:var(--color-warning-muted)}.app-assign-text{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;display:flex}.app-assign-label{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.app-assign-empty{padding:var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.app-cap-row:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.app-cap-group+.app-cap-group{margin-top:var(--space-md)}.app-cap-group-title{margin:0 0 var(--space-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.app-cap-list{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:0;padding:0;list-style:none}.app-cap-item+.app-cap-item{border-top:1px solid var(--color-border)}.app-cap-row{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);color:var(--color-text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;display:grid}.app-cap-row:hover:not(:disabled){background-color:var(--color-surface-sunken)}.app-cap-row:disabled{cursor:default;color:var(--color-text-muted)}.app-cap-row[aria-expanded=true]{background-color:var(--color-accent-muted)}.app-cap-row-source{font-size:var(--font-size-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=640px){.app-cap-row{grid-template-columns:minmax(0,1fr) auto}.app-cap-row-source{grid-area:2/1/auto/-1}}.app-cap-detail{padding:var(--space-sm);background-color:var(--color-surface-sunken);overflow-x:auto}.app-cap-routes{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.app-cap-routes th,.app-cap-routes td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border);text-align:start}.app-cap-routes th{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.app-split-layout{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start;display:grid}.app-split-list{gap:var(--space-sm);flex-direction:column;min-width:0;display:flex}.app-split-panel{top:var(--space-md);gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;min-width:0;display:flex;position:sticky}@media (width<=1024px){.app-split-layout{grid-template-columns:minmax(0,1fr)}.app-split-panel{position:static}}body{font-family:var(--font-family);font-size:var(--font-size-md);color:var(--color-text);background-color:var(--color-canvas);-webkit-font-smoothing:antialiased;margin:0}*,:before,:after{box-sizing:border-box}
