.theme-dark{--bg:#0b0e13;--bg-2:#0f141c;--panel:#141a23;--panel-2:#1b222d;--line:#232c39;--line-2:#2e3947;--text:#e8eef6;--muted:#8a97a8;--accent:#5aa2ff;--accent-2:#7c5cff;--green:#3fb950;--yellow:#d6a528;--red:#f0564a;--glow1:rgba(124,92,255,.1);--glow2:rgba(90,162,255,.1);--shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.25)}.theme-light{--bg:#f5f7fa;--bg-2:#fff;--panel:#fff;--panel-2:#f0f3f7;--line:#dde3ec;--line-2:#c7d0dc;--text:#1a2230;--muted:#5c6675;--accent:#2563eb;--accent-2:#7c3aed;--green:#1a8f37;--yellow:#b07d12;--red:#d23b30;--glow1:rgba(124,58,237,.06);--glow2:rgba(37,99,235,.06);--shadow:0 1px 2px rgba(20,30,50,.06), 0 8px 24px rgba(20,30,50,.08)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;font-size:14px;line-height:1.4}.app{height:100vh;color:var(--text);background:radial-gradient(1200px 600px at 80% -10%, var(--glow1), transparent), radial-gradient(1000px 500px at -10% 0%, var(--glow2), transparent), var(--bg);flex-direction:column;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:var(--bg-2);flex:none;align-items:center;gap:1rem;padding:.5rem 1.25rem;display:flex}.brand{flex:none;align-items:center;gap:.55rem;display:flex}.brand-logo{border-radius:7px;flex:none;box-shadow:0 2px 8px rgba(90,162,255,.35)}.brand-text{flex-direction:column;line-height:1.05;display:flex}.brand h1{letter-spacing:-.03em;background:linear-gradient(90deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.2rem;font-weight:800}.subtitle{color:var(--muted);font-size:.66rem}.tabbar{scrollbar-width:none;flex-wrap:nowrap;flex:auto;gap:.2rem;display:flex;overflow-x:auto}.tabbar::-webkit-scrollbar{display:none}.tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:.4rem .7rem;font-size:.82rem;font-weight:600;transition:all .12s}.tab:hover{color:var(--text);background:var(--panel-2)}.tab.active{color:#fff;background:var(--accent)}.theme-toggle{background:var(--panel-2);width:34px;height:34px;color:var(--muted);border:1px solid var(--line);cursor:pointer;border-radius:999px;flex:none;place-items:center;padding:0;transition:color .12s,border-color .12s,transform .12s;display:grid}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);transform:rotate(12deg)}.content{scroll-snap-type:x proximity;scroll-behavior:smooth;flex:auto;min-height:0;padding:.8rem 1rem;overflow:auto hidden}.content::-webkit-scrollbar{width:9px;height:9px}.card::-webkit-scrollbar{width:9px;height:9px}.journal::-webkit-scrollbar{width:9px;height:9px}.content::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.card::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.journal::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.content::-webkit-scrollbar-thumb:hover{background:var(--accent)}.content::-webkit-scrollbar-track{background:0 0}.card::-webkit-scrollbar-track{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.app-footer{color:var(--muted);border-top:1px solid var(--line);background:var(--bg-2);flex:none;padding:.4rem 1.25rem;font-size:.68rem}.tab-pane{flex-flow:column wrap;align-content:stretch;align-items:stretch;gap:.7rem;height:100%;display:flex}.card{scroll-snap-align:start;background:linear-gradient(180deg, var(--panel), var(--bg-2));border:1px solid var(--line);width:100%;min-width:300px;max-width:560px;max-height:100%;box-shadow:var(--shadow);border-radius:12px;padding:0 .85rem .75rem;transition:border-color .15s,transform .15s,box-shadow .15s;overflow:auto}.card:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 6px 22px rgba(0,0,0,.18)}.card h2{letter-spacing:-.01em;margin:0;font-size:.92rem;font-weight:700}.card h3{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:.6rem 0 .28rem;font-size:.72rem;font-weight:700}.card-head,.card>h2:first-child{z-index:2;background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;margin:0 -.85rem .5rem;padding:.6rem .85rem .45rem;display:flex;position:sticky;top:0}.card-head h2{margin:0}.span-2{min-width:440px;max-width:760px}.start-grid{gap:.7rem;height:100%;display:flex}.start-grid .col{flex-direction:column;flex:1 1 0;gap:.7rem;min-width:0;padding-right:2px;display:flex;overflow-y:auto}.start-grid .card,.start-grid .honesty{width:auto;min-width:0;max-width:none;max-height:none;overflow:visible}.start-grid .span-2{min-width:0;max-width:none}.start-grid .journal{display:block;overflow-x:auto}.stock-page{flex-direction:column;gap:.7rem;height:100%;min-height:0;display:flex}.stock-page>.search-card{flex:none;width:auto;max-width:none;max-height:none;overflow:visible}.stock-page>.start-grid{flex:auto;min-height:0}.search-card{padding-top:.6rem}.search-bar{flex-wrap:nowrap;align-items:center;gap:.5rem;display:flex}.search-bar .symsearch{flex:auto;margin-bottom:0}.search-bar .field-input{height:38px}.search-bar .sym-input{flex:0 0 190px}.search-bar .btn{flex:none;height:38px}.page-col{flex-direction:column;gap:.7rem;height:100%;min-height:0;display:flex}.page-col>.honesty{flex:none;width:auto;max-width:none;max-height:none;overflow:visible}.page-col>.start-grid{flex:auto;min-height:0}.full-pane{height:100%;overflow-y:auto}.full-pane .card,.full-pane .honesty{width:auto;min-width:0;max-width:none;max-height:none;overflow:visible}.calc-grid{grid-template-columns:repeat(5,1fr);align-content:start;gap:.6rem;height:100%;display:grid;overflow-y:auto}.calc-grid .card{width:auto;min-width:0;max-width:none;max-height:none;overflow:visible}.calc-grid .span-2,.calc-grid .honesty{grid-column:1/-1;min-width:0;max-width:none;max-height:none;overflow:visible}.grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:.45rem;margin-bottom:.55rem;display:grid}.field{flex-direction:column;gap:.12rem;display:flex}.field-label{color:var(--muted);font-size:.66rem;font-weight:500}.field-input{background:var(--bg-2);border:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums;border-radius:8px;width:100%;padding:.38rem .5rem;font-size:.88rem;transition:border-color .12s,box-shadow .12s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow2);outline:none}.field-hint{color:var(--muted);font-size:.6rem}.result-row{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.28rem 0;font-size:.84rem;display:flex}.result-label{color:var(--muted)}.result-value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:700}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0 .8rem;display:grid}.btn-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.4rem 0 .65rem;display:flex}.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:.4rem .75rem;font-size:.8rem;font-weight:600;transition:all .12s}.btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.active-btn{border-color:var(--accent);color:#fff;background:var(--accent)}.tier{white-space:nowrap;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.14rem .45rem;font-size:.6rem;font-weight:700}.tier1{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.tier2{background:color-mix(in srgb, var(--yellow) 18%, transparent);color:var(--yellow)}.tier3{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--red)}.honesty{background:linear-gradient(90deg, var(--glow2), var(--glow1));border:1px solid var(--line-2);width:100%;min-width:300px;max-width:560px;max-height:100%;color:var(--text);border-radius:12px;padding:.55rem .85rem;font-size:.8rem;line-height:1.5;overflow:auto}.note{color:var(--muted);font-size:.78rem;line-height:1.5}.warn{color:var(--yellow);background:color-mix(in srgb, var(--yellow) 8%, transparent);border-left:3px solid var(--yellow);border-radius:6px;margin-top:.35rem;padding:.4rem .6rem;font-size:.78rem;line-height:1.5}.err{color:var(--red);padding-top:.3rem;font-size:.78rem}.checklist{margin:0;padding-left:1.1rem;font-size:.8rem;line-height:1.65}textarea.csv-box{background:var(--bg-2);width:100%;min-height:78px;color:var(--text);border:1px solid var(--line);resize:vertical;border-radius:8px;margin-bottom:.45rem;padding:.45rem;font-family:ui-monospace,SF Mono,monospace;font-size:.74rem}.flag{border-radius:8px;margin-top:.4rem;padding:.42rem .6rem;font-size:.78rem;font-weight:600}.flag.green{background:color-mix(in srgb, var(--green) 14%, transparent);color:var(--green)}.flag.yellow{background:color-mix(in srgb, var(--yellow) 14%, transparent);color:var(--yellow)}.flag.red{background:color-mix(in srgb, var(--red) 14%, transparent);color:var(--red)}.chart{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;height:auto;display:block}.chart-axis{color:var(--muted);justify-content:space-between;margin-top:.1rem;font-size:.64rem;display:flex}.journal{border-collapse:collapse;width:100%;margin-top:.45rem;font-size:.78rem}.journal th,.journal td{text-align:left;border-bottom:1px solid var(--line);padding:.3rem .45rem}.journal th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.62rem;font-weight:700}.journal td{font-variant-numeric:tabular-nums}.journal tbody tr:hover{background:var(--panel-2)}.muted-cell{color:var(--muted)}.cell-good{color:var(--green);font-weight:700}.cell-bad{color:var(--red)}.verdict{border-left:3px solid var(--line-2);background:var(--panel-2);border-radius:8px;margin-top:.4rem;padding:.45rem .65rem}.verdict-text{font-size:.82rem;font-weight:700}.verdict-next{color:var(--muted);margin-top:.18rem;font-size:.72rem}.v-good{border-left-color:var(--green);background:color-mix(in srgb, var(--green) 10%, transparent)}.v-good .verdict-text{color:var(--green)}.v-warn{border-left-color:var(--yellow);background:color-mix(in srgb, var(--yellow) 10%, transparent)}.v-warn .verdict-text{color:var(--yellow)}.v-bad{border-left-color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent)}.v-bad .verdict-text{color:var(--red)}.v-neutral .verdict-text{color:var(--text)}.lesson{border-left:3px solid var(--accent);background:var(--bg-2);border-radius:0 8px 8px 0;margin-bottom:.5rem;padding:.45rem .65rem}.lesson h4{margin:0 0 .18rem;font-size:.84rem}.lesson p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.forbidden{border-left-color:var(--red)}.forbidden h4:before{content:"⚠ ";color:var(--red)}.q{border-bottom:1px solid var(--line);margin-bottom:.8rem;padding-bottom:.6rem}.q-text{margin-bottom:.4rem;font-size:.86rem;font-weight:600}.opt{text-align:left;cursor:pointer;background:var(--bg-2);border:1px solid var(--line);width:100%;color:var(--text);border-radius:8px;margin-bottom:.32rem;padding:.42rem .6rem;font-size:.8rem;transition:all .12s;display:block}.opt:hover{border-color:var(--accent)}.opt.correct{background:color-mix(in srgb, var(--green) 16%, transparent);border-color:var(--green);color:var(--green)}.opt.wrong{background:color-mix(in srgb, var(--red) 16%, transparent);border-color:var(--red);color:var(--red)}.q-explain{color:var(--muted);margin-top:.28rem;font-size:.76rem;line-height:1.5}.score{background:linear-gradient(90deg, var(--glow2), var(--glow1));border:1px solid var(--line-2);text-align:center;border-radius:12px;padding:.55rem .85rem;font-size:1.05rem;font-weight:800}.row2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;gap:.8rem;display:grid}.row2>div{min-width:0}.modal-overlay{z-index:100;backdrop-filter:blur(4px);background:rgba(0,0,0,.7);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--panel);width:100%;max-width:560px;max-height:90vh;color:var(--text);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:14px;padding:1.4rem 1.5rem;overflow:auto}.modal h2{background:linear-gradient(90deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 .6rem;font-size:1.2rem;font-weight:800}.modal p{margin:0 0 .7rem;font-size:.88rem;line-height:1.55}.modal ul{color:var(--text);margin:0 0 .8rem;padding-left:1.1rem;font-size:.84rem;line-height:1.7}.modal .btn{width:100%;margin-top:.4rem;padding:.6rem;font-size:.95rem}.symsearch{margin-bottom:.55rem}.search-row{align-items:stretch;gap:.4rem;display:flex}.search-row .field-input{flex:1}.symsearch .opt{margin-top:.28rem}