:root{--color-ink:#201e1d;--color-gray:#6b6355;--color-muted:#8a8070;--color-accent:#ff5a32;--color-accent-dark:#c8401f;--color-border:#ece7e0;--tint-orange:#fff5f0;--tint-purple:#f5eeff;--success:#1f8a4c;--success-tint:#eafaf0;--warning:#b8760f;--warning-tint:#fdf2e3;--danger:#c8401f;--danger-tint:#fbeceb;--font-heading:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--sidebar-width:220px;--topbar-height:64px;--shadow-hover:0 8px 24px #201e1d1f}*{box-sizing:border-box}body{color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background:#faf9f7;margin:0}button,input,select{font-family:inherit}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-heading);color:var(--color-ink);margin:0 0 12px}.page-title{font:800 24px var(--font-heading);margin-bottom:20px}.page-header-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header-row .page-title{margin-bottom:0}.btn{font:800 14px var(--font-heading);cursor:pointer;border:none;border-radius:999px;padding:12px 24px}.btn-accent{background:var(--color-accent);color:#fff}.btn-accent:disabled{opacity:.6;cursor:not-allowed}.btn-outline{color:var(--color-ink);border:1.5px solid var(--color-border);background:0 0}.btn-outline:hover{border-color:var(--color-ink)}.btn-small{padding:8px 16px;font-size:12.5px}.btn-link{color:var(--color-accent);font:700 13px var(--font-heading);cursor:pointer;background:0 0;border:none;padding:4px 0;text-decoration:underline}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{font:700 12px var(--font-heading);color:var(--color-gray)}.field input,.field select{border:1.5px solid var(--color-border);font:400 14px var(--font-body);border-radius:10px;padding:12px 14px}.field input:focus,.field select:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.form-error{color:var(--danger);font:600 13px var(--font-body);margin:8px 0}.login-notice{background:var(--warning-tint);border-left:3px solid var(--warning);color:var(--warning);font:600 13px var(--font-body);border-radius:4px;margin:0 0 16px;padding:10px 12px}.inline-form{border:1px solid var(--color-border);background:#fff;border-radius:14px;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:20px;padding:20px;display:flex}.inline-form .field{min-width:160px;margin-bottom:0}.inline-form .form-error{width:100%;margin:0}.login-page{background:linear-gradient(#f5eeff,#faf9f7);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:20px;width:100%;max-width:380px;padding:36px;box-shadow:0 4px 24px #201e1d14}.login-logo{font:900 18px var(--font-heading);color:var(--color-accent-dark);margin-bottom:20px}.login-title{font:800 22px var(--font-heading);margin-bottom:8px}.login-subtitle{font:400 13px var(--font-body);color:var(--color-gray);margin:0 0 24px;line-height:1.5}.login-card .btn{width:100%;margin-top:8px}.data-table{border-collapse:collapse;border:1px solid var(--color-border);background:#fff;border-radius:12px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:13.5px}.data-table th{font:700 11px var(--font-heading);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);background:#faf9f7}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:#faf9f7}.status-pill{font:700 11px var(--font-heading);text-transform:capitalize;border-radius:999px;padding:3px 10px;display:inline-block}.status-active,.status-resolved,.status-paid{background:var(--success-tint);color:var(--success)}.status-inactive,.status-closed{background:var(--color-border);color:var(--color-gray)}.status-trial,.status-pending,.status-open{background:var(--warning-tint);color:var(--warning)}.status-past_due,.status-cancelled,.status-overdue{background:var(--danger-tint);color:var(--danger)}.detail-header{margin-bottom:24px}.detail-header .back-link{font:700 12px var(--font-heading);color:var(--color-gray);margin-bottom:12px;text-decoration:none;display:inline-block}.detail-header .back-link:hover{color:var(--color-ink)}.detail-meta-row{color:var(--color-gray);font:500 13px var(--font-body);flex-wrap:wrap;align-items:center;gap:20px;display:flex}.detail-section{margin-top:32px}.detail-section-title{font:800 15px var(--font-heading);margin-bottom:12px}.card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.info-card{border:1px solid var(--color-border);background:#fff;border-radius:14px;padding:18px 20px}.info-card-label{font:700 11px var(--font-heading);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-bottom:6px}.info-card-value{font:800 20px var(--font-heading)}.placeholder-card{border:1px solid var(--color-border);background:#fff;border-radius:16px;padding:28px}.placeholder-card p{color:var(--color-gray);margin:0;line-height:1.6}.role-badge{font:700 11px var(--font-heading);text-transform:capitalize;background:var(--tint-purple);color:var(--color-accent-dark);border-radius:999px;padding:3px 10px;display:inline-block}.page-subtitle{color:var(--color-gray);max-width:70ch;margin:-8px 0 20px;font-size:14px}.section-header-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.section-header-row .detail-section-title{margin-bottom:0}.field textarea{border:1.5px solid var(--color-border);font:inherit;resize:vertical;border-radius:8px;padding:9px 11px;font-size:14px}.field textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.radio-row{cursor:pointer;align-items:flex-start;gap:9px;padding:7px 0;font-size:13px;line-height:1.45;display:flex}.radio-row input{flex-shrink:0;margin-top:3px}.form-warning{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:8px;padding:9px 11px;font-size:13px;line-height:1.45}.form-hint{color:var(--color-gray);font-size:12.5px;line-height:1.45}.filter-row{align-items:center;gap:12px;margin-bottom:16px;display:flex}.filter-row select{border:1.5px solid var(--color-border);font:inherit;border-radius:8px;padding:7px 10px;font-size:13px}.pager{color:var(--color-gray);align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}.audit-route{color:var(--color-ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.status-ended,.status-expired,.status-revoked{background:var(--color-border);color:var(--color-gray)}.status-pending_approval{color:#92400e;background:#fef3c7}.status-failed{color:#991b1b;background:#fee2e2}.table-scroll{border-radius:12px;min-width:0;max-width:100%;overflow-x:auto}.data-table th{white-space:nowrap}.data-table th.col-ref{min-width:132px}.data-table th.col-date{min-width:120px}.data-table th.col-datetime{min-width:176px}.data-table th.col-num{min-width:104px}.data-table th.col-label{min-width:128px}.data-table th.col-status{min-width:140px}.data-table th.col-count{min-width:80px}.data-table th.col-name{min-width:168px}.data-table th.col-text{min-width:190px}.muted{color:var(--color-muted);font-size:12.5px}.wrap{white-space:normal;word-break:break-word;max-width:38ch}.pill{font:700 11px var(--font-heading);background:var(--color-border);color:var(--color-gray);border-radius:999px;padding:3px 10px;display:inline-block}.pill-good{background:var(--success-tint);color:var(--success)}.pill-warn{background:var(--warning-tint);color:var(--warning)}.pill-bad{background:var(--danger-tint);color:var(--danger)}.pill-idle{background:var(--color-border);color:var(--color-gray)}.card{border:1px solid var(--color-border);background:#fff;border-radius:12px;padding:20px}.form-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.field-hint{font:400 11px var(--font-body);color:var(--color-gray);max-width:340px;line-height:1.4}.section-intro{color:var(--color-gray);max-width:62ch;margin:0 0 16px;font-size:11.5px;line-height:1.5}.data-table th.num,.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.kpi-row{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.kpi-card{border:2px solid var(--color-text,#201e1d);background:var(--color-bg,#fff);flex:160px;padding:14px 16px}.kpi-label{font:700 11px var(--font-heading,inherit);letter-spacing:.04em;text-transform:uppercase;color:var(--color-gray,#6b6764)}.kpi-value{font:800 26px var(--font-heading,inherit);margin-top:6px}.dash-panel{margin-bottom:28px}.dash-panel-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.section-title{font:800 15px var(--font-heading,inherit);margin:0}.muted-note{color:var(--color-gray,#6b6764)}.detail-flag{border:2px solid var(--color-accent,#ec3013);color:var(--color-accent,#ec3013);font:700 10px var(--font-heading,inherit);text-transform:uppercase;margin-left:6px;padding:1px 6px;display:inline-block}.login-remember{font:400 13px var(--font-body,inherit);color:var(--color-gray,#666);cursor:pointer;align-items:center;gap:8px;margin:10px 0;display:flex}.mfa-qr{border:1px solid var(--color-border,#e3e3df);border-radius:8px;width:180px;height:180px;margin:8px auto 12px;display:block}.mfa-secret{font:400 12px var(--font-body,inherit);color:var(--color-gray,#666);text-align:center;word-break:break-all;margin-bottom:12px}.mfa-secret code{font:700 12px var(--font-mono,monospace);color:var(--color-ink,#1a1a1a)}.backup-codes{background:var(--color-surface-2,#f6f6f4);border:1px solid var(--color-border,#e3e3df);font:700 14px var(--font-mono,monospace);color:var(--color-ink,#1a1a1a);border-radius:8px;grid-template-columns:1fr 1fr;gap:6px 16px;margin:0 0 16px;padding:14px 16px;list-style:none;display:grid}.menu-access-panel{background:var(--color-surface-2,#f6f6f4);border-top:2px solid var(--color-border,#e3e3df);padding:16px 18px}.menu-access-head{font:400 13px/1.5 var(--font-body,inherit);color:var(--color-gray,#666);margin:0 0 10px}.menu-access-default{font:600 13px var(--font-heading,inherit);cursor:pointer;align-items:center;gap:6px;margin-bottom:12px;display:inline-flex}.menu-access-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px 16px;margin-bottom:14px;display:grid}.menu-access-grid[aria-disabled=true]{opacity:.75}.menu-access-item{font:400 13px var(--font-body,inherit);cursor:pointer;align-items:center;gap:6px;display:flex}.menu-access-item.is-locked{cursor:default;color:var(--color-gray,#666)}.menu-access-actions{align-items:center;gap:4px;display:flex}.shell{min-height:100vh;display:flex}.shell-sidebar{width:var(--sidebar-width);background:var(--color-ink);flex-direction:column;flex-shrink:0;padding:24px 0;display:flex}.shell-logo{font:900 18px var(--font-heading);color:#fff;letter-spacing:-.02em;padding:0 24px 24px}.shell-nav{flex-direction:column;gap:2px;padding:0 12px;display:flex}.shell-nav-item{font:700 13.5px var(--font-heading);color:#c9c4ba;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;text-decoration:none;display:flex}.shell-nav-item:hover{color:#fff;background:#ffffff0f}.shell-nav-item.active{background:var(--color-accent);color:#fff}.shell-nav-item.disabled{cursor:default;opacity:.55}.shell-nav-item.disabled:hover{color:#c9c4ba;background:0 0}.shell-nav-group{flex-direction:column;gap:2px;margin:6px 0;display:flex}.shell-nav-group-label{font:800 10px var(--font-heading);letter-spacing:.06em;text-transform:uppercase;color:#8a8478;padding:8px 12px 2px}.shell-nav-group .shell-nav-item{padding-left:20px}.shell-nav-badge{font:700 9px var(--font-heading);letter-spacing:.04em;background:#ffffff1f;border-radius:999px;padding:2px 6px}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.shell-topbar{height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 28px;display:flex}.shell-logout{border:1px solid var(--color-border);color:var(--color-ink);font:700 12.5px var(--font-heading);cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px}.shell-logout:hover{border-color:var(--color-ink)}.shell-content{flex:1;padding:28px;overflow:auto}@media (width<=860px){.shell-sidebar{display:none}}
