:root{--brand-blue:#06396f;--brand-blue-bright:#1f6db5;--brand-green:#008c44;--brand-green-mid:#8dc63f;--brand-green-light:#d7df23;--brand-danger:#ae323d;--brand-warning:#ff9c07;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-md:.875rem;--font-size-lg:1rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--line-height:1.45;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--shadow-sm:0 4px 8px 0 #102e3e29, 0 0 2px 0 #102e3e14;--shadow-md:0 8px 16px 0 #102e3e29, 0 0 4px 0 #102e3e14;--z-header:100;--z-modal:1000;--color-bg:#f1f3f5;--color-surface:#fff;--color-surface-sunken:#f8f9fa;--color-surface-hover:#eef2f6;--color-border:#dee2e6;--color-border-strong:#ced4da;--color-text:#212529;--color-text-muted:#5b6570;--color-text-inverse:#fff;--color-primary:var(--brand-blue);--color-primary-hover:#052c56;--color-on-primary:#fff;--color-link:var(--brand-blue);--color-accent:var(--brand-green);--color-accent-soft:#e3f4ea;--color-accent-text:#05582d;--color-danger:#9c2b35;--color-danger-soft:#fbeaec;--color-danger-text:#7d222b;--color-danger-hover:#7d222b;--color-danger-on:#fff;--color-warning-soft:#fff4e0;--color-warning-text:#7a4a00;--color-neutral-soft:#eceff2;--color-neutral-text:#495057;--color-focus:#1f6db5;--color-header-bg:var(--brand-blue);--color-header-text:#fff;--color-code-bg:#f8f9fa}:root[data-theme=dark]{--color-bg:#10161d;--color-surface:#182029;--color-surface-sunken:#131a22;--color-surface-hover:#202a35;--color-border:#2c3742;--color-border-strong:#3b4753;--color-text:#e9ecef;--color-text-muted:#9aa7b4;--color-text-inverse:#10161d;--color-primary:var(--brand-blue-bright);--color-primary-hover:#2a80cf;--color-on-primary:#fff;--color-link:#6fb2f5;--color-accent:var(--brand-green-mid);--color-accent-soft:#14301f;--color-accent-text:#a5d967;--color-danger:#c0454f;--color-danger-soft:#341a1d;--color-danger-text:#f3a1a8;--color-danger-hover:#a3353f;--color-danger-on:#fff;--color-warning-soft:#33260e;--color-warning-text:#f0c070;--color-neutral-soft:#222c37;--color-neutral-text:#c2cbd4;--color-focus:#6fb2f5;--color-header-bg:#0c1218;--color-header-text:#e9ecef;--color-code-bg:#131a22;--shadow-sm:0 4px 8px 0 #00000073;--shadow-md:0 8px 20px 0 #0000008c}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{margin:0;line-height:1.25}code{font-family:var(--font-mono);background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--space-1);font-size:.92em}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-2);z-index:var(--z-modal);padding:var(--space-2) var(--space-3);background:var(--color-surface);color:var(--color-link);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);transition:top .12s ease-out;position:absolute;top:-3rem}.skip-link:focus{top:var(--space-2)}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-header-bg);color:var(--color-header-text);z-index:var(--z-header);flex-wrap:wrap;display:flex;position:sticky;top:0}.app-header__brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.app-header__logo{width:auto;height:26px}.app-header__divider{background:#ffffff59;width:1px;height:22px}.app-header__product{letter-spacing:.01em;font-weight:600}.app-header__actions{align-items:center;gap:var(--space-2);display:flex}.app-header__user{font-size:var(--font-size-sm);opacity:.9;text-overflow:ellipsis;white-space:nowrap;max-width:18ch;overflow:hidden}.app-main{padding:var(--space-5) var(--space-4);flex:1}.app-main:focus{outline:none}.page{gap:var(--space-4);flex-direction:column;max-width:1180px;margin:0 auto;display:flex}.page--centered{justify-content:center;align-items:center;min-height:60vh}.page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.page__title{font-size:var(--font-size-2xl);font-weight:700}.page__subtitle{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.search__label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.04em;font-weight:600;display:block}.search__row{gap:var(--space-2);display:flex}.search__row .input{min-width:15rem}.input,.json-editor__textarea{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-md);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.input:disabled,.json-editor__textarea:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:not-allowed}.input[readonly]{background:var(--color-surface-sunken)}.json-editor__textarea{font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical;min-height:9rem}.json-editor__actions{margin-top:var(--space-1);justify-content:flex-end;display:flex}.button{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);font-family:inherit;font-size:var(--font-size-md);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;font-weight:600;line-height:1.2;display:inline-flex}.button:disabled{opacity:.55;cursor:not-allowed}.button--sm{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm)}.button--block{width:100%}.button--primary{background:var(--color-primary);color:var(--color-on-primary)}.button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.button--accent{background:var(--color-accent);color:#fff}:root[data-theme=dark] .button--accent{color:#0b1f12}.button--accent:hover:not(:disabled){filter:brightness(1.08)}.button--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.button--secondary:hover:not(:disabled){background:var(--color-surface-hover)}.button--ghost{color:var(--color-link);background:0 0;border-color:#0000}.button--ghost:hover:not(:disabled){background:var(--color-surface-hover)}.button--on-header{color:var(--color-header-text);border-color:#ffffff59}.button--on-header:hover:not(:disabled){background:#ffffff1f}.icon-button{width:2rem;height:2rem;font-size:var(--font-size-lg);color:inherit;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--color-surface-hover)}.app-header .icon-button:hover{background:#ffffff1f}.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;font-size:var(--font-size-md);overflow:hidden}.data-table th,.data-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table thead th{background:var(--color-surface-sunken);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface-hover)}.cell-id{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:600}.cell-muted{color:var(--color-text-muted)}.cell-error{color:var(--color-danger-text)}.cell-note{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted);display:block}.cell-actions{text-align:right;white-space:nowrap}.cell-actions .button+.button,.cell-actions .button+.cell-blocked{margin-left:var(--space-1)}.cell-blocked{vertical-align:top;flex-direction:column;align-items:flex-end;display:inline-flex}.cell-blocked .cell-note{white-space:normal;text-align:right;max-inline-size:12rem}.badge{padding:.1rem var(--space-2);font-size:var(--font-size-xs);border:1px solid #0000;border-radius:999px;font-weight:600;display:inline-block}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-text);border-color:var(--color-accent-text)}.badge--neutral{background:var(--color-neutral-soft);color:var(--color-neutral-text);border-color:var(--color-border-strong)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:var(--color-warning-text)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger-text);border-color:var(--color-danger-text)}.status-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-4);border-left-width:4px}.status-panel--loading{border-left-color:var(--color-primary)}.status-panel--empty{border-left-color:var(--color-border-strong)}.status-panel--info{border-left-color:var(--color-accent)}.status-panel--error{border-left-color:var(--color-danger);background:var(--color-danger-soft)}.status-panel__title{margin:0;font-weight:600}.status-panel__description{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.status-panel--error .status-panel__description{color:var(--color-danger-text)}.status-panel__action{margin-top:var(--space-3)}.status-panel__line,.status-panel__detail{display:block}.status-panel__detail{margin-top:var(--space-1);font-size:var(--font-size-xs);overflow-wrap:anywhere}.status-panel__buttons{gap:var(--space-2);flex-direction:column;display:flex}.alert{padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-md);border:1px solid #0000}.alert--danger{background:var(--color-danger-soft);color:var(--color-danger-text);border-color:var(--color-danger)}.alert--success{background:var(--color-accent-soft);color:var(--color-accent-text);border-color:var(--color-accent)}.alert--warning{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:var(--color-warning-text)}.alert--accent{background:var(--color-accent-soft);color:var(--color-accent-text);border-color:var(--color-accent)}.field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.field__label{font-size:var(--font-size-sm);font-weight:600}.field__required{color:var(--color-danger-text)}.field__hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.field__error{font-size:var(--font-size-xs);color:var(--color-danger-text);margin:0;font-weight:600}.field--invalid .input,.field--invalid .json-editor__textarea{border-color:var(--color-danger);border-width:2px}.form-section{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-sunken);gap:var(--space-3);flex-direction:column;display:flex}.form-section__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.form-section__title{font-size:var(--font-size-lg);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.form-section__key{font-weight:400;font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-section__note{font-size:var(--font-size-xs);color:var(--color-text-muted);grid-column:1/-1;margin:0}.form-section__note--warning{color:var(--color-warning-text);font-weight:600}.form-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));display:grid}.segmented{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);gap:0;margin:0;padding:2px;display:inline-flex}.segmented__option{display:inline-flex;position:relative}.segmented__option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.segmented__option span{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:600}.segmented__option input:checked+span{background:var(--color-primary);color:var(--color-on-primary)}.segmented__option input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:2px}.modal-backdrop{z-index:var(--z-modal);padding:var(--space-4);background:#080e148c;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(56rem,100%);box-shadow:var(--shadow-md);margin:auto}.modal__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.modal__title{font-size:var(--font-size-xl);font-weight:700}.modal__body{gap:var(--space-4);padding:var(--space-4);flex-direction:column;display:flex}.modal__intro{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.modal__footer{justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex}.login-page{min-height:100%;padding:var(--space-4);background:radial-gradient(1200px 500px at 50% -10%, var(--color-surface), transparent), var(--color-bg);justify-content:center;align-items:center;display:flex}.login-page__toolbar{top:var(--space-3);right:var(--space-3);position:fixed}.login-card{gap:var(--space-3);width:min(24rem,100%);padding:var(--space-6) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;display:flex}.login-card__logo{box-sizing:content-box;width:auto;height:30px;padding:var(--space-2) var(--space-4);background:var(--brand-blue);border-radius:var(--radius-md);align-self:center}.login-card__title{font-size:var(--font-size-xl);font-weight:700}.login-card__subtitle,.login-card__note{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.login-card__note{font-size:var(--font-size-xs)}@media (width<=720px){.page__header,.app-header{flex-direction:column;align-items:stretch}.data-table{display:block;overflow-x:auto}}.pagination{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);background:var(--color-surface);border-top:0;flex-wrap:wrap;display:flex}.pagination__summary{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.pagination__controls{align-items:center;gap:var(--space-2);display:flex}.pagination__size{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.pagination__indicator{font-size:var(--font-size-sm);color:var(--color-text);text-align:center;min-width:9rem}.input--compact{width:auto;padding:var(--space-1) var(--space-2)}.inherited__line{margin:var(--space-2) 0 0}.inherited__code{margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:pre;line-height:1.5;overflow-x:auto}.checkbox{align-items:flex-start;gap:var(--space-2);cursor:pointer;display:flex}.checkbox input{accent-color:currentColor;flex:none;block-size:1rem;inline-size:1rem;margin:0;translate:0 .15rem}.alert__detail{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);opacity:.85}.button--danger{background:var(--color-danger);color:var(--color-danger-on);border-color:var(--color-danger)}.button--danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.button--danger-ghost{color:var(--color-danger-text)}.button--danger-ghost:hover:not(:disabled){background:var(--color-danger-soft)}
