.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--brand-primary: #0b3d6b;--brand-secondary: #c8a046;--brand-primary-contrast: #ffffff;--brand-on-secondary: #1a1a1a;--brand-accent-soft: color-mix(in srgb, var(--brand-primary) 8%, #ffffff);--brand-accent-border: color-mix(in srgb, var(--brand-primary) 20%, #ffffff);--brand-focus-ring: color-mix(in srgb, var(--brand-primary) 22%, transparent);--bg: #f7f7f8;--surface: #ffffff;--surface-2: #f4f5f7;--surface-3: #ececf1;--border: #e5e7eb;--border-strong: #d4d7dd;--text: #1f2329;--text-muted: #5d6b7d;--text-faint: #9aa3af;--danger: #b3261e;--warning: #8a5a00;--warning-bg: #fff4d6;--success: #15803d;--success-bg: #e6f4ec;--error-bg: #fdecea;--radius: 14px;--radius-sm: 9px;--radius-lg: 22px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-md: 0 8px 24px rgba(16, 24, 40, .1), 0 2px 8px rgba(16, 24, 40, .06);--shadow-lg: 0 24px 60px rgba(16, 24, 40, .22), 0 8px 24px rgba(16, 24, 40, .14);--gap: 16px;--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--z-header: 20;--z-overlay: 1000;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.boot-splash{display:grid;place-items:center;min-height:100vh;color:var(--text-muted);font-family:var(--font)}a{color:var(--brand-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.25;font-weight:650;color:var(--text)}p{margin:0 0 .6em}:where(a,button,[role=button],summary):focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.stack{display:flex;flex-direction:column;gap:var(--gap)}.row{display:flex;gap:var(--gap);align-items:center}.row.wrap{flex-wrap:wrap}.spacer{flex:1 1 auto}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.82rem}.center{text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.card-header{padding:16px 20px;border-bottom:1px solid var(--border);font-weight:650}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 16px;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;background:var(--surface-2);color:var(--text);transition:filter .12s ease,background .12s ease,border-color .12s ease;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-primary);color:var(--brand-primary-contrast);border-color:var(--brand-primary)}.btn-secondary{background:var(--brand-secondary);color:var(--brand-on-secondary);border-color:var(--brand-secondary)}.btn-outline{background:var(--surface);border-color:var(--border-strong)}.btn-outline:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;border-color:transparent;color:var(--brand-primary)}.btn-ghost:hover:not(:disabled){background:var(--brand-accent-soft)}.btn-danger{background:var(--surface);border-color:var(--danger);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--error-bg)}.btn-sm{padding:6px 11px;font-size:.82rem}label.field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:600;color:var(--text-muted)}input,select,textarea{font:inherit;font-size:.9rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 11px;width:100%}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-focus-ring)}textarea{resize:vertical}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:650;letter-spacing:.02em;background:var(--brand-accent-soft);color:var(--brand-primary);border:1px solid var(--brand-accent-border);text-transform:uppercase}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}table.data{width:100%;border-collapse:collapse;font-size:.86rem}table.data th,table.data td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top}table.data th{color:var(--text-muted);font-weight:650;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em}table.data tr:last-child td{border-bottom:none}.bar-cell{position:relative;min-width:200px}.bar-cell .bar{height:8px;border-radius:999px;background:var(--brand-primary);opacity:.85;margin-top:4px}.alert{border-radius:var(--radius-sm);padding:12px 16px;font-size:.88rem;border:1px solid var(--border);background:var(--surface)}.alert-info{background:var(--brand-accent-soft);border-color:var(--brand-accent-border);color:var(--text)}.alert-warning{background:var(--warning-bg);border-color:#f0d68a;color:var(--warning)}.alert-error{background:var(--error-bg);border-color:#f5c6c2;color:var(--danger)}.divider{height:1px;background:var(--border);border:none;margin:8px 0}.spinner{width:16px;height:16px;border:2px solid color-mix(in srgb,var(--brand-primary) 30%,transparent);border-top-color:var(--brand-primary);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cdk-overlay-container{position:fixed;inset:0;z-index:var(--z-overlay)}.cdk-global-overlay-wrapper{display:flex;justify-content:center;align-items:center}.cdk-overlay-dark-backdrop{background:#10182880;backdrop-filter:blur(1px)}.app-dialog-pane{max-width:100%;max-height:100%;padding:16px}.app-dialog-pane .cdk-dialog-container{display:block;outline:none}.app-dialog{display:flex;flex-direction:column;width:min(600px,calc(100vw - 32px));max-height:calc(100vh - 64px);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);outline:none;overflow:hidden;animation:dialog-in .16s ease-out}.app-dialog.wide{width:min(820px,calc(100vw - 32px))}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.app-dialog.padded{padding:22px}.dialog-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border);flex:0 0 auto}.dialog-header h3{margin:0;font-size:1.05rem}.dialog-header .spacer{flex:1 1 auto}.dialog-close{flex:0 0 auto;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm)}.dialog-close:hover{background:var(--surface-2);color:var(--text)}.dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:18px 20px 20px}.app-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.app-dialog h3{margin:0 0 12px}.picker-pop,.kebab-menu,.cdk-menu{min-width:200px;max-width:320px;max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:6px;outline:none;animation:menu-in .12s ease-out}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.picker-heading{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:700;padding:6px 8px 4px}.picker-item,.kebab-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font:inherit;font-size:.86rem;padding:8px 9px;border-radius:7px;cursor:pointer}.picker-item:hover,.picker-item.cdk-focused,.kebab-item:hover,.kebab-item.cdk-focused{background:var(--surface-2)}.picker-item.active{color:var(--brand-primary)}.pi-main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.pi-label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-hint{font-size:.74rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-empty{padding:10px;color:var(--text-muted);font-size:.84rem}.kebab-item app-icon{color:var(--text-muted)}.kebab-item.danger{color:var(--danger)}.kebab-item.danger app-icon{color:var(--danger)}
