/* Shared interaction contract: homepage surfaces, typography and restrained motion. */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--text);color:var(--bg);padding:8px 14px;border-radius:var(--r-in)}.skip-link:focus{left:16px}
body:not(.home-page){font-family:var(--body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
:is(.public,.portal,.payment-standalone){--panel:var(--surface);--border:var(--line);--muted:#9b9da5;--accent:#8aa4e0}
:is(.public,.portal,.payment-standalone) :is(h1,h2,h3,.logo,.balance,.finance-amount,.price){font-family:var(--display);color:var(--text)}
:is(.public,.portal,.payment-standalone) :is(code,.server-ip-copy,.node-network,.node-specs dd,.chart-labels,.traffic-value){font-family:var(--mono)}
:is(.public,.portal,.payment-standalone) :is(.label,.hint,.muted,.logo-mark){color:var(--muted)}
:is(.public,.portal,.payment-standalone) :is(.panel,.plan,.stat){background:var(--surface);border-color:var(--line);border-radius:var(--r);box-shadow:none}
:is(.public,.portal,.payment-standalone) :is(button,.button){border-radius:var(--r);box-shadow:none;transition:transform var(--motion-press) var(--ease-out),background-color var(--motion-hover) ease,border-color var(--motion-hover) ease,color var(--motion-hover) ease}
:is(.public,.portal,.payment-standalone) :is(button,.button):not(.secondary):not(.icon-button):not(.operation){background:var(--text);border-color:var(--text);color:var(--bg)}
:is(.public,.portal,.payment-standalone) :is(button,.button).secondary{background:transparent;border-color:var(--line2);color:var(--text)}
:is(.public,.portal,.payment-standalone) .secondary:hover{background:var(--surface2)!important;border-color:var(--dim)!important}
:is(.public,.portal,.payment-standalone) :is(.button,button):not(:disabled):not([aria-busy=true]):active{transform:scale(.98)}
:is(.public,.portal,.payment-standalone) :is(input:not([type=checkbox]):not([type=hidden]),select,textarea){background:var(--bg);color:var(--text);border:1px solid var(--line2);border-radius:var(--r-in);box-shadow:none}
:is(.public,.portal,.payment-standalone) :is(input,select,textarea)::placeholder{color:var(--dim)}
:is(.public,.portal,.payment-standalone) :is(input,select,textarea):focus{border-color:var(--accent);box-shadow:none}
:is(.public,.portal,.payment-standalone) :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
:is(.public,.portal,.payment-standalone) input[type=checkbox]{appearance:none;position:relative;display:inline-block;flex:0 0 16px;width:16px;height:16px;min-height:16px;padding:0;margin:0;border:1px solid var(--dim);border-radius:4px;background:transparent;vertical-align:middle;transition:background-color 140ms ease,border-color 140ms ease}
:is(.public,.portal,.payment-standalone) input[type=checkbox]:checked{background:var(--text) url('/check.svg') center/12px 12px no-repeat;border-color:var(--text)}
:is(.public,.portal,.payment-standalone) input[type=checkbox]::after{content:none}
:is(.public,.portal,.payment-standalone) .check{display:flex;align-items:center;gap:10px;min-height:28px;cursor:pointer;color:var(--muted)}
:is(.public,.portal,.payment-standalone) .icon-button{background:transparent;color:var(--muted);border-color:var(--line2);border-radius:var(--r-in)}
:is(.public,.portal,.payment-standalone) .icon-button:hover{background:var(--surface2);color:var(--text)}
:is(.public,.portal,.payment-standalone) :is(.notice,#toast){background:var(--success-bg);border:1px solid var(--success-line);color:var(--success);border-radius:var(--r);font-weight:500}
:is(.public,.portal,.payment-standalone) .badge{border-radius:var(--r-in);background:var(--surface2);border-color:var(--line2);color:var(--muted);transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease}
:is(.public,.portal,.payment-standalone) .badge:is(.active,.approved,.answered,.provisioned){background:var(--success-bg);border-color:var(--success-line);color:var(--success)}
:is(.public,.portal,.payment-standalone) .badge:is(.pending,.open,.suspended,.review){background:var(--warning-bg);border-color:var(--warning-line);color:var(--warning)}
:is(.public,.portal,.payment-standalone) .badge:is(.failed,.rejected,.cancelled){background:var(--error-bg);border-color:var(--error-line);color:var(--error)}
.portal.console-ui{isolation:isolate;background-image:none}
.portal.console-ui::before,.portal.console-ui::after{content:none}
.portal.console-ui .console-brand .logo{font-size:23px;font-weight:700;letter-spacing:-.01em}
.portal.console-ui .sidebar{background:var(--bg)}
.portal.console-ui .workspace-header{background:var(--bg)}
.portal.console-ui :is(.server-card,.plan){background:var(--surface);border-color:var(--line);box-shadow:none}
.portal.console-ui .server-card::after,.portal.console-ui .plan::after{content:none}
.portal.console-ui :is(.node-network,.server-card-foot,.dashboard-connection,.dashboard-metrics,.recent-activity>div){border-color:var(--line)}
.portal.console-ui .server-name,.portal.console-ui .server-card h3{font-family:var(--display)}
.portal.console-ui .sidebar .account-menu nav a{border-radius:var(--r-in)}
.portal.console-ui .sidebar .nav-motion-indicator{background:var(--surface2);border-color:var(--line2);border-radius:var(--r-in)}
.portal.console-ui .sidebar .motion-indicator-ready a.selected{background:transparent;border-color:transparent}
.portal.console-ui .header-balance{background:var(--surface);border-color:var(--line)}
.portal.console-ui .dashboard-monitor{background:var(--surface)}
.portal.console-ui .cpu-chart polyline{stroke:var(--accent)}
.portal.console-ui .cpu-chart path{stroke:var(--line)}
.portal.console-ui .node-card-head .badge:is(.provisioned,.active){color:var(--success)}
.portal.console-ui .node-card-head .badge:is(.pending,.suspended){color:var(--warning)}
.portal.console-ui .node-card-head .badge:is(.failed,.cancelled){color:var(--error)}
.portal.console-ui .notification-dropdown{background:var(--surface);border:1px solid var(--line2);border-radius:var(--r);box-shadow:0 12px 30px #0005}
.portal.console-ui .notification-menu-item.unread{background:var(--surface2);border-inline-start-color:var(--accent)}
.portal.console-ui :is(.server-icon,.avatar){background:var(--surface2);border-color:var(--line2);color:var(--muted)}
.portal.console-ui :is(.dashboard-summary,.account-finance,.dashboard-monitor,.recent-activity){border-color:var(--line)}
.public .shell{width:min(1160px,100%);padding-inline:24px}
.public .public-header{height:68px;border-color:var(--line)}
.public .logo{font-family:var(--display);font-size:19px;letter-spacing:-.01em;font-weight:700}
.public .auth-scene{padding-block:56px;gap:64px}
.public .auth-context h2{font-family:var(--display);font-weight:700;color:var(--text);letter-spacing:-.035em}
.public .auth-context>p,.public .auth-context-foot{color:var(--muted)}
.public .auth-art{display:none}
.public .auth-context{justify-content:center}
.public .auth{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:none;padding:32px}
.public .auth h1{font-family:var(--display);font-weight:700;letter-spacing:-.035em}
.public .captcha img{background:var(--surface);border-color:var(--line2);border-radius:var(--r-in)}
.public footer{border-color:var(--line);color:var(--muted);letter-spacing:0;font-family:var(--body)}
.public .footer-credit{font:600 19px/1.4 var(--display);letter-spacing:-.01em}.public .footer-year{font:12px/1.5 var(--body);color:var(--muted)}
.portal.console-ui .finance-amount small{margin-inline-start:5px}
.payment-standalone{--panel:var(--surface);--border:var(--line);--ink:var(--bg)}
.payment-standalone>main{width:min(1160px,calc(100% - 48px));padding-top:0}
.payment-standalone .payment-header{height:68px;padding:0;margin-bottom:48px;background:var(--bg);border:0;border-bottom:1px solid var(--line);border-radius:0}
.payment-standalone .payment-brand .logo{font-size:19px;letter-spacing:-.01em;font-weight:700}
.payment-standalone .payment-brand-label{font-family:var(--body);font-size:13px;letter-spacing:0;border-color:var(--line);color:var(--muted)}
.payment-standalone .payment-facts dd,.payment-standalone .payment-summary h1{font-family:var(--display)}
.payment-standalone .payment-facts>div{border-color:var(--line)}
.payment-standalone .copy-row{background:var(--bg);border-color:var(--line2);border-radius:var(--r-in)}
.payment-standalone .copy-row code{font-family:var(--mono);font-size:13px;color:var(--text)}
.payment-standalone .payment-status .badge{background:var(--surface2);border-color:var(--line2);color:var(--text)}
.payment-standalone .payment-page:is([data-payment-state=paid],[data-payment-state=approved]) .badge{background:var(--success-bg);border-color:var(--success-line);color:var(--success)}
.payment-standalone .payment-page:is([data-payment-state=expired],[data-payment-state=failed],[data-payment-state=rejected]) .badge{background:var(--error-bg);border-color:var(--error-line);color:var(--error)}
.payment-standalone .payment-qr{background:#fff;color:#141619}
.payment-standalone .payment-page:is([data-payment-state=expired],[data-payment-state=paid],[data-payment-state=review]) .payment-qr{background:var(--surface2);border:1px solid var(--line2)}
.payment-standalone footer{border-color:var(--line);color:var(--muted)}
:is(.public,.portal,.payment-standalone) dialog{background:var(--surface);color:var(--text);border:1px solid var(--line2);border-radius:var(--r);box-shadow:0 24px 60px #0005;max-width:calc(100vw - 32px)}
:is(.public,.portal,.payment-standalone) dialog::backdrop{background:#0009;backdrop-filter:none}
@media(hover:hover) and (pointer:fine){
 .portal.console-ui :is(.server-card,.plan):hover{transform:translateY(-2px);border-color:var(--line2);box-shadow:none}
 :is(.public,.portal,.payment-standalone) :is(button,.button):not(.secondary):not(.icon-button):not(.operation):not(:disabled):hover{background:#fff}
}
@media(max-width:760px){.public .shell{padding-inline:20px}.public .auth-scene{padding-block:28px}.public .auth{padding:24px 20px}.public .auth h1{font-size:28px}.public footer{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:16px 24px;padding-block:24px;min-height:80px}.public .footer-credit{flex-basis:100%}.payment-standalone>main{width:calc(100% - 40px)}.payment-standalone .payment-header{margin-bottom:28px}.payment-standalone .payment-cabinet{min-width:0;font-size:12px;padding:8px 12px;min-height:38px}.payment-standalone .payment-brand{gap:12px}.payment-standalone .payment-brand-label{padding-left:12px}}
@media(prefers-reduced-motion:reduce){
 :is(.public,.portal,.payment-standalone) *, :is(.public,.portal,.payment-standalone) *::before, :is(.public,.portal,.payment-standalone) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 :is(.public,.portal,.payment-standalone) :is(button,.button,.plan,.server-card):active,:is(.public,.portal,.payment-standalone) :is(.plan,.server-card):hover{transform:none!important}
}
