:root{--font-display: "Chakra Petch", "Segoe UI", sans-serif;--font-body: "Manrope", "Segoe UI", sans-serif}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body)}.app{max-width:860px;margin:0 auto;padding:28px 20px 36px;position:relative;font-family:var(--font-body)}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(600px 320px at 18% -5%,var(--glow1),transparent 70%),radial-gradient(700px 420px at 92% 8%,var(--glow2),transparent 70%),radial-gradient(640px 420px at 50% 110%,var(--glow1),transparent 75%)}.app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:var(--gridOpacity);background-image:linear-gradient(var(--gridLine) 1px,transparent 1px),linear-gradient(90deg,var(--gridLine) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 60%);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 60%)}.app>*{position:relative;z-index:1}@media (min-width: 1080px){.app{max-width:1220px}}@media (max-width: 560px){.app{padding:16px 12px 28px}}.display,.app h1{font-family:var(--font-display)}.app h1{text-transform:uppercase;font-size:clamp(21px,4.4vw,30px);letter-spacing:.4px}.label{font-family:var(--font-display)}.num{font-variant-numeric:tabular-nums}.tabbar{display:flex;gap:6px;margin-bottom:24px;background:var(--tabBarGlass);padding:6px;border-radius:12px;border:1px solid var(--inputBorder);overflow-x:auto;position:sticky;top:10px;z-index:20;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);scrollbar-width:none}.tabbar::-webkit-scrollbar{display:none}.tabbar button{flex:1;min-width:92px;padding:10px 12px;border-radius:8px;border:none;cursor:pointer;font-weight:600;font-size:12px;white-space:nowrap;font-family:var(--font-display);letter-spacing:.3px;transition:background .15s,color .15s,transform .1s}.tabbar button:active{transform:scale(.97)}@media (max-width: 560px){.tabbar{top:6px;margin-bottom:18px}.tabbar button{min-width:78px;font-size:11px;padding:9px 8px}}.tab-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}.viz-panel{display:flex;flex-direction:column;gap:16px;min-width:0}@media (min-width: 1080px){.tab-grid{grid-template-columns:minmax(0,1fr) 332px}.viz-panel{position:sticky;top:72px}}.grid{display:grid;gap:12px;min-width:0}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g12{grid-template-columns:1fr 2fr}.g13{grid-template-columns:1fr 3fr}.g3s{grid-template-columns:repeat(auto-fit,minmax(108px,1fr))}.granker{grid-template-columns:2fr 1fr 1fr auto}@media (max-width: 720px){.g4{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.g3,.g12,.g13{grid-template-columns:1fr}.granker{grid-template-columns:1fr 1fr auto}.granker>:first-child{grid-column:1 / -1}}@media (max-width: 520px){.g2{grid-template-columns:1fr}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:520px}.app input:focus,.app select:focus{border-color:#f59e0b!important;box-shadow:0 0 0 3px #f59e0b2e}.app input,.app select{transition:border-color .15s,box-shadow .15s}.app button{transition:filter .15s,transform .1s,background .15s,color .15s}.app button:hover{filter:brightness(1.08)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-main>*{animation:fadeUp .42s cubic-bezier(.2,.7,.3,1) both}.tab-main>:nth-child(1){animation-delay:0ms}.tab-main>:nth-child(2){animation-delay:50ms}.tab-main>:nth-child(3){animation-delay:.1s}.tab-main>:nth-child(4){animation-delay:.15s}.tab-main>:nth-child(5){animation-delay:.2s}.tab-main>:nth-child(6){animation-delay:.25s}.tab-main>:nth-child(7){animation-delay:.3s}.tab-main>:nth-child(8){animation-delay:.35s}.viz-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px 14px;box-shadow:var(--shadow);position:relative;overflow:hidden;animation:fadeUp .45s cubic-bezier(.2,.7,.3,1) both}.viz-card:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,#F59E0B88,transparent)}.viz-title{font-family:var(--font-display);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--text)}.viz-sub{font-size:11px;color:var(--dim);margin-top:2px}.viz-card svg{width:100%;height:auto;display:block;margin-top:6px}@keyframes barRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.iso-bar{animation:barRise .55s cubic-bezier(.2,.7,.3,1.15) both}.viz-legend{display:flex;flex-direction:column;gap:5px;margin-top:8px}.viz-leg-row{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}.viz-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.viz-leg-label{color:var(--dim);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viz-leg-val{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.auth-wrap{min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:400px;padding:28px 28px 24px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}
