:root{font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif;color:#172033;background:#f3f6fa;font-synthesis:none;text-rendering:optimizeLegibility;color-scheme:light;--panel:#fff;--muted:#58677c;--line:#e0e7f0;--blue:#205ed8;--soft:#edf3ff}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit;text-decoration:none;cursor:pointer;font-size:14px}button:hover,.button:hover{border-color:#7e9bc8}button:disabled{cursor:default;opacity:.55}button.primary,.button.primary{color:#fff;background:var(--blue);border-color:var(--blue)}button.danger{color:#b53232;border-color:#ebbbbb}button[aria-pressed=true]{color:var(--blue);background:var(--soft);border-color:var(--blue)}button.quiet{border:0;color:var(--blue);padding-left:0;background:transparent}a{color:var(--blue)}input:not([type=checkbox]),select{width:100%;min-width:0;min-height:40px;padding:9px 11px;border:1px solid #cbd5e3;border-radius:6px;background:var(--panel);color:inherit}input[type=checkbox]{width:17px;height:17px;flex-shrink:0;accent-color:var(--blue)}label{display:grid;gap:7px;margin:17px 0;font-size:14px}h1,h2,h3,p{margin:0}h1{font-size:25px;font-weight:500}h2{font-size:18px;font-weight:500}h3{font-size:15px;font-weight:500}p{line-height:1.7}h2+p,h3+p{margin-top:9px}.muted{color:var(--muted)}.small,small{font-size:12px}.block{display:block;margin-top:6px}.code{font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.full{width:100%}.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline input:not([type=checkbox]),.inline select{width:auto;max-width:100%}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.spaced{margin-top:18px}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.alert{padding:12px 15px;background:var(--soft);border-radius:6px;margin:15px 0;font-size:14px;overflow-wrap:anywhere}.alert.error{background:#fff0f0;color:#a92d2d}.alert.warn{background:#fff3df;color:#82500b}.wordmark{font-size:24px;letter-spacing:2px;font-weight:500}.wordmark span{display:block;margin-top:5px;font-size:12px;letter-spacing:1px;color:#bed0ec;font-weight:400}.auth-page{display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(360px,1fr);min-height:100vh;background:#fff}.auth-brand{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:56px 65px;background:linear-gradient(145deg,#112746,#1e477d);color:#fff}.auth-brand h1{font-size:48px;line-height:1.5;margin:20px 0}.auth-brand p{color:#c0d3ef;line-height:1.9}.eyebrow{font-size:14px;letter-spacing:2px}.auth-brand small{color:#c0d3ef}.auth-form{width:min(440px,100%);padding:60px 36px;margin:auto}.auth-form h1{margin-bottom:12px}.auth-form form{margin-top:25px}.auth-form button.full{margin-top:20px}.auth-switch{margin-top:25px;text-align:center}.release{display:block;text-align:center;color:var(--muted);margin-top:36px;overflow-wrap:anywhere}.mobile-wordmark{display:none}.app-shell{display:grid;grid-template-columns:194px minmax(0,1fr);min-height:100vh}.sidebar{background:#14294b;color:#e6effc;padding:30px 18px;display:flex;flex-direction:column;gap:34px}.sidebar .wordmark{padding:0 10px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#cad8ec;text-decoration:none;padding:12px 14px;border-radius:6px;font-size:14px}.sidebar nav a.router-link-active{background:#2a4979;color:#fff}.admin-link:first-of-type{margin-top:15px}.side-footer{margin-top:auto;color:#b9cbe8;font-size:12px;padding:10px;overflow-wrap:anywhere}.side-footer small{display:block;margin-top:10px;opacity:.8}.workspace{min-width:0}.topbar{padding:22px 30px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}.topbar a{text-decoration:none}.content{padding:30px;max-width:1440px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:25px}.page-heading p{margin-top:8px;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:25px 0}.stat{padding:19px 22px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.stat span{color:var(--muted);font-size:13px}.stat strong{display:block;margin-top:8px;font-size:29px;font-weight:500;font-variant-numeric:tabular-nums}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:20px 0}.toolbar label{margin:0 0 0 8px}.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px}.panel{background:var(--panel);border:1px solid var(--line);padding:23px;border-radius:9px;margin-bottom:20px;min-width:0}.product-grid .panel{margin-bottom:0}.product-card h2{font-size:17px}.badge{display:inline-block;padding:4px 8px;background:var(--soft);color:var(--blue);border-radius:4px;font-size:12px;margin:2px 5px 2px 0;overflow-wrap:anywhere}dl{display:grid;grid-template-columns:95px minmax(0,1fr);gap:14px;margin:24px 0;font-size:13px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.card-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--line);margin-top:24px}.empty{padding:44px 20px;text-align:center;color:var(--muted)}.empty h2{margin-bottom:10px}.empty .button{margin-top:20px}.steps{display:grid;gap:28px;padding-left:24px;margin:28px 0}.steps li{padding-left:8px}.danger-zone{border-top:1px solid var(--line);margin-top:30px;padding-top:23px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left;min-width:540px}th,td{padding:15px 10px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}th{color:var(--muted);background:#f6f8fb;font-weight:400}td button{min-height:32px;padding:5px 9px;font-size:12px}.grant-row{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr);gap:20px}.grant-label{margin:0;align-self:start;align-items:flex-start}.scope-list{min-width:0}.scope-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px}.scope-row input,.scope-row select{flex:1;min-width:130px}dialog{width:min(600px,calc(100vw - 32px));max-height:85vh;border:1px solid var(--line);border-radius:12px;padding:25px;color:#172033;background:#fff;overflow:auto}dialog::backdrop{background:#0b193c70}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}@media (max-width:800px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-form{padding:45px 25px}.mobile-wordmark{display:block;color:var(--blue);margin-bottom:40px;font-weight:500}.app-shell{grid-template-columns:1fr}.sidebar{padding:18px 20px;gap:18px}.sidebar .wordmark{padding:0;display:flex;align-items:center;gap:15px;font-size:21px}.sidebar .wordmark span{margin:0}.sidebar nav{display:flex;flex-wrap:wrap;gap:5px}.sidebar nav a{padding:10px 12px}.side-footer{display:none}.content{padding:22px}.topbar{padding:17px 23px}.grant-row{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:16px}}@media (max-width:420px){.content{padding:16px}.page-heading{margin-bottom:20px}h1{font-size:23px}.panel{padding:18px}.stat{padding:13px 10px}.stat span{font-size:12px}.stat strong{font-size:25px}.toolbar label{margin-left:0}dl{grid-template-columns:78px minmax(0,1fr);gap:12px}.topbar{padding:16px}.sidebar{padding:18px 16px}.sidebar nav a{font-size:13px;padding:9px}.page-heading .actions{width:100%}}@media (pointer:coarse){button,.button{min-height:44px}input,select{font-size:16px}}.management-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:0 0 24px;padding-bottom:12px;flex-wrap:wrap}.management-tabs button{border:0;background:transparent}.management-tabs button[aria-pressed=true]{background:var(--soft);color:var(--blue)}.account-query{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-top:18px}.account-query label{flex:1;min-width:160px;margin:0}.account-query .actions{padding-bottom:1px}.password-form{max-width:480px}@media (max-width:420px){.account-query label{min-width:100%}}
