:root{color-scheme:light;--bg:#f6f7f9;--surface:#fff;--soft:#f2f4f7;--ink:#252b36;--muted:#626a78;--border:#e7e9ee;--accent:#cf1736;--on-accent:#fff;--accent-soft:#fff1f3;--shadow:0 10px 40px #2127350b;--rail:228px}
:root[data-theme=dark]{color-scheme:dark;--bg:#14171d;--surface:#1c2028;--soft:#262b35;--ink:#edf0f5;--muted:#9aa3b2;--border:#2c323e;--accent:#ff6d84;--on-accent:var(--bg);--accent-soft:#39242e;--shadow:0 10px 40px #0002}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:9px;padding:8px 14px}button:disabled{opacity:.45;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:hover{background:var(--soft)}.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);cursor:pointer}.primary:hover{filter:brightness(.95);background:var(--accent)}.sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.brandDark{display:none}:root[data-theme=dark] .brandLight{display:none}:root[data-theme=dark] .brandDark{display:block}
.sessionGate{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--muted)}.gateMark{height:52px;width:52px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border-radius:16px;animation:breathe 1.7s ease-in-out infinite}.gateMark .icon{width:26px;height:26px}.sessionGate p{margin:0;font-size:13px}@keyframes breathe{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.appShell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100dvh}.appRail{position:sticky;top:0;height:100dvh;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:33px 18px 20px;z-index:5}.brandLink{display:block;margin:0 13px 42px}.brandLink img{width:166px;max-width:100%;height:auto}.brandLink span{display:block;color:var(--muted);font-size:10px;letter-spacing:2px;margin-top:13px}.navCaption{font-size:10px;letter-spacing:2px;color:var(--muted);padding:0 17px;margin-bottom:13px}.appNav{display:grid;gap:7px}.navLink{display:flex;gap:14px;align-items:center;border-radius:10px;padding:12px 16px;color:var(--muted);font-size:14px;font-weight:500}.navLink .icon{width:19px;height:19px}.navLink:hover{background:var(--soft);color:var(--ink)}.navLink.active{background:var(--accent-soft);color:var(--accent)}.accountDock{margin-top:auto;padding-top:28px}.accountDetails{position:relative}.profileButton{display:flex;align-items:center;gap:11px;border:0;padding:9px 10px;width:100%;text-align:left;background:transparent}.avatar{width:39px;height:39px;border-radius:50%;background:var(--soft);display:grid;place-items:center;color:var(--muted);flex-shrink:0}.avatar .icon{width:23px;height:23px}.profileText{min-width:0;display:flex;flex-direction:column}.profileText strong{font-size:13px;font-weight:600}.profileText small{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accountTools{display:flex;justify-content:space-around;border-top:1px solid var(--border);margin:13px 8px 0;padding-top:13px}.iconButton{display:grid;place-items:center;border:0;width:34px;height:34px;padding:7px;border-radius:8px;background:transparent;color:var(--muted)}.iconButton:hover{color:var(--ink);background:var(--soft)}.iconButton .icon{height:19px;width:19px}.accountPopover{display:none;position:absolute;bottom:calc(100% + 10px);left:0;width:270px;border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:20px;box-shadow:0 8px 35px #0002;z-index:10}.accountPopover:after{content:"";position:absolute;top:100%;left:0;width:100%;height:14px}.accountDetails:hover .accountPopover,.accountDetails:focus-within .accountPopover,.accountDetails.open .accountPopover{display:block}.popoverTitle{font-weight:600;margin-bottom:17px;display:flex;justify-content:space-between}.popoverTitle span{font-size:10px;color:var(--accent);background:var(--accent-soft);padding:2px 6px;border-radius:4px}.balanceRow{display:flex;justify-content:space-between;margin:10px 0;font-size:12px}.balanceRow span{color:var(--muted)}.balanceRow strong{font-weight:600}.accountPopover p{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}
.appMain{min-width:0}.appHeader{height:89px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;padding:0 38px;border-bottom:1px solid var(--border);background:var(--surface)}.breadcrumb{font-size:11px;color:var(--muted);white-space:nowrap}.systemTitle{font-size:16px;font-weight:600;letter-spacing:.4px;text-align:center}.testBadge{justify-self:end;color:var(--muted);font-size:10px;border:1px solid var(--border);border-radius:5px;padding:3px 8px;white-space:nowrap}.homeView{max-width:1190px;margin:0 auto;padding:64px 58px 25px}.welcome{position:relative;margin-bottom:51px}.welcomeKicker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;letter-spacing:.3px}.welcomeDot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.welcome h1{font-size:38px;line-height:1.4;letter-spacing:-.8px;font-weight:650;margin:15px 0 14px}.welcome p{margin:0;color:var(--muted);font-size:14px;line-height:1.9}.mobileBreak{display:none}.sectionHeading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.sectionHeading h2{font-size:13px;font-weight:600;margin:0}.sectionHeading>span{font-size:11px;color:var(--muted)}.featureGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.featureCard{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:24px 25px 21px;min-height:220px;transition:transform .16s,border-color .16s,box-shadow .16s}.featureCard:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:var(--shadow)}.cardTop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px}.cardIcon{display:grid;place-items:center;width:42px;height:42px;background:var(--soft);border-radius:12px;color:var(--ink)}.featureCard .cardIcon{background:var(--accent-soft);color:var(--accent)}.statusPill{font-size:9px;color:var(--muted);letter-spacing:.3px}.statusPill.ready{color:var(--accent)}.featureCard h3{font-size:17px;font-weight:600;letter-spacing:.2px;margin:0 0 8px}.featureCard p{font-size:11px;color:var(--muted);line-height:1.9;margin:0;min-height:42px}.cardAction{display:flex;align-items:center;justify-content:space-between;color:var(--muted);margin-top:20px;font-size:10px}.cardAction .icon{width:17px;height:17px}.featureCard:hover .cardAction{color:var(--accent)}.homeFooter{display:flex;align-items:center;justify-content:space-between;margin-top:40px;color:var(--muted);font-size:10px;letter-spacing:.3px}
.login{display:grid;place-items:center;min-height:100dvh;padding:30px}.loginCard{width:400px;max-width:100%;padding:38px 40px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.loginBrand img{width:165px;height:auto;margin-bottom:22px}.loginCard h1{font-size:27px;margin:6px 0}.loginIntro{color:var(--muted);font-size:12px;margin:0 0 28px}.loginCard form{display:grid;gap:17px}.loginCard label{font-size:12px;font-weight:500}.loginCard input{display:block;width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--ink);margin-top:7px}.loginCard button{margin-top:4px;padding:11px}.loginFoot{font-size:10px;color:var(--muted);line-height:1.8;margin:23px 0 0}#loginError,.notice{font-size:12px;overflow-wrap:anywhere;color:var(--accent)}.notice{padding:12px;background:var(--accent-soft);border-radius:9px;margin-top:15px}#globalNotice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--ink);color:var(--surface);padding:12px 22px;border-radius:10px;font-size:12px;box-shadow:var(--shadow);z-index:40}
.bankHeading{padding:25px 30px 15px;display:flex;align-items:center;justify-content:space-between}.bankHeading h1{font-size:23px;margin:0}.bankHeading p{font-size:12px;color:var(--muted);margin:3px 0 0}.bankHeading button{font-size:11px}.bankView{min-width:0}
@media(min-width:1500px){.homeView{padding-top:83px}.featureCard{min-height:235px}.welcome{margin-bottom:62px}}
@media(max-width:1200px){:root{--rail:200px}.appRail{padding-inline:12px}.brandLink{margin-inline:12px}.brandLink img{width:150px}.homeView{padding:48px 32px 23px}.appHeader{padding:0 25px;grid-template-columns:1fr auto}.systemTitle{font-size:14px;grid-column:1;grid-row:1;text-align:left}.breadcrumb{display:none}.testBadge{grid-column:2;grid-row:1}.featureCard{padding:21px}.featureGrid{gap:15px}.welcome h1{font-size:33px}}
@media(max-width:1000px){.featureGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.featureCard{min-height:205px}.cardTop{margin-bottom:16px}.featureCard p{min-height:22px}.homeView{padding-top:40px}.welcome{margin-bottom:33px}}
@media(max-width:760px){.appShell{display:block}.appRail{height:72px;position:sticky;padding:10px 18px;display:flex;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--border);gap:8px}.brandLink{margin:0;flex-shrink:0}.brandLink img{width:128px}.brandLink span,.navCaption,.appNav,.profileText{display:none}.accountDock{margin:0 0 0 auto;padding:0;display:flex;align-items:center;gap:3px}.profileButton{padding:2px}.avatar{height:32px;width:32px}.accountTools{margin:0;padding:0 0 0 5px;gap:3px;border:0}.iconButton{width:29px;height:29px}.accountPopover{top:calc(100% + 18px);bottom:auto;left:auto;right:-92px;width:245px}.accountPopover:after{top:auto;bottom:100%}.appHeader{height:auto;min-height:72px;padding:17px 22px;display:flex;justify-content:center}.systemTitle{font-size:14px;line-height:1.6}.testBadge{display:none}.homeView{padding:32px 22px 22px}.welcome h1{font-size:29px;margin-top:12px}.welcome p{font-size:12px}.welcome{margin-bottom:31px}.sectionHeading>span{display:none}.featureGrid{gap:12px}.featureCard{padding:17px;min-height:196px;border-radius:12px}.cardIcon{height:36px;width:36px;border-radius:10px}.cardIcon .icon{width:20px;height:20px}.cardTop{margin-bottom:17px}.featureCard h3{font-size:16px}.featureCard p{font-size:10px;min-height:38px}.cardAction{margin-top:14px}.homeFooter{margin-top:25px;font-size:9px;gap:15px}.homeFooter span:first-child{max-width:55%}.bankHeading{padding:20px}.loginCard{padding:30px}.mobileBreak{display:block}}

