:root{--bg:#f4f6f8;--surface:#ffffff;--surface-muted:#f7f9fb;--text:#111827;--muted:#667085;--border:#d6dde6;--border-soft:#e7ecf2;--accent:#2563eb;--accent-strong:#1d4ed8;--danger:#b42318;--warning:#a15c07;--success:#067647;--sidebar:#0f172a;--sidebar-muted:#94a3b8;--sidebar-active:#1e293b;--shadow:0 12px 30px rgb(15 23 42/8%)}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.center-page{display:grid;min-height:100vh;grid-template-columns:minmax(420px,.92fr) minmax(520px,1.08fr);background:radial-gradient(circle at 80% 10%,rgb(37 99 235/10%),transparent 28%),linear-gradient(180deg,rgb(255 255 255/92%),rgb(244 246 248/96%)),var(--bg)}.login-aside{display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border);background:var(--sidebar);color:#fff;padding:42px}.login-aside-content{display:grid;grid-gap:28px;gap:28px}.login-brand{display:grid;grid-gap:18px;gap:18px}.brand-mark,.login-brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;background:var(--accent);color:#fff;font-weight:800}.login-eyebrow{display:inline-flex;margin-bottom:16px;color:#93c5fd;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.login-aside h1{max-width:520px;margin:0;font-size:42px;line-height:1.1;letter-spacing:0}.login-aside p{max-width:520px;color:#cbd5e1;line-height:1.7}.login-status-grid{display:grid;grid-gap:12px;gap:12px;max-width:520px}.login-status-card{display:flex;align-items:flex-start;gap:12px;border:1px solid rgb(148 163 184/22%);border-radius:8px;background:rgb(15 23 42/55%);padding:14px}.login-status-card svg{flex:0 0 auto;color:#93c5fd}.login-status-card span,.login-status-card strong{display:block}.login-status-card span{margin-top:3px;color:#cbd5e1;font-size:13px}.login-checklist{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.login-checklist li{display:flex;align-items:center;gap:10px;color:#e2e8f0;font-weight:650}.login-aside-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--sidebar-muted);font-size:13px}.login-main{display:grid;place-items:center;padding:28px}.login-panel{width:min(100%,500px);border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:28px;box-shadow:var(--shadow)}.login-panel-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.login-panel-header{margin-bottom:22px}.login-panel h1,.page-header h1{margin:0;font-size:28px;line-height:1.2;letter-spacing:0}.login-panel-header p{margin-bottom:0;line-height:1.6}.login-panel p,.muted,.page-header p{color:var(--muted)}.login-form-stack{display:grid;grid-gap:18px;gap:18px}.password-field{position:relative}.password-field input{padding-right:44px}.password-toggle{position:absolute;top:50%;right:6px;display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transform:translateY(-50%)}.password-toggle:hover{background:var(--surface-muted);color:var(--text)}.login-submit{width:100%;min-height:44px}.login-panel-footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px;border-top:1px solid var(--border-soft);padding-top:16px;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-gap:14px;gap:14px}.field{display:grid;grid-gap:6px;gap:6px}.field label{color:var(--muted);font-size:13px;font-weight:650}.field input,.field select,.field textarea{width:100%;min-height:42px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);padding:8px 10px}.field textarea{min-height:92px;resize:vertical}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.upload-field{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.upload-status{color:var(--muted);font-size:13px;font-weight:650}.upload-preview{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted);padding:8px}.upload-preview img{width:72px;height:72px;border-radius:6px;object-fit:cover}.upload-preview span{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.spin-icon{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;padding:8px 14px;font-weight:700;cursor:pointer}.button:hover{background:var(--accent-strong)}.button.secondary{border-color:var(--border);background:var(--surface);color:var(--text)}.button.secondary:hover{background:var(--surface-muted)}.button.danger{border-color:var(--danger);background:var(--danger);color:#fff}.button.danger:hover{background:#8f1d14}.button.compact{min-height:32px;padding:6px 10px;font-size:13px}.icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted)}.icon-button:hover{background:var(--surface-muted);color:var(--text)}.error-text{color:var(--danger);font-size:14px}.app-shell{display:grid;min-height:100vh;grid-template-columns:272px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;gap:20px;position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;overscroll-behavior:contain;background:var(--sidebar);color:#fff;padding:20px 16px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 10px}.brand strong{display:block;font-size:15px}.brand span{display:block;color:var(--sidebar-muted);font-size:12px}.sidebar-section{display:grid;grid-gap:8px;gap:8px}.sidebar-label{color:var(--sidebar-muted);font-size:11px;font-weight:800;letter-spacing:0;padding:0 10px;text-transform:uppercase}.tenant-card{display:grid;grid-gap:10px;gap:10px;border:1px solid rgb(148 163 184/25%);border-radius:8px;background:rgb(15 23 42/55%);padding:12px}.role-badge,.status-badge{display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface);color:var(--muted);padding:4px 9px;font-size:12px;font-weight:700}.role-badge{border-color:rgb(148 163 184/25%);background:rgb(30 41 59/80%);color:#dbeafe}.status-badge.success{border-color:#b7e4cf;background:#ecfdf3;color:var(--success)}.status-badge.warning{border-color:#fedf89;background:#fffaeb;color:var(--warning)}.status-badge.dark{border-color:rgb(148 163 184/24%);background:rgb(30 41 59/78%);color:#dbeafe}.nav{display:grid;grid-gap:6px;gap:6px}.nav a{display:flex;align-items:center;gap:10px;border-radius:6px;color:#cbd5e1;padding:10px;font-size:14px;font-weight:650}.nav a:hover{background:var(--sidebar-active);color:#fff}.sidebar-footer{display:grid;grid-gap:12px;gap:12px;margin-top:auto;border-top:1px solid rgb(148 163 184/18%);padding:16px 8px 0}.user-card{display:grid;grid-gap:4px;gap:4px;min-width:0}.user-card span,.user-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{min-width:0;padding:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);background:var(--surface);padding:16px 28px}.topbar-title{display:grid;grid-gap:2px;gap:2px}.topbar-title strong{font-size:16px}.topbar-actions{display:flex;align-items:center;gap:10px}.workspace{padding:28px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.metric,.panel{border:1px solid var(--border);border-radius:8px;background:var(--surface)}.metric{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px}.metric span{color:var(--muted);font-size:13px;font-weight:700}.metric strong{display:block;margin-top:10px;font-size:30px}.metric-icon{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:8px;background:#eff6ff;color:var(--accent)}.metric-note{margin-top:8px;color:var(--muted);font-size:12px}.content-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,.6fr);grid-gap:18px;gap:18px;align-items:start}.wide-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:18px;gap:18px}.panel{overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);padding:14px 16px}.panel-header h2{margin:0;font-size:16px}.panel-subtitle{margin:4px 0 0;color:var(--muted);font-size:13px}.panel-body{padding:16px}.dense-form{gap:10px}.dense-form+.compact-list,.dense-form+.dense-form{margin-top:16px;border-top:1px solid var(--border-soft);padding-top:16px}.inline-actions{display:flex;flex-wrap:wrap;gap:8px}.inline-actions form{display:flex;align-items:center;gap:6px}.compact-input{width:112px}.compact-file,.compact-input{min-height:32px;border:1px solid var(--border);border-radius:6px;padding:5px 8px}.compact-file{max-width:180px;background:var(--surface);color:var(--text);font-size:12px}.split-panel{display:grid;grid-template-columns:1fr;grid-gap:18px;gap:18px}.section-title{margin:0 0 10px;font-size:14px}.compact-list{display:grid;grid-gap:10px;gap:10px}.compact-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border-soft);border-radius:8px;padding:10px}.compact-list-item span,.compact-list-item strong{display:block}.compact-list-item span{color:var(--muted);font-size:12px}.user-info-list{margin-top:10px}.user-info-list .compact-list-item{align-items:flex-start}.user-info-list .mono{max-width:240px;overflow-wrap:anywhere}.user-management-list{display:grid;grid-gap:16px;gap:16px}.user-management-card{border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden}.user-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border-soft);padding:16px}.user-avatar{width:42px;height:42px}.user-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.user-summary-stats{display:grid;grid-template-columns:repeat(2,minmax(96px,1fr));grid-gap:10px;gap:10px;min-width:230px}.user-summary-stats div{border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted);padding:10px}.user-summary-stats span,.user-summary-stats strong{display:block}.user-summary-stats span{color:var(--muted);font-size:12px}.user-summary-stats strong{margin-top:4px}.user-card-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,.82fr);grid-gap:0;gap:0}.user-card-section{border-bottom:1px solid var(--border-soft);padding:16px}.user-card-section:nth-child(odd){border-right:1px solid var(--border-soft)}.user-card-section h3{margin:0 0 12px;font-size:14px}.detail-list{display:grid;grid-gap:10px;gap:10px;margin:0}.detail-list div{display:grid;grid-template-columns:120px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.detail-list dt{color:var(--muted);font-size:12px;font-weight:700}.detail-list dd{margin:0;overflow-wrap:anywhere}.user-tags{margin-top:0}.form-row.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.user-form-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.user-danger-form{margin-top:14px;border-top:1px solid var(--border-soft);padding-top:14px}.user-list-table .tag-list{margin-top:0}.user-table-tags{gap:6px}.user-detail-dialog{position:fixed;inset:0;z-index:50;display:none;align-items:flex-start;justify-content:center;overflow:auto;background:rgb(15 23 42/.52);padding:44px 18px}.user-detail-dialog:target{display:flex}.dialog-shell{width:min(1080px,100%);border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 24px 80px rgb(15 23 42/.22)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-soft);padding:18px}.dialog-header h2{margin:0 0 4px;font-size:20px}.dialog-summary{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--border-soft);padding:12px 18px}.dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-section{border-bottom:1px solid var(--border-soft);padding:18px}.dialog-section:nth-child(odd){border-right:1px solid var(--border-soft)}.dialog-section h3{margin:0 0 12px;font-size:14px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tag{display:inline-flex;align-items:center;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface-muted);color:var(--muted);padding:5px 10px;font-size:12px;font-weight:700}.danger-tag{border-color:#fecdca;background:#fef3f2;color:var(--danger)}.checkbox-field{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-size:13px;font-weight:700}.checkbox-field input{width:16px;height:16px}.roadmap-panel{margin-top:18px}.roadmap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.roadmap-grid div{border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted);padding:12px}.roadmap-grid span,.roadmap-grid strong{display:block}.roadmap-grid span{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.6}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.search-input{min-width:260px}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--border);padding:12px;text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:12px;letter-spacing:0;text-transform:uppercase}.table tbody tr:hover{background:var(--surface-muted)}.table td{font-size:14px}.compact-button{min-height:32px;padding:6px 10px}.entity-cell{display:flex;align-items:center;gap:10px}.avatar{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:8px;background:#e0f2fe;color:#0369a1;font-weight:800}.mono{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.status-pill.success{background:#ecfdf3;color:var(--success)}.status-pill.pending{background:#fffaeb;color:var(--warning)}.status-pill.failed{background:#fef3f2;color:var(--danger)}.empty-state{border:1px dashed var(--border);border-radius:8px;color:var(--muted);padding:18px;text-align:center}.notice{border:1px solid var(--border);border-radius:8px;margin:-8px 0 18px;padding:12px 14px;font-size:14px;font-weight:650}.notice.success{border-color:#b7e4cf;background:#ecfdf3;color:var(--success)}.notice.error{border-color:#fecdca;background:#fef3f2;color:var(--danger)}.stack{display:grid;grid-gap:14px;gap:14px}.insight-list{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.insight-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border-soft);padding-bottom:12px}.insight-list li:last-child{border-bottom:0;padding-bottom:0}.admin-shell{background:var(--bg)}@media (max-width:860px){.center-page{grid-template-columns:1fr}.login-aside{display:none}.login-panel{padding:22px}.login-panel-footer{flex-direction:column}.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;overflow:visible;border-bottom:1px solid var(--border)}.content-grid,.dialog-grid,.form-row,.form-row.two-columns,.metrics,.roadmap-grid,.user-card-grid{grid-template-columns:1fr}.user-card-head{display:grid}.user-summary-stats{min-width:0}.dialog-section:nth-child(odd),.user-card-section:nth-child(odd){border-right:0}.dialog-header{display:grid}.topbar,.workspace{padding:18px}}