.dashboard-toolbar,.dashboard-presets,.dashboard-custom,.dashboard-point,.dashboard-series{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dashboard-toolbar{justify-content:space-between}.dashboard-presets button{padding:8px 14px}.dashboard-interval{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dashboard-interval button{padding:6px 10px;font-size:12px}.dashboard-chart-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.dashboard-point select{width:auto;padding:8px 12px}.dashboard-custom{display:grid;grid-template-columns:minmax(150px,200px) 16px minmax(150px,200px) max-content;justify-content:start;margin-top:18px;align-items:end;gap:12px}.dashboard-custom label{display:grid;gap:6px;color:var(--muted);margin:0;min-width:0}.dashboard-custom input,.dashboard-custom button{height:40px;margin:0;width:100%;min-width:0}.dashboard-custom>span{height:40px;display:flex;align-items:center;color:var(--muted)}.dashboard-metrics{margin-top:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-metric{padding:22px 20px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.dashboard-metric>span{color:var(--secondary);font-size:13px}.dashboard-metric>strong{display:block;margin:16px 0 0;font-size:clamp(23px,2vw,32px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;letter-spacing:-.8px}.dashboard-metric:first-child{background:linear-gradient(125deg,var(--nav-bg),var(--surface));border-color:var(--focus)}.dashboard-metric:first-child>strong{color:var(--link)}.dashboard-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin:24px 0}.dashboard-trend{grid-column:1 / -1}.dashboard-trend[aria-busy=true] .dashboard-chart-scroll{opacity:.55}.dashboard-panel{min-width:0;padding:24px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.dashboard-panel h2{font-size:17px}.dashboard-composition{display:flex;align-items:center;gap:20px;min-height:280px;flex-wrap:wrap;justify-content:center}.dashboard-ring{width:210px;max-width:50%;flex-shrink:0;position:relative}.dashboard-ring svg{display:block;width:100%}.dashboard-ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;pointer-events:none}.dashboard-ring-label span{color:var(--muted);font-size:12px}.dashboard-ring-label strong{font-size:19px}.dashboard-legend{list-style:none;padding:0;margin:0;flex:0 1 auto;max-width:100%;max-height:250px;overflow:auto}.dashboard-legend li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 0}.dashboard-legend li>span:nth-child(2){overflow-wrap:anywhere}.dashboard-legend .dashboard-empty-legend{display:block}.dashboard-legend small{grid-column:2 / 4;margin:0}.dashboard-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-right:7px}.dashboard-table-scroll{overflow:auto;max-height:330px;margin-top:18px}.dashboard-table{width:100%;border-collapse:collapse}.dashboard-table th,.dashboard-table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--border);font-size:13px}.dashboard-table th{color:var(--muted);background:var(--surface);font-weight:500;white-space:nowrap}.dashboard-table td:first-child{overflow-wrap:anywhere}.dashboard-table td:not(:first-child){white-space:nowrap}.dashboard-empty{padding:50px 20px;text-align:center;color:var(--muted)}.dashboard-series{margin:20px 0 8px}.dashboard-series button{padding:6px 10px;font-size:12px}.dashboard-series button[aria-pressed=false]{opacity:.45;text-decoration:line-through}.dashboard-line-chart{width:100%;min-width:540px;display:block;touch-action:pan-y}.dashboard-chart-scroll{overflow-x:auto}.dashboard-line-chart text{fill:var(--muted);font-size:11px}.dashboard-point{padding:12px 16px;background:var(--surface);border-radius:8px;font-size:12px;gap:16px}.dashboard-point label{display:flex;align-items:center;gap:8px;margin:0;flex-direction:row}.dashboard-point label select{margin:0}@media(max-width:1200px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.dashboard-charts{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.dashboard-custom{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dashboard-custom>span{display:none}.dashboard-custom button{grid-column:1 / -1;justify-self:start;width:auto}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-panel,.dashboard-metric{padding:16px}.dashboard-composition{gap:10px}.dashboard-ring-label strong{font-size:15px}}:root{color-scheme:light;--text: #252a34;--secondary: #444e5e;--muted: #78818f;--subtle: #8a93a1;--border: #e4e4e7;--border-strong: #d9dee7;--surface: #fff;--sidebar: #fff;--soft: #fafbfd;--hover: #f5f7fa;--primary: #18181b;--primary-hover: #303036;--link: #27272a;--link-hover: #09090b;--nav-bg: #f1f5f9;--nav-fg: #18181b;--focus: #b6cdfd;--avatar-bg: #edf2fa;--avatar-fg: #6481b6;--success-bg: #eaf7f1;--success-fg: #31926f;--warning-bg: #fff6e5;--warning-fg: #b28a37;--neutral-bg: #f0f2f6;--neutral-fg: #8991a0;--mock-bg: #edf0fe;--mock-fg: #6475b6;--danger-bg: #fff0f0;--danger-fg: #b04d4d;--danger-border: #f3d1d1;--mode-bg: #faf6ec;--mode-fg: #7c6946;--mode-border: #efe6d1;--placeholder: #a4adba;--on-primary: #fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:var(--text);background:var(--surface);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:14px}:root[data-theme=dark]{color-scheme:dark;--text: #e6eaf2;--secondary: #c3cee0;--muted: #a4b0c3;--subtle: #96a4bb;--border: #2b3748;--border-strong: #39485f;--surface: #18212e;--sidebar: #141c28;--soft: #1d2938;--hover: #253246;--primary: #3568dc;--primary-hover: #477ae8;--link: #a1c1ff;--link-hover: #c3d7ff;--nav-bg: #203659;--nav-fg: #9bc0ff;--focus: #7eabff;--avatar-bg: #223856;--avatar-fg: #b0cfff;--success-bg: #15382d;--success-fg: #77d4ae;--warning-bg: #40331a;--warning-fg: #f4cf7a;--neutral-bg: #293342;--neutral-fg: #b1bed1;--mock-bg: #242c4c;--mock-fg: #bbc5ff;--danger-bg: #3e242b;--danger-fg: #ffabb4;--danger-border: #6c3e4a;--mode-bg: #392f1e;--mode-fg: #e7c78b;--mode-border: #5b4a2c;--placeholder: #8492a8;--on-primary: #fff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:1px solid var(--primary);border-radius:7px;color:var(--on-primary);background:var(--primary);padding:9px 15px;cursor:pointer;font-weight:500;white-space:nowrap;transition:background .15s}button:hover{background:var(--primary-hover)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:25px;letter-spacing:-.65px;line-height:1.5;font-weight:650}h2{font-size:19px;font-weight:650}h3{font-size:15px;font-weight:600}small{display:block;color:var(--muted);font-size:12px;margin-top:5px;line-height:1.45}strong{font-weight:600}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--secondary)}.secondary:hover{background:var(--hover)}.text-button{color:var(--link);background:transparent;border:0;padding:4px 0;text-align:left}.text-button:hover{background:transparent;color:var(--link-hover);text-decoration:underline}.text-button:disabled{text-decoration:none}.danger-text{color:var(--danger-fg)}.muted{color:var(--muted)}.small{font-size:12px}.app{display:flex;min-height:100vh}.sidebar{width:252px;flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--border);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:0}.brand{margin-bottom:32px;display:flex;align-items:center;gap:8px;padding:0 10px}.brand>strong{color:var(--text);font-size:25px;letter-spacing:-1px}.brand-icon{width:29px;height:29px;display:inline-flex;justify-content:center;align-items:center;border-radius:9px 9px 9px 3px;background:var(--primary);color:var(--on-primary);font-size:22px;font-weight:800;font-style:italic}.brand-edition{color:var(--muted);font-size:11px;margin-left:6px;padding-left:9px;border-left:1px solid var(--border-strong)}.nav-label{padding:0 13px 12px;font-size:11px;color:var(--subtle);letter-spacing:1px}.home-navigation{margin-bottom:24px}.settings-label{margin-top:24px}nav{display:flex;flex-direction:column;gap:5px}nav a{padding:12px 14px;display:flex;align-items:center;gap:13px;border-radius:7px;color:var(--muted);font-size:13px}nav a:hover{background:var(--hover)}nav a.active{background:var(--nav-bg);color:var(--nav-fg);font-weight:600}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.nav-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.main{margin-left:252px;flex:1;min-width:0}.topbar{background:var(--surface);height:64px;border-bottom:1px solid var(--border);padding:0 36px;display:flex;align-items:center;justify-content:space-between;color:var(--subtle);font-size:12px}.mode-badge{color:var(--mode-fg);background:var(--mode-bg);border:1px solid var(--mode-border);padding:5px 9px;border-radius:5px;font-size:11px}main{padding:24px 32px;max-width:1920px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.table-wrap{border:1px solid var(--border);border-radius:9px;overflow:auto;background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;background:var(--soft);font-size:12px;font-weight:500;color:var(--subtle);padding:14px 18px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:18px;border-bottom:1px solid var(--border);line-height:1.5}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--hover)}td strong{color:var(--text)}td code{color:var(--muted)}.empty{text-align:center;padding:95px 20px;color:var(--subtle)}.actions{display:flex;align-items:center;gap:15px}.avatar{height:44px;width:44px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--avatar-fg);background:var(--avatar-bg);border-radius:50%;font-size:18px}.small-avatar{height:34px;width:34px;font-size:13px}.user-cell{display:flex;align-items:center;gap:12px}.user-cell strong{color:var(--text)}.status{display:inline-flex;align-items:center;gap:6px;border-radius:5px;padding:3px 8px;font-size:11px;background:var(--neutral-bg);color:var(--subtle);white-space:nowrap}.status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status-active,.status-paid,.status-enabled{background:var(--success-bg);color:var(--success-fg)}.status-pending{background:var(--warning-bg);color:var(--warning-fg)}.status-expired,.status-canceled,.status-disabled{background:var(--neutral-bg);color:var(--neutral-fg)}.status-mock{background:var(--mock-bg);color:var(--mock-fg)}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:19px;color:var(--subtle);font-size:12px}.pagination>div{display:flex;align-items:center;gap:15px}.pagination button{font-size:12px;padding:6px 10px}.search-bar{display:flex;gap:10px;margin-bottom:18px}.search-bar input{max-width:330px}input,select,textarea{width:100%;border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;padding:10px 11px;color:var(--text);outline:none}input::placeholder,textarea::placeholder{color:var(--placeholder)}input:focus,select:focus,textarea:focus{border-color:var(--focus)}label{display:flex;flex-direction:column;gap:8px;color:var(--secondary);font-size:13px;margin-bottom:20px}form>p{margin-bottom:20px}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:26px;padding-top:20px;border-top:1px solid var(--border)}dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;width:min(620px,calc(100vw - 40px));max-height:85vh;box-shadow:0 20px 90px #14213b24}dialog::backdrop{background:#1a284b55;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog header{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px}.icon-button{background:transparent;color:var(--subtle);border:0;font-size:26px;padding:0 5px}.icon-button:hover{background:var(--hover)}.error{background:var(--danger-bg);color:var(--danger-fg);border:1px solid var(--danger-border);padding:12px 14px;border-radius:6px;margin-bottom:18px;line-height:1.6}.detail-title{display:flex;align-items:center;gap:15px;margin-bottom:15px}.detail-title .status{margin-left:auto}.details h3{margin-top:25px;margin-bottom:12px}.detail-title h3{margin:0 0 5px}.detail-title p,.detail-row p{color:var(--subtle);font-size:12px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.detail-row p{margin-top:6px}.record-details{display:grid;grid-template-columns:120px 1fr;gap:18px;margin:0;font-size:13px}.record-details dt{color:var(--subtle)}.record-details dd{margin:0;overflow-wrap:anywhere}.success-block{line-height:1.8}.success-block p{margin:14px 0 22px;color:var(--subtle)}.boot{padding:20vh 20px;text-align:center;color:var(--subtle)}.login-page{min-height:100vh;min-height:100svh;background:radial-gradient(ellipse at 20% 20%,rgb(35 89 220 / 14%),transparent 60%),radial-gradient(ellipse at 85% 80%,rgb(77 142 235 / 10%),transparent 55%),linear-gradient(135deg,var(--sidebar),var(--surface));padding:40px;display:grid;place-items:center}.login-brand{display:flex;justify-content:center;align-items:center;gap:12px;text-align:center}.login-brand .brand-icon{flex-shrink:0;width:48px;height:48px;font-size:34px}.login-card{align-self:center;width:min(480px,100%);padding:48px;background:linear-gradient(150deg,var(--surface),var(--soft));border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 64px #2359a01a,0 4px 16px #2359a00a}.login-card h1{font-size:clamp(20px,4vw,28px);line-height:1.4;font-weight:650;letter-spacing:0;color:var(--text)}.login-card form{margin-top:36px}.login-card input{min-height:48px;border-radius:10px}.login-card form>button{width:100%;min-height:48px;margin-top:12px;border:0;border-radius:10px;background:linear-gradient(110deg,var(--primary),#3572e6);box-shadow:0 8px 20px #2359dc29;font-weight:600}.login-card form>button:hover:not(:disabled){background:var(--primary-hover)}@media(max-width:1000px){.sidebar{width:200px;padding-inline:10px}.main{margin-left:200px}main{padding:24px}.topbar{padding-inline:24px}.brand-edition{display:none}td,th{padding-inline:12px}}@media(max-width:700px){.brand{margin-bottom:0}.sidebar{position:static;width:100%;padding:16px}.nav-label,.brand-edition{display:none}nav{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}nav a{padding:8px;font-size:12px;gap:7px}.app{display:block}.main{margin-left:0}.topbar{height:50px;padding-inline:20px}main{padding:24px 16px}.page-heading{align-items:flex-start}.page-heading h1{font-size:22px}.table-wrap{overflow-x:auto}table{min-width:680px}.login-page{padding:24px}.login-card{padding:28px}.form-grid{grid-template-columns:1fr;gap:0}}.topbar>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:20px;flex-shrink:0}.account-menu{position:relative;color:var(--text)}.account-trigger{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;border-radius:24px;padding:4px}.account-trigger::-webkit-details-marker{display:none}.account-trigger:hover{background:var(--hover)}.account-trigger:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.account-trigger>.icon{width:14px;height:14px;color:var(--muted)}.profile-avatar{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--avatar-fg);background:var(--avatar-bg);border:1px solid var(--border-strong);border-radius:50%;overflow:hidden}.profile-avatar .icon{width:23px;height:23px}.account-popover{position:absolute;z-index:30;top:calc(100% + 12px);right:0;width:268px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 36px #00000024;overflow:hidden}.account-info{padding:18px;border-bottom:1px solid var(--border)}.account-info strong{font-size:14px}.account-info small{overflow-wrap:anywhere}.account-role{display:block;color:var(--subtle);margin-top:8px;font-size:11px}.theme-options{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--border)}.theme-options button{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;background:var(--surface);color:var(--muted);border:1px solid transparent;padding:9px}.theme-options button:hover{background:var(--hover)}.theme-options button[aria-pressed=true]{color:var(--nav-fg);background:var(--nav-bg);border-color:var(--border-strong)}.account-logout{display:flex;align-items:center;gap:12px;width:100%;color:var(--text);background:var(--surface);border:0;border-radius:0;padding:14px 18px;text-align:left}.account-logout:hover{background:var(--hover);color:var(--danger-fg)}@media(max-width:700px){.topbar-actions{gap:10px}}.brand{height:64px;padding:0 22px;margin:0;border-bottom:1px solid var(--border);gap:12px}.brand>strong{font-size:16px;font-weight:500;letter-spacing:0}.brand-mark{font-size:25px;color:var(--text)}.sidebar-scroll{overflow:auto;flex:1;padding:12px 8px}.sidebar details{margin:12px 0}.sidebar summary{cursor:pointer;padding:10px 16px;font-size:13px;color:var(--text)}.sidebar details nav{margin-left:24px;border-left:1px solid var(--border);gap:2px}.sidebar nav a{font-size:13px;padding:10px 12px;border-radius:5px;color:var(--text);gap:10px}.sidebar-footer{border-top:1px solid var(--border);padding:10px 16px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.sidebar-collapsed .sidebar{display:none}.sidebar-collapsed .main{margin-left:0}.topbar{border-bottom:0;gap:16px;color:var(--text);font-size:14px}.menu-search{max-width:260px;margin-right:auto}.page-heading{align-items:flex-start;flex-direction:column;gap:14px}h1{font-size:24px;letter-spacing:-.5px;font-weight:700}.page-description{font-size:14px;color:var(--muted);margin-top:6px}.table-wrap{border-radius:6px}th{background:var(--surface);font-weight:500}td,th{padding:12px 16px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);margin:0;flex-shrink:0}.check-row{display:flex;flex-direction:row;align-items:center;gap:10px;margin:12px 0;font-size:14px}.filter-bar,.tabs{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 18px}.filter-bar select,.search-bar select{width:auto;min-width:130px}.settings-form{max-width:720px;border:1px solid var(--border);border-radius:8px;padding:24px}.info-notice,.success-notice{padding:12px 16px;background:var(--soft);border:1px solid var(--border);border-radius:6px;margin:12px 0;line-height:1.7}.success-notice{color:var(--success-fg)}.notice-preview{width:100%;height:240px;border:1px solid var(--border);margin:12px 0;background:#fff}.break-all{overflow-wrap:anywhere;white-space:normal}.detail-pair{display:contents}@media(max-width:760px){.sidebar{position:static;width:180px}.main{margin-left:0}main{padding:18px}.menu-search{display:none}.topbar{padding:0 18px}.search-bar{flex-wrap:wrap}.sidebar summary{padding:8px}.sidebar details nav{margin-left:8px}}.empty{height:100px;padding:32px 16px}.pagination-size{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;font-size:13px}.pagination-size select{width:72px;margin:0;padding:6px}section:has(>.search-bar){display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:12px}section:has(>.search-bar)>*{grid-column:1 / -1}section:has(>.search-bar)>.page-heading{display:contents}section:has(>.search-bar)>.page-heading>div:first-child{grid-column:1 / -1;margin-bottom:14px}section:has(>.search-bar)>.page-heading>:last-child:not(:first-child){grid-column:1;grid-row:2;align-self:start;margin-bottom:16px}section:has(>.search-bar)>.search-bar{grid-column:2;grid-row:2;margin-bottom:16px}.page-heading>button{background:var(--surface);color:var(--text);border-color:var(--border)}@media(max-width:760px){section:has(>.search-bar){display:block}.page-heading>*{margin-bottom:12px}}