.creditExpiry{font-size:10px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.accountPopover{max-width:calc(100vw - 36px)}


.creditMeter .balanceRow{margin-bottom:8px}.creditMeterValue{font-variant-numeric:tabular-nums}.creditMeterValue strong{color:var(--ink)}.creditProgress{display:block;appearance:none;-webkit-appearance:none;border:0;border-radius:5px;overflow:hidden;width:100%;height:7px;background:var(--soft);color:var(--accent)}.creditProgress::-webkit-progress-bar{background:var(--soft);border-radius:5px}.creditProgress::-webkit-progress-value{background:var(--accent);border-radius:5px}.creditProgress::-moz-progress-bar{background:var(--accent);border-radius:5px}.creditExpiry{margin-top:11px;font-size:10px;line-height:1.8}

/* Both edge controls remain available after their panels are hidden. */
.edgeToggle{display:grid;place-items:center;width:30px;height:36px;padding:6px;border-radius:8px;background:var(--surface);color:var(--muted);box-shadow:0 2px 10px #00000008;flex-shrink:0}.edgeToggle .icon{width:18px;height:18px;transform:rotate(180deg)}.edgeToggle[aria-expanded=false] .icon{transform:none}.edgeToggle:hover{color:var(--accent)}
.workspaceToggle{position:fixed;top:26px;left:calc(var(--rail) - 15px);z-index:37}.appShell>.appMain{grid-column:2}.appShell.railCollapsed{grid-template-columns:0 minmax(0,1fr)}.railCollapsed .workspaceToggle{left:12px}.railCollapsed .appHeader{padding-left:60px}.panelBackdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0006;padding:0;z-index:35}.panelBackdrop:hover{background:#0006}
@media(max-width:760px){
 .appRail{position:fixed;inset:0 auto 0 0;width:min(280px,calc(100vw - 52px));height:100dvh;flex-direction:column;align-items:stretch;padding:28px 18px 20px;border-right:1px solid var(--border);border-bottom:0;z-index:36;gap:0}
 .appRail .brandLink{margin:0 13px 30px}.appRail .brandLink img{width:166px}.appRail .brandLink span,.appRail .navCaption,.appRail .profileText{display:block}.appRail .appNav{display:grid;gap:4px}.appRail .navLink{padding:10px 14px}.appRail .accountDock{display:block;margin:auto 0 0;padding-top:18px}.appRail .profileButton{padding:9px 10px}.appRail .avatar{height:39px;width:39px}.appRail .profileText{display:flex}.appRail .accountTools{margin:10px 8px 0;padding:10px 0 0;border-top:1px solid var(--border);gap:0}.appRail .accountPopover{top:auto;bottom:calc(100% + 10px);left:0;right:auto;width:245px;max-width:calc(100vw - 72px)}.appRail .accountPopover:after{top:100%;bottom:auto}
 .workspaceToggle{left:calc(min(280px,100vw - 52px) - 15px);top:20px}.appHeader{padding-left:55px;min-height:80px}.appShell.railCollapsed .appHeader{padding-left:55px}.appHeader .systemTitle{font-size:13px}
}

/* Grid tracks must shrink with the viewport, including the signed-out page. */
.login{grid-template-columns:minmax(0,1fr)}.loginCard{min-width:0;width:min(400px,100%)}.loginCard form,.loginCard label,.loginCard input{min-width:0}
/* Independent mobile actions retain a 44px target without enlarging icons. */
@media(max-width:760px){
 :root :is(.appShell,dialog) :is(button,select,summary){min-height:44px}
 :root :is(.appShell,dialog) button{min-width:44px}
 :root :is(.appShell,dialog) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font-size:16px}
 :root .loginCard input{font-size:16px}
 .workspaceToggle{left:calc(min(280px,100vw - 52px) - 22px)}
 .appHeader,.appShell.railCollapsed .appHeader{padding-left:68px}
 .appRail .iconButton{min-width:44px;min-height:44px}
}

@media(max-width:760px){.navLink{min-height:44px}}
/* Keep settings and sign-out reachable when the browser window is short. */
.appNav{min-height:0;overflow-y:auto;flex-shrink:1}.accountDock{flex-shrink:0}.brandLink{flex-shrink:0}
