@charset "UTF-8";:root{--brand: #6d28d9;--brand-dark: color-mix(in srgb, var(--brand) 84%, #000);--brand-deeper: color-mix(in srgb, var(--brand) 70%, #000);--brand-soft: color-mix(in srgb, var(--brand) 62%, #fff);--brand-glow: color-mix(in srgb, var(--brand) 18%, transparent);--brand-ring: color-mix(in srgb, var(--brand) 28%, #fff);--brand-light: color-mix(in srgb, var(--brand) 6%, #fff);--brand-light-2: color-mix(in srgb, var(--brand) 13%, #fff);--brand-on-light: var(--brand-dark);--success: #10b981;--success-bg: #ecfdf5;--warning: #f59e0b;--warning-bg: #fffbeb;--danger: #ef4444;--danger-bg: #fef2f2;--info: #7c3aed;--info-bg: #f5f3ff;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--surface-4: #e9eef5;--text: #0f172a;--text-2: #334155;--text-muted: #64748b;--text-faint: #94a3b8;--border: #e2e8f0;--border-2: #cbd5e1;--muted: var(--text-muted);--text-3: var(--text-muted);--bg: var(--surface-2);--bg-subtle: var(--surface-2);--surface-1: var(--surface);--surface-alt: var(--surface-2);--card-bg: var(--surface);--nav-bg: var(--surface);--border-1: var(--border);--border-soft: var(--surface-3);--r-md: var(--r);--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 28px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 12px rgba(0,0,0,.07), 0 2px 6px rgba(0,0,0,.04);--shadow-lg: 0 12px 40px rgba(0,0,0,.1), 0 4px 12px rgba(0,0,0,.06);--shadow-xl: 0 24px 60px rgba(0,0,0,.14), 0 8px 24px rgba(0,0,0,.08);--shadow-brand: 0 4px 14px color-mix(in srgb, var(--brand) 30%, transparent);--sa-topbar-h: 54px;--t-fast: .1s cubic-bezier(.4,0,.2,1);--t: .16s cubic-bezier(.4,0,.2,1);--t-slow: .24s cubic-bezier(.4,0,.2,1);--t-spring: .3s cubic-bezier(.34,1.56,.64,1)}[data-theme=dark]{--surface: #1c1c28;--surface-2: #15151f;--surface-3: #1f1f2d;--surface-4: #2a2a3d;--border: #2e2e42;--border-2: #3d3d57;--text: #e2e8f5;--text-2: #b8c0d4;--text-muted: #7a849e;--text-faint: #545e76;--bs-body-color: #e2e8f5;--bs-body-color-rgb: 226,232,245;--bs-body-bg: #15151f;--bs-body-bg-rgb: 21,21,31;--bs-emphasis-color: #ffffff;--bs-secondary-color: rgba(226,232,245,.68);--bs-border-color: #2e2e42;--brand-light: color-mix(in srgb, var(--brand) 14%, #15151f);--brand-light-2: color-mix(in srgb, var(--brand) 26%, #15151f);--brand-ring: color-mix(in srgb, var(--brand) 34%, #15151f);--brand-on-light: var(--brand-soft);--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 4px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 4px 16px rgba(0,0,0,.35);--shadow-lg: 0 12px 40px rgba(0,0,0,.5)}:root{--ai-gradient: linear-gradient(135deg, #7c3aed 0%, #2563eb 50%, #0891b2 100%);--ai-tint: color-mix(in srgb, #7c3aed 8%, #fff);--ai-border: color-mix(in srgb, #7c3aed 28%, #fff)}[data-theme=dark]{--ai-tint: color-mix(in srgb, #7c3aed 16%, #15151f);--ai-border: color-mix(in srgb, #7c3aed 38%, #15151f)}:root{--status-ok: var(--success);--status-warn: var(--warning);--status-bad: var(--danger);--status-idle: var(--text-faint);--status-running: var(--info)}.pu-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.44rem .85rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:.82rem;font-weight:500;line-height:1.2;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);min-height:34px}.pu-btn:hover:not(:disabled){background:var(--surface-3)}.pu-btn:active:not(:disabled){transform:translateY(1px)}.pu-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.pu-btn:disabled{opacity:.5;cursor:not-allowed}.pu-btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;box-shadow:var(--shadow-brand)}.pu-btn-primary:hover:not(:disabled){background:var(--brand-dark)}.pu-btn-danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.pu-btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 84%,#000)}.pu-btn-ghost{background:transparent;border-color:transparent}.pu-btn-ghost:hover:not(:disabled){background:var(--surface-3)}.pu-btn-sm{padding:.28rem .6rem;font-size:.76rem;min-height:28px}.pu-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.16rem .5rem;border-radius:999px;background:var(--surface-3);color:var(--text-2);font-size:.72rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.pu-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--status-idle);flex-shrink:0}.pu-pill:empty{outline:1px dashed var(--danger);min-width:2rem}.pu-pill-ok:before{background:var(--status-ok)}.pu-pill-warn:before{background:var(--status-warn)}.pu-pill-bad:before{background:var(--status-bad)}.pu-pill-running:before{background:var(--status-running);animation:pulse-dot 1.4s ease-in-out infinite}.pu-pill-ok{background:var(--success-bg);color:var(--success)}.pu-pill-warn{background:var(--warning-bg);color:var(--warning)}.pu-pill-bad{background:var(--danger-bg);color:var(--danger)}.pu-pill-running{background:var(--info-bg);color:var(--info)}.pu-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2.5rem 1.5rem;text-align:center;color:var(--text-muted)}.pu-state-icon{opacity:.55}.pu-state-title{font-size:.95rem;font-weight:600;color:var(--text-2)}.pu-state-detail{font-size:.82rem;max-width:42ch;line-height:1.55}.pu-state-actions{margin-top:.35rem;display:flex;gap:.5rem}.pu-state-denied .pu-state-title{color:var(--text-2)}.pu-state-error .pu-state-title{color:var(--danger)}.pu-skeleton{background:linear-gradient(90deg,var(--surface-3) 0%,var(--surface-4) 40%,var(--surface-3) 80%);background-size:600px 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--r-sm);min-height:1em}.pu-skeleton-row{height:2.4rem;margin-bottom:.5rem}.pu-skeleton-text{height:.8em;margin:.3em 0}@media (prefers-reduced-motion: reduce){.pu-skeleton{animation:none;background:var(--surface-3)}.pu-pill-running:before{animation:none}}.pu-progress{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden}.pu-progress>i{display:block;height:100%;width:var(--pu-progress, 0%);border-radius:inherit;background:var(--brand);transition:width var(--t-slow)}.pu-progress-indeterminate>i{width:35%;animation:pu-indeterminate 1.2s ease-in-out infinite}@keyframes pu-indeterminate{0%{transform:translate(-100%)}to{transform:translate(300%)}}.pu-table-wrap{overflow-x:auto;border-radius:var(--r)}.pu-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}.pu-table th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--text-muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--border);white-space:nowrap}.pu-table td{padding:.55rem .7rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.pu-table tbody tr:hover td{background:var(--surface-2)}.pu-table-num{text-align:right;font-variant-numeric:tabular-nums}.pu-person{display:inline-flex;align-items:center;gap:.45rem;min-width:0}.pu-person-avatar{width:26px;height:26px;border-radius:50%;background:var(--brand-light);color:var(--brand-on-light);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.pu-person-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pu-person-sub{color:var(--text-muted);font-size:.74rem}.pu-drawer-backdrop{position:fixed;inset:0;background:#00000059;z-index:1050;animation:fadeIn var(--t) both}.pu-drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-xl);z-index:1051;display:flex;flex-direction:column;animation:pu-drawer-in var(--t-slow) both}@keyframes pu-drawer-in{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.pu-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--border);flex-shrink:0}.pu-drawer-body{padding:1.1rem;overflow-y:auto;flex:1 1 auto}.pu-drawer-foot{padding:.8rem 1.1rem;border-top:1px solid var(--border);background:var(--surface-2);display:flex;gap:.5rem;justify-content:flex-end;flex-shrink:0}.pu-toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:1080;display:flex;flex-direction:column;gap:.5rem;max-width:min(380px,calc(100vw - 2rem))}.pu-toast{display:flex;align-items:flex-start;gap:.55rem;padding:.7rem .85rem;border-radius:var(--r);border:1px solid var(--border);border-left:3px solid var(--status-idle);background:var(--surface);box-shadow:var(--shadow-lg);font-size:.82rem;animation:slideDown var(--t) both}.pu-toast-ok{border-left-color:var(--status-ok)}.pu-toast-warn{border-left-color:var(--status-warn)}.pu-toast-bad{border-left-color:var(--status-bad)}.pu-confirm-body{font-size:.86rem;line-height:1.6;color:var(--text-2)}.pu-confirm-target{font-weight:700;color:var(--text)}.pu-confirm-note{margin-top:.6rem;padding:.55rem .7rem;border-radius:var(--r-sm);background:var(--danger-bg);color:var(--danger);font-size:.78rem}.pu-palette-backdrop{position:fixed;inset:0;background:#0006;z-index:1090;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;animation:fadeIn var(--t-fast) both}.pu-palette{width:min(620px,calc(100vw - 2rem));max-height:60vh;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;animation:scaleIn var(--t) both}.pu-palette-input{border:0;border-bottom:1px solid var(--border);padding:.9rem 1.1rem;font-size:.95rem;background:transparent;color:var(--text);outline:none;flex-shrink:0}.pu-palette-list{overflow-y:auto;padding:.35rem}.pu-palette-group{padding:.45rem .75rem .25rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.pu-palette-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .75rem;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font:inherit;font-size:.85rem;text-align:left;cursor:pointer}.pu-palette-item[aria-selected=true]{background:var(--brand-light);color:var(--brand-on-light)}.pu-palette-item-sub{margin-left:auto;color:var(--text-faint);font-size:.72rem}.pu-kbd{display:inline-block;padding:.05rem .35rem;border:1px solid var(--border-2);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}.pu-vlist{height:100%;min-height:0}.pu-vlist-row{display:flex;align-items:center;gap:.6rem;padding:0 .7rem;border-bottom:1px solid var(--border)}:root{--accent-50: #eef2ff;--accent-100: #e0e7ff;--accent-200: #c7d2fe;--accent-300: #a5b4fc;--accent-400: #818cf8;--accent-500: #6366f1;--accent-600: #4f46e5;--accent-700: #4338ca;--accent: var(--accent-600);--accent-hover: var(--accent-700);--on-accent: #ffffff;--success: #059669;--success-bg: #ecfdf5;--warning: #b45309;--warning-bg: #fffbeb;--danger: #dc2626;--danger-bg: #fef2f2;--info: #0369a1;--info-bg: #f0f9ff;--r-xs: 6px;--r-sm: 8px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-full: 999px;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--font-sans: "Inter var", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--t-fast: .11s cubic-bezier(.4, 0, .2, 1);--t: .16s cubic-bezier(.4, 0, .2, 1);--header-h: 56px}:root,:root[data-theme=light]{color-scheme:light;--surface-0: #f6f7f9;--surface-1: #ffffff;--surface-2: #f2f4f7;--surface-3: #e9ecf1;--border: #e5e8ee;--border-strong: #d3d8e2;--text: #101828;--text-muted: #5a6478;--text-faint: #8792a6;--accent-soft: var(--accent-50);--accent-soft-text: var(--accent-700);--scrim: rgba(16, 24, 40, .44);--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .04);--shadow-md: 0 2px 4px rgba(16, 24, 40, .04), 0 4px 12px rgba(16, 24, 40, .06);--shadow-lg: 0 4px 8px rgba(16, 24, 40, .04), 0 12px 32px rgba(16, 24, 40, .1);--ring: 0 0 0 3px rgba(79, 70, 229, .16)}:root[data-theme=dark]{color-scheme:dark;--surface-0: #0b0f19;--surface-1: #131824;--surface-2: #1a2030;--surface-3: #232b3d;--border: #262f42;--border-strong: #35405a;--text: #e8ecf4;--text-muted: #9aa5bd;--text-faint: #6d7994;--accent: var(--accent-500);--accent-hover: var(--accent-400);--accent-soft: rgba(99, 102, 241, .15);--accent-soft-text: var(--accent-300);--success: #34d399;--success-bg: rgba(52, 211, 153, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .12);--info: #38bdf8;--info-bg: rgba(56, 189, 248, .12);--scrim: rgba(3, 6, 15, .66);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .5);--ring: 0 0 0 3px rgba(99, 102, 241, .3)}@media (prefers-color-scheme: dark){:root:not([data-theme]){color-scheme:dark;--surface-0: #0b0f19;--surface-1: #131824;--surface-2: #1a2030;--surface-3: #232b3d;--border: #262f42;--border-strong: #35405a;--text: #e8ecf4;--text-muted: #9aa5bd;--text-faint: #6d7994;--accent: var(--accent-500);--accent-hover: var(--accent-400);--accent-soft: rgba(99, 102, 241, .15);--accent-soft-text: var(--accent-300);--success: #34d399;--success-bg: rgba(52, 211, 153, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .12);--info: #38bdf8;--info-bg: rgba(56, 189, 248, .12);--scrim: rgba(3, 6, 15, .66);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .5);--ring: 0 0 0 3px rgba(99, 102, 241, .3)}}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-gutter:stable}body{background:var(--surface-0);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.018em;color:var(--text)}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}h4{font-size:var(--fs-base)}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-200);color:var(--accent-700)}:root[data-theme=dark] ::selection{background:#6366f166;color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);border:3px solid var(--surface-0)}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.hint{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 14px}.mono{font-family:var(--font-mono);font-size:var(--fs-xs);word-break:break-all}.wrap{max-width:880px;margin:0 auto;padding:28px 24px 64px}.wrap.wide{max-width:1240px}@media (max-width: 640px){.wrap{padding:20px 16px 48px}}.centered{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.page-head{margin-bottom:24px}.page-head h1{font-size:var(--fs-2xl);margin-bottom:6px}.page-head p{color:var(--text-muted);font-size:var(--fs-base)}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{margin-left:auto}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;margin-bottom:16px;box-shadow:var(--shadow-xs)}.panel>h3{margin-bottom:4px}.panel>h3+.hint{margin-top:2px}.panel-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}.panel-head h3{margin:0}.empty{border:1px dashed var(--border-strong);border-radius:var(--r-lg);padding:44px 30px;text-align:center;color:var(--text-muted);font-size:var(--fs-sm);background:var(--surface-1)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:var(--fs-sm);font-weight:500;line-height:1;padding:0 13px;height:34px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast);box-shadow:var(--shadow-xs)}button:hover,.btn:hover{background:var(--surface-2);border-color:var(--text-faint)}button:active,.btn:active{background:var(--surface-3)}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button svg,.btn svg{flex:none}.btn-primary{background:var(--accent);border-color:transparent;color:var(--on-accent);font-weight:600;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-hover);border-color:transparent}.btn-primary:active{background:var(--accent-700)}.btn-ghost,.ghost{background:transparent;border-color:transparent;color:var(--text-muted);box-shadow:none}.btn-ghost:hover,.ghost:hover{background:var(--surface-2);color:var(--text);border-color:transparent}.btn-ghost.active,.active.ghost{background:var(--accent-soft);color:var(--accent-soft-text)}.btn-subtle,.btn-mut{background:var(--surface-2);border-color:transparent;color:var(--text-muted);box-shadow:none}.btn-subtle:hover,.btn-mut:hover{background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--danger);border-color:transparent;color:#fff;font-weight:600}.btn-danger:hover{background:var(--danger);filter:brightness(.92);border-color:transparent}.btn-sm{height:28px;padding:0 10px;font-size:var(--fs-xs);border-radius:var(--r-xs)}.btn-lg{height:42px;padding:0 20px;font-size:var(--fs-base);border-radius:var(--r-md)}.btn-full{width:100%}.btn-icon{width:34px;padding:0}.btn-icon.btn-sm{width:28px}.rowbtns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ghost{border:1px solid var(--border)}.ghost:hover{border-color:var(--border-strong)}.ghost.active{background:var(--accent-soft);color:var(--accent-soft-text);border-color:transparent}label{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--text);margin:0 0 6px}input,select,textarea{font:inherit;font-size:var(--fs-base);width:100%;height:38px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);transition:border-color var(--t-fast),box-shadow var(--t-fast)}textarea{height:auto;padding:10px 12px;min-height:84px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--text-faint);cursor:not-allowed}select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235a6478' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}:root[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239aa5bd' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E")}select.inline{width:auto;height:30px;font-size:var(--fs-sm);padding:0 30px 0 10px}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:none}.field{margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 620px){.form-grid{grid-template-columns:1fr}}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:18px}.grid3 label{display:flex;flex-direction:column;gap:6px;font-weight:500}.grid3 input{width:100%}.checkline{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text);white-space:nowrap;cursor:pointer;margin:0}.checkline input{width:auto;margin:0}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 16px;margin:10px 0}.checks label{display:flex;gap:8px;align-items:center;margin:0;font-size:var(--fs-sm);font-weight:400;color:var(--text);cursor:pointer}.check-cat{grid-column:1/-1;margin-top:10px;color:var(--text-faint);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.err{color:var(--danger);font-size:var(--fs-sm);min-height:1em;margin-top:10px}.note{font-size:var(--fs-sm);min-height:1em;margin-top:10px}.note.ok{color:var(--success)}.note.bad{color:var(--danger)}.warn,.ok{display:flex;align-items:flex-start;gap:9px;font-size:var(--fs-sm);padding:11px 14px;border-radius:var(--r-sm);margin:0 0 16px;border:1px solid transparent}.warn{color:var(--danger);background:var(--danger-bg);border-color:var(--danger)}.ok{color:var(--success);background:var(--success-bg);border-color:var(--success)}.warn:empty,.ok:empty{display:none}.state-on{color:var(--success);font-size:var(--fs-sm);font-weight:500}.state-off{color:var(--danger);font-size:var(--fs-sm);font-weight:500}.tabs{display:flex;gap:2px;flex-wrap:wrap;margin-bottom:20px;padding:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);width:fit-content;max-width:100%}.tab{border-radius:var(--r-xs);padding:0 13px;height:30px;display:inline-flex;align-items:center;font-size:var(--fs-sm);font-weight:500;background:transparent;color:var(--text-muted);border:none;text-decoration:none;cursor:pointer;transition:background var(--t-fast),color var(--t-fast);box-shadow:none}.tab:hover{color:var(--text);background:var(--surface-3);border:none}.tab.active{background:var(--surface-1);color:var(--text);font-weight:600;box-shadow:var(--shadow-xs)}.pill{display:inline-flex;align-items:center;border-radius:var(--r-full);border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface-1);padding:0 12px;height:26px;font-size:var(--fs-xs);font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--t-fast);box-shadow:none}.pill:hover{border-color:var(--text-faint);color:var(--text);background:var(--surface-1)}.pill.on{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:600}.pill.on:hover{background:var(--accent-hover);color:var(--on-accent)}.pill.busy{opacity:.5;pointer-events:none}.badge{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-full);padding:2px 9px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);letter-spacing:.02em;white-space:nowrap}.badge.accent{color:var(--accent-soft-text);background:var(--accent-soft);border-color:transparent}.badge.danger{color:var(--danger);background:var(--danger-bg);border-color:transparent}.badge.success{color:var(--success);background:var(--success-bg);border-color:transparent}.perm-chip{display:inline-block;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);padding:3px 8px;font-size:var(--fs-xs);color:var(--text-muted);margin:2px;font-family:var(--font-mono)}.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-1)}.panel .tablewrap{border:none;border-radius:0;background:transparent}table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.panel th{background:transparent}td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background var(--t-fast)}tbody tr:hover{background:var(--surface-2)}td .sub{color:var(--text-muted);font-size:var(--fs-xs)}td.loaderr{color:var(--danger);font-size:var(--fs-sm);font-weight:500;text-align:center;padding:20px 14px}.modal-scrim{position:fixed;inset:0;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:40;padding:24px;animation:scrim-in var(--t) both}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;width:100%;max-width:440px;box-shadow:var(--shadow-lg);animation:modal-in var(--t) both}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:22px}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.stub{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;margin-bottom:14px;box-shadow:var(--shadow-xs)}.stub-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.stub-name{font-weight:600;font-size:var(--fs-md)}.stub-meta{color:var(--text-muted);font-size:var(--fs-sm)}.stub-status{margin-left:auto;background:var(--accent-soft);color:var(--accent-soft-text);border-radius:var(--r-full);padding:3px 11px;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.grant{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--border)}.grant-note{color:var(--text-muted);font-size:var(--fs-xs)}.grant-note.ok{color:var(--success);background:none;border:none;padding:0;margin:0}.grant-note.bad{color:var(--danger)}.grant .spacer{margin-left:auto}.tick{color:var(--success);font-size:var(--fs-sm);white-space:nowrap;font-weight:500}.role-line{padding:14px 0;border-top:1px solid var(--border)}.role-line .rn{font-weight:600;font-size:var(--fs-base);margin-right:8px}.rbac-meta{color:var(--text-muted);font-size:var(--fs-sm)}.text-muted{color:var(--text-muted)}.text-faint{color:var(--text-faint)}.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}
