:root { color-scheme: dark; --bg:#171315; --surface:#211c1e; --surface-soft:#1b1718; --line:#473d40; --text:#f8eff1; --muted:#b9aaae; --pink:#f1d7df; --green:#58ecad; --radius:10px; --shadow:rgba(0,0,0,.38); }
* { box-sizing:border-box; } body { margin:0; min-width:320px; min-height:100vh; background:var(--bg); color:var(--text); font-family:"Microsoft YaHei UI","Segoe UI",sans-serif; letter-spacing:0; } button,input { font:inherit; } button,a { -webkit-tap-highlight-color:transparent; } a { color:inherit; text-decoration:none; } button { cursor:pointer; } :focus-visible { outline:3px solid var(--green); outline-offset:3px; }.hidden { display:none !important; }.eyebrow { margin:0 0 10px; color:var(--green); font-size:12px; font-weight:850; letter-spacing:.09em; }
.auth-screen { display:grid; min-height:100vh; padding:32px; background:#151213; place-items:center; }.auth-card { width:min(460px,100%); padding:42px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:0 28px 80px var(--shadow); }.auth-mark { display:grid; width:48px; height:48px; margin-bottom:28px; border-radius:9px; background:var(--pink); color:#352329; font-size:22px; font-weight:900; place-items:center; }.auth-card h1 { margin:0; font-size:34px; line-height:1.15; }.auth-copy { margin:13px 0 28px; color:var(--muted); }.auth-card form { display:grid; gap:15px; }.auth-card label { display:grid; gap:7px; color:#ead9dc; font-size:14px; font-weight:750; }.auth-card input { width:100%; min-height:46px; padding:0 13px; border:1px solid #65575b; border-radius:7px; background:#171415; color:var(--text); }.auth-card input:focus { border-color:var(--pink); }.primary-button { min-height:48px; margin-top:4px; border:0; border-radius:7px; background:var(--pink); color:#302126; font-weight:850; }.primary-button:disabled { opacity:.6; cursor:wait; }.form-message { min-height:22px; margin:16px 0 0; color:var(--muted); font-size:13px; }.form-message.is-error { color:#ff9da9; }.form-message.is-ok { color:var(--green); }.back-link { display:inline-block; margin-top:18px; color:var(--muted); font-size:13px; }.back-link:hover { color:var(--pink); }
.portal { min-height:100vh; }.portal-header { display:flex; min-height:70px; align-items:center; justify-content:space-between; gap:20px; padding:12px max(22px,calc((100vw - 1240px)/2)); border-bottom:1px solid var(--line); background:#1a1617; }.portal-brand { display:inline-flex; align-items:center; gap:10px; font-size:20px; }.portal-brand span { display:grid; width:34px; height:34px; border-radius:8px; background:var(--pink); color:#342329; font-size:17px; font-weight:900; place-items:center; }.portal-brand b { font-weight:850; }.portal-account { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:13px; }.portal-account b { color:var(--text); }.account-dot { width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 0 5px rgba(88,236,173,.11); }.portal-account button { margin-left:8px; padding:7px 9px; border:1px solid var(--line); border-radius:6px; background:transparent; color:var(--muted); font-size:12px; }.portal-account button:hover { color:var(--text); border-color:var(--pink); }
.portal-layout { display:grid; grid-template-columns:104px minmax(0,1fr); min-height:calc(100vh - 70px); max-width:1240px; margin:0 auto; }.portal-nav { display:flex; flex-direction:column; gap:9px; padding:22px 12px; border-right:1px solid var(--line); }.nav-item { display:grid; min-height:64px; padding:7px 4px; border:0; border-radius:8px; background:transparent; color:var(--muted); place-items:center; gap:3px; }.nav-item span { font-size:21px; line-height:1; }.nav-item b { font-size:11px; }.nav-item:hover,.nav-item.is-active { background:#5d5155; color:var(--text); }.portal-content { padding:48px 42px 74px; }.content-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; }.content-heading h2 { margin:0; font-size:34px; }.account-status { display:inline-flex; align-items:center; gap:8px; margin:0; color:var(--green); font-size:13px; font-weight:750; }.account-status i { width:10px; height:10px; border-radius:50%; background:var(--green); }.account-grid { display:grid; grid-template-columns:1fr 1.25fr; grid-template-areas:"identity plan" "routes subscription"; gap:15px; }.account-card { min-width:0; padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.identity-card { grid-area:identity; min-height:182px; }.plan-card { grid-area:plan; }.routes-card { grid-area:routes; }.subscription-card { grid-area:subscription; }.card-label { margin:0; color:var(--muted); font-size:13px; font-weight:700; }.identity-card strong { display:block; margin-top:16px; font-size:27px; }.identity-card > span { display:block; margin-top:3px; color:var(--muted); font-size:13px; }.identity-card > p:last-child { margin:25px 0 0; color:var(--muted); font-size:13px; }.identity-card > p:last-child b { color:var(--pink); }.card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }.active-tag { padding:4px 8px; border-radius:99px; background:#193628; color:var(--green); font-size:12px; font-weight:800; }.plan-card strong { display:block; margin-top:20px; font-size:28px; }.usage-track { height:6px; margin-top:15px; overflow:hidden; border-radius:99px; background:#4c4245; }.usage-track i { display:block; width:0; height:100%; background:var(--pink); transition:width .25s ease; }.plan-detail,.expiry-label { margin:10px 0 0; color:var(--muted); font-size:13px; }.expiry-label b { margin-left:6px; color:var(--text); }.routes-list { display:grid; gap:7px; margin-top:15px; }.route-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border-radius:6px; background:#191516; }.route-row b { font-size:13px; }.route-row span { color:var(--green); font-size:12px; font-weight:750; }.subscription-card > p:not(.card-label) { margin:13px 0 16px; color:var(--muted); font-size:13px; }.subscription-input { display:flex; gap:8px; }.subscription-input input { width:100%; min-width:0; height:40px; padding:0 10px; border:1px solid #625558; border-radius:6px; background:#181415; color:#dfc9cf; font-size:12px; }.subscription-input button { min-width:70px; border:0; border-radius:6px; background:var(--pink); color:#342329; font-size:13px; font-weight:850; }.subscription-card small { display:block; margin-top:10px; color:var(--muted); font-size:12px; }.download-panel { max-width:760px; padding:26px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.download-panel h3 { margin:0 0 18px; font-size:28px; }.download-link { display:flex; min-height:90px; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-top:1px solid var(--line); }.download-link:hover { color:var(--pink); }.download-link b { display:block; font-size:17px; }.download-link small { display:block; margin-top:3px; color:var(--muted); font-size:12px; }.download-link em { font-style:normal; font-size:13px; font-weight:800; white-space:nowrap; }.toast { position:fixed; z-index:30; right:20px; bottom:20px; max-width:min(330px,calc(100vw - 40px)); padding:12px 15px; border:1px solid #517f68; border-radius:7px; background:#193326; color:#d8ffe8; box-shadow:0 16px 42px var(--shadow); opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .16s ease,transform .16s ease; }.toast.is-visible { opacity:1; transform:translateY(0); }
@media(max-width:720px){.auth-screen{padding:18px}.auth-card{padding:30px 24px}.portal-header{padding:12px 16px}.portal-layout{grid-template-columns:68px minmax(0,1fr)}.portal-nav{padding:16px 7px}.nav-item b{display:none}.portal-content{padding:32px 15px 54px}.content-heading{align-items:flex-start;flex-direction:column;margin-bottom:22px}.content-heading h2{font-size:28px}.account-grid{grid-template-columns:1fr;grid-template-areas:"identity" "plan" "routes" "subscription"}.account-card{padding:20px}.subscription-input{flex-direction:column}.subscription-input button{min-height:40px}.portal-account b{max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-account button{margin-left:0}.download-link{min-height:82px}.download-link em{font-size:12px}}
