:root{color-scheme:light;--navy: #232455;--navy-2: #2c2f66;--indigo: #46508f;--indigo-soft: #eef0fa;--ink: #3f3f4d;--ink-strong: #232455;--muted: #6e6e7c;--muted-soft: #8b8b96;--line: #e2e2e7;--line-soft: #f0f1f4;--field: #d6d6dc;--bg: #f5f5f8;--ok: #2f7a4f;--ok-bg: #f1f6f2;--ok-line: #cfe3d5;--warn: #a97613;--warn-bg: #fdf8ee;--warn-line: #ecdcbc;--bad: #c0394b;--bad-bg: #fdf2f3;--bad-line: #f3d3d7;--radius: 9px;--accent: var(--indigo);--surface: #fff;--surface-2: #fbfbfc;--surface-3: #f8f9fc;--tab-bg: #f2f2f6;--skeleton: #eceef3;--shadow: 0 12px 30px -18px rgb(35 36 85 / 35%);--brand-logo-filter: none;color:var(--ink);background:var(--bg);font-family:Manrope,Segoe UI,ui-sans-serif,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}a:hover{color:var(--navy)}button{font:inherit}button:disabled{cursor:not-allowed;opacity:.6}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink-strong);font-family:Sora,Segoe UI,sans-serif;font-weight:600;letter-spacing:-.01em}h1{font-size:1.7rem;line-height:1.2;margin-bottom:8px}h2{font-size:1.14rem;margin-bottom:4px}h3{align-items:center;display:flex;font-size:.98rem;gap:8px;margin-bottom:8px}p{color:var(--muted);line-height:1.55}.topbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--line);display:flex;height:64px;justify-content:space-between;padding:0 24px}.brand,.top-actions,.tabs{align-items:center;display:flex;gap:10px}.brand-logo{display:block;filter:var(--brand-logo-filter);height:26px;width:auto}.theme-toggle{align-items:center;background:var(--surface);border:1px solid var(--field);border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:border-color .14s ease,color .14s ease;width:38px}.theme-toggle:hover{border-color:var(--navy);color:var(--ink-strong)}.page{margin:0 auto;max-width:1180px;padding:28px 24px 48px}.tabs{background:var(--tab-bg);border:1px solid var(--line);border-radius:var(--radius);gap:4px;padding:3px}.tab{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--muted);cursor:pointer;display:inline-flex;gap:7px;min-height:32px;padding:0 13px}.tab.active{background:var(--surface);box-shadow:0 1px 2px #2324551f;color:var(--ink-strong);font-weight:600}.summary,.login-panel,.empty-state,.customer-section,.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px}.summary{align-items:center;display:flex;gap:24px;justify-content:space-between;margin-bottom:20px;padding:24px 26px}.summary h1{font-size:1.68rem;margin-bottom:4px}.eyebrow{color:var(--muted-soft);font-size:.72rem;font-weight:700;letter-spacing:.1em;margin:0 0 6px;text-transform:uppercase}.stats{display:flex;gap:12px}.stat{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);min-width:132px;padding:14px 16px}.stat strong{color:var(--ink-strong);display:block;font-family:Sora,sans-serif;font-size:1.6rem}.stat span{color:var(--muted);font-size:.83rem}.customer-list{display:grid;gap:18px}.customer-section{border-top:4px solid var(--accent);padding:20px 22px}.customer-header{align-items:center;display:flex;gap:13px;margin-bottom:18px}.customer-meta{align-items:center;display:flex;gap:9px;margin:4px 0 0}.customer-meta code{color:var(--muted-soft);font-size:.78rem}.brand-mark{align-items:center;background:var(--surface-3);border:1px solid var(--line);border-radius:var(--radius);color:var(--accent);display:flex;flex:0 0 auto;height:48px;justify-content:center;overflow:hidden;width:48px}.brand-mark img{display:block;max-height:100%;max-width:100%;object-fit:contain}.brand-initials{font-family:Sora,sans-serif;font-size:.92rem;font-weight:600}.chip{align-items:center;border-radius:999px;display:inline-flex;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:3px 9px;text-transform:uppercase}.chip.accent{background:var(--indigo-soft);color:var(--accent)}.chip.warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:#7b5510}.chip.ok{background:var(--ok-bg);border:1px solid var(--ok-line);color:#2a5c3d}.chip.bad{background:var(--bad-bg);border:1px solid var(--bad-line);color:#8f2c3b}.service-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.service-card{align-items:center;border:1px solid var(--line);border-radius:var(--radius);color:#c2c2cb;display:flex;gap:12px;justify-content:space-between;min-height:132px;padding:16px;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.service-card:hover{border-color:var(--accent);box-shadow:var(--shadow);color:var(--accent);transform:translateY(-1px)}.service-card h3{color:var(--ink-strong);font-size:.97rem}.service-card p{color:var(--muted);font-size:.83rem;margin-bottom:0}.service-icon{align-items:center;background:var(--indigo-soft);border-radius:8px;color:var(--accent);display:flex;height:34px;justify-content:center;margin-bottom:12px;width:34px}.login-panel{align-items:stretch;display:grid;gap:0;grid-template-columns:minmax(0,1fr) 320px;margin:10vh auto 0;max-width:920px;overflow:hidden;padding:0}.login-copy-block{display:flex;flex-direction:column;gap:12px;grid-column:1;padding:38px 40px 8px}.login-copy{margin-bottom:0;max-width:520px}.login-panel .primary-button{grid-column:1;margin:8px 40px 38px;width:fit-content}.login-aside{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 55%,var(--indigo) 100%);color:#fff;display:flex;flex-direction:column;gap:8px;grid-column:2;grid-row:1 / span 2;justify-content:flex-end;padding:32px 28px}.login-aside strong{font-family:Sora,sans-serif;font-size:1.05rem;font-weight:600;line-height:1.35}.login-aside span{color:#ffffff8c;font-size:.78rem}.primary-button,.ghost-button,.icon-button,.secondary-button{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.primary-button{background:var(--navy);color:var(--on-navy, #fff);font-family:Sora,sans-serif;font-weight:600;min-height:48px;padding:0 22px}.primary-button:hover{background:var(--indigo);color:#fff}.ghost-button,.icon-button{background:var(--surface);border:1px solid var(--field);color:var(--ink);font-weight:600;min-height:38px}.ghost-button{padding:0 14px}.ghost-button:hover,.icon-button:hover{border-color:var(--navy);color:var(--navy)}.icon-button{width:38px}.secondary-button{background:var(--navy);border:0;color:var(--on-navy, #fff);font-family:Sora,sans-serif;font-weight:600;min-height:40px;padding:0 16px;width:fit-content}.secondary-button:hover{background:var(--indigo)}.danger-button{align-items:center;background:var(--surface);border:1px solid var(--bad-line);border-radius:8px;color:var(--bad);cursor:pointer;display:inline-flex;font:inherit;font-weight:600;min-height:40px;padding:0 14px}.danger-button:hover{background:var(--bad-bg)}.admin-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(280px,.85fr) minmax(0,2fr)}.admin-column{display:grid;gap:18px}.admin-section-tabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:4px;padding:4px}.admin-section-tabs button{background:transparent;border:0;border-radius:7px;color:var(--muted);cursor:pointer;font:inherit;font-weight:600;min-height:36px;padding:0 12px}.admin-section-tabs button.active{background:var(--indigo-soft);color:var(--accent)}.panel{padding:18px}.panel-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.panel-header h2{font-size:1.02rem;margin-bottom:0}.small-status{align-items:center;background:var(--indigo-soft);border-radius:999px;color:var(--indigo);display:inline-flex;font-size:.78rem;font-weight:700;min-height:26px;padding:0 10px}.inline-form,.stack-form{margin-bottom:14px}.inline-form{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.inline-form.two{grid-template-columns:minmax(0,1fr) auto}.stack-form{display:grid;gap:10px}.form-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.span-2,.span-3{grid-column:1 / -1}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.form-notice{background:var(--bad-bg);border:1px solid var(--bad-line);border-radius:8px;color:var(--bad);font-size:.83rem;margin:0;padding:10px 12px}.inline-form .form-notice{grid-column:1 / -1}input,select,textarea{background:var(--surface);border:1px solid var(--field);border-radius:8px;color:var(--ink-strong);font-family:inherit;padding:0 11px;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--indigo);box-shadow:0 0 0 3px #46508f24;outline:none}input::placeholder,textarea::placeholder{color:var(--muted-soft)}input,select{min-height:38px}textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.6;min-height:96px;padding:10px 11px;resize:vertical}.table-list,.service-admin-grid{display:grid;gap:8px}.row-button{align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink-strong);cursor:pointer;display:flex;flex-direction:column;gap:4px;font-weight:600;min-height:56px;padding:11px 12px;text-align:left}.row-button:hover{border-color:var(--navy)}.row-button.active{background:var(--surface-2);border-color:var(--indigo);box-shadow:inset 3px 0 0 var(--indigo)}.row-button small,.admin-card small,.admin-card span{color:var(--muted-soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;font-weight:400}.service-admin-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink-strong);display:grid;gap:5px;min-height:94px;overflow-wrap:anywhere;padding:12px;text-align:left}.admin-card.selectable{cursor:pointer}.admin-card.selectable:hover{border-color:var(--navy)}.admin-card.selectable.active{background:var(--surface-2);border-color:var(--indigo);box-shadow:inset 3px 0 0 var(--indigo)}.admin-status{background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:8px;color:var(--ok);font-size:.85rem;margin:0;padding:10px 13px}.admin-split{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.compact-list{border:1px solid var(--line);border-radius:8px;list-style:none;margin:0;max-height:190px;overflow:auto;padding:0}.compact-list li{align-items:center;border-bottom:1px solid var(--line-soft);color:var(--ink);display:flex;font-size:.83rem;gap:8px;justify-content:space-between;overflow-wrap:anywhere;padding:9px 11px}.compact-list li span{min-width:0}.compact-list li:last-child{border-bottom:0}.compact-empty{border:1px dashed var(--dashed, #d3d3da);border-radius:8px;color:var(--muted-soft);font-size:.85rem;margin-bottom:0;padding:12px}.mini-icon-button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--muted-soft);cursor:pointer;display:inline-flex;flex:0 0 auto;height:28px;justify-content:center;width:28px}.mini-icon-button:hover{border-color:var(--bad);color:var(--bad)}.user-admin-block{border-bottom:1px solid var(--line-soft);margin-bottom:18px;padding-bottom:18px}.nested-editor{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;margin-top:10px;padding:12px}.users-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(300px,.75fr) minmax(0,1.75fr)}.users-sidebar,.users-detail{display:grid;gap:18px}.user-directory{max-height:620px;overflow:auto}.user-filter-row{align-items:center;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;color:var(--muted);display:flex;font-size:.84rem;gap:8px;margin-bottom:10px;min-height:38px;padding:0 11px}.identity-summary{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;gap:18px;justify-content:space-between;padding:22px}.identity-summary h1{margin-bottom:4px}.identity-badges,.role-selector,.action-grid{display:flex;flex-wrap:wrap;gap:8px}.identity-badges{justify-content:flex-end}.identity-create{border-bottom:1px solid var(--line-soft);margin-bottom:12px;padding-bottom:14px}.role-selector{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;padding:8px}.role-selector label,.toggle-row{align-items:center;display:flex;gap:8px}.role-selector label{background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:.84rem;min-height:32px;padding:0 9px}.role-selector input,.toggle-row input{accent-color:var(--indigo);width:auto}.toggle-row{border:1px solid var(--line-soft);border-radius:8px;color:var(--ink);justify-content:space-between;min-height:40px;padding:0 11px}.security-actions{display:grid;gap:12px}.action-grid .secondary-button{min-height:38px}.profile-layout{display:grid;gap:18px}.profile-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr)}.branding-editor{display:grid;gap:12px}.branding-preview{align-items:center;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);display:flex;gap:13px;padding:14px}.branding-preview strong,.branding-preview span{display:block}.branding-preview strong{color:var(--ink-strong);font-family:Sora,sans-serif;font-size:1rem}.branding-preview span{color:var(--muted-soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;margin-top:3px}.brand-mark.large{height:58px;width:58px}.color-field{align-items:center;border:1px solid var(--field);border-radius:8px;display:grid;gap:8px;grid-template-columns:auto 38px minmax(0,1fr);min-height:38px;padding:0 9px}.color-field span{color:var(--muted);font-size:.78rem}.color-field input{border:0;box-shadow:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;padding:0}.color-field input:focus{box-shadow:none}.color-field input[type=color]{background:transparent;cursor:pointer;height:26px;min-height:26px}.empty-state{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:280px;padding:40px 32px;text-align:center}.empty-state.dashed{border-style:dashed;border-color:var(--dashed, #d3d3da)}.empty-state p{max-width:380px}.empty-icon{align-items:center;background:var(--surface-3);border:1px solid var(--line);border-radius:12px;color:var(--muted-soft);display:flex;height:52px;justify-content:center;width:52px}.empty-icon.error{background:var(--bad-bg);border-color:var(--bad-line);border-radius:50%;color:var(--bad);font-family:Sora,sans-serif;font-size:1.35rem;font-weight:700}.error-detail{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:7px;color:var(--muted-soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;padding:8px 12px}.empty-actions{display:flex;gap:12px;margin-top:4px}.muted{border:1px dashed var(--dashed, #d3d3da);border-radius:8px;color:var(--muted-soft);font-size:.85rem;margin-bottom:0;padding:12px}.skeleton-view{display:grid;gap:18px}.skeleton-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;display:grid;gap:16px;padding:22px 24px}.summary-skeleton{align-items:center;display:flex;gap:20px;justify-content:space-between}.skeleton-lines{display:grid;gap:9px}.skeleton-line,.skeleton-box,.skeleton-tile,.skeleton-mark{animation:pulse 1.4s ease-in-out infinite;background:var(--skeleton);border-radius:5px;display:block}.skeleton-line{height:11px}.skeleton-line.short{width:96px}.skeleton-line.medium{width:170px}.skeleton-line.title{height:24px;width:220px}.skeleton-stats{display:flex;gap:10px}.skeleton-box{height:62px;width:116px}.skeleton-head{align-items:center;display:flex;gap:12px}.skeleton-mark{border-radius:var(--radius);height:44px;width:44px}.skeleton-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.skeleton-tile{height:118px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.spin{animation:spin 1s linear infinite;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin,.skeleton-line,.skeleton-box,.skeleton-tile,.skeleton-mark{animation:none}}@media (max-width: 720px){.topbar,.summary{align-items:stretch;flex-direction:column;height:auto}.topbar{gap:12px;padding:16px}.page{padding:18px 14px 36px}.summary{gap:18px;padding:18px}.tabs{display:grid;grid-template-columns:1fr 1fr}.tab{justify-content:center;min-height:36px}.stats{width:100%}.stat{flex:1;min-width:0}.login-panel{grid-template-columns:1fr;margin-top:4vh}.login-aside{grid-column:1;grid-row:1;order:-1;padding:22px 18px}.login-copy-block{padding:22px 18px 8px}.login-panel .primary-button{margin:8px 18px 24px;width:auto}.primary-button,.ghost-button,.secondary-button{min-height:46px;width:100%}.empty-actions{flex-direction:column;width:100%}.service-card{min-height:0}.service-card>div{align-items:flex-start;display:flex;flex-direction:column}.service-icon{margin-bottom:8px}input,select{min-height:44px}.admin-layout,.admin-split,.profile-grid,.users-layout,.form-grid,.inline-form,.inline-form.two,.service-grid,.service-admin-grid,.skeleton-grid{grid-template-columns:1fr}.inline-form .icon-button,.inline-form.two .icon-button{width:100%}}:root[data-theme=dark]{--navy: #0f1027;--navy-2: #1b1d3d;--indigo: #8b95d8;--indigo-soft: rgb(139 149 216 / 14%);--ink: #d7d9ea;--ink-strong: #f2f3fa;--muted: #9a9cba;--muted-soft: #7e819f;--line: #2b2d51;--line-soft: #23254a;--field: #3a3d68;--bg: #0f1027;--surface: #181a38;--surface-2: #1e2044;--surface-3: #22254c;--tab-bg: #14162f;--skeleton: #262a52;--dashed: #3a3d68;--shadow: 0 14px 34px -18px rgb(0 0 0 / 60%);--brand-logo-filter: brightness(0) invert(1);--on-navy: #0f1027;--ok: #6cc094;--ok-bg: rgb(108 192 148 / 12%);--ok-line: rgb(108 192 148 / 30%);--warn: #e0b464;--warn-bg: rgb(224 180 100 / 12%);--warn-line: rgb(224 180 100 / 30%);--bad: #ea8b98;--bad-bg: rgb(234 139 152 / 12%);--bad-line: rgb(234 139 152 / 32%);color-scheme:dark}:root[data-theme=dark] .primary-button,:root[data-theme=dark] .secondary-button{background:var(--indigo);color:#14162f}:root[data-theme=dark] .primary-button:hover,:root[data-theme=dark] .secondary-button:hover{background:#a7afe6;color:#14162f}:root[data-theme=dark] .ghost-button:hover,:root[data-theme=dark] .icon-button:hover,:root[data-theme=dark] .theme-toggle:hover,:root[data-theme=dark] .row-button:hover,:root[data-theme=dark] .admin-card.selectable:hover{border-color:var(--indigo);color:var(--ink-strong)}:root[data-theme=dark] .login-aside{background:linear-gradient(160deg,#1b1d3d,#262a5c 55%,#3c4488)}:root[data-theme=dark] .admin-section-tabs{background:var(--surface-2);border-color:var(--field)}:root[data-theme=dark] .admin-section-tabs button.active{background:var(--surface-3);color:var(--ink-strong)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:var(--tab-bg)}:root[data-theme=dark] .chip.warn{color:var(--warn)}:root[data-theme=dark] .chip.bad,:root[data-theme=dark] .form-notice,:root[data-theme=dark] .empty-icon.error{color:var(--bad)}:root[data-theme=dark] .chip.ok,:root[data-theme=dark] .admin-status{color:var(--ok)}:root[data-theme=dark] .compact-list li,:root[data-theme=dark] .service-card p,:root[data-theme=dark] .row-button small,:root[data-theme=dark] .admin-card small,:root[data-theme=dark] .admin-card span{color:var(--muted)}
