:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;background:var(--tg-theme-bg-color,#f5f6f8);color:var(--tg-theme-text-color,#17212b);font-synthesis:none;text-rendering:optimizelegibility;--safe-bottom:env(safe-area-inset-bottom,0px);--tabbar-height:calc(76px + var(--safe-bottom));font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{background:linear-gradient(180deg, color-mix(in srgb, var(--tg-theme-bg-color,#f5f6f8), #fff 16%), transparent 240px), var(--tg-theme-bg-color,#f5f6f8);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{min-height:100vh;padding:12px 12px calc(var(--tabbar-height) + 14px)}.topbar{justify-content:space-between;align-items:center;max-width:1080px;margin:0 auto 10px;padding:4px 2px;display:flex}.app-title{font-size:1rem;font-weight:800}.app-subtitle,.eyebrow,.row-main small,.metric small,.band-head span,.card-meta,.inline-empty,.notice{color:var(--tg-theme-hint-color,#687684)}.app-subtitle,.eyebrow{font-size:.74rem}.dev-chip,.category-chip,.state-pill{background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 86%);min-height:24px;color:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), #111827 24%);border-radius:999px;align-items:center;padding:0 8px;font-size:.74rem;font-weight:700;display:inline-flex}.surface{max-width:1080px;margin:0 auto}.screen{gap:12px;display:grid}.screen-head,.band-head,.detail-title,.answer-head,.prompt-row,.action-row,.pager{justify-content:space-between;align-items:center;gap:10px;display:flex}.screen-head h1,.detail-title h2,.band h2,.study-card h2{letter-spacing:0;margin:0}.screen-head h1{font-size:1.45rem}.study-card h2{font-size:1.35rem;line-height:1.25}.band h2,.detail-title h2{font-size:1rem}.icon-button,.primary,.ghost,.danger,.icon-text,.reveal-button,.grade{border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 72%);cursor:pointer;touch-action:manipulation;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;transition:transform .12s,border-color .12s,background .12s;display:inline-flex}.icon-button{background:var(--tg-theme-secondary-bg-color,#fff);width:44px;padding:0}.primary,.ghost,.danger,.icon-text,.reveal-button{padding:0 12px}.primary{border-color:var(--tg-theme-button-color,#3390ec);background:var(--tg-theme-button-color,#3390ec);color:var(--tg-theme-button-text-color,#fff);font-weight:800}.ghost,.icon-text,.reveal-button{background:var(--tg-theme-secondary-bg-color,#fff)}.danger{color:#b4232a;background:#e5484d1a;border-color:#e5484d7a}button:disabled{cursor:not-allowed;opacity:.52}button:not(:disabled):active{transform:scale(.985)}.study-card,.band,.metric,.detail-pane,.list-pane{background:var(--tg-theme-secondary-bg-color,#fff);border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 78%);border-radius:8px}.study-card{gap:14px;min-height:270px;padding:16px;display:grid}.card-meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:.78rem;display:flex}.own-example{color:var(--tg-theme-text-color,#17212b);background:#2f9e4414;border-left:3px solid #2f9e44a8;border-radius:6px;margin:0;padding:10px 12px}.answer-block{background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 92%);border-radius:8px;gap:8px;padding:12px;display:grid}.answer-block p,.readout p{margin:0;line-height:1.45}.grade-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.grade{background:var(--tg-theme-secondary-bg-color,#fff);flex-direction:column;min-height:58px;padding:6px}.grade span{font-weight:800}.grade small{color:var(--tg-theme-hint-color,#687684)}.grade-again{border-color:#e5484d70}.grade-hard{border-color:#f59f0085}.grade-good{border-color:#2f9e4480}.grade-easy{border-color:#1c7ed685}.toolbar{grid-template-columns:minmax(0,1fr) 132px;gap:8px;display:grid}.search-box,.field-row,.toggle-row{border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 72%);background:var(--tg-theme-secondary-bg-color,#fff);border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:0 12px;display:flex}.search-box input,.field-row input,.field-row select,.toolbar select,.edit-form textarea{width:100%;min-width:0;color:var(--tg-theme-text-color,#17212b);background:0 0;border:0;outline:none}.toolbar select{border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 72%);background:var(--tg-theme-secondary-bg-color,#fff);border-radius:8px;min-height:44px;padding:0 10px}.split-view{grid-template-columns:minmax(0,1fr) minmax(280px,.86fr);align-items:start;gap:12px;display:grid}.list-pane,.detail-pane{min-height:340px;overflow:hidden}.deck-row{border:0;border-bottom:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 84%);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 12px;display:flex}.deck-row.active{background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 91%)}.row-main,.row-side{align-items:center;gap:8px;display:flex}.row-main{flex-direction:column;align-items:flex-start;min-width:0}.row-main strong,.row-main small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.row-side{flex-shrink:0}.pager{padding:10px}.detail-body{gap:14px;padding:14px;display:grid}.edit-form{gap:10px;display:grid}.edit-form label{color:var(--tg-theme-hint-color,#687684);gap:6px;font-size:.82rem;display:grid}.edit-form textarea{resize:vertical;border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 72%);background:var(--tg-theme-bg-color,#f5f6f8);border-radius:8px;min-height:82px;padding:10px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.metric{gap:4px;min-height:84px;padding:12px;display:grid}.metric span{color:var(--tg-theme-hint-color,#687684);font-size:.78rem}.metric strong{font-size:1.45rem}.band{padding:14px}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;display:grid}.heatmap{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px;display:grid}.heat{aspect-ratio:1;background:color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 84%);border-radius:4px;min-height:18px}.heat-1{background:#2f9e4447}.heat-2{background:#2f9e448f}.heat-3{background:#2f9e44e0}.spark,.growth{align-items:end;gap:5px;height:112px;padding-top:12px;display:flex}.spark span,.growth span{background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 22%);border-radius:4px 4px 0 0;flex:1;min-width:8px}.growth span{background:#f08c00bd}.bar-rows{gap:9px;margin-top:12px;display:grid}.bar-row{grid-template-columns:86px minmax(0,1fr) 28px;align-items:center;gap:8px;font-size:.84rem;display:grid}.bar-row div{background:color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 84%);border-radius:999px;height:8px;overflow:hidden}.bar-row i{border-radius:inherit;background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 16%);height:100%;display:block}.settings-list{gap:10px;display:grid}.settings-group-head{text-transform:uppercase;letter-spacing:.06em;color:var(--tg-theme-hint-color,#687684);margin:0;font-size:.78rem;font-weight:800}.settings-hint{color:var(--tg-theme-hint-color,#687684);margin:-4px 2px 0;font-size:.76rem;line-height:1.35}.toggle-row,.field-row{justify-content:space-between}.toggle-row span{align-items:center;gap:9px;display:inline-flex}.toggle-row input{width:46px;height:28px;accent-color:var(--tg-theme-button-color,#3390ec);touch-action:manipulation;flex-shrink:0;margin:8px 0}.toggle-row input:focus-visible,.segmented button:focus-visible{outline:2px solid var(--tg-theme-button-color,#3390ec);outline-offset:2px}.field-row span{color:var(--tg-theme-hint-color,#687684);flex-shrink:0}.field-row input,.field-row select{text-align:right;max-width:170px}.field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tabbar{z-index:10;min-height:var(--tabbar-height);padding:8px 6px calc(8px + var(--safe-bottom));border-top:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 78%);background:color-mix(in srgb, var(--tg-theme-secondary-bg-color,#fff), transparent 4%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:repeat(6,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-width:0;min-height:52px;color:var(--tg-theme-hint-color,#687684);background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.66rem;font-weight:700;display:flex}.tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab.active{background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 88%);color:var(--tg-theme-button-color,#3390ec)}.loading,.error-state,.empty-state,.inline-empty{text-align:center;place-items:center;gap:10px;min-height:280px;padding:18px;display:grid}.loading.compact,.error-state.compact,.inline-empty{min-height:120px}.error-state h2,.empty-state h1,.error-state p,.empty-state p{margin:0}.notice{background:color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 91%);border-radius:8px;min-height:34px;padding:8px 10px}.danger-text{color:#b4232a}.spin{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:root{--accent:var(--tg-theme-button-color,#3390ec);--chart-track:color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 84%);--chart-loss:var(--tg-theme-destructive-text-color,#e5484d)}.goal-bar{gap:6px;display:grid}.goal-bar-head{justify-content:space-between;align-items:baseline;font-size:.84rem;display:flex}.goal-bar-head span{color:var(--tg-theme-hint-color,#687684)}.goal-bar-svg{width:100%;height:12px;display:block}.goal-bar-track{fill:var(--chart-track)}.goal-bar-fill{fill:var(--accent);transition:width .42s cubic-bezier(.22,1,.36,1)}.goal-bar-near{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--accent), transparent 40%))}.goal-bar-remaining{color:var(--tg-theme-hint-color,#687684);font-size:.76rem}.chart-sparkline{width:100%;height:auto;color:var(--accent);display:block}.spark-line{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linejoin:round;stroke-linecap:round}.spark-area{fill:color-mix(in srgb, var(--accent), transparent 88%);stroke:none}.spark-dot{fill:currentColor}.spark-label{fill:var(--tg-theme-text-color,#17212b);font-size:9px;font-weight:700}.chart-funnel{gap:8px;margin-top:8px;display:grid}.funnel-row{grid-template-columns:78px minmax(0,1fr) 30px;align-items:center;gap:8px;font-size:.84rem;display:grid}.funnel-label{color:var(--tg-theme-hint-color,#687684);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.funnel-track{width:100%;height:14px;display:block}.funnel-bar{fill:var(--accent)}.funnel-loss{fill:var(--chart-loss);opacity:1}.funnel-count{text-align:right}.chart-forecast{align-items:flex-end;gap:4px;margin-top:8px;display:flex}.forecast-col{flex-direction:column;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.forecast-bar-wrap{justify-content:center;align-items:flex-end;width:100%;height:100%;display:flex}.forecast-bar{background:color-mix(in srgb, var(--accent), transparent 38%);border-radius:4px 4px 0 0;width:70%;min-width:6px}.forecast-bar-hi{background:var(--accent)}.forecast-tick{color:var(--tg-theme-hint-color,#687684);font-size:.66rem}.skill-node{text-align:center;background:0 0;border:0;justify-items:center;gap:2px;padding:4px;display:grid}button.skill-node,button.badge-tile{cursor:pointer}.skill-node-svg{width:56px;height:76px}.skill-connector{stroke:var(--chart-track);stroke-width:3px}.skill-ring-track{fill:none;stroke:var(--chart-track);stroke-width:3px}.skill-ring-fill{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transition:stroke-dasharray .42s}.skill-glyph{stroke:var(--tg-theme-button-text-color,#fff);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.skill-node-label{font-size:.78rem;font-weight:700}.skill-node-detail{color:var(--tg-theme-hint-color,#687684);font-size:.7rem}.skill-locked .skill-core{fill:color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 60%)}.skill-locked .skill-glyph{stroke:var(--tg-theme-hint-color,#91a0af)}.skill-locked .skill-node-label{color:var(--tg-theme-hint-color,#91a0af)}.skill-available .skill-core{fill:#0000;stroke:var(--accent);stroke-width:2px}.skill-completed .skill-core{fill:var(--accent)}.badge-tile{border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 78%);background:var(--tg-theme-secondary-bg-color,#fff);text-align:center;border-radius:10px;justify-items:center;gap:4px;padding:10px 6px;display:grid}.badge-icon-wrap{justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;position:relative}.badge-ring{width:48px;height:48px;position:absolute;inset:0}.badge-ring-track{fill:none;stroke:var(--chart-track);stroke-width:3px}.badge-ring-fill{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transition:stroke-dasharray .42s}.badge-emoji{font-size:1.5rem;line-height:1}.badge-locked .badge-emoji{filter:grayscale();opacity:.4}.badge-title{font-size:.78rem}.badge-locked .badge-title{color:var(--tg-theme-hint-color,#91a0af);font-weight:600}.badge-progress{color:var(--tg-theme-hint-color,#687684);font-size:.68rem}.segmented{background:var(--chart-track);-webkit-overflow-scrolling:touch;border-radius:8px;flex-wrap:wrap;gap:2px;max-width:100%;padding:2px;display:flex;overflow-x:auto}.segmented button{white-space:nowrap;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:6px;min-height:44px;padding:0 12px;font-weight:600}.segmented button[aria-checked=true]{background:var(--tg-theme-secondary-bg-color,#fff);color:var(--accent);font-weight:800;box-shadow:0 1px 2px #00000024}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.spin{animation:none}button:not(:disabled):active{transform:none}}@media (width<=760px){.app-shell{padding:10px 10px calc(var(--tabbar-height) + 12px)}.split-view{grid-template-columns:1fr}.detail-pane{min-height:220px}.metric-grid,.two-col,.grade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=430px){.toolbar,.metric-grid,.two-col,.field-pair{grid-template-columns:1fr}.screen-head h1{font-size:1.28rem}.study-card h2{font-size:1.15rem}.tab span{font-size:.68rem}}.together-blurb{color:var(--tg-theme-hint-color,#687684);margin:10px 0 0;font-size:.86rem;line-height:1.4}.together-member-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.together-member{border:1px solid color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 82%);background:color-mix(in srgb, var(--tg-theme-hint-color,#91a0af), transparent 92%);border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.together-member-name{font-weight:600}.together-member-name-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.together-member-self{color:var(--tg-theme-button-color,#3390ec);background:color-mix(in srgb, var(--tg-theme-button-color,#3390ec), transparent 88%);border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:700}.together-member-stat{color:var(--tg-theme-hint-color,#687684);font-size:.82rem}.together-member-stat strong{color:var(--accent)}.together-leave{justify-content:center;width:100%;margin-top:4px}.together-empty p{max-width:32ch;color:var(--tg-theme-hint-color,#687684);line-height:1.45}
