:root{--color-primary:#1663b6;--color-primary-light:#2f80d8;--color-primary-dark:#0f4a8a;--color-primary-solid:#1663b6;--color-primary-solid-hover:#1a6fcb;--color-accent:#009dc3;--brand-gradient:linear-gradient(135deg, #1663b6 0%, #009dc3 100%);--sidebar-gradient:linear-gradient(170deg, #1663b6 0%, #0f5aa6 45%, #007fa3 100%);--color-bg:#f4f6f9;--color-surface:#fff;--color-bg-soft:#f8fafc;--color-bg-muted:#e2e8f0;--color-accent-soft:#e0f4fa;--color-code-surface:#f3f6f9;--color-border:#e4e7ec;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-hover:#f1f5f9;--color-row-hover:#f8fafc;--color-danger:#c53030;--color-danger-solid:#c53030;--color-danger-light:#fed7d7;--color-success:#2f855a;--color-success-solid:#2f855a;--color-success-light:#c6f6d5;--color-warning:#92400e;--color-warning-light:#fefcbf;--color-info:#1663b6;--color-info-light:#dbeafe;--color-purple:#805ad5;--color-purple-light:#faf5ff;--color-toast-bg:#0f172a;--color-neutral-solid:#475569;--sidebar-width:260px;--header-height:56px;--font-display:"Space Grotesk", system-ui, sans-serif;color:var(--color-text);background:var(--color-bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#5b9be6;--color-primary-light:#2f80d8;--color-primary-dark:#93c5fd;--color-primary-solid:#1663b6;--color-primary-solid-hover:#2f80d8;--color-accent:#22b8dc;--sidebar-gradient:linear-gradient(170deg, #0f3f78 0%, #0c3a6b 45%, #005a73 100%);--color-bg:#0b0b0c;--color-surface:#141415;--color-bg-soft:#1b1b1d;--color-bg-muted:#2a2a2d;--color-accent-soft:#0b3a47;--color-code-surface:#0f0f10;--color-border:#26262a;--color-text:#f5f5f5;--color-text-secondary:#c4c4c8;--color-text-muted:#8f8f96;--color-hover:#232326;--color-row-hover:#1b1b1d;--color-danger:#f87171;--color-danger-solid:#b91c1c;--color-danger-light:#4c1d24;--color-success:#4ade80;--color-success-solid:#15803d;--color-success-light:#163b2b;--color-warning:#fbbf24;--color-warning-light:#443913;--color-info:#93c5fd;--color-info-light:#172554;--color-purple:#c4b5fd;--color-purple-light:#3b1d5f;--color-toast-bg:#020203;--color-neutral-solid:#3f3f46}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#5b9be6;--color-primary-light:#2f80d8;--color-primary-dark:#93c5fd;--color-primary-solid:#1663b6;--color-primary-solid-hover:#2f80d8;--color-accent:#22b8dc;--sidebar-gradient:linear-gradient(170deg, #0f3f78 0%, #0c3a6b 45%, #005a73 100%);--color-bg:#0b0b0c;--color-surface:#141415;--color-bg-soft:#1b1b1d;--color-bg-muted:#2a2a2d;--color-accent-soft:#0b3a47;--color-code-surface:#0f0f10;--color-border:#26262a;--color-text:#f5f5f5;--color-text-secondary:#c4c4c8;--color-text-muted:#8f8f96;--color-hover:#232326;--color-row-hover:#1b1b1d;--color-danger:#f87171;--color-danger-solid:#b91c1c;--color-danger-light:#4c1d24;--color-success:#4ade80;--color-success-solid:#15803d;--color-success-light:#163b2b;--color-warning:#fbbf24;--color-warning-light:#443913;--color-info:#93c5fd;--color-info-light:#172554;--color-purple:#c4b5fd;--color-purple-light:#3b1d5f;--color-toast-bg:#020203;--color-neutral-solid:#3f3f46}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text)}button,input,select,textarea{color:inherit}input::placeholder,textarea::placeholder{color:var(--color-text-muted);opacity:1}pre,code{color:inherit}x-text{display:inline}x-block{display:block}x-flex{display:flex}x-grid{display:grid}x-stack{flex-direction:column;display:flex}.admin-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-gradient);color:#fff;z-index:100;will-change:transform;flex-direction:column;transition:transform .24s cubic-bezier(.4,0,.2,1),box-shadow .24s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(0)}.sidebar-brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;padding:20px 24px;font-size:18px;font-weight:700;display:flex}.sidebar-nav{flex:1;padding:12px 0}.nav-section{text-transform:uppercase;letter-spacing:.05em;color:#ffffff80;padding:8px 24px 4px;font-size:11px;font-weight:600}.nav-item{color:#fffc;cursor:pointer;align-items:center;gap:10px;padding:10px 24px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff1a}.nav-item.router-link-active,.nav-item.active{color:#fff;background:#ffffff26}.nav-item .material-icons{font-size:20px}.sidebar-footer{border-top:1px solid #ffffff1a;padding:16px 24px}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;transition:margin-left .24s cubic-bezier(.4,0,.2,1);display:flex}.sidebar-is-collapsed .sidebar{pointer-events:none;box-shadow:none;transform:translate(-100%)}.sidebar-is-collapsed .main-content{margin-left:0}.sidebar-backdrop{display:none}.top-bar{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:50;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}@media (width<=900px){.main-content{margin-left:0}.sidebar{box-shadow:12px 0 32px #0f172a3d}.sidebar-backdrop{z-index:90;opacity:1;background:#0f172a6b;border:0;transition:opacity .24s;display:block;position:fixed;inset:0}.sidebar-is-collapsed .sidebar-backdrop{opacity:0;pointer-events:none}.top-bar{padding:0 16px}}@media (prefers-reduced-motion:reduce){.sidebar,.main-content,.sidebar-backdrop{transition:none}}.page-content{flex:1;padding:24px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:20px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{font-size:16px;font-weight:600}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 12px}.data-table th{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.data-table tr:hover{background:var(--color-row-hover)}.data-table tr:last-child td{border-bottom:none}.btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{background:var(--color-hover)}.btn-primary{background:var(--color-primary-solid);color:#fff;border-color:var(--color-primary-solid)}.btn-primary:hover{background:var(--color-primary-solid-hover)}.btn-danger{background:var(--color-danger-solid);color:#fff;border-color:var(--color-danger-solid)}.btn-danger:hover{opacity:.9}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:4px;padding:6px}.btn-icon:hover{background:var(--color-hover);color:var(--color-text)}.form-group{margin-bottom:16px}.form-label{color:var(--color-text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-input,.form-select,.form-textarea{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:6px;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1663b61a}.form-textarea{resize:vertical;min-height:120px}.badge{border-radius:12px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-info{background:var(--color-bg-muted);color:var(--color-text-secondary)}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:12px;flex-direction:column;min-width:480px;max-width:90vw;max-height:90vh;padding:0;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000026}.modal-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title{font-size:18px;font-weight:600}.modal-body{flex:auto;min-height:0;padding:20px 24px;overflow-y:auto}.modal-actions{border-top:1px solid var(--color-border);background:var(--color-bg-soft);flex-shrink:0;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{font-size:24px;font-weight:700}.page-subtitle{color:var(--color-text-secondary);margin-top:4px;font-size:14px}.breadcrumbs{color:var(--color-text-secondary);align-items:center;gap:8px;margin-bottom:16px;font-size:13px;display:flex}.breadcrumbs a{color:var(--color-primary);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.loading{color:var(--color-text-secondary);justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;margin-right:12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--color-text-secondary);padding:48px 24px}.empty-state .material-icons{opacity:.4;margin-bottom:12px;font-size:48px}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot.active{background:var(--color-success)}.status-dot.inactive{background:var(--color-danger)}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filter-bar .form-input,.filter-bar .form-select{width:auto;min-width:200px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:20px}.stat-value{color:var(--color-primary);font-size:28px;font-weight:700}.stat-label{color:var(--color-text-secondary);margin-top:4px;font-size:13px}.tree-item{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;margin-bottom:4px;padding:8px 12px}.tree-item-children{border-left:2px solid var(--color-border);margin-left:24px;padding-left:12px}.tabs{border-bottom:2px solid var(--color-border);margin-bottom:20px;display:flex}.tab{cursor:pointer;color:var(--color-text-secondary);border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 20px;font-weight:500;transition:all .15s}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.preview-frame{border:1px solid var(--color-border);background:#fff;border-radius:6px;width:100%;min-height:400px}.chip{background:var(--color-bg-soft);color:var(--color-text);cursor:pointer;border-radius:16px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.chip:hover{background:var(--color-bg-muted)}.perm-matrix{border-collapse:collapse;width:100%}.perm-matrix th,.perm-matrix td{text-align:center;border:1px solid var(--color-border);padding:8px 12px}.perm-matrix th{background:var(--color-bg-soft);font-size:12px;font-weight:600}.perm-matrix td:first-child{text-align:left;font-weight:500}.toast-container{z-index:300;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast{background:var(--color-toast-bg);color:#fff;border-radius:8px;padding:12px 20px;font-size:14px;animation:.3s slideIn;box-shadow:0 4px 12px #00000026}.toast-success{background:var(--color-success-solid)}.toast-error{background:var(--color-danger-solid)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}h1,h2,h3,.page-title,.stat-value{font-family:var(--font-display);letter-spacing:-.01em}
