/* VantoShops Developer UI system — V10.8.14 */
:root{
  --vs-radius-xs:6px;--vs-radius-sm:8px;--vs-radius-md:10px;--vs-radius-lg:12px;
  --vs-space-1:4px;--vs-space-2:8px;--vs-space-3:12px;--vs-space-4:16px;--vs-space-5:20px;--vs-space-6:24px;--vs-space-8:32px;
  --vs-green:#16834f;--vs-green-soft:#eaf7ef;--vs-amber:#aa5b00;--vs-amber-soft:#fff5e5;--vs-red:#c2414c;--vs-red-soft:#fff0f1;
  --vs-code-bg:#111827;--vs-code-text:#e5edf7;
}
html[data-theme="dark"]{--vs-green:#72d7a0;--vs-green-soft:#163326;--vs-amber:#ffc66d;--vs-amber-soft:#352713;--vs-red:#ff8e99;--vs-red-soft:#3a1e22;--vs-code-bg:#090d13;--vs-code-text:#e7edf7}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--portal-bg)!important;color:var(--portal-text)!important;font:14px/1.58 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
:focus-visible{outline:2px solid var(--portal-brand)!important;outline-offset:2px}
/* Shared page rhythm */
main{min-height:calc(100vh - var(--portal-header-h));}
.vs-page{padding:34px 0 64px}
.vs-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.vs-page-title{margin:0;font-size:clamp(30px,4vw,48px);line-height:1.05;letter-spacing:-.045em}
.vs-page-lead{margin:10px 0 0;color:var(--portal-muted);max-width:880px;font-size:15px}
/* Shared controls/cards */
.btn,.control,.field input,.field textarea,.field select,.vs-control{border-radius:var(--vs-radius-sm)!important}
.btn{border:1px solid var(--portal-line)!important;background:var(--portal-surface)!important;color:var(--portal-text)!important;box-shadow:none!important}
.btn:hover{background:var(--portal-soft)!important;border-color:var(--portal-line2)!important}
.btn.primary,.btn.dark{background:var(--portal-text)!important;color:var(--portal-bg)!important;border-color:var(--portal-text)!important}
.stat,.toolbar,.route,.panel,.empty,.status-card,.meta-card,.service,.info,.card{background:var(--portal-surface)!important;border-color:var(--portal-line)!important;box-shadow:none!important}
.control,.field input,.field textarea,.field select{background:var(--portal-surface)!important;color:var(--portal-text)!important;border-color:var(--portal-line2)!important}
.control::placeholder,.field input::placeholder,.field textarea::placeholder{color:var(--portal-subtle)!important}
/* Health Center normalization */
body.vs-health-page .hero{padding:44px 0 18px!important}
body.vs-health-page .back{color:var(--portal-muted)!important}
body.vs-health-page .lead,body.vs-health-page .section-head p,body.vs-health-page .service small,body.vs-health-page .updated,body.vs-health-page .footer{color:var(--portal-muted)!important}
body.vs-health-page .gradient{background:none!important;color:var(--portal-brand)!important;-webkit-text-fill-color:initial!important}
body.vs-health-page .overview{gap:12px!important}
body.vs-health-page .status-card,body.vs-health-page .meta-card,body.vs-health-page .service,body.vs-health-page .info{border-radius:var(--vs-radius-lg)!important}
body.vs-health-page .ring{background:var(--vs-green-soft)!important;border-color:color-mix(in srgb,var(--vs-green) 30%,var(--portal-line))!important;color:var(--vs-green)!important}
body.vs-health-page .status-pill{background:var(--vs-green-soft)!important;color:var(--vs-green)!important}
body.vs-health-page .service-icon{background:var(--portal-soft)!important;color:var(--portal-brand)!important;border-radius:var(--vs-radius-sm)!important}
body.vs-health-page .service-status{color:var(--vs-green)!important}
body.vs-health-page .row{background:var(--portal-soft)!important;border-radius:var(--vs-radius-sm)!important}
body.vs-health-page .raw{background:var(--vs-code-bg)!important;border:1px solid var(--portal-line)!important;color:var(--vs-code-text)!important;border-radius:var(--vs-radius-md)!important}
/* API Explorer normalization */
body.vs-explorer-page .wrap{padding:24px 0 56px!important}
body.vs-explorer-page .stats{gap:10px!important;margin-bottom:12px!important}
body.vs-explorer-page .stat{border-radius:var(--vs-radius-md)!important;padding:14px 16px!important}
body.vs-explorer-page .stat b{font-size:21px!important;letter-spacing:-.025em}
body.vs-explorer-page .toolbar{border-radius:var(--vs-radius-md)!important;padding:10px!important;margin-bottom:12px!important;gap:8px!important}
body.vs-explorer-page .authbar{background:var(--portal-soft)!important;color:var(--portal-text)!important;border:1px solid var(--portal-line)!important;border-radius:var(--vs-radius-md)!important;padding:10px!important;margin-bottom:12px!important}
body.vs-explorer-page .authbar input{background:var(--portal-surface)!important;color:var(--portal-text)!important;border-color:var(--portal-line2)!important}
body.vs-explorer-page .route{border-radius:var(--vs-radius-md)!important;margin-bottom:8px!important}
body.vs-explorer-page .route-head{padding:11px 13px!important;min-height:50px}
body.vs-explorer-page .route-head:hover{background:var(--portal-soft)!important}
body.vs-explorer-page .route-body{background:var(--portal-soft)!important;padding:14px!important}
body.vs-explorer-page .panel{border-radius:var(--vs-radius-md)!important;background:var(--portal-surface)!important}
body.vs-explorer-page .pill{background:var(--portal-soft2)!important;color:var(--portal-muted)!important}
body.vs-explorer-page .desc{color:var(--portal-muted)!important}
body.vs-explorer-page .source-box,body.vs-explorer-page .developer-box{background:var(--portal-soft)!important;border-color:var(--portal-line2)!important}
body.vs-explorer-page .result{background:var(--vs-code-bg)!important;color:var(--vs-code-text)!important;border:1px solid var(--portal-line)!important;border-radius:var(--vs-radius-md)!important}
body.vs-explorer-page .notice{background:var(--vs-amber-soft)!important;border-color:color-mix(in srgb,var(--vs-amber) 35%,var(--portal-line))!important;color:var(--vs-amber)!important}
body.vs-explorer-page .GET{background:var(--vs-green-soft)!important;color:var(--vs-green)!important}
body.vs-explorer-page .POST{background:#eef4ff!important;color:#005bd3!important}
body.vs-explorer-page .PATCH{background:var(--vs-amber-soft)!important;color:var(--vs-amber)!important}
body.vs-explorer-page .DELETE{background:var(--vs-red-soft)!important;color:var(--vs-red)!important}
html[data-theme="dark"] body.vs-explorer-page .POST{background:#17284b!important;color:#abc8ff!important}
/* Explorer login */
body.vs-login-page{min-height:100vh;background:var(--portal-bg)!important}
body.vs-login-page .login-shell{min-height:calc(100vh - var(--portal-header-h));display:grid;place-items:center;padding:36px 20px 64px}
body.vs-login-page .login-card{width:min(460px,100%);border:1px solid var(--portal-line);border-radius:var(--vs-radius-lg);background:var(--portal-surface);padding:30px;box-shadow:var(--portal-shadow)}
body.vs-login-page .login-card h1{margin:0;font-size:28px;letter-spacing:-.035em}
body.vs-login-page .login-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--portal-brand);margin-bottom:9px}
body.vs-login-page .muted,body.vs-login-page .secure,body.vs-login-page .foot{color:var(--portal-muted)!important}
body.vs-login-page .field input{width:100%;padding:12px 13px}
body.vs-login-page .login-submit{width:100%;margin-top:18px;border:1px solid var(--portal-text);border-radius:var(--vs-radius-sm);padding:12px;background:var(--portal-text);color:var(--portal-bg);font-weight:800;cursor:pointer}
body.vs-login-page .error,body.vs-login-page .warn{margin-top:16px;padding:11px 12px;border-radius:var(--vs-radius-sm);border:1px solid}
body.vs-login-page .error{background:var(--vs-red-soft);color:var(--vs-red);border-color:color-mix(in srgb,var(--vs-red) 30%,var(--portal-line))}
body.vs-login-page .warn{background:var(--vs-amber-soft);color:var(--vs-amber);border-color:color-mix(in srgb,var(--vs-amber) 30%,var(--portal-line))}
/* Shared footer */
.vs-footer{border-top:1px solid var(--portal-line);padding:28px 0;color:var(--portal-muted);font-size:12px;background:var(--portal-bg)}
.vs-footer-in{display:flex;justify-content:space-between;align-items:center;gap:20px}
.vs-footer-links{display:flex;gap:16px;flex-wrap:wrap}.vs-footer a:hover{color:var(--portal-text)}
@media(max-width:1200px){body.vs-explorer-page .route-head{grid-template-columns:76px minmax(260px,1.5fr) minmax(220px,1fr) 125px 120px 30px!important}}
@media(max-width:1000px){.vs-page-head{align-items:flex-start;flex-direction:column}.vs-footer-in{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){:root{--portal-gutter:28px}.vs-footer-links{gap:10px}}
@media(max-width:430px){:root{--portal-gutter:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Unified browser error surface */
body.vs-not-found-page .vs-error-shell{min-height:calc(100vh - var(--portal-header-h) - 80px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-top:72px;padding-bottom:96px;max-width:760px;margin-left:0}
body.vs-not-found-page .vs-error-code{font:800 13px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:var(--portal-brand);margin-bottom:18px}
body.vs-not-found-page h1{margin:0;font-size:clamp(42px,6vw,72px);line-height:.98;letter-spacing:-.055em}
body.vs-not-found-page p{max-width:680px;margin:20px 0 0;color:var(--portal-muted);font-size:16px;line-height:1.75}
body.vs-not-found-page .vs-error-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
body.vs-not-found-page .vs-error-primary,body.vs-not-found-page .vs-error-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:var(--vs-radius-sm);font-weight:750;border:1px solid var(--portal-line)}
body.vs-not-found-page .vs-error-primary{background:var(--portal-text);color:var(--portal-bg);border-color:var(--portal-text)}
body.vs-not-found-page .vs-error-secondary{background:var(--portal-surface);color:var(--portal-text)}
