/* THEME TOKENS: all component colors originate in this section. */
:root{
 font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:17px;color-scheme:light;
 --text-on-primary-muted:#fff6f1;--border-on-primary:#fffaf740;
 --gradient-highlight:#ffffff06;--gradient-clear:#ffffff00;
 --gain:#b33645;--loss:#19734f;--modal-backdrop:#19151b80;
 --shadow-dialog:0 20px 80px var(--shadow-color);--shadow-card:0 8px 28px var(--shadow-color);--shadow-navigation:0 -5px 25px var(--shadow-color);
 --text-on-soft:var(--primary);--icon-active:var(--primary);--icon-inactive:var(--text-muted);
}
html[data-mode=dark]{color-scheme:dark;--gain:#ff919b;--loss:#75cea5;--modal-backdrop:#08090bb3}
:root{--swatch-red:#8d4e51;--swatch-blue:#456c8c;--swatch-green:#45735f;--swatch-purple:#765289;--swatch-orange:#86623c;--swatch-gray:#616974;}
html[data-mode=dark]{--swatch-red:#cea6a8;--swatch-blue:#a3bcd2;--swatch-green:#a9cbbc;--swatch-purple:#bfa9cb;--swatch-orange:#d4bba0;--swatch-gray:#b4bac0;}
:root,html[data-theme=red][data-mode=light]{
 --primary:#8d4e51;
 --primary-soft:#f4ecec;
 --primary-strong:#784245;
 --primary-gradient-start:#85494c;
 --primary-gradient-end:#945155;
 --border-subtle:#e0d2d3;
 --background-page:#f9f6f6;
 --background-card:#fdfcfc;
 --text-primary:#2d2525;
 --text-secondary:#5f4e4f;
 --text-muted:#766566;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(357, 20%, 12%, 0.045);
}
html[data-theme=red][data-mode=dark]{
 --primary:#cea6a8;
 --primary-soft:#322425;
 --primary-strong:#915053;
 --primary-gradient-start:#562f31;
 --primary-gradient-end:#703e40;
 --border-subtle:#4d3d3d;
 --background-page:#151111;
 --background-card:#221c1c;
 --text-primary:#efecec;
 --text-secondary:#cbc2c3;
 --text-muted:#b4a7a8;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(357, 20%, 12%, 0.18);
}
html[data-theme=blue][data-mode=light]{
 --primary:#456c8c;
 --primary-soft:#ecf0f4;
 --primary-strong:#3a5b76;
 --primary-gradient-start:#416684;
 --primary-gradient-end:#456c8c;
 --border-subtle:#d2d9e0;
 --background-page:#f6f8f9;
 --background-card:#fcfdfd;
 --text-primary:#25292d;
 --text-secondary:#4e585f;
 --text-muted:#656f76;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(207, 20%, 12%, 0.045);
}
html[data-theme=blue][data-mode=dark]{
 --primary:#a3bcd2;
 --primary-soft:#242c32;
 --primary-strong:#446a89;
 --primary-gradient-start:#2c4559;
 --primary-gradient-end:#395a74;
 --border-subtle:#3d464d;
 --background-page:#111315;
 --background-card:#1c1f22;
 --text-primary:#ecedef;
 --text-secondary:#c2c7cb;
 --text-muted:#a7aeb4;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(207, 20%, 12%, 0.18);
}
html[data-theme=green][data-mode=light]{
 --primary:#45735f;
 --primary-soft:#ecf4f0;
 --primary-strong:#395f4e;
 --primary-gradient-start:#406b59;
 --primary-gradient-end:#44725e;
 --border-subtle:#d2e0da;
 --background-page:#f6f9f8;
 --background-card:#fcfdfd;
 --text-primary:#252d29;
 --text-secondary:#4e5f58;
 --text-muted:#62736c;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(154, 20%, 12%, 0.045);
}
html[data-theme=green][data-mode=dark]{
 --primary:#a9cbbc;
 --primary-soft:#24322c;
 --primary-strong:#436f5c;
 --primary-gradient-start:#325345;
 --primary-gradient-end:#416c5a;
 --border-subtle:#3d4d46;
 --background-page:#111513;
 --background-card:#1c221f;
 --text-primary:#ecefed;
 --text-secondary:#c2cbc7;
 --text-muted:#a7b4ae;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(154, 20%, 12%, 0.18);
}
html[data-theme=purple][data-mode=light]{
 --primary:#765289;
 --primary-soft:#f1ecf4;
 --primary-strong:#644674;
 --primary-gradient-start:#6f4d81;
 --primary-gradient-end:#7b568f;
 --border-subtle:#dbd2e0;
 --background-page:#f8f6f9;
 --background-card:#fdfcfd;
 --text-primary:#2a252d;
 --text-secondary:#594e5f;
 --text-muted:#706576;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(279, 20%, 12%, 0.045);
}
html[data-theme=purple][data-mode=dark]{
 --primary:#bfa9cb;
 --primary-soft:#2d2432;
 --primary-strong:#79548c;
 --primary-gradient-start:#473253;
 --primary-gradient-end:#5d416c;
 --border-subtle:#473d4d;
 --background-page:#141115;
 --background-card:#201c22;
 --text-primary:#eeecef;
 --text-secondary:#c8c2cb;
 --text-muted:#afa7b4;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(279, 20%, 12%, 0.18);
}
html[data-theme=orange][data-mode=light]{
 --primary:#86623c;
 --primary-soft:#f4f0ec;
 --primary-strong:#6f5132;
 --primary-gradient-start:#7d5c38;
 --primary-gradient-end:#85623c;
 --border-subtle:#e0d9d2;
 --background-page:#f9f7f6;
 --background-card:#fdfcfc;
 --text-primary:#2d2925;
 --text-secondary:#5f574e;
 --text-muted:#766d64;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(31, 20%, 12%, 0.045);
}
html[data-theme=orange][data-mode=dark]{
 --primary:#d4bba0;
 --primary-soft:#322c24;
 --primary-strong:#82603a;
 --primary-gradient-start:#5b4329;
 --primary-gradient-end:#785836;
 --border-subtle:#4d453d;
 --background-page:#151311;
 --background-card:#221f1c;
 --text-primary:#efedec;
 --text-secondary:#cbc7c2;
 --text-muted:#b4aea7;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(31, 20%, 12%, 0.18);
}
html[data-theme=gray][data-mode=light]{
 --primary:#616974;
 --primary-soft:#eceff4;
 --primary-strong:#515962;
 --primary-gradient-start:#5b636d;
 --primary-gradient-end:#616a74;
 --border-subtle:#d2d8e0;
 --background-page:#f6f7f9;
 --background-card:#fcfcfd;
 --text-primary:#25292d;
 --text-secondary:#4e565f;
 --text-muted:#656d76;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(212, 20%, 12%, 0.045);
}
html[data-theme=gray][data-mode=dark]{
 --primary:#b4bac0;
 --primary-soft:#242b32;
 --primary-strong:#5f6771;
 --primary-gradient-start:#3c4248;
 --primary-gradient-end:#4f565f;
 --border-subtle:#3d444d;
 --background-page:#111315;
 --background-card:#1c1e22;
 --text-primary:#ecedef;
 --text-secondary:#c2c7cb;
 --text-muted:#a7adb4;
 --text-on-primary:#fffaf7;
 --icon-active:var(--primary);
 --icon-inactive:var(--text-muted);
 --text-on-soft:var(--primary);
 --shadow-color:hsla(212, 20%, 12%, 0.18);
}
/* END THEME TOKENS */
*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;background:var(--background-page);color:var(--text-primary);overflow-x:clip}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;min-height:48px;padding:.7rem 1rem;border-radius:14px;font-weight:600;background:var(--primary-soft);color:var(--primary)}button:disabled{opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:3px}a{color:var(--primary)}h1,h2,h3,p{margin:0}h1{font-size:1.8rem;letter-spacing:.04em}h2{font-size:1.2rem}h3{font-size:1.06rem}small,.muted{color:var(--text-secondary);font-size:.82rem;line-height:1.7}.shell{max-width:760px;margin:auto;padding:calc(env(safe-area-inset-top) + 24px) 20px calc(92px + env(safe-area-inset-bottom))}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.brand{display:flex;align-items:center;gap:12px}.mark{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;background:var(--primary);color:var(--text-on-primary);border-radius:16px;font-size:29px}.eyebrow{font-size:.7rem;letter-spacing:.16em;color:var(--text-muted);margin-bottom:4px}.iconbtn{border:1px solid var(--border-subtle);background:var(--background-card);color:var(--text-primary);padding:.5rem;min-width:48px;font-size:1.35rem}.hello{display:flex;align-items:center;gap:10px;margin-bottom:20px}.avatar{height:36px;width:36px;border-radius:50%;object-fit:cover;background:var(--primary-soft);display:inline-grid;place-items:center;color:var(--primary);flex-shrink:0}.hero{background:var(--primary);color:var(--text-on-primary);border-radius:24px;padding:25px;position:relative;overflow:hidden;box-shadow:var(--shadow-card)}.hero .muted,.hero small{color:var(--text-on-primary-muted)}.hero .amount{font-size:2.25rem;margin:12px 0;font-weight:700;overflow-wrap:anywhere;letter-spacing:-.02em}.hero-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--border-on-primary);padding-top:15px;margin-top:18px;flex-wrap:wrap}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 25px}.primary{background:var(--primary-strong);color:var(--text-on-primary)}.secondary{background:var(--primary-soft);border:1px solid var(--border-subtle);color:var(--text-on-soft)}.actions button{min-height:60px;font-size:1.05rem}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.card{background:var(--background-card);border:1px solid var(--border-subtle);border-radius:19px;padding:20px;margin:12px 0;box-shadow:var(--shadow-card)}.grid .card{margin:0;padding:17px}.value{font-weight:650;font-size:1.22rem;margin-top:7px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.section{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:25px;margin-bottom:10px}.section button{font-size:.85rem}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stock-code{font-size:.77rem;color:var(--text-muted);letter-spacing:.08em;margin-top:5px}.stock-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.up{color:var(--gain)}.down{color:var(--loss)}.pill{display:inline-block;background:var(--primary-soft);color:var(--primary);font-size:.75rem;border-radius:8px;padding:5px 9px}.empty{text-align:center;padding:30px 18px;line-height:1.9;color:var(--text-muted)}.empty-symbol{font-size:2rem;color:var(--primary);margin-bottom:10px}.notice{padding:14px 16px;background:var(--primary-soft);border-radius:13px;color:var(--primary);line-height:1.7;font-size:.85rem;margin:16px 0;overflow-wrap:anywhere}.note{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px;color:var(--text-muted);font-size:.85rem}.nav{position:fixed;bottom:0;left:0;right:0;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:var(--background-card);border-top:1px solid var(--border-subtle);display:flex;justify-content:center;z-index:10;box-shadow:var(--shadow-navigation)}.nav button{width:min(25%,190px);min-width:0;padding:.5rem .25rem;display:flex;align-items:center;flex-direction:column;gap:4px;font-size:.75rem;background:transparent;color:var(--text-muted);border-radius:14px}.nav-icon{width:25px;height:25px;flex-shrink:0}.nav-label{font-size:.75rem;line-height:1.3;white-space:nowrap}.nav button.active{color:var(--primary);background:var(--primary-soft)}.stack{display:grid;gap:13px}.stack button{width:100%}label{display:grid;gap:8px;font-size:.9rem;color:var(--text-primary)}input,select,textarea{border:1px solid var(--border-subtle);border-radius:11px;padding:13px 12px;color:var(--text-primary);background:var(--background-page);width:100%;min-width:0;min-height:48px;outline-offset:2px}input[type=checkbox]{width:23px;height:23px;min-height:0;accent-color:var(--primary);flex-shrink:0}input[type=file]{font-size:.8rem}textarea{min-height:80px;resize:vertical}.check{display:flex;align-items:flex-start;line-height:1.6}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.toolbar button{font-size:.82rem;padding:.6rem .9rem}.danger{color:var(--gain);background:transparent;border:1px solid var(--border-subtle)}.details{margin:14px 0 0;display:grid;gap:12px}.detail{display:flex;justify-content:space-between;gap:15px;line-height:1.5;font-size:.87rem}.detail span{color:var(--text-secondary)}.detail strong{text-align:right;overflow-wrap:anywhere}.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.swatch{border:2px solid transparent;padding:12px 4px;font-size:.78rem;background:var(--background-page);color:var(--text-primary)}.swatch i{display:block;width:25px;height:25px;border-radius:50%;margin:0 auto 8px;background:var(--swatch-color)}.selected{border-color:var(--primary)!important}.choices{display:flex;gap:8px;flex-wrap:wrap}.choices button{border:2px solid transparent;flex:1;font-size:.82rem;padding:.6rem .5rem;min-width:60px}.settings-block{margin:22px 0}.settings-block h3{margin-bottom:13px}dialog{color:var(--text-primary);background:var(--background-card);border:0;border-radius:22px;width:calc(100% - 24px);max-width:520px;max-height:calc(100dvh - 44px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:24px;overflow:auto;box-shadow:var(--shadow-dialog)}dialog::backdrop{background:var(--modal-backdrop)}dialog h2{margin-bottom:20px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{margin:0}.error{color:var(--gain);line-height:1.6;font-size:.87rem}.error:empty{display:none}.loading{padding:40px;text-align:center}#toast{position:fixed;bottom:calc(95px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--text-primary);color:var(--background-card);max-width:90%;padding:12px 20px;border-radius:12px;z-index:100;display:none;line-height:1.5}details{margin-top:16px}summary{cursor:pointer;color:var(--primary);padding:12px 0;font-size:.87rem}.footer{text-align:center;font-size:.72rem;color:var(--text-muted);line-height:1.9;margin:24px 0 5px}.back{display:flex;align-items:center;gap:12px;margin-bottom:24px}.avatar-large{width:72px;height:72px;font-size:2rem}.pending{font-size:.75rem;color:var(--text-muted)}@media(max-width:380px){.shell{padding-left:14px;padding-right:14px}.card{padding:16px}.hero{padding:20px}.split{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}html[data-font=small]{font-size:15px}html[data-font=large]{font-size:20px}html[data-font=xl]{font-size:23px}[data-font=xl] .grid,[data-font=xl] .split{grid-template-columns:1fr}[data-font=xl] .hero .amount{font-size:1.8rem}button,input,select,textarea,.brand>div{overflow-wrap:anywhere;max-width:100%}



.brand-logo{width:52px;height:52px;object-fit:contain;border-radius:13px;flex-shrink:0}.profile-card>h2{margin-bottom:18px}.profile-card .brand{flex-wrap:wrap;min-width:0}.profile-card .brand>div{min-width:0;overflow-wrap:anywhere}.about-install{margin:18px 0 8px}.nav button{min-height:58px}.nav-icon{color:inherit}

.home-shell{padding-top:calc(env(safe-area-inset-top) + 16px)}
.home-header{margin-bottom:16px}
.home-profile{display:flex;align-items:center;gap:11px;margin-bottom:10px;min-width:0}
.home-profile .avatar{width:40px;height:40px}
.home-identity{min-width:0;overflow-wrap:anywhere;line-height:1.4}
.home-identity strong{font-size:1rem;font-weight:600}
.home-identity .muted{font-size:.74rem;margin-top:2px}
.home-welcome{line-height:1.6;overflow-wrap:anywhere}
#home-greeting{font-size:.94rem}
.home-tagline{color:var(--text-muted);font-size:.8rem;margin-top:3px}
.about-brand{margin-bottom:10px}.about-brand .brand-logo{width:40px;height:40px;border-radius:10px}

.update-banner{background:var(--primary-soft);color:var(--primary);border-radius:12px;padding:9px 10px;margin:10px 0;line-height:1.5}
.update-banner-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.update-banner-row>span{flex:1;min-width:6rem;font-size:.8rem;overflow-wrap:anywhere}
.update-banner-row button{min-height:40px;font-size:.78rem;padding:7px 9px;background:var(--primary-strong);color:var(--text-on-primary);border-radius:9px}
.update-banner-row .update-dismiss{background:transparent;color:var(--primary);font-size:1.25rem;min-width:36px;padding:3px}
.update-message{font-size:.76rem;margin-top:5px;overflow-wrap:anywhere}


.hero{background:radial-gradient(ellipse at 92% 0%,var(--gradient-highlight),var(--gradient-clear) 66%),linear-gradient(125deg,var(--primary-gradient-start),var(--primary-gradient-end));color:var(--text-on-primary)}
.hero small,.hero .muted{color:var(--text-on-primary-muted);opacity:1}
.home-identity .muted{color:var(--text-secondary)}
#home-greeting{color:var(--primary)}
.nav button{color:var(--icon-inactive)}.nav button.active{color:var(--icon-active)}
.swatch.selected,.choices button.selected{background:var(--primary-soft);color:var(--text-on-soft)}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}
[data-swatch=red]{--swatch-color:var(--swatch-red)}
[data-swatch=blue]{--swatch-color:var(--swatch-blue)}
[data-swatch=green]{--swatch-color:var(--swatch-green)}
[data-swatch=purple]{--swatch-color:var(--swatch-purple)}
[data-swatch=orange]{--swatch-color:var(--swatch-orange)}
[data-swatch=gray]{--swatch-color:var(--swatch-gray)}
