:root{--bg: #f3f5fa;--bg-deep: #e9edf6;--surface: #ffffff;--surface-2: #f7f9fd;--surface-3: #eef2f9;--text: #0f172a;--text-2: #5b6b82;--text-3: #94a3b8;--line: #e5eaf3;--primary: #2563eb;--primary-2: #4f46e5;--primary-soft: #edf2ff;--success: #12a150;--success-soft: #e8f8ee;--danger: #e11d48;--danger-soft: #fff0f3;--warning: #d97706;--warning-soft: #fff6e6;--radius-lg: 22px;--radius: 16px;--radius-sm: 12px;--shadow-sm: 0 2px 8px rgba(15, 23, 42, .04);--shadow: 0 10px 30px rgba(15, 23, 42, .07);--tabbar-h: 62px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@media (prefers-color-scheme: dark){:root{--bg: #0b1020;--bg-deep: #070b16;--surface: #131a2c;--surface-2: #182136;--surface-3: #1d2842;--text: #e8edf7;--text-2: #a3b0c7;--text-3: #6f7f9a;--line: #243049;--primary: #4f83ff;--primary-2: #7c74ff;--primary-soft: #1b2747;--success: #34d399;--success-soft: #123024;--danger: #fb7185;--danger-soft: #3a1521;--warning: #fbbf24;--warning-soft: #37280d;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow: 0 12px 32px rgba(0, 0, 0, .4)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg-deep);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3,h4,p{margin:0}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--primary);text-decoration:none}.app-shell{width:100%;max-width:560px;min-height:100%;margin:0 auto;background:var(--bg);position:relative}.app-shell--tabs{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px)}@media (min-width: 700px){body{background:radial-gradient(1200px 600px at 12% -10%,rgba(37,99,235,.12),transparent 60%),radial-gradient(900px 500px at 90% 0%,rgba(79,70,229,.1),transparent 55%),var(--bg-deep)}.app-shell{min-height:100vh;box-shadow:0 0 0 1px #0f172a0a,0 30px 70px #0f172a1f}}.page{padding:4px 16px 24px;animation:fade-in .24s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.muted{color:var(--text-2)}.tiny{font-size:12px;color:var(--text-3)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;min-height:56px;padding:8px 12px;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar--transparent{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.topbar-side{width:40px;display:flex;align-items:center}.topbar-side--right{justify-content:flex-end;width:auto;min-width:40px}.topbar-main{flex:1;min-width:0;text-align:center}.topbar-main h1{font-size:17px;font-weight:650;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-main p{font-size:11px;color:var(--text-3);margin-top:1px}.icon-btn{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);transition:background .2s}.icon-btn:active{background:var(--surface-3)}.icon-btn--primary{color:var(--primary)}.tabbar{position:fixed;z-index:40;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;display:flex;padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;color:var(--text-3);border-radius:12px;transition:color .2s}.tab-label{font-size:10.5px;letter-spacing:.3px}.tab.is-active{color:var(--primary)}.tab.is-active .tab-icon{transform:translateY(-1px)}.tab-icon{position:relative;transition:transform .2s}.tab-badge{position:absolute;top:-3px;right:-7px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--danger);color:#fff;font-size:9px;line-height:15px;text-align:center}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.card-pad{padding:16px}.section{margin-top:22px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-title{font-size:15px;font-weight:650;display:flex;align-items:center;gap:6px}.section-more{font-size:12px;color:var(--text-3);display:inline-flex;align-items:center;gap:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:42px;padding:0 18px;border-radius:12px;font-size:14px;font-weight:600;background:var(--surface-3);color:var(--text);transition:transform .12s,opacity .2s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-2) 100%);color:#fff;box-shadow:0 8px 18px #2563eb42}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:var(--surface-3);color:var(--text-2)}.btn-sm{height:34px;padding:0 12px;font-size:12.5px;border-radius:10px}.btn-block{width:100%}.btn-lg{height:50px;font-size:16px;border-radius:15px}.btn-soft{background:var(--primary-soft);color:var(--primary);box-shadow:none}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:7px;font-size:11px;font-weight:600;background:var(--primary-soft);color:var(--primary)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 14px;border-radius:11px;background:var(--surface-2);border:1px solid transparent;color:var(--text-2);font-size:13px;font-weight:500;transition:all .16s;white-space:nowrap}.chip.is-active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary);font-weight:600}.chip-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chip-row::-webkit-scrollbar{display:none}.divider{height:1px;background:var(--line);margin:12px 0}.progress{height:7px;border-radius:6px;background:var(--surface-3);overflow:hidden}.progress-inner{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--primary),var(--primary-2));transition:width .35s ease}.ring{position:relative;display:inline-flex}.ring-svg{transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--surface-3)}.ring-value{fill:none;stroke:var(--primary);stroke-linecap:round;transition:stroke-dashoffset .6s ease}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.home-hero{position:relative;margin:6px 0 4px;padding:20px 20px 18px;border-radius:var(--radius-lg);background:radial-gradient(120% 120% at 100% 0%,rgba(255,255,255,.24) 0%,transparent 46%),linear-gradient(135deg,#2563eb,#4f46e5 58%,#4338ca);color:#fff;box-shadow:0 16px 34px #2563eb47;overflow:hidden}.home-hero:after{content:"";position:absolute;right:-46px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:#ffffff14}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-greeting{font-size:12px;opacity:.78;letter-spacing:.6px}.hero-title{font-size:21px;font-weight:700;margin-top:2px;letter-spacing:.2px}.hero-sub{font-size:12px;opacity:.8;margin-top:6px}.hero-ring-box{display:flex;align-items:center;gap:14px;margin-top:16px;padding:14px;border-radius:16px;background:#ffffff21;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-ring-box .ring-track{stroke:#ffffff38}.hero-ring-box .ring-value{stroke:#fff}.hero-ring-label{font-size:19px;font-weight:700;line-height:1.1}.hero-ring-caption{font-size:11px;opacity:.78;margin-top:2px}.hero-stats{display:flex;gap:22px;margin-left:auto;text-align:center}.hero-stat b{display:block;font-size:19px;font-weight:700}.hero-stat span{font-size:10.5px;opacity:.75}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.quick-item{display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 4px 11px;border-radius:15px;background:var(--surface);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);box-shadow:var(--shadow-sm);font-size:11.5px;color:var(--text-2);position:relative}.quick-icon{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary)}.quick-item--danger .quick-icon{background:var(--danger-soft);color:var(--danger)}.quick-item--warning .quick-icon{background:var(--warning-soft);color:var(--warning)}.quick-item--success .quick-icon{background:var(--success-soft);color:var(--success)}.quick-dot{position:absolute;top:9px;right:12px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:#fff;font-size:9.5px;line-height:16px;text-align:center}.bank-card{padding:14px 15px;margin-bottom:10px;display:block;width:100%;text-align:left;transition:transform .14s}.bank-card:active{transform:scale(.99)}.bank-head{display:flex;align-items:flex-start;gap:10px}.bank-icon{width:40px;height:40px;flex:none;border-radius:13px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-soft),var(--surface-3));color:var(--primary)}.bank-info{min-width:0;flex:1}.bank-name{font-size:14.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-meta{font-size:11.5px;color:var(--text-3);margin-top:2px;display:flex;gap:8px;flex-wrap:wrap}.bank-progress{margin-top:11px}.bank-progress-row{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);margin-bottom:5px}.continue-card{display:flex;align-items:center;gap:12px;padding:14px;margin-top:12px;border-radius:var(--radius);background:var(--surface);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);box-shadow:var(--shadow-sm)}.continue-main{flex:1;min-width:0}.continue-title{font-size:13.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}.bank-hero{padding:20px;border-radius:var(--radius-lg);background:radial-gradient(100% 140% at 100% 0%,rgba(255,255,255,.16),transparent 50%),linear-gradient(135deg,#1e40af,#4338ca);color:#fff;box-shadow:0 14px 30px #2563eb3d}.bank-hero h2{font-size:19px;font-weight:700;line-height:1.35}.bank-hero p{font-size:12px;opacity:.8;margin-top:6px}.bank-stat-row{display:flex;gap:8px;margin-top:16px}.bank-stat{flex:1;padding:10px 8px;border-radius:13px;background:#ffffff21;text-align:center}.bank-stat b{display:block;font-size:17px;font-weight:700}.bank-stat span{font-size:10.5px;opacity:.78}.mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.mode-item{display:flex;align-items:center;gap:11px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);box-shadow:var(--shadow-sm);text-align:left}.mode-item .quick-icon{width:38px;height:38px}.mode-item-title{font-size:13.5px;font-weight:650}.mode-item-desc{font-size:11px;color:var(--text-3);margin-top:1px}.chapter-list{margin-top:10px;overflow:hidden}.chapter-item{display:flex;align-items:center;gap:12px;padding:13px 15px;width:100%;text-align:left;border-bottom:1px solid var(--line)}.chapter-item:last-child{border-bottom:none}.chapter-index{width:30px;height:30px;flex:none;border-radius:10px;background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:650;display:flex;align-items:center;justify-content:center}.chapter-info{flex:1;min-width:0}.chapter-name{font-size:13.5px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chapter-meta{font-size:11px;color:var(--text-3);margin-top:1px}.practice{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.practice-head{position:sticky;top:0;z-index:30;padding:8px 14px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.practice-head-row{display:flex;align-items:center;gap:10px}.practice-title{font-size:14px;font-weight:650;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-counter{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.practice-progress{margin-top:9px}.practice-body{flex:1;padding:4px 14px 18px}.q-card{background:var(--surface);border-radius:var(--radius-lg);padding:18px 16px 16px;border:1px solid color-mix(in srgb,var(--line) 60%,transparent);box-shadow:var(--shadow)}.q-meta{display:flex;align-items:center;gap:8px;margin-bottom:12px}.q-index{font-size:12px;font-weight:650;color:var(--text-3);font-variant-numeric:tabular-nums}.q-type{height:22px;padding:0 8px;border-radius:7px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;background:var(--primary-soft);color:var(--primary)}.q-type--multiple{background:var(--warning-soft);color:var(--warning)}.q-type--judge{background:var(--success-soft);color:var(--success)}.q-stem{font-size:16px;line-height:1.75;font-weight:550;letter-spacing:.2px;white-space:pre-wrap;word-break:break-word}.q-options{display:flex;flex-direction:column;gap:9px;margin-top:16px}.opt{display:flex;align-items:flex-start;gap:11px;width:100%;padding:13px 14px;border-radius:14px;background:var(--surface-2);border:1.5px solid transparent;text-align:left;transition:background .16s,border-color .16s,transform .1s;position:relative}.opt:active{transform:scale(.995)}.opt-key{width:24px;height:24px;flex:none;border-radius:8px;background:var(--surface);border:1px solid var(--line);color:var(--text-2);font-size:12px;font-weight:650;display:flex;align-items:center;justify-content:center;margin-top:1px}.opt-text{flex:1;font-size:14px;line-height:1.6;word-break:break-word}.opt.is-selected{background:var(--primary-soft);border-color:var(--primary)}.opt.is-selected .opt-key{background:var(--primary);border-color:var(--primary);color:#fff}.opt.is-correct{background:var(--success-soft);border-color:var(--success)}.opt.is-correct .opt-key{background:var(--success);border-color:var(--success);color:#fff}.opt.is-wrong{background:var(--danger-soft);border-color:var(--danger)}.opt.is-wrong .opt-key{background:var(--danger);border-color:var(--danger);color:#fff}.opt.is-dim{opacity:.62}.opt-mark{color:var(--success);display:inline-flex;margin-top:2px}.opt-mark--wrong{color:var(--danger)}.q-analysis{margin-top:16px;padding:14px;border-radius:14px;background:var(--surface-2);border:1px dashed color-mix(in srgb,var(--line) 90%,transparent);font-size:13px;line-height:1.7;color:var(--text-2);animation:fade-in .2s ease}.q-analysis b{color:var(--text);font-weight:650}.answer-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;margin-top:12px;font-weight:600}.answer-line .ok{color:var(--success)}.answer-line .no{color:var(--danger)}.practice-footer{position:sticky;bottom:0;z-index:30;padding:10px 14px calc(12px + var(--safe-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;gap:10px}.practice-footer .btn{flex:1}.sheet-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.sheet-cell{aspect-ratio:1;border-radius:11px;background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--text-2);display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}.sheet-cell.is-current{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.sheet-cell.is-done{background:var(--primary-soft);color:var(--primary);border-color:transparent}.sheet-cell.is-wrong{background:var(--danger-soft);color:var(--danger);border-color:transparent}.sheet-cell.is-right{background:var(--success-soft);color:var(--success);border-color:transparent}.sheet-legend{display:flex;gap:14px;margin-top:14px;font-size:11px;color:var(--text-3);flex-wrap:wrap}.sheet-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}.result-hero{padding:26px 20px 22px;border-radius:var(--radius-lg);text-align:center;background:radial-gradient(120% 120% at 50% 0%,rgba(255,255,255,.18),transparent 55%),linear-gradient(150deg,#2563eb,#4f46e5 60%,#4338ca);color:#fff;box-shadow:0 18px 38px #2563eb42}.result-hero .ring-track{stroke:#fff3}.result-hero .ring-value{stroke:#fff}.result-hero h2{font-size:17px;font-weight:700;margin-top:6px}.result-hero p{font-size:12px;opacity:.8;margin-top:4px}.result-score{font-size:30px;font-weight:800;line-height:1}.result-score small{font-size:13px;font-weight:500;opacity:.8}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.result-cell{padding:12px 8px;border-radius:14px;background:var(--surface);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);text-align:center}.result-cell b{display:block;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.result-cell span{font-size:11px;color:var(--text-3)}.result-actions{display:flex;gap:10px;margin-top:16px}.result-actions .btn{flex:1}.review-item{padding:14px 15px;border-bottom:1px solid var(--line)}.review-item:last-child{border-bottom:none}.review-stem{font-size:13.5px;line-height:1.65;font-weight:550}.review-answers{margin-top:8px;font-size:12px;color:var(--text-2);display:flex;flex-wrap:wrap;gap:6px 14px}.review-answers .no{color:var(--danger)}.review-answers .ok{color:var(--success)}.review-analysis{margin-top:8px;font-size:12px;line-height:1.65;color:var(--text-3);background:var(--surface-2);padding:10px 12px;border-radius:10px}.steps{display:flex;align-items:center;gap:6px;margin:4px 0 16px}.step{flex:1;display:flex;flex-direction:column;gap:5px}.step-bar{height:3px;border-radius:2px;background:var(--surface-3)}.step.is-active .step-bar{background:var(--primary)}.step.is-done .step-bar{background:var(--success)}.step span{font-size:10.5px;color:var(--text-3)}.step.is-active span{color:var(--primary);font-weight:600}.dropzone{display:flex;flex-direction:column;align-items:center;gap:10px;padding:34px 18px;border-radius:var(--radius-lg);border:1.5px dashed color-mix(in srgb,var(--primary) 34%,var(--line));background:linear-gradient(180deg,var(--primary-soft),transparent);text-align:center;transition:border-color .2s}.dropzone.is-drag{border-color:var(--primary);background:var(--primary-soft)}.dropzone-icon{width:54px;height:54px;border-radius:17px;background:var(--surface);color:var(--primary);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.dropzone h3{font-size:15px;font-weight:650}.dropzone p{font-size:12px;color:var(--text-3);line-height:1.6}.file-input{display:none}.notice{display:flex;gap:9px;padding:12px 13px;border-radius:13px;background:var(--surface-2);font-size:12px;line-height:1.65;color:var(--text-2)}.notice--warning{background:var(--warning-soft);color:color-mix(in srgb,var(--warning) 86%,var(--text))}.notice--danger{background:var(--danger-soft);color:color-mix(in srgb,var(--danger) 88%,var(--text))}.notice svg{flex:none;margin-top:2px}.parse-summary{display:flex;align-items:center;gap:10px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);box-shadow:var(--shadow-sm)}.parse-summary b{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.parse-summary span{font-size:11px;color:var(--text-3)}.parse-summary .divider-v{width:1px;height:26px;background:var(--line)}.edit-card{padding:14px;margin-bottom:10px;border-radius:var(--radius);background:var(--surface);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);box-shadow:var(--shadow-sm)}.edit-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.edit-no{font-size:12px;font-weight:700;color:var(--text-3)}.edit-body{display:flex;flex-direction:column;gap:9px}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-size:11px;font-weight:600;color:var(--text-3);letter-spacing:.3px}.input,.textarea,.select{width:100%;border:1px solid var(--line);background:var(--surface-2);border-radius:11px;padding:10px 12px;font-size:13px;line-height:1.55;outline:none;transition:border-color .16s,background .16s;resize:vertical}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);background:var(--surface)}.textarea{min-height:58px}.opt-editor{display:flex;align-items:center;gap:8px}.opt-editor .input{flex:1}.opt-key-fixed{width:28px;height:28px;flex:none;border-radius:8px;background:var(--surface-3);color:var(--text-2);font-size:12px;font-weight:650;display:flex;align-items:center;justify-content:center}.answer-picker{display:flex;gap:7px;flex-wrap:wrap}.answer-key{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);font-size:12.5px;font-weight:650;display:flex;align-items:center;justify-content:center}.answer-key.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.import-actions{position:sticky;bottom:0;z-index:20;display:flex;gap:10px;padding:12px 0 calc(12px + var(--safe-bottom));background:linear-gradient(180deg,transparent,var(--bg) 28%)}.import-actions .btn{flex:1}.chart{display:flex;align-items:flex-end;gap:8px;height:132px;padding:8px 4px 0}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.chart-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.chart-bar{width:60%;max-width:26px;min-height:4px;border-radius:6px;background:linear-gradient(180deg,var(--primary),color-mix(in srgb,var(--primary) 45%,transparent));transition:height .4s ease}.chart-bar.is-empty{background:var(--surface-3)}.chart-label{font-size:10px;color:var(--text-3);white-space:nowrap}.type-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.type-row:last-child{border-bottom:none}.type-row-name{width:62px;font-size:12.5px;color:var(--text-2);flex:none}.type-row-bar{flex:1}.type-row-value{width:54px;text-align:right;font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums;flex:none}.profile-head{display:flex;align-items:center;gap:14px;padding:20px;border-radius:var(--radius-lg);background:radial-gradient(100% 130% at 100% 0%,rgba(255,255,255,.18),transparent 55%),linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 14px 30px #2563eb38}.avatar{width:52px;height:52px;border-radius:17px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex:none}.profile-head h2{font-size:17px;font-weight:700}.profile-head p{font-size:11.5px;opacity:.8;margin-top:2px}.list{overflow:hidden;margin-top:12px}.list-item{display:flex;align-items:center;gap:12px;padding:14px 15px;width:100%;text-align:left;border-bottom:1px solid var(--line);font-size:13.5px}.list-item:last-child{border-bottom:none}.list-icon{width:34px;height:34px;border-radius:11px;background:var(--surface-2);color:var(--text-2);display:flex;align-items:center;justify-content:center;flex:none}.list-item-main{flex:1;min-width:0}.list-item-sub{font-size:11px;color:var(--text-3);margin-top:1px}.list-value{font-size:12.5px;color:var(--text-3)}.list-chevron{color:var(--text-3);display:inline-flex}.list-item.is-danger{color:var(--danger)}.list-item.is-danger .list-icon{background:var(--danger-soft);color:var(--danger)}.switch{width:44px;height:26px;border-radius:14px;background:var(--surface-3);position:relative;transition:background .2s;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:transform .2s}.switch.is-on{background:var(--primary)}.switch.is-on:after{transform:translate(18px)}.input-inline{width:84px;text-align:right;border:1px solid var(--line);background:var(--surface-2);border-radius:9px;padding:6px 10px;font-size:13px;outline:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#070b1680;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;animation:fade-in .18s ease}.overlay--center{align-items:center;padding:24px}.sheet{width:100%;max-width:560px;max-height:82vh;background:var(--surface);border-radius:24px 24px 0 0;display:flex;flex-direction:column;animation:slide-up .24s cubic-bezier(.22,.9,.3,1);padding-bottom:var(--safe-bottom)}@keyframes slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}.sheet-head h3{font-size:15px;font-weight:650}.sheet-body{padding:8px 18px 18px;overflow-y:auto}.sheet-footer{padding:10px 18px calc(16px + var(--safe-bottom));border-top:1px solid var(--line)}.dialog{width:100%;max-width:340px;background:var(--surface);border-radius:20px;padding:20px 18px 16px;box-shadow:var(--shadow);animation:pop .18s ease}@keyframes pop{0%{transform:scale(.95);opacity:.6}to{transform:none;opacity:1}}.dialog h3{font-size:16px;font-weight:650;text-align:center}.dialog-message{font-size:12.5px;color:var(--text-2);line-height:1.7;margin-top:8px;text-align:center}.dialog-actions{display:flex;gap:10px;margin-top:18px}.dialog-actions .btn{flex:1}.toast{position:fixed;z-index:200;left:50%;bottom:calc(96px + var(--safe-bottom));transform:translate(-50%);max-width:82vw;padding:10px 16px;border-radius:12px;background:#0f172ae6;color:#fff;font-size:12.5px;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:toast-in .22s ease;line-height:1.5}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:46px 24px}.empty-icon{width:64px;height:64px;border-radius:21px;background:var(--surface-3);color:var(--text-3);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.empty h3{font-size:15px;font-weight:600}.empty p{font-size:12.5px;color:var(--text-3);margin-top:5px;line-height:1.6;max-width:260px}.empty-action{margin-top:16px;display:flex;gap:10px}.segmented{display:flex;padding:3px;border-radius:12px;background:var(--surface-3);gap:2px}.segmented button{flex:1;height:32px;border-radius:9px;font-size:12.5px;color:var(--text-2);font-weight:500}.segmented button.is-active{background:var(--surface);color:var(--text);font-weight:650;box-shadow:var(--shadow-sm)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:60vh;color:var(--text-3);font-size:13px}.spinner{width:30px;height:30px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.small-screen-hide{display:inline}@media (max-width: 360px){.quick-grid{grid-template-columns:repeat(4,1fr);gap:6px}.quick-item{font-size:10.5px;padding:11px 2px 9px}.hero-stats{gap:14px}}
