:root{color-scheme:light;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--color-bg: #eef1f4;--color-bg-elevated: #ffffff;--color-bg-sidebar: #fbfcfd;--color-bg-table-header: #f5f7f9;--color-bg-table-hover: #f8fafb;--color-bg-input: #ffffff;--color-bg-overlay: rgba(255, 255, 255, .72);--color-bg-empty-icon: #eef3f1;--color-bg-modal-backdrop: rgba(21, 26, 32, .42);--color-border: #d7dde3;--color-border-light: #e4e8ec;--color-border-input: #cfd6dd;--color-border-divider: #dbe1e6;--color-border-button-ghost: #d2d9df;--color-border-button-secondary: #b7c3ce;--color-text: #202327;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--color-text-faint: #9aa3ac;--color-text-on-primary: #ffffff;--color-text-table-header: #53606d;--color-text-table-cell: #242a31;--color-primary: #1f6f5b;--color-primary-hover: #185c4b;--color-primary-soft: #e8f2ef;--color-primary-soft-text: #145646;--color-secondary-bg: #e8eef1;--color-secondary-hover: #dde6ea;--color-secondary-text: #1f2933;--color-ghost-bg: #ffffff;--color-ghost-hover: #f4f7f9;--color-ghost-text: #303946;--color-danger-bg: #fff4f2;--color-danger-hover: #ffe8e4;--color-danger-text: #9f3328;--color-danger-border: #e4b3ad;--color-error-bg: #fff2ef;--color-error-text: #8a2d23;--color-error-border: #efc0b8;--color-success: #1f9a68;--color-success-soft: rgba(31, 154, 104, .13);--shadow-card: 0 18px 50px rgba(28, 34, 42, .13);--shadow-modal: 0 24px 70px rgba(16, 24, 40, .24);--shadow-alert: 0 12px 40px rgba(28, 34, 42, .18);--shadow-focus: 0 0 0 3px rgba(31, 111, 91, .16)}[data-theme=dark]{color-scheme:dark;--color-bg: #0f1115;--color-bg-elevated: #1a1d23;--color-bg-sidebar: #14161b;--color-bg-table-header: #1e2128;--color-bg-table-hover: #252a31;--color-bg-input: #1a1d23;--color-bg-overlay: rgba(15, 17, 21, .8);--color-bg-empty-icon: #1e2128;--color-bg-modal-backdrop: rgba(0, 0, 0, .55);--color-border: #2f353d;--color-border-light: #252a31;--color-border-input: #3a414b;--color-border-divider: #1f242b;--color-border-button-ghost: #3a414b;--color-border-button-secondary: #3a414b;--color-text: #e8eaed;--color-text-secondary: #b8c0c7;--color-text-muted: #9aa3ac;--color-text-faint: #7a8490;--color-text-on-primary: #0f1115;--color-text-table-header: #b8c0c7;--color-text-table-cell: #e8eaed;--color-primary: #2a9d7f;--color-primary-hover: #34b894;--color-primary-soft: #14332b;--color-primary-soft-text: #5fd9b6;--color-secondary-bg: #242a31;--color-secondary-hover: #2f353d;--color-secondary-text: #e8eaed;--color-ghost-bg: #1a1d23;--color-ghost-hover: #252a31;--color-ghost-text: #e8eaed;--color-danger-bg: #3d1f1c;--color-danger-hover: #4f2824;--color-danger-text: #ffb4a9;--color-danger-border: #5c3a36;--color-error-bg: #3d1f1c;--color-error-text: #ffb4a9;--color-error-border: #5c3a36;--color-success: #34b894;--color-success-soft: rgba(52, 184, 148, .18);--shadow-card: 0 18px 50px rgba(0, 0, 0, .35);--shadow-modal: 0 24px 70px rgba(0, 0, 0, .5);--shadow-alert: 0 12px 40px rgba(0, 0, 0, .35);--shadow-focus: 0 0 0 3px rgba(42, 157, 127, .25)}:root,[data-theme=light],[data-theme=dark]{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.56}.app-loader{display:grid;min-height:100vh;place-items:center;color:var(--color-text-muted)}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(135deg,#2a9d7f24,#ff645014),var(--color-bg)}.login-panel{width:min(100%,430px);padding:28px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-elevated);box-shadow:var(--shadow-card)}.login-brand,.brand,.profile,.topbar-actions,.toolbar,.modal-header,.modal-actions,.pagination,.row-actions{display:flex;align-items:center}.login-brand{gap:12px;padding-bottom:24px;border-bottom:1px solid var(--color-border-light)}.brand-mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:8px;background:var(--color-primary);color:var(--color-text-on-primary);font-weight:800;letter-spacing:0}.brand-title{font-size:17px;font-weight:800}.brand-subtitle{margin-top:2px;color:var(--color-text-muted);font-size:13px}.login-form{display:grid;gap:18px;padding-top:24px}.login-form h1,.topbar h1,.toolbar h2,.modal h2,.empty-state h2{margin:0;letter-spacing:0}.login-form h1{font-size:26px}.login-form p{margin:6px 0 0;color:var(--color-text-muted)}.field{display:grid;gap:7px;color:var(--color-text-secondary);font-size:13px;font-weight:650}.field input,.field textarea,.field select{width:100%;border:1px solid var(--color-border-input);border-radius:6px;background:var(--color-bg-input);color:var(--color-text);outline:none;padding:10px 11px;font-size:14px;transition:border-color .16s ease,box-shadow .16s ease}.field textarea{resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.field input:disabled,.field select:disabled{background:var(--color-bg-table-header);color:var(--color-text-muted);cursor:not-allowed}.button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:6px;padding:0 14px;font-size:14px;font-weight:750;letter-spacing:0;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.button-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.button-primary:hover{background:var(--color-primary-hover)}.button-secondary{border-color:var(--color-border-button-secondary);background:var(--color-secondary-bg);color:var(--color-secondary-text)}.button-secondary:hover{background:var(--color-secondary-hover)}.button-ghost{border-color:var(--color-border-button-ghost);background:var(--color-ghost-bg);color:var(--color-ghost-text)}.button-ghost:hover{background:var(--color-ghost-hover)}.button-danger{border-color:var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger-text)}.button-danger:hover{background:var(--color-danger-hover)}.button-small{min-height:31px;padding:0 10px;font-size:12px}.full-width{width:100%}.form-error,.error-banner{border:1px solid var(--color-error-border);border-radius:6px;background:var(--color-error-bg);color:var(--color-error-text)}.form-error{padding:10px 12px;font-size:14px}.shell{display:grid;min-height:100vh;grid-template-columns:264px minmax(0,1fr)}.sidebar{display:flex;min-height:100vh;flex-direction:column;border-right:1px solid var(--color-border-divider);background:var(--color-bg-sidebar);padding:18px 14px}.brand{gap:11px;padding:6px 8px 18px}.nav-list{display:grid;gap:6px;padding:8px 0}.nav-group{display:grid;gap:4px}.nav-group-title{padding:8px 11px 2px;color:var(--color-text-faint);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.nav-item{display:flex;min-height:40px;align-items:center;gap:10px;border-radius:6px;color:var(--color-text-secondary);padding:0 11px;text-decoration:none;font-size:14px;font-weight:750}.nav-item-active{background:var(--color-primary-soft);color:var(--color-primary-soft-text)}.nav-icon{color:var(--color-primary);font-size:15px}.sidebar-footer{display:grid;gap:12px;margin-top:auto;padding:14px 6px 0;border-top:1px solid var(--color-border-light)}.profile{gap:10px;min-width:0}.profile-avatar{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--color-secondary-bg);color:var(--color-text);font-weight:800}.profile-text{min-width:0}.profile-name{overflow:hidden;color:var(--color-text);font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.profile-role{margin-top:2px;color:var(--color-text-muted);font-size:12px}.workspace{min-width:0;padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;margin-bottom:16px}.topbar-kicker,.section-kicker,.modal-kicker{color:var(--color-text-muted);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.topbar h1{margin-top:3px;font-size:27px}.topbar-actions{gap:8px;color:var(--color-text-secondary);font-size:13px}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 4px var(--color-success-soft)}.page-section{display:grid;gap:14px}.toolbar{justify-content:space-between;gap:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-elevated);padding:16px}.toolbar h2{margin-top:4px;font-size:20px}.filter-panel{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-elevated);padding:14px}.filter-actions{display:flex;gap:8px}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;font-size:14px}.icon-button{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--color-border-button-ghost);border-radius:6px;background:var(--color-bg-elevated);color:var(--color-ghost-text)}.table-wrap{position:relative;overflow:auto;min-height:286px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-elevated)}.entity-table{width:100%;min-width:880px;border-collapse:collapse}.entity-table th,.entity-table td{border-bottom:1px solid var(--color-border-light);padding:12px 14px;text-align:left;vertical-align:top}.entity-table th{background:var(--color-bg-table-header);color:var(--color-text-table-header);font-size:12px;font-weight:800;text-transform:uppercase}.entity-table td{color:var(--color-text-table-cell);font-size:14px}.entity-table tbody tr:hover{background:var(--color-bg-table-hover)}.actions-column{width:190px}.row-actions{gap:7px}.mono{font-family:var(--font-mono);font-size:13px}.muted-cell{color:var(--color-text-muted)}.table-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--color-bg-overlay);color:var(--color-text-secondary);font-weight:750}.empty-state{display:grid;min-height:220px;place-items:center;align-content:center;gap:8px;color:var(--color-text-muted);text-align:center}.empty-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;background:var(--color-bg-empty-icon);color:var(--color-primary);font-size:18px}.empty-state h2{color:var(--color-text);font-size:18px}.empty-state p{max-width:420px;margin:0}.pagination{justify-content:flex-end;gap:12px;color:var(--color-text-secondary);font-size:14px}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:22px;background:var(--color-bg-modal-backdrop)}.modal{width:min(100%,520px);border-radius:8px;background:var(--color-bg-elevated);box-shadow:var(--shadow-modal)}.modal-header{justify-content:space-between;gap:16px;padding:18px 18px 14px;border-bottom:1px solid var(--color-border-light)}.modal h2{margin-top:3px;font-size:20px}.entity-form{display:grid;gap:14px;padding:18px}.modal-actions{justify-content:flex-end;gap:10px;padding-top:4px}.proxy-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}.proxy-main{display:grid;gap:14px;min-width:0}.proxy-sidebar{position:sticky;top:18px}.proxy-filter-panel{display:grid;grid-template-columns:1fr;gap:14px;padding:16px}.filter-panel-title{margin:0;font-size:15px;font-weight:800}.proxy-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-header:hover{background:var(--color-bg-table-hover)}.sortable-header-label{display:inline-flex;align-items:center;gap:6px}.sort-indicator{color:var(--color-primary);font-size:13px}.sort-indicator-inactive{color:var(--color-text-faint)}.proxy-row{cursor:pointer}.proxy-row:hover{background:var(--color-bg-table-hover)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pagination-info{color:var(--color-text-muted);font-size:14px}.pagination-controls{display:flex;align-items:center;gap:12px}.page-size-field{display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:14px}.page-size-field select{min-height:31px;padding:4px 8px;border:1px solid var(--color-border-input);border-radius:6px;background:var(--color-bg-input);color:var(--color-text);font-size:14px}.filter-fieldset{display:grid;gap:10px;margin:0;padding:0;border:none}.filter-fieldset legend{margin-bottom:8px;color:var(--color-text-secondary);font-size:13px;font-weight:650}.alert-stack{position:fixed;z-index:100;top:18px;right:18px;display:grid;gap:10px;width:min(100%,420px);max-width:calc(100vw - 36px);pointer-events:none}.alert-item{pointer-events:auto;border:1px solid var(--color-error-border);border-radius:8px;background:var(--color-error-bg);color:var(--color-error-text);box-shadow:var(--shadow-alert);overflow:hidden}.alert-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--color-danger-border);background:var(--color-danger-bg)}.alert-title{font-weight:800;font-size:14px}.alert-close{width:26px;height:26px;border-color:var(--color-danger-border);background:var(--color-bg-elevated);color:var(--color-error-text)}.alert-body{display:grid;gap:6px;padding:12px;font-size:13px}.alert-message{margin:0;line-height:1.45;word-break:break-word}.alert-url{display:grid;gap:2px;margin:0;color:var(--color-text-muted)}.alert-url code{display:block;padding:4px 6px;border-radius:4px;background:var(--color-bg-elevated);color:var(--color-error-text);font-size:12px;word-break:break-all}.alert-status{margin:0;color:var(--color-danger-text);font-weight:750}.theme-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;justify-content:center;border:1px solid var(--color-border-button-ghost);border-radius:6px;background:var(--color-ghost-bg);color:var(--color-ghost-text);font-size:13px;font-weight:750}.theme-toggle:hover{background:var(--color-ghost-hover)}@media(max-width:1100px){.proxy-layout{grid-template-columns:1fr}.proxy-sidebar{position:static;order:-1}.proxy-filter-panel{grid-template-columns:repeat(2,1fr)}.filter-panel-title{grid-column:1 / -1}.proxy-filter-actions{grid-column:1 / -1;grid-template-columns:repeat(2,max-content);justify-content:flex-end}}@media(max-width:920px){.shell{grid-template-columns:1fr}.sidebar{min-height:auto;border-right:none;border-bottom:1px solid var(--color-border-divider)}.sidebar-footer{margin-top:16px}.filter-panel{grid-template-columns:1fr 1fr}}@media(max-width:640px){.workspace{padding:12px}.topbar,.toolbar,.filter-actions,.pagination{align-items:stretch;flex-direction:column}.filter-panel,.proxy-filter-panel{grid-template-columns:1fr}.proxy-filter-actions{grid-template-columns:1fr 1fr;justify-content:stretch}.topbar-actions{align-self:flex-start}.button{width:100%}.row-actions .button{width:auto}.pagination{flex-direction:column;align-items:stretch}.pagination-controls{justify-content:space-between}.alert-stack{top:12px;right:12px;left:12px;width:auto;max-width:none}}
