:root{--canvas:#f5f5f2;--canvas-deep:#edede8;--surface:#fff;--surface-soft:#fafaf8;--surface-tint:#f3f3ef;--ink:#121212;--ink-soft:#666662;--ink-faint:#96968f;--brand:#111;--brand-dark:#000;--brand-deep:#0a0a0a;--brand-wash:#f1f1ed;--brand-wash-strong:#e3e3dd;--line:#e7e7e1;--line-strong:#d6d6cf;--warn-ink:#6f4b16;--warn-wash:#fbf6ea;--warn-line:#eadfc7;--danger:#a33a31;--danger-wash:#fff1ee;--danger-line:#f0cfc9;--ok:#2f6148;--ok-wash:#edf4ef;--favorite:#7a5810;--favorite-wash:#fbf5e8;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:22px;--space-6:30px;--radius-xs:10px;--radius-sm:12px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;--radius-pill:999px;--shadow-xs:0 1px 2px #12121209;--shadow-sm:0 8px 24px #1212120b;--shadow-md:0 16px 42px #12121212;--shadow-lg:0 24px 56px #1212121a;--ease-out:cubic-bezier(.22, 1, .36, 1);--fs-xs:.72rem;--fs-sm:.81rem;--fs-md:.92rem;--fs-lg:1.12rem;--fs-xl:clamp(1.45rem, 4.6vw, 1.85rem);--font-sans:"Noto Sans", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-sans);color:var(--ink);background:var(--canvas);-webkit-text-size-adjust:100%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{min-height:100%}html:focus-within{scroll-behavior:smooth}body,#root{min-height:100vh}body{background:var(--canvas);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button,a,select,input,textarea{touch-action:manipulation}img,svg{max-width:100%}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--brand-dark)}p{margin:0}h1,h2,h3,h4{letter-spacing:-.01em;line-height:1.3}::selection{background:var(--ink);color:#fff}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #1111114d}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--brand-deep);color:#fff;padding:10px 16px;font-weight:650;text-decoration:none;transition:top .16s;position:fixed;top:-80px;left:16px}.skip-link:focus{top:12px}.app-shell{min-height:100vh}.app-main{min-width:0}.content{width:min(100% - 24px,880px);padding:max(14px, env(safe-area-inset-top)) 0 calc(112px + env(safe-area-inset-bottom));margin:0 auto}.brand-mark{background:var(--ink);color:#fff;border-radius:10px;flex:0 0 31px;justify-content:center;align-items:center;width:31px;height:31px;font-size:.82rem;font-weight:700;display:inline-flex;box-shadow:0 4px 10px #1212121a}.page{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);min-width:0;animation:page-in .24s var(--ease-out) both;margin:8px 0 0;padding:20px 16px}@supports (padding:max(0px)){.page{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}}.page-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;margin-bottom:16px;display:flex}.page-heading>div{min-width:0}.page-heading h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.2rem,3.6vw,1.4rem);font-weight:700}.page-heading .muted{margin-top:4px}.page-heading>strong{color:var(--brand-dark);white-space:nowrap;font-size:.88rem}.eyebrow{color:var(--ink-soft);letter-spacing:.055em;text-transform:uppercase;margin:0 0 5px;font-size:.73rem;font-weight:650}.back-link{min-height:34px;color:var(--ink-soft);align-items:center;gap:5px;margin:-4px 0 6px;font-size:.82rem;text-decoration:none;display:inline-flex}.back-link svg{width:16px;height:16px}.back-link:hover{color:var(--brand-dark)}.loading,.error{text-align:center;color:var(--ink-soft);padding:34px 14px}.error{color:var(--danger)}.empty{text-align:center;color:var(--ink-soft);justify-items:center;gap:8px;padding:38px 18px;display:grid}.empty h3{color:var(--ink);margin:0;font-size:1.08rem}.empty p{max-width:40ch;margin:0;font-size:.9rem}.empty .primary-button,.empty .secondary-button{margin-top:8px}.empty-icon{width:34px;height:34px;color:var(--brand)}.empty-icon[data-lucide=circle-alert]{color:var(--warn-ink)}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.muted,.data-source{color:var(--ink-soft);font-size:var(--fs-sm)}.data-source{align-items:center;gap:6px;margin:0 0 16px;display:flex}.data-source svg{width:16px;height:16px;color:var(--brand)}.success{border-radius:var(--radius-sm);background:var(--ok-wash);color:var(--ok);border:1px solid #cbe8d9;margin:0 0 16px;padding:11px 14px;font-size:.9rem}.inline-error{border:1px solid var(--danger-line);border-radius:var(--radius-sm);background:var(--danger-wash);color:var(--danger);margin:10px 0;padding:10px 12px;font-size:.9rem}.warning{border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);color:var(--warn-ink);border-left:4px solid #b87316;margin:0;padding:13px 14px;font-size:.88rem;line-height:1.65}.notice{color:var(--warn-ink);font-size:.86rem}.ocr-status{border:1px solid var(--brand-wash-strong);border-radius:var(--radius-sm);background:var(--brand-wash);color:var(--brand-dark);margin:8px 0;padding:10px 12px;font-size:.86rem}.rich-text{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.primary-button,.secondary-button,.ghost-button,.danger-button{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:6px;min-height:44px;padding:0 16px;font-size:.88rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s;display:inline-flex}.primary-button{border:1px solid var(--ink);background:var(--ink);color:#fff;box-shadow:0 7px 16px #1212121f}.primary-button:hover{background:#000;border-color:#000;box-shadow:0 9px 20px #12121229}.secondary-button{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.secondary-button:hover{background:var(--surface-tint);border-color:#bcbcb4}.ghost-button{color:var(--ink);background:0 0;border:1px solid #0000}.ghost-button:hover{background:var(--surface-tint)}.danger-button{border:1px solid var(--danger);background:var(--danger);color:#fff}.danger-button:hover{background:#8d3028;border-color:#8d3028}.ghost-button.danger{color:var(--danger)}.ghost-button.danger:hover{background:var(--danger-wash)}.primary-button:active,.secondary-button:active,.ghost-button:active,.danger-button:active{transform:scale(.985)}.primary-button svg,.secondary-button svg,.ghost-button svg,.danger-button svg{width:18px;height:18px}.primary-button:disabled,.secondary-button:disabled{box-shadow:none}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:11px;display:flex}.section-heading h3{align-items:center;gap:7px;margin:0;font-size:1rem;display:flex}.section-heading h3 svg{width:18px;height:18px;color:var(--brand)}.section-heading a{font-size:var(--fs-sm);color:var(--brand-dark);flex:none;text-decoration:none}.section-heading a:hover{text-decoration:underline}.progress-block{margin:14px 0 0}.progress-block .muted{margin:7px 0 0}.progress-bar{border-radius:var(--radius-pill);background:var(--line);height:8px;overflow:hidden}.progress-bar>span{border-radius:inherit;background:var(--brand);height:100%;transition:width .26s cubic-bezier(.22,1,.36,1);display:block}.bottom-nav{z-index:30;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #12121209}.bottom-nav>.nav-brand{display:none}.nav-links{flex:1;align-items:stretch;gap:3px;display:flex}.bottom-nav a{min-width:0;min-height:50px;color:var(--ink-faint);border-radius:13px;flex:1;justify-content:center;align-items:center;padding:5px 3px;font-size:.69rem;font-weight:600;line-height:1.15;text-decoration:none;transition:color .15s,background .15s,transform .11s;display:flex}.bottom-nav .nav-icon{flex:none;width:20px;height:20px;margin-bottom:2px}.nav-links a{flex-direction:column;gap:1px}.bottom-nav a:active{transform:scale(.94)}.bottom-nav a.active{color:var(--ink);background:var(--surface-tint)}.bottom-nav a.nav-primary{color:#fff;background:var(--ink);flex:0 0 58px;box-shadow:0 8px 18px #1212122e}.bottom-nav a.nav-primary:hover{background:#000}.bottom-nav a.nav-primary.active{color:#fff;background:#000}.bottom-nav .nav-label{white-space:nowrap}.nav-footer{display:none}.home-page.page{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.home-dashboard{grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;display:grid}.home-block{min-width:0}.home-enter{animation:home-enter .54s var(--ease-out) both;animation-delay:var(--intro-delay,0s)}.home-hero{justify-content:flex-start;align-items:flex-start;gap:18px;padding:4px 2px 6px;display:flex}.home-hero-copy{min-width:0}.home-kicker,.home-section-kicker{color:var(--ink-faint);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.61rem;font-weight:700}.home-hero h1{letter-spacing:-.035em;max-width:22em;margin:7px 0 0;font-size:clamp(1.5rem,3.6vw,2.4rem);font-weight:700;line-height:1.18}.home-subline{max-width:56ch;color:var(--ink-soft);margin:8px 0 0;font-size:.84rem;line-height:1.6}.home-date{color:var(--ink-faint);align-items:center;gap:5px;margin:9px 0 0;font-size:.7rem;display:flex}.home-date svg{width:14px;height:14px}.home-goal{border:1px solid var(--line);background:var(--surface);min-height:0;box-shadow:var(--shadow-sm);border-radius:22px;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:18px;padding:21px;display:grid}.home-goal-copy{min-width:0}.home-goal h2,.home-section-head h2{color:var(--ink);letter-spacing:-.025em;margin:5px 0 0;font-size:1.08rem;font-weight:700}.home-goal-numbers{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:276px;margin:16px 0 0;display:grid}.home-goal-numbers>div{justify-items:start;gap:0;min-width:0;display:grid}.home-goal-numbers strong{color:var(--ink);letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:1.85rem;font-weight:700;line-height:1}.home-goal-numbers span{color:var(--ink-faint);white-space:nowrap;margin-top:4px;font-size:.64rem}.home-goal-status{max-width:46ch;color:var(--ink-soft);margin:14px 0 0;font-size:.8rem;line-height:1.58}.home-goal-actions{flex-wrap:wrap;align-items:center;gap:7px;margin-top:15px;display:flex}.home-primary-action{border-radius:var(--radius-pill);white-space:nowrap;flex:none;min-height:44px;padding:0 18px;font-size:.82rem;box-shadow:0 7px 16px #12121221}.home-primary-action svg{width:17px;height:17px}.goal-adjust-trigger{border:1px solid var(--line-strong);border-radius:var(--radius-pill);min-height:44px;color:var(--ink-soft);background:0 0;align-items:center;gap:5px;padding:0 13px;font-size:.77rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .11s;display:inline-flex}.goal-adjust-trigger svg{width:15px;height:15px}.goal-adjust-trigger:hover{background:var(--surface-tint);color:var(--ink);border-color:#c4c4bc}.goal-adjust-trigger:active{transform:scale(.97)}.goal-form{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);grid-column:1/-1;gap:7px;width:min(100%,540px);padding:13px;display:grid}.goal-form>label{color:var(--ink);font-size:.76rem;font-weight:650}.goal-form-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.goal-form-row input{border:1px solid var(--line-strong);background:var(--surface);font-variant-numeric:tabular-nums;border-radius:10px;width:92px;min-height:42px;padding:6px 10px;font-size:1rem}.goal-form-row input:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #11111114}.goal-form-row>span{color:var(--ink-soft);font-size:.78rem}.goal-save,.goal-cancel{border-radius:10px;min-height:42px;padding:0 13px;font-size:.78rem;font-weight:650}.goal-save{border:1px solid var(--ink);background:var(--ink);color:#fff}.goal-save:hover{background:#000}.goal-cancel{border:1px solid var(--line);color:var(--ink-soft);background:0 0}.goal-cancel:hover{background:var(--surface-tint)}.goal-hint{color:var(--ink-faint);margin:0;font-size:.68rem;line-height:1.55}.goal-message{color:var(--ok);margin:10px 0 0;font-size:.74rem}.goal-form .inline-error{margin:2px 0 0;padding:8px 10px;font-size:.76rem}.home-goal-visual{justify-items:center;gap:6px;display:grid}.home-goal-caption{color:var(--ink-faint);margin:0;font-size:.67rem}.goal-ring{aspect-ratio:1;place-items:center;width:150px;display:grid;position:relative}.goal-ring svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.goal-ring circle{fill:none}.goal-ring-track{stroke:var(--line);stroke-width:8px}.goal-ring-value{stroke:var(--ink);stroke-width:8px;stroke-linecap:round;transform-origin:60px 60px;transform:rotate(-90deg)}.goal-ring-content{z-index:1;justify-items:center;gap:2px;display:grid;position:relative}.goal-percent{color:var(--ink);letter-spacing:-.055em;font-variant-numeric:tabular-nums;font-size:1.85rem;font-weight:700;line-height:1}.goal-percent-empty{color:var(--ink-faint)}.goal-ring-content small{color:var(--ink-faint);font-size:.63rem}.home-performance{border-top:1px solid var(--ink);flex-direction:column;min-width:0;padding:18px 0 0;display:flex}.home-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.home-section-head>div{min-width:0}.home-section-link{min-height:26px;color:var(--ink-soft);white-space:nowrap;flex:none;align-items:center;gap:3px;font-size:.69rem;font-weight:600;text-decoration:none;display:inline-flex}.home-section-link svg{width:12px;height:12px}.home-section-link:hover{color:var(--ink)}.performance-main{gap:15px;margin-top:15px;display:grid}.performance-primary{border-bottom:1px solid var(--line);align-content:start;gap:1px;padding:2px 0 14px;display:grid}.metric-scope{color:var(--ink-faint);letter-spacing:.02em;font-size:.61rem;font-weight:600}.metric-label{color:var(--ink-soft);font-size:.73rem}.performance-primary>strong{color:var(--ink);letter-spacing:-.065em;font-variant-numeric:tabular-nums;margin:3px 0 1px;font-size:clamp(2.1rem,4.2vw,2.75rem);font-weight:700;line-height:.98}.performance-primary>p,.performance-metric>p{color:var(--ink-faint);margin:0;font-size:.65rem;line-height:1.45}.performance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;display:grid}.performance-metric{align-content:start;gap:1px;min-width:0;display:grid}.metric-small{min-width:0;color:var(--ink);letter-spacing:-.045em;font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;margin:3px 0 1px;font-size:1.28rem;font-weight:700;line-height:1.1;display:flex}.metric-small.metric-empty,.metric-empty{color:var(--ink-faint);letter-spacing:-.02em;font-size:.96rem;font-weight:600}.metric-icon{width:15px;height:15px;color:var(--ink-soft)}.answer-counts{color:var(--ink-faint);flex-wrap:wrap;gap:5px 10px;margin-top:5px;font-size:.68rem;display:flex}.answer-counts strong{color:var(--ink);font-size:.82rem;font-weight:700}.performance-empty-line{color:var(--ink-faint);margin:4px 0 0;font-size:.7rem}.performance-source{color:var(--ink-faint);margin:auto 0 0;padding-top:14px;font-size:.67rem;line-height:1.55}.home-panel{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow-xs);border-radius:20px;padding:18px}.range-chip{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:25px;color:var(--ink-soft);white-space:nowrap;align-items:center;padding:0 9px;font-size:.64rem;font-weight:600;display:inline-flex}.home-trend{flex-direction:column;height:100%;display:flex}.trend-chart{min-width:0;margin-top:15px}.trend-canvas{gap:8px;min-width:0;display:flex}.trend-y-labels{height:184px;color:var(--ink-faint);flex-direction:column;flex:0 0 32px;justify-content:space-between;align-items:flex-end;padding:0;font-size:.6rem;line-height:1;display:flex}.trend-plot{touch-action:pan-y;flex:1;min-width:0;height:184px;margin-right:9px;position:relative}.trend-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.trend-grid-line{stroke:#edede8;stroke-width:1px}.trend-path{fill:none;stroke:var(--ink);stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round}.trend-chart.is-entering .trend-path{stroke-dasharray:100;stroke-dashoffset:100px;animation:trend-draw .92s var(--ease-out) .12s forwards}.trend-dot{z-index:2;border:1.5px solid var(--ink);background:var(--surface);pointer-events:none;width:8px;height:8px;box-shadow:0 0 0 3px var(--surface);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.trend-dot.is-latest{background:var(--ink)}.trend-dot.is-active{background:var(--ink);width:11px;height:11px;box-shadow:0 0 0 4px var(--surface), 0 0 0 5px var(--ink)}.trend-chart.is-entering .trend-dot{animation:point-in .28s var(--ease-out) both;animation-delay:var(--dot-delay,0s)}.trend-hit{z-index:3;background:0 0;border:0;border-radius:50%;width:44px;height:44px;padding:0;position:absolute;transform:translate(-50%,-50%)}.trend-hit:focus-visible{outline-offset:1px;outline:3px solid #11111147}.trend-tooltip{z-index:4;background:var(--ink);color:#fff;pointer-events:none;border-radius:11px;gap:1px;width:max-content;max-width:190px;padding:9px 11px 10px;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 13px));box-shadow:0 10px 26px #1212122e}.trend-tooltip:after{content:"";background:var(--ink);width:8px;height:8px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.trend-tooltip.edge-left{transform:translate(-12%,calc(-100% - 13px))}.trend-tooltip.edge-left:after{left:18%}.trend-tooltip.edge-right{transform:translate(-88%,calc(-100% - 13px))}.trend-tooltip.edge-right:after{left:82%}.trend-tooltip strong{letter-spacing:-.03em;font-size:1.02rem;line-height:1.1}.trend-tooltip span{color:#ffffffa8;font-size:.66rem}.trend-tooltip small{color:#ffffffc2;white-space:nowrap;font-size:.64rem}.trend-x-labels{color:var(--ink-faint);text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));margin:8px 9px 0 42px;font-size:.62rem;display:grid}.trend-x-labels .has-data{color:var(--ink-soft);font-weight:650}.trend-note{color:var(--ink-faint);margin:12px 0 0;font-size:.7rem}.trend-foot{color:var(--ink-faint);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:15px;font-size:.66rem;display:flex}.trend-foot>span{line-height:1.45}.trend-empty{text-align:center;min-height:232px;color:var(--ink-soft);align-content:center;place-items:center;gap:7px;margin-top:12px;display:grid}.trend-empty p{margin:0;font-size:.84rem}.trend-empty small{max-width:34ch;color:var(--ink-faint);font-size:.68rem;line-height:1.55}.trend-empty-mark{opacity:.5;align-items:flex-end;gap:4px;height:38px;display:flex}.trend-empty-mark span{background:var(--line-strong);border-radius:3px;width:5px}.trend-empty-mark span:first-child{height:12px}.trend-empty-mark span:nth-child(2){height:20px}.trend-empty-mark span:nth-child(3){height:15px}.trend-empty-mark span:nth-child(4){height:29px}.trend-empty-mark span:nth-child(5){height:22px}.trend-empty-mark span:nth-child(6){height:34px}.trend-empty-mark span:nth-child(7){height:27px}.home-weak{height:100%}.weak-list{margin:15px 0 0;padding:0;list-style:none}.weak-list li+li{border-top:1px solid var(--line)}.weak-row{color:var(--ink);border-radius:10px;gap:5px;padding:12px 6px;text-decoration:none;transition:background .14s,transform .12s;display:grid}.weak-row:hover{background:var(--surface-tint)}.weak-row:active{transform:scale(.992)}.weak-row-top{align-items:center;gap:8px;display:flex}.weak-row-top svg{width:15px;height:15px;color:var(--ink-faint);flex:none}.weak-name{letter-spacing:-.01em;font-size:.88rem;font-weight:700}.weak-score{color:var(--ink-soft);white-space:nowrap;margin-left:auto;font-size:.68rem}.weak-meta{color:var(--ink-faint);flex-wrap:wrap;gap:3px 9px;font-size:.65rem;display:flex}.weak-accuracy-track{background:var(--line);border-radius:3px;width:100%;height:3px;margin-top:3px;display:block;overflow:hidden}.weak-accuracy-track>span{border-radius:inherit;background:var(--ink);transform-origin:0;width:100%;height:100%;transition:transform .46s var(--ease-out);display:block}.weak-list.compact{margin-top:9px}.weak-list.compact .weak-row{padding:8px 6px}.weak-accumulating{margin-top:18px}.weak-empty-title{color:var(--ink);margin:0;font-size:.88rem;font-weight:700}.weak-empty-copy{color:var(--ink-soft);margin:6px 0 0;font-size:.74rem;line-height:1.65}.panel-empty{text-align:center;min-height:170px;color:var(--ink-soft);align-content:center;justify-items:center;gap:8px;padding:20px 12px;display:grid}.panel-empty svg{width:25px;height:25px;color:var(--ink-faint)}.panel-empty p{max-width:30ch;margin:0;font-size:.78rem;line-height:1.6}.home-attention{height:100%}.attention-note{max-width:12ch;color:var(--ink-faint);text-align:right;font-size:.62rem;line-height:1.4}.attention-list{margin-top:15px}.attention-item{border-top:1px solid var(--line);gap:3px;padding:11px 0;display:grid}.attention-item:first-child{border-top:0;padding-top:0}.attention-item:last-child{padding-bottom:0}.attention-item-head{align-items:center;gap:8px;display:flex}.attention-icon{background:var(--surface-tint);width:27px;height:27px;color:var(--ink-soft);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.attention-icon svg{width:14px;height:14px}.attention-item.tone-warning .attention-icon{background:var(--warn-wash);color:var(--warn-ink)}.attention-label{color:var(--ink-soft);font-size:.74rem}.attention-count{color:var(--ink);letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.2rem;font-weight:700;line-height:1}.attention-meta{color:var(--ink-faint);margin:1px 0 0 35px;font-size:.62rem}.attention-detail{-webkit-line-clamp:2;color:var(--ink-soft);overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:2px 0 0 35px;font-size:.72rem;line-height:1.45;display:-webkit-box;overflow:hidden}.attention-link{color:var(--ink);justify-self:start;align-items:center;gap:3px;margin:4px 0 0 35px;font-size:.68rem;font-weight:650;text-decoration:none;display:inline-flex}.attention-link svg{width:12px;height:12px}.attention-link:hover{text-underline-offset:3px;text-decoration:underline}.attention-clear{color:var(--ink-faint);margin:4px 0 0 35px;font-size:.64rem}.home-recent{height:100%}.recent-list{margin:13px 0 0;padding:0;list-style:none}.recent-list li+li{border-top:1px solid var(--line)}.recent-row{min-width:0;color:var(--ink);border-radius:10px;grid-template-columns:25px minmax(0,1fr) auto 14px;align-items:center;gap:10px;padding:11px 3px;text-decoration:none;transition:background .14s;display:grid}.recent-row:hover{background:var(--surface-tint)}.recent-index{color:var(--ink-faint);font-variant-numeric:tabular-nums;align-self:start;padding-top:2px;font-size:.61rem}.recent-copy{gap:3px;min-width:0;display:grid}.recent-title{-webkit-line-clamp:2;color:var(--ink);overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.82rem;font-weight:600;line-height:1.5;display:-webkit-box;overflow:hidden}.recent-meta{color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;font-size:.64rem;overflow:hidden}.review-state{border-radius:var(--radius-pill);background:var(--surface-tint);min-height:23px;color:var(--ink-soft);white-space:nowrap;align-items:center;padding:0 8px;font-size:.62rem;font-weight:600;display:inline-flex}.review-state.tone-strong{background:var(--ink);color:#fff}.review-state.tone-warn{background:var(--warn-wash);color:var(--warn-ink)}.review-state.tone-danger{background:var(--danger-wash);color:var(--danger)}.recent-chevron{width:14px;height:14px;color:var(--ink-faint);transition:transform .16s}.recent-row:hover .recent-chevron{transform:translate(2px)}.home-onboarding{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-xs);border-radius:22px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px;padding:24px;display:grid}.home-onboarding-copy h2{letter-spacing:-.03em;margin:6px 0 0;font-size:1.28rem;font-weight:700}.home-onboarding-copy>p:not(.home-section-kicker){max-width:42ch;color:var(--ink-soft);margin:8px 0 16px;font-size:.81rem;line-height:1.65}.home-steps{margin:0;padding:0;list-style:none}.home-steps li{border-top:1px solid var(--line);grid-template-columns:30px minmax(0,1fr);gap:12px;padding:12px 0;display:grid}.home-steps li:first-child{border-top:0;padding-top:0}.home-steps li:last-child{padding-bottom:0}.home-steps li>span:first-child{color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:3px;font-size:.62rem}.home-steps strong{color:var(--ink);font-size:.86rem;display:block}.home-steps p{color:var(--ink-soft);margin:4px 0 0;font-size:.76rem;line-height:1.6}.home-loading{gap:22px;min-height:60vh;display:grid}.home-loading-head{gap:10px;padding-top:8px;display:grid}.skeleton-line,.skeleton-panel{background:var(--line);animation:1.3s ease-in-out infinite skeleton-pulse;display:block}.skeleton-line{border-radius:7px;height:12px}.skeleton-line-sm{width:120px;height:9px}.skeleton-line-lg{border-radius:12px;width:min(72%,460px);height:38px}.skeleton-line-md{width:min(52%,340px)}.home-loading-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.skeleton-panel{border-radius:20px;height:150px}.skeleton-panel-tall{height:260px}.reveal{opacity:0;transform:translateY(12px)}.reveal.is-visible{animation:reveal-in .52s var(--ease-out) both;animation-delay:var(--reveal-delay,0s)}.animated-number{font-variant-numeric:tabular-nums}@keyframes home-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes reveal-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes trend-draw{to{stroke-dashoffset:0}}@keyframes point-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes skeleton-pulse{0%,to{opacity:.62}50%{opacity:1}}@media (width<=600px){.home-hero{padding-top:0}.home-hero h1{max-width:none;font-size:clamp(1.5rem,6.4vw,1.75rem)}.home-subline{font-size:.8rem}.home-goal{border-radius:20px;grid-template-columns:minmax(0,1fr) 100px;gap:8px;padding:15px}.goal-ring{width:100px}.goal-percent{font-size:1.32rem}.goal-ring-content small{font-size:.57rem}.home-goal-caption{font-size:.62rem}.home-goal-numbers{gap:8px;margin-top:12px}.home-goal-numbers strong{font-size:1.48rem}.home-goal-numbers span{font-size:.59rem}.home-goal-status{margin-top:10px;font-size:.74rem;line-height:1.55}.home-goal-actions{gap:6px;margin-top:11px}.home-primary-action{min-height:42px;padding:0 12px;font-size:.76rem}.home-primary-action svg{width:15px;height:15px}.goal-adjust-trigger{min-height:42px;padding:0 11px;font-size:.73rem}.home-goal h2,.home-section-head h2{font-size:.98rem}.home-panel{border-radius:18px;padding:15px}.home-performance{padding-top:14px}.performance-main{margin-top:13px}.performance-primary>strong{font-size:2.15rem}.performance-grid{gap:12px 10px}.metric-small{font-size:1.12rem}.trend-y-labels{flex-basis:28px;height:166px;font-size:.58rem}.trend-plot{height:166px}.trend-x-labels{margin-left:36px;font-size:.58rem}.trend-foot{flex-direction:column;align-items:flex-start;gap:5px}.weak-numbers{font-size:.57rem}.attention-note{display:none}.attention-meta,.attention-detail,.attention-link,.attention-clear{margin-left:0}.attention-item-head{gap:6px}.recent-row{grid-template-columns:21px minmax(0,1fr) auto;gap:8px}.recent-chevron{display:none}.recent-title{font-size:.78rem}.home-onboarding{border-radius:20px;grid-template-columns:1fr;gap:18px;padding:18px}}@media (width>=1100px){.home-dashboard{grid-template-columns:repeat(12,minmax(0,1fr));gap:17px 18px}.home-hero{grid-column:1/-1}.home-goal{grid-column:span 7}.home-goal.is-empty{grid-column:1/-1}.home-performance{grid-column:span 5}.home-trend-panel{grid-column:span 7;min-width:0}.home-weak-panel,.home-attention-panel{grid-column:span 5;min-width:0}.home-recent-panel{grid-column:span 7;min-width:0}.home-onboarding{grid-column:1/-1}}.week-chart{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:7px;padding:14px 8px 4px;display:grid}.week-day{justify-items:center;gap:3px;min-width:0;display:grid}.week-count{color:var(--brand-dark);font-size:.68rem;font-weight:700;line-height:1}.week-count.muted{color:var(--ink-faint);font-weight:400}.week-bar-track{border-bottom:1px solid var(--line);justify-content:center;align-items:flex-end;width:100%;height:66px;display:flex}.week-bar{background:var(--brand);border-radius:6px 6px 3px 3px;width:min(100%,22px);transition:height .28s;display:block}.week-bar-empty{background:var(--line-strong)}.week-day small{color:var(--ink-soft);white-space:nowrap;font-size:.65rem}.editor-page{gap:14px;animation:none;display:grid}.editor-topbar{align-items:center;gap:10px;min-width:0;display:flex}.editor-back{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-height:40px;color:var(--ink-soft);white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:3px;padding:0 9px;font-size:.78rem;font-weight:650;text-decoration:none;transition:color .15s,background .15s,border-color .15s,transform .11s;display:inline-flex}.editor-back svg{width:17px;height:17px}.editor-back:hover{border-color:var(--line-strong);background:var(--surface-tint);color:var(--ink)}.editor-back:active{transform:scale(.97)}.editor-title{min-width:0}.editor-title h1{letter-spacing:-.03em;margin:0;font-size:clamp(1.2rem,4.8vw,1.5rem);font-weight:700}.editor-title p{color:var(--ink-faint);margin:2px 0 0;font-size:.7rem;line-height:1.45}.save-notice{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-tint);color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.save-notice>span{align-items:center;gap:6px;font-size:.84rem;font-weight:650;display:inline-flex}.save-notice svg{width:17px;height:17px}.save-actions{flex-wrap:wrap;gap:7px;display:flex}.save-actions .secondary-button{background:var(--surface);min-height:38px;padding:0 10px;font-size:.78rem}.question-form{gap:12px;display:grid}.editor-group{border:1px solid var(--line);background:var(--surface);border-radius:16px;min-width:0;transition:background .18s,border-color .18s;overflow:hidden}.editor-group.is-open{border-color:var(--line-strong);background:var(--surface-soft)}.editor-group-toggle{width:100%;min-height:58px;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:10px 12px;display:flex}.editor-group-toggle:hover{background:#ffffff75}.group-icon{background:var(--surface-tint);width:30px;height:30px;color:var(--ink-soft);border-radius:9px;flex:0 0 30px;place-items:center;transition:color .16s,background .16s;display:grid}.editor-group.is-open .group-icon{background:var(--ink);color:#fff}.group-icon svg{width:16px;height:16px}.group-copy{flex:1;gap:1px;min-width:0;display:grid}.group-title{letter-spacing:-.01em;font-size:.93rem;font-weight:700}.group-subtitle{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:500;line-height:1.45;overflow:hidden}.editor-group-toggle>.pending-chip{flex:none;margin-left:0}.group-chevron{width:17px;height:17px;color:var(--ink-faint);transition:transform .19s var(--ease-out);flex:none}.editor-group.is-open .group-chevron{transform:rotate(180deg)}.editor-collapse{opacity:0;transition:grid-template-rows .19s var(--ease-out), opacity .16s ease;grid-template-rows:0fr;display:grid}.editor-group.is-open .editor-collapse{opacity:1;grid-template-rows:1fr}.editor-collapse-inner{min-height:0;overflow:hidden}.editor-group-body{gap:14px;min-width:0;padding:2px 12px 14px;display:grid}.question-form .editor-group-body label:not(.camera-input):not(.capture-language){gap:6px;min-width:0;font-size:.84rem;font-weight:650;display:grid}.question-form input,.question-form textarea,.question-form select,.filter-panel select,.sort-select select,.import-preview select,.category-block select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:46px;color:var(--ink);padding:10px 12px;font-size:1rem;font-weight:400;transition:border-color .15s,box-shadow .15s}.question-form textarea{resize:vertical;min-height:88px;line-height:1.65}.question-form textarea.stem-input{min-height:116px;max-height:360px;overflow-y:auto}.question-form textarea.explanation-input{min-height:132px}.question-form input:focus,.question-form textarea:focus,.question-form select:focus,.filter-panel select:focus,.sort-select select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #11111117}.question-form input::placeholder,.question-form textarea::placeholder{color:var(--ink-faint)}.editor-pair{grid-template-columns:1fr;gap:12px;min-width:0;display:grid}.field-label-text{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:inline-flex}.required-mark{border-radius:var(--radius-pill);background:var(--ink);color:#fff;margin-left:1px;padding:1px 6px;font-size:.62rem;font-weight:700}.optional-mark{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-height:18px;color:var(--ink-faint);align-items:center;padding:0 6px;font-size:.62rem;font-weight:600;line-height:1;display:inline-flex}.pending-chip{border-radius:var(--radius-pill);background:var(--warn-wash);color:var(--warn-ink);margin-left:1px;padding:1px 6px;font-size:.64rem;font-weight:600}.field-hint{color:var(--ink-faint);margin:0;font-size:.7rem;font-weight:400;line-height:1.55}.field-error{color:var(--danger);margin:0;font-size:.76rem;font-weight:500}.field-label-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:7px;min-height:28px;display:flex}.option-add{border:1px solid var(--line-strong);background:var(--surface);min-height:38px;color:var(--ink-soft);border-radius:9px;justify-content:center;align-items:center;gap:3px;padding:0 9px;font-size:.74rem;font-weight:650;transition:background .15s,color .15s,transform .11s;display:inline-flex}.option-add svg{width:15px;height:15px}.option-add:hover{background:var(--surface-tint);color:var(--ink)}.option-add:active{transform:scale(.97)}.option-list{gap:7px;display:grid}.option-row{grid-template-columns:28px minmax(0,1fr) 44px;align-items:center;gap:7px;min-width:0;display:grid}.option-letter{background:var(--surface-tint);width:28px;height:28px;color:var(--ink-soft);border-radius:8px;place-items:center;font-size:.75rem;font-weight:700;display:grid}.option-row input{min-height:44px;padding:8px 10px}.option-remove{width:44px;height:44px;color:var(--ink-faint);background:0 0;border:0;border-radius:10px;place-items:center;padding:0;transition:color .15s,background .15s;display:grid}.option-remove svg{width:16px;height:16px}.option-remove:hover:not(:disabled){background:var(--danger-wash);color:var(--danger)}.option-remove:disabled{opacity:.28}.ocr-review-note{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-tint);color:var(--ink-soft);margin:0;padding:9px 11px;font-size:.78rem;line-height:1.55}.draft-notice{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-tint);color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;font-size:.8rem;display:flex}.draft-notice .ghost-button{min-height:34px;padding:0 9px;font-size:.76rem}.image-section.editor-image-tools{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;gap:9px;min-width:0;margin-top:2px;padding:14px 0 0;display:grid}.image-tools-heading{color:var(--ink);align-items:center;gap:6px;font-size:.82rem;font-weight:650;display:flex}.capture-toolbar{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.question-form input.capture-file-input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;min-height:0;padding:0;position:absolute}.capture-tool{border:1px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;gap:5px;padding:0 12px;font-size:.8rem;font-weight:650;line-height:1;text-decoration:none;transition:background .15s,border-color .15s,transform .11s;display:inline-flex}.capture-tool svg{width:17px;height:17px}.capture-tool:hover{background:var(--surface-tint);border-color:#c4c4bc}.capture-tool:active{transform:scale(.98)}.camera-input{position:relative}.camera-input input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.capture-language{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink-faint);border-radius:12px;align-items:center;gap:4px;padding:0 8px;font-size:.7rem;font-weight:600;display:inline-flex}.capture-language select{width:auto;min-height:0;color:var(--ink);background:0 0;border:0;border-radius:0;padding:0 2px;font-size:.78rem;font-weight:650}.capture-language select:focus{box-shadow:none;border-color:#0000}.capture-language:focus-within{border-color:var(--ink);box-shadow:0 0 0 2px #11111114}.privacy-note{color:var(--ink-faint);margin:0;font-size:.7rem;line-height:1.55}.pending-note{color:var(--ink-soft);margin:0;font-size:.74rem}.editor-image-tools .ocr-status,.editor-image-tools .inline-error{margin:0;padding:9px 11px;font-size:.78rem}.image-preview-list{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.image-preview-list figure{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:116px;margin:0;padding:5px}.image-preview-list img{object-fit:contain;background:var(--surface-tint);border-radius:6px;width:100%;height:78px;transition:transform .16s}.image-preview-list figcaption{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:2px;margin-top:3px;font-size:.68rem;display:flex}.image-preview-list figcaption span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1 0 100%;overflow:hidden}.image-preview-list button{min-height:32px;color:var(--brand);background:0 0;border:0;padding:2px 5px;font-size:.7rem}.paste-import{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin:0;overflow:hidden}.paste-import>summary{cursor:pointer;min-height:46px;color:var(--ink);align-items:center;gap:7px;padding:9px 12px;font-size:.82rem;font-weight:650;list-style:none;display:flex}.paste-import>summary::-webkit-details-marker{display:none}.paste-import>summary:hover{background:var(--surface-soft)}.paste-import>summary svg{width:17px;height:17px;color:var(--ink-soft);flex:none}.paste-import-title{flex:none}.paste-import-hint{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:500;overflow:hidden}.paste-chevron{transition:transform .19s var(--ease-out);margin-left:auto}.paste-import[open] .paste-chevron{transform:rotate(180deg)}.paste-import[open]>summary{border-bottom:1px solid var(--line);background:var(--surface-soft)}.paste-import-body{background:var(--surface);gap:9px;padding:12px;display:grid}.paste-import-help{color:var(--ink-soft);margin:0;font-size:.74rem;line-height:1.55}.paste-import-body textarea{border:1px solid var(--line-strong);background:var(--surface);resize:vertical;border-radius:10px;width:100%;min-height:120px;padding:10px 11px;font-size:1rem;line-height:1.6}.paste-import-body textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #11111117}.paste-import-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.paste-import-actions .paste-apply{min-height:42px;padding:0 13px;font-size:.8rem}.paste-count{color:var(--ink-faint);margin-left:auto;font-size:.7rem}.editor-savebar{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0 0;display:flex}.editor-savebar-status{min-width:0;color:var(--ink-soft);flex:1;align-items:center;gap:5px;font-size:.74rem;line-height:1.45;display:flex}.editor-savebar-status svg{width:15px;height:15px;color:var(--ink);flex:none}.save-error{color:var(--danger);font-weight:600}.save-spinner{animation:.8s linear infinite save-spin}.editor-savebar-actions{flex:none;align-items:center;gap:8px;display:flex}.editor-savebar-actions .primary-button{min-width:142px;min-height:48px}.editor-savebar-actions .secondary-button{min-height:48px;padding:0 12px;font-size:.82rem}@keyframes save-spin{to{transform:rotate(360deg)}}@media (width<=899px){.page.editor-page{padding-bottom:104px}.editor-savebar{z-index:36;left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom) + var(--keyboard-inset,0px));padding:9px max(12px, env(safe-area-inset-right)) 9px max(12px, env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line);transition:bottom .18s var(--ease-out);grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:8px;display:grid;position:fixed;box-shadow:0 -10px 26px #1212120f}.editor-savebar-status{min-height:17px;font-size:.72rem}.editor-savebar-actions{width:100%;display:flex}.editor-savebar-actions .secondary-button{flex:none;min-height:46px}.editor-savebar-actions .primary-button{flex:1;min-width:0;min-height:46px}body.editor-keyboard-open .bottom-nav{pointer-events:none;transition:transform .18s var(--ease-out);transform:translateY(115%)}body.editor-keyboard-open .editor-savebar{bottom:var(--keyboard-inset,0px)}}.app-shell.is-editor-route .bottom-nav a.nav-primary{color:var(--ink-soft);box-shadow:none;background:0 0}.app-shell.is-editor-route .bottom-nav a.nav-primary:hover,.app-shell.is-editor-route .bottom-nav a.nav-primary.active{color:var(--ink);background:var(--surface-tint)}@media (width>=380px){.editor-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=600px) and (width<=899px){.editor-savebar{grid-template-columns:minmax(0,1fr) auto;align-items:center}.editor-savebar-actions{width:auto}.editor-savebar-actions .primary-button{flex:none;min-width:142px}}@media (width<=380px){.paste-import-hint{display:none}.editor-savebar-actions .secondary-button{padding:0 10px;font-size:.78rem}}.question-filters{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);gap:11px;margin-bottom:16px;padding:12px;display:grid}.search-field{display:block;position:relative}.search-field>svg{width:18px;height:18px;color:var(--ink-faint);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.question-filters input:not([type=checkbox]),.question-filters select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:0;min-height:44px;padding:8px 11px;font-size:.95rem}.search-field input{padding-left:40px!important;padding-right:40px!important}.search-clear{width:34px;height:34px;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.search-clear:hover{background:var(--brand-wash);color:var(--brand-dark)}.filter-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-toggle{min-height:42px;padding:0 13px;font-size:.84rem}.filter-toggle svg{width:16px;height:16px}.sort-select{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-size:.76rem;display:flex}.sort-select select{width:auto;min-height:42px;padding:0 28px 0 10px;font-size:.8rem}.filter-panel{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);gap:12px;padding:13px;display:grid}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.filter-grid label{gap:5px;min-width:0;font-size:.78rem;font-weight:650;display:grid}.favorite-filter{min-height:40px;color:var(--ink);align-items:center;gap:8px;font-size:.86rem;display:flex}.favorite-filter input{width:19px;height:19px;accent-color:var(--brand)}.list-summary{color:var(--ink-faint);margin:0 0 6px;font-size:.74rem}.question-list{gap:9px;display:grid}.question-row{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding:14px;transition:border-color .15s,box-shadow .15s;display:grid}.question-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-xs)}.question-row-body{min-width:0}.question-row h3{overflow-wrap:anywhere;margin:7px 0 4px;font-size:.98rem;line-height:1.55}.question-row small{color:var(--ink-soft);font-size:.75rem}.badge-row{flex-wrap:wrap;gap:5px;display:flex}.badge{border-radius:var(--radius-pill);background:var(--surface-tint);max-width:100%;color:var(--ink-soft);align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;font-weight:600;line-height:1.6;display:inline-flex}.badge svg{width:11px;height:11px}.badge.verified{background:var(--ok-wash);color:var(--ok)}.badge.pending{background:var(--warn-wash);color:var(--warn-ink)}.badge.overdue{background:var(--danger-wash);color:var(--danger)}.badge.favorite{background:var(--favorite-wash);color:var(--favorite)}.tag-list{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.tag{border-radius:var(--radius-pill);background:var(--surface-tint);color:var(--ink-soft);padding:2px 7px;font-size:.71rem}.chip{border-radius:var(--radius-pill);background:var(--brand-wash);color:var(--brand-dark);align-items:center;gap:4px;padding:4px 9px;font-size:.79rem;display:inline-flex}.chip button{width:26px;min-height:26px;color:var(--brand-dark);background:0 0;border:0;border-radius:50%;padding:0}.row-actions{flex-wrap:wrap;grid-column:2;align-items:center;gap:2px;margin-top:5px;display:flex}.icon-action{min-height:40px;color:var(--ink-soft);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:4px;padding:4px 8px;font-size:.76rem;text-decoration:none;display:inline-flex}.icon-action svg{width:15px;height:15px}.icon-action:hover{background:var(--brand-wash);color:var(--brand-dark)}.icon-action.active{color:var(--favorite)}.icon-action.danger:hover{background:var(--danger-wash);color:var(--danger)}.load-more{width:100%;margin-top:10px}.detail-page{gap:16px;display:grid}.detail-heading{margin-bottom:0}.detail-badges{gap:6px}.question-content-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);gap:12px;padding:17px;display:grid}.detail-stem{font-size:var(--fs-lg);letter-spacing:-.01em;margin:0;line-height:1.7}.detail-images,.practice-images{flex-wrap:wrap;gap:10px;margin:0;display:flex}.detail-images figure,.practice-images figure{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;max-width:420px;margin:0;padding:7px}.practice-images figure{max-width:320px}.detail-images img,.practice-images img{border-radius:8px;width:100%;display:block}.practice-options{color:var(--ink-soft);margin:6px 0 0;padding-left:23px;font-size:.94rem;line-height:1.7}.practice-options li+li{margin-top:4px}.detail-note{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);font-size:var(--fs-sm);margin:0;padding:11px 12px}.detail-note strong{color:var(--ink)}.reveal-button{justify-self:start}.answer-panel{border:1px solid var(--brand-wash-strong);border-left:4px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface-tint);gap:13px;padding:16px;font-size:.92rem;display:grid}.answer-panel>div{gap:3px;display:grid}.answer-panel strong{color:var(--brand-deep);letter-spacing:.01em;font-size:.8rem}.answer-panel p{margin:0;line-height:1.7}.detail-tags{flex-wrap:wrap;gap:6px;display:flex}.detail-section{border-top:1px solid var(--line);gap:6px;padding-top:14px;display:grid}.detail-section h3{margin:0;font-size:.98rem}.error-reason{border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);padding:14px}.error-reason p{color:var(--warn-ink);margin:0;font-size:.9rem;line-height:1.7}.review-plan-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);align-items:flex-start;gap:10px;padding:13px;display:flex}.review-plan-card>svg{width:20px;height:20px;color:var(--brand);flex:none;margin-top:2px}.review-plan-card strong{font-size:.92rem;display:block}.review-plan-card p{color:var(--ink-soft);margin:3px 0 0;font-size:.81rem}.detail-history{margin:0;padding:0;list-style:none}.detail-history li{border-bottom:1px solid var(--line);font-size:var(--fs-sm);align-items:center;gap:12px;padding:9px 0;display:flex}.detail-history li:last-child{border-bottom:0}.detail-history .history-result{min-width:44px;font-weight:650}.detail-history .history-result.correct{color:var(--ok)}.detail-history .history-result.wrong{color:var(--danger)}.detail-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-top:14px;display:flex}.detail-actions .primary-button{flex:140px}.detail-actions .ghost-button{margin-left:auto}.dialog-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e1e1b6b;place-items:center;padding:20px;animation:.14s ease-out dialog-fade;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,400px);box-shadow:var(--shadow-lg);padding:22px 20px 18px;animation:.18s cubic-bezier(.22,1,.36,1) dialog-in;position:relative}.dialog-close{width:38px;height:38px;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}.dialog-close:hover{background:var(--surface-tint)}.dialog-close svg{width:18px;height:18px}.dialog-icon{background:var(--danger-wash);width:42px;height:42px;color:var(--danger);border-radius:13px;justify-content:center;align-items:center;display:inline-flex}.dialog-icon svg{width:21px;height:21px}.confirm-dialog h2{margin:13px 0 5px;font-size:1.12rem}.confirm-dialog p{color:var(--ink-soft);margin:0;font-size:.88rem;line-height:1.65}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.dialog-actions .secondary-button,.dialog-actions .danger-button{min-width:88px}@keyframes dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.review-page{gap:14px;display:grid}.due-badge{border-radius:var(--radius-pill);background:var(--brand-wash);color:var(--brand-dark);padding:5px 10px;font-size:.8rem}.review-session-note{color:var(--ink-faint);align-items:center;gap:6px;font-size:.78rem;display:flex}.review-session-note svg{width:15px;height:15px}.practice-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-soft);gap:13px;min-width:0;padding:18px;display:grid}.practice-card-topline{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.practice-position{color:var(--ink-faint);letter-spacing:.02em;flex:none;font-size:.74rem;font-weight:650}.practice-card-heading{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.practice-card h3{letter-spacing:-.01em;margin:2px 0;font-size:1.1rem;line-height:1.7}.practice-card label{gap:6px;font-size:.86rem;font-weight:650;display:grid}.practice-card textarea,.practice-card select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:46px;padding:10px 12px;font-size:1rem;font-weight:400}.practice-card textarea{resize:vertical;min-height:92px;line-height:1.65}.practice-card textarea:focus,.practice-card select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #11111117}.practice-answer-field{margin-top:2px}.mastery-field{max-width:220px}.practice-actions{flex-wrap:wrap;gap:8px;display:flex}.practice-actions button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);flex:110px;justify-content:center;align-items:center;gap:5px;min-height:48px;padding:8px 14px;font-size:.9rem;font-weight:650;display:inline-flex}.practice-actions button svg{width:17px;height:17px}.practice-actions button:hover{background:var(--surface-tint)}.practice-actions .answer-correct{background:var(--ok-wash);color:var(--ok);border-color:#9bcdb0}.practice-actions .answer-correct:hover{background:#d9efe3}.practice-actions .answer-wrong{border-color:var(--danger-line);background:var(--danger-wash);color:var(--danger)}.practice-actions .answer-wrong:hover{background:#ffe3dd}.practice-actions .answer-later{color:var(--ink-soft);flex:0 auto}.review-empty{padding-top:46px}.stats-page{gap:20px;display:grid}.stats-page .page-heading{margin-bottom:0}.stat-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.stat-tile{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);align-content:start;gap:2px;min-width:0;padding:13px;display:grid}.stat-tile span{color:var(--ink-soft);font-size:.74rem}.stat-tile strong{letter-spacing:-.04em;font-size:1.5rem;line-height:1.2}.stat-tile small{color:var(--ink-faint);font-size:.68rem}.stats-section{gap:8px;display:grid}.stats-section h3{margin:0;font-size:1rem}.stats-section p{color:var(--ink-soft);margin:0;font-size:.86rem}.review-progress-section{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);padding:15px}.review-progress-section .progress-bar{margin:3px 0 8px}.stats-list{margin:0;padding:0;list-style:none}.stats-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;font-size:.88rem;display:flex}.stats-list li:last-child{border-bottom:0;padding-bottom:0}.stats-list li span:last-child{color:var(--ink-soft);text-align:right}.subject-stats li span:first-child{font-weight:650}.stats-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-md);padding:24px 14px}.repeated-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.repeated-list li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);gap:3px;padding:11px 12px;display:grid}.repeated-list a{color:var(--ink);overflow-wrap:anywhere;font-weight:650;line-height:1.5;text-decoration:none}.repeated-list a:hover{color:var(--brand-dark)}.repeated-list span{color:var(--ink-soft);font-size:.76rem}.stats-footnote{border-top:1px solid var(--line);color:var(--ink-faint);margin:0;padding-top:14px;font-size:.75rem;line-height:1.65}.settings-page{gap:20px;display:grid}.settings-section{border-top:1px solid var(--line);gap:11px;padding-top:18px;display:grid}.settings-section:first-of-type{border-top:0;padding-top:0}.settings-section h2{margin:0;font-size:1.06rem}.storage-summary{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink);margin:0;padding:11px 13px;font-size:.84rem}.backup-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.backup-actions .primary-button,.backup-actions .secondary-button{min-height:48px;padding:8px 10px;font-size:.83rem}.import-preview{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);gap:11px;padding:14px;display:grid}.import-preview h3{margin:0;font-size:.98rem}.import-preview label{gap:5px;font-size:.84rem;font-weight:650;display:grid}.category-manager{border-top:1px solid var(--line);gap:14px;padding-top:18px;display:grid}.category-heading h3{margin:0 0 4px;font-size:1.06rem}.category-heading p{margin:0}.category-block{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);gap:9px;padding:13px;display:grid}.category-block h4{margin:0;font-size:.95rem}.category-block>label{gap:5px;font-size:.82rem;font-weight:650;display:grid}.category-list{margin:0;padding:0;list-style:none}.category-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;min-height:38px;padding:5px 0;font-size:.87rem;display:flex}.category-list li:last-child{border-bottom:0}.category-list input{border:1px solid var(--line-strong);border-radius:8px;flex:1;min-width:0;padding:7px 9px}.category-actions{gap:2px;display:flex}.category-actions button{min-height:34px;color:var(--brand);background:0 0;border:0;border-radius:7px;padding:2px 8px;font-size:.78rem}.category-actions button:hover{background:var(--brand-wash)}.inline-add{flex-wrap:wrap;gap:8px;display:flex}.inline-add input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);flex:180px;min-width:0;min-height:44px;padding:8px 10px}.inline-add button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;color:var(--brand-dark);padding:8px 12px;font-weight:650}.inline-add button:hover{background:var(--brand-wash)}.chip-list{flex-wrap:wrap;gap:6px;display:flex}.duplicate-warning{border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);color:var(--warn-ink);border-left:4px solid #b87316;margin:0;padding:13px 14px;font-size:.88rem}.duplicate-warning ul{margin:8px 0;padding-left:20px}.duplicate-warning button{min-height:36px;color:var(--brand-dark);background:0 0;border:0;padding:2px 8px;font-weight:600}@media (width>=560px){.content{width:min(100% - 32px,880px)}.page{padding:26px 24px}.editor-group-body{padding:2px 16px 16px}}@media (width>=640px){.question-row{grid-template-columns:auto minmax(0,1fr) auto}.row-actions{flex-direction:column;grid-area:1/3/span 2;align-items:stretch;margin-top:0}.icon-action{justify-content:flex-start;min-height:36px}.detail-stem{font-size:1.28rem}}@media (width<=639px){.filter-grid{grid-template-columns:1fr}.sort-select{margin-left:0}.stat-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-actions{grid-template-columns:1fr}.stat-tile strong{font-size:1.35rem}.page-heading{align-items:center}.page-heading .primary-button{flex:none;padding:0 12px;font-size:.84rem}.detail-actions .ghost-button{margin-left:0}.review-plan-card{padding:12px}.practice-card{padding:15px}.practice-card-topline{display:grid}.practice-card-heading{justify-content:flex-start}}@media (width<=420px){.content{width:calc(100% - 16px)}.page{border-radius:20px;padding:18px 14px}.section-heading{align-items:flex-start}.week-chart{gap:3px;padding-left:4px;padding-right:4px}.week-day small{font-size:.6rem}.row-actions{gap:0}.icon-action span{display:none}.icon-action{justify-content:center;width:42px;min-height:42px;padding:0}.practice-actions .answer-later{flex:100%}}@media (width>=900px){.app-shell{padding-left:232px}.app-main{min-height:100vh}.content{width:min(100% - 52px,920px);padding:34px 0 64px}.page{border-radius:24px;margin-top:0;padding:30px 28px}.bottom-nav{background:var(--surface);border-top:0;border-right:1px solid var(--line);width:232px;height:100vh;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:4px;padding:20px 14px;inset:0 auto 0 0}.bottom-nav>.nav-brand{min-height:52px;color:var(--ink);border-bottom:1px solid var(--line);flex:none;justify-content:flex-start;align-items:center;gap:9px;margin-bottom:8px;padding:0 8px 14px;text-decoration:none;display:flex}.nav-brand-copy{gap:0;min-width:0;display:grid}.nav-brand-copy strong{font-size:.94rem}.nav-brand-copy small{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.nav-links{flex-direction:column;flex:none;gap:3px;display:flex}.bottom-nav .nav-links a{border-radius:11px;flex-direction:row;flex:none;justify-content:flex-start;gap:9px;min-height:44px;padding:0 11px;font-size:.88rem;font-weight:600}.bottom-nav .nav-links a .nav-icon{width:19px;height:19px;margin:0}.bottom-nav .nav-links a.active{color:#fff;background:var(--ink)}.bottom-nav .nav-links a.nav-primary{color:#fff;background:var(--ink);flex:none;margin:3px 0;box-shadow:0 7px 16px #12121229}.bottom-nav .nav-links a.nav-primary:hover{background:#000}.bottom-nav .nav-links a.nav-primary.active{color:#fff;background:#000}.nav-footer{border-top:1px solid var(--line);gap:8px;margin-top:auto;padding-top:14px;display:grid}.nav-footer a{min-height:40px;color:var(--ink-soft);border-radius:10px;align-items:center;gap:9px;padding:0 11px;font-size:.82rem;text-decoration:none;display:flex}.nav-footer a:hover{color:var(--ink);background:var(--surface-tint)}.nav-footer a.active{color:#fff;background:var(--ink)}.nav-footer p{color:var(--ink-faint);margin:0;padding:0 11px;font-size:.68rem}.question-row{padding:16px}.icon-action{min-height:36px}.editor-group-body{padding:2px 18px 18px}.stats-page{gap:24px}}@media (width>=1180px){.content{width:min(100% - 64px,980px)}}::view-transition-old(root){animation:.17s both page-out}::view-transition-new(root){animation:page-vt-in .26s var(--ease-out) both}:is(html:active-view-transition .page,html:active-view-transition .home-enter,html:active-view-transition .reveal){animation:none!important}:is(html:active-view-transition .home-enter,html:active-view-transition .reveal){opacity:1;transform:none}@keyframes page-out{to{opacity:0;transform:translateY(-4px)}}@keyframes page-vt-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.home-enter{opacity:1!important;animation:none!important;transform:none!important}.trend-chart.is-entering .trend-path{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important}.trend-chart.is-entering .trend-dot,.skeleton-line,.skeleton-panel{animation:none!important}::view-transition-group(*){animation-duration:.01ms!important}::view-transition-old(*){animation-duration:.01ms!important}::view-transition-new(*){animation-duration:.01ms!important}}
