:root{--brand:#ff7a1a;--brand-grad:linear-gradient(135deg, #ff9a3d, #ff6a00);--brand-pressed:#e85f00;--brand-soft:#fff3e6;--brand-text:#ad4200;--button-start:#f26a1b;--button-end:#e4570c;--button-pressed:#c94a08;--button-grad:linear-gradient(135deg, var(--button-start), var(--button-end));--button-border:#ffd8b5;--button-shadow:0 6px 16px #ff6a0047;--info:#3b82f6;--info-soft:#eaf2ff;--info-text:#2357b0;--success:#16a34a;--success-soft:#e8f7ee;--success-text:#166534;--danger:#ef4444;--danger-soft:#fdecec;--danger-text:#b91c1c;--purple:#8b5cf6;--purple-soft:#8b5cf61f;--teal:#14b8a6;--teal-soft:#14b8a61f;--pink:#ec4899;--pink-soft:#ec48991f;--slate:#64748b;--slate-soft:#64748b1f;--orange-icon-soft:#ff7a1a1f;--blue-icon-soft:#3b82f61f;--primary:var(--brand-text);--primary-pressed:var(--brand-text);--primary-soft:var(--brand-soft);--accent:#ffc53d;--accent-soft:#fff5d6;--accent-text:#854d0e;--star:var(--accent);--bg:#f7f8fa;--surface:#fff;--text:#1f2937;--text-2:#4b5563;--muted:#6b7280;--border:#e5e7eb;--hero-start:#fff1e0;--hero-grad:linear-gradient(180deg, var(--hero-start), var(--bg));--glass:#ffffffd1;--overlay:#10182866;--card-shadow:0 4px 16px #0f172a0f;--nav-shadow:0 -2px 16px #0f172a0a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-button:999px;--radius-card:20px;--radius-input:14px;--radius-pill:999px;--font-body:16px;--font-small:13px;--font-label:14px;--font-step:12px;--font-title:24px;--font-card:18px;--font-button:19px;--font-section:22px;--font-welcome:28px;--font-number:24px;--icon-size:20px;--icon-entry:24px;--sheet-stripe:6px;--motion-fast:.15s;--motion-check:.22s;--font-weight:600;--control-height:44px;--primary-height:52px;--input-height:48px;--nav-height:60px;--app-width:480px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:var(--font-body);font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-weight:400;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}h1,h2,h3,p{margin:0 0 var(--space-3)}h1{font-size:var(--font-title);font-weight:700;line-height:1.4}h2,h3{font-size:var(--font-card);font-weight:var(--font-weight);line-height:1.5}strong,b,legend{font-weight:var(--font-weight)}small,.fine{font-size:var(--font-small);color:var(--muted)}a{color:var(--primary);text-underline-offset:var(--space-1)}a[href]{min-height:var(--control-height);align-items:center;display:inline-flex}[hidden]{display:none!important}.icon{vertical-align:middle;flex-shrink:0}.icon-star{color:var(--star)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--control-height);min-height:var(--control-height);padding:var(--space-2) var(--space-4);border-radius:var(--radius-button);font-size:var(--font-body);font-weight:var(--font-weight);white-space:normal;cursor:pointer;overflow-wrap:anywhere;max-width:100%;transition:transform var(--motion-fast), box-shadow var(--motion-fast), background-color var(--motion-fast);border:1px solid #0000;line-height:1.5;text-decoration:none;display:inline-flex}.button .icon{width:var(--icon-size);height:var(--icon-size)}.primary{color:var(--surface);background:var(--button-end);background-image:var(--button-grad);min-height:var(--primary-height);font-size:var(--font-button);box-shadow:var(--button-shadow);font-weight:700}.primary:active:not(:disabled){background:var(--button-pressed)}.secondary{color:var(--brand-text);background:var(--surface);border-color:var(--button-border)}.secondary:active:not(:disabled){background:var(--bg)}.tertiary{color:var(--primary);background:0 0}.danger{color:var(--danger-text);background:var(--surface);border-color:var(--danger)}.button-large{min-height:var(--primary-height)}.button-icon{width:var(--control-height);height:var(--control-height);flex-shrink:0;padding:0}.button:disabled,fieldset:disabled .file-button{opacity:.4;cursor:not-allowed}.full{width:100%}.file-button:focus-within{outline:2px solid var(--primary);outline-offset:2px}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.button-row{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.button-row>*{width:100%;min-width:0;padding-inline:var(--space-2)}.button-row>:only-child{grid-column:1/-1}.card{background:var(--surface);border-radius:var(--radius-card);padding:var(--space-4);margin-bottom:var(--space-3);box-shadow:var(--card-shadow);border:0;min-width:0}.card>:last-child{margin-bottom:0}.card .card{box-shadow:none;margin-top:var(--space-4);border-top:1px solid var(--border);border-radius:0;padding-inline-start:0;padding-inline-end:0}.card-heading,.section-heading{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.card-heading h2,.card-heading p,.section-heading h2{margin-bottom:var(--space-1)}.section-heading{margin:var(--space-6) 0 var(--space-3)}.section-heading>span,.muted,.period-label{color:var(--muted)}.page-title{margin-bottom:var(--space-5)}.page-title>p:last-child{color:var(--text-2);font-size:var(--font-small)}.eyebrow{color:var(--primary);font-size:var(--font-small);margin-bottom:var(--space-2)}.fine{margin-top:var(--space-4)}.notice{align-items:flex-start;gap:var(--space-2);border-radius:var(--radius-input);padding:var(--space-3);margin-bottom:var(--space-3);font-size:var(--font-small);white-space:normal;text-align:left;font-weight:400;display:flex}.notice.info{background:var(--info-soft);color:var(--info-text)}.notice.warn{background:var(--accent-soft);color:var(--accent-text)}.notice.error{background:var(--danger-soft);color:var(--danger-text)}.notice>.icon{width:var(--icon-size);height:var(--icon-size)}.notice-content{flex:1;min-width:0}.notice-content p{margin:0}.notice .button{margin-top:var(--space-2)}.empty{align-items:center;gap:var(--space-3);text-align:center;color:var(--muted);padding:var(--space-6) var(--space-4);margin-bottom:var(--space-3);background:var(--surface);border-radius:var(--radius-card);flex-direction:column;display:flex}.empty p{margin-bottom:0}.empty-art{width:152px;height:112px;color:var(--brand)}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-small);white-space:nowrap;color:var(--text-2);background:var(--bg);font-weight:400;display:inline-flex}.badge.queued,.badge.running{background:var(--accent-soft);color:var(--accent-text)}.badge.succeeded{background:var(--success-soft);color:var(--success-text)}.badge.failed{background:var(--danger-soft);color:var(--danger-text)}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--space-4)}label{color:var(--text-2);font-size:var(--font-label);margin-bottom:var(--space-4);display:block}input:not([type=radio]):not([type=checkbox]):not([type=file]),textarea,select{width:100%;min-width:0;min-height:var(--input-height);border-radius:var(--radius-input);padding:var(--space-3);margin-top:var(--space-2);background:var(--bg);color:var(--text);font-size:var(--font-body);border:2px solid #0000;display:block}textarea{resize:vertical}input[type=radio],input[type=checkbox]{accent-color:var(--primary);width:var(--icon-size);height:var(--icon-size);margin:0 var(--space-2) 0 0;flex-shrink:0}label small{margin-top:var(--space-1);display:block}.inline-check{min-height:var(--control-height);margin-bottom:var(--space-1);cursor:pointer;align-items:center;display:flex}.form-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid label{min-width:0}summary{color:var(--primary);font-weight:var(--font-weight);min-height:var(--control-height);padding:var(--space-2) 0;cursor:pointer}details p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:var(--space-3)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app,.welcome{max-width:var(--app-width);min-height:100dvh;margin-inline-start:auto;margin-inline-end:auto}.content{width:100%;max-width:var(--app-width);padding:var(--space-5) var(--space-4) calc(var(--nav-height) + var(--space-6) + env(safe-area-inset-bottom));overflow-wrap:anywhere;min-width:0;margin-inline-start:auto;margin-inline-end:auto}.topbar{z-index:25;background:var(--hero-start);color:var(--text);padding-top:env(safe-area-inset-top);position:sticky;top:0}.topbar-main{min-height:var(--nav-height);padding:var(--space-2) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.brand{align-items:center;gap:var(--space-2);font-size:var(--font-card);font-weight:var(--font-weight);color:var(--text);white-space:nowrap;text-decoration:none;display:inline-flex}.topbar-actions,.stars,.earned-stars{align-items:center;gap:var(--space-2);display:inline-flex}.stars{font-size:var(--font-small);font-variant-numeric:tabular-nums}.stars .icon{width:var(--icon-size);height:var(--icon-size)}.parent-entry{background:var(--glass);padding:0 var(--space-3);font-size:var(--font-label);border:0}.parent-mode-info{align-items:center;gap:var(--space-1);background:var(--brand-soft);border-left:4px solid var(--button-end);color:var(--brand-text);padding:var(--space-1) var(--space-3);min-height:var(--control-height);display:flex}.parent-mode-info>.icon{width:var(--icon-size);height:var(--icon-size)}.parent-mode-info strong{font-size:var(--font-small);white-space:nowrap;font-variant-numeric:tabular-nums}.parent-mode-actions{margin-left:auto;display:flex}.parent-mode-actions .button{color:var(--brand-text);background:var(--surface);border:1px solid var(--button-border);padding-inline:var(--space-2);font-size:var(--font-small);margin-left:var(--space-1)}.parent-back{margin-bottom:var(--space-3);padding-left:0}.bottom-nav{width:100%;max-width:var(--app-width);z-index:20;background:var(--surface);box-shadow:var(--nav-shadow);padding-bottom:env(safe-area-inset-bottom);border-top:0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav .button{height:var(--nav-height);min-width:0;padding:var(--space-1);color:var(--muted);font-size:var(--font-small);background:0 0;border:0;border-radius:0;flex-direction:column;gap:0;font-weight:400;display:flex}.bottom-nav .active{color:var(--primary);font-weight:var(--font-weight)}.nav-icon{border-radius:var(--radius-pill);place-items:center;width:52px;height:32px;display:grid}.nav-icon .icon{width:var(--icon-entry);height:var(--icon-entry)}.active .nav-icon .icon{color:var(--brand)}.active .nav-icon{background:var(--primary-soft)}.parent-home-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.parent-home-card{min-width:0;padding:var(--space-4);border-radius:var(--radius-card);box-shadow:var(--card-shadow);align-items:flex-start;gap:var(--space-3);white-space:normal;text-align:left;border:0;flex-direction:column;display:flex;position:relative}.parent-card-icon{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-input);color:var(--feature-color);background:var(--feature-soft);place-items:center;display:grid}.parent-card-icon .icon{width:var(--icon-entry);height:var(--icon-entry)}.parent-card-copy strong{font-size:var(--font-body);display:block}.parent-card-copy>span{font-size:var(--font-small);color:var(--muted);margin-top:var(--space-1);font-weight:400;display:block}.pending-count{top:var(--space-3);right:var(--space-3);background:var(--danger-text);color:var(--surface);border-radius:var(--radius-pill);min-width:20px;padding-inline:var(--space-1);text-align:center;font-size:var(--font-small);position:absolute}.task-meta{align-items:center;gap:var(--space-1);color:var(--muted);font-size:var(--font-small);display:flex}.task-meta .icon{width:16px;height:16px}.task-steps{margin:var(--space-5) 0;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;list-style:none;display:grid}.task-steps li{align-items:center;gap:var(--space-2);font-size:var(--font-step);color:var(--muted);flex-direction:column;display:flex;position:relative}.task-steps li:not(:last-child):after{content:"";background:var(--border);width:calc(100% - 32px);height:1px;position:absolute;top:12px;left:calc(50% + 16px)}.task-steps li.completed:after{background:var(--primary)}.step-dot{width:var(--icon-entry);height:var(--icon-entry);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);place-items:center;display:grid}.step-dot .icon{width:16px;height:16px}.completed .step-dot{color:var(--surface);background:var(--primary);border-color:var(--primary)}.task-steps [aria-current]{color:var(--primary);font-weight:var(--font-weight)}[aria-current] .step-dot{border:2px solid var(--primary);background:var(--surface)}.task-card .button-row{margin-top:var(--space-3)}.task-result{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.earned-stars{color:var(--text);font-size:var(--font-small);gap:var(--space-1);margin-left:auto}.future-task{padding:var(--space-4);margin-bottom:var(--space-3);background:var(--surface);color:var(--text-2);border-radius:var(--radius-card)}.worker-status{border-radius:0;margin:0}.topbar .worker-status{padding:var(--space-2) var(--space-4)}.install-banner{align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-input);background:var(--primary-soft);margin-bottom:var(--space-3);font-size:var(--font-small);flex-wrap:wrap;display:flex}.install-banner p{flex:1;margin:0}.hero-card{padding:var(--space-5);background:var(--primary-soft);border-radius:var(--radius-card);margin-bottom:var(--space-4)}.sheet-grid,.report-grid{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.sheet-grid .card,.report-grid .card{margin-bottom:0}.sheet-code{color:var(--muted);font-size:var(--font-small)}.sheet-card h3{margin-top:var(--space-3)}.segments{margin:var(--space-4) 0;padding:0;list-style:none}.segments li{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.segment-index,.list-symbol{width:var(--control-height);height:var(--control-height);color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-input);flex-shrink:0;place-items:center;display:grid}.segments small{display:block}.knowledge-picker{max-height:240px;margin-bottom:var(--space-3);overflow:auto}.lookup{gap:var(--space-2);align-items:center;display:flex}.lookup input{margin:0!important}.lookup .button{flex-shrink:0}.card form{margin-top:var(--space-4)}.card .lookup{margin-top:0}.optional-knowledge,.sheet-submission{margin-block:var(--space-3)}.create-submit{bottom:calc(var(--nav-height) + var(--space-3) + env(safe-area-inset-bottom));z-index:2;width:100%;margin-top:var(--space-4);position:sticky}.capture-zone{background:var(--bg);padding:var(--space-5) var(--space-3);border-radius:var(--radius-card);text-align:center;margin:var(--space-4) 0}.camera-symbol{border-radius:var(--radius-card);width:64px;height:64px;margin:0 auto var(--space-3);background:var(--primary-soft);color:var(--primary);place-items:center;display:grid}.camera-symbol .icon{width:32px;height:32px}.capture-zone strong{display:block}.capture-zone p{font-size:var(--font-small);color:var(--muted);margin:var(--space-2) 0 var(--space-4)}.file-button{margin:0;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.choice-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.choice{min-height:var(--control-height);padding:var(--space-2);border:1px solid var(--button-border);border-radius:var(--radius-pill);background:var(--surface);cursor:pointer;flex:1;justify-content:center;align-items:center;display:flex}.selected{color:var(--primary-pressed);background:var(--primary-soft);border-color:var(--primary)}.photo-grid{gap:var(--space-3);margin:var(--space-4) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.photo-preview{min-width:0;position:relative}.photo-preview img{object-fit:cover;border-radius:var(--radius-input);width:100%;height:160px}.photo-preview>span{font-size:var(--font-small);display:block}.photo-preview .button{top:var(--space-1);right:var(--space-1);position:absolute}.success-panel{gap:var(--space-3);background:var(--success-soft);color:var(--success-text);padding:var(--space-4);border-radius:var(--radius-card);margin-bottom:var(--space-3);display:flex}.success-mark{color:var(--success)}.gentle-note{text-align:center;font-size:var(--font-small);color:var(--muted);margin-top:var(--space-4)}progress{width:100%;accent-color:var(--primary)}.result-row{text-align:left;gap:var(--space-3);width:100%;padding:var(--space-4);background:var(--surface);box-shadow:var(--card-shadow);margin-bottom:var(--space-3);white-space:normal;border:0;display:flex}.row-main{flex:1;min-width:0}.row-main strong,.row-main small{overflow-wrap:anywhere;display:block}.row-main p{font-size:var(--font-small);margin:0}.history-row{align-items:flex-start;gap:var(--space-2);text-align:left;white-space:normal;flex-direction:column;width:100%;font-weight:400;display:flex}.history-row>span{font-size:var(--font-small);color:var(--muted)}.question{background:var(--surface);padding:var(--space-4);border-radius:var(--radius-card);margin-bottom:var(--space-3);box-shadow:var(--card-shadow)}.question-heading{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.question-heading h3{overflow-wrap:anywhere;flex:1;margin:0}.question-number{background:var(--bg);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);font-size:var(--font-small)}.answer-status{font-size:var(--font-small);color:var(--success-text)}.retry .answer-status{color:var(--accent-text)}.hint{background:var(--accent-soft);color:var(--accent-text);padding:var(--space-3);border-radius:var(--radius-input)}.answer-pair{gap:var(--space-5);font-size:var(--font-small);flex-wrap:wrap;display:flex}.answer-pair strong{font-size:var(--font-body);display:block}.tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.tags span{padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);color:var(--text-2);background:var(--bg);font-size:var(--font-small)}.submission-photo{object-fit:contain;background:var(--bg);border-radius:var(--radius-input);width:100%;max-height:240px}.stats{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stats>div{background:var(--surface);border-radius:var(--radius-card);padding:var(--space-3);box-shadow:var(--card-shadow)}.stats span{color:var(--muted);font-size:var(--font-small);display:block}.stats strong{font-size:var(--font-title);color:var(--primary);margin-top:var(--space-1);display:block}.stats small{font-weight:400}.mastery-row{align-items:center;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--border);display:flex}.mastery-row:last-child{border:0}.mastery-row>div{flex:1;min-width:0}.mastery-row strong,.mastery-row b{font-size:var(--font-label)}.mastery-row small{margin:var(--space-1) 0 var(--space-2);display:block}.rank{color:var(--muted);font-size:var(--font-small)}.mastery-row meter{width:100%;height:8px;display:block}.mastery-row meter::-webkit-meter-bar{background:var(--bg);border:0}.mastery-row meter::-webkit-meter-optimum-value{background:var(--primary)}.mastery-row meter::-moz-meter-bar{background:var(--primary)}.unpracticed-list{padding-left:var(--space-5);color:var(--text-2);font-size:var(--font-small)}.unpracticed-list li{padding-block:var(--space-1)}.trend-chart{align-items:flex-end;gap:var(--space-3);min-height:160px;margin:var(--space-5) 0;display:flex;overflow-x:auto}.trend-chart>div{min-width:44px;font-size:var(--font-small);flex-direction:column;flex:1;align-items:center;display:flex}.trend-chart b{color:var(--text-2)}.trend-chart span{background:var(--primary);border-radius:var(--space-1) var(--space-1) 0 0;width:20px;margin:var(--space-1) 0;display:block}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--font-small)}th,td{padding:var(--space-2);border-bottom:1px solid var(--border);text-align:left}th{font-weight:var(--font-weight);color:var(--text-2)}.distribution{margin:var(--space-4) 0}.distribution>div:first-child{justify-content:space-between;gap:var(--space-2);font-size:var(--font-small);margin-bottom:var(--space-2);display:flex}.distribution b{color:var(--muted);font-weight:400}.bar{border-radius:var(--radius-pill);background:var(--bg);height:8px;overflow:hidden}.bar span{background:var(--accent);height:100%;display:block}.advice ul{padding-left:var(--space-5)}.advice li{padding-bottom:var(--space-2)}.device-row{align-items:center;gap:var(--space-3);display:flex}.device-row h2{font-size:var(--font-body)}.modal-backdrop{padding:var(--space-4);background:var(--overlay);z-index:30;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{width:100%;max-width:calc(var(--app-width) - var(--space-4) * 2);max-height:calc(100dvh - var(--space-6) * 2);margin:0;overflow:auto}.welcome{padding:var(--space-6) var(--space-4);background:var(--hero-grad);display:block}.welcome-story{padding:var(--space-4) 0}.brand-icon{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-input);background:var(--brand-grad);color:var(--text);place-items:center;display:grid}.welcome-copy{padding-top:var(--space-5)}.welcome-copy p{color:var(--muted);font-size:var(--font-small)}.join-panel{padding:var(--space-5);background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--card-shadow);min-width:0}.join-panel>.button{margin-top:var(--space-3);width:100%}.join-panel>p.muted{font-size:var(--font-small)}.sheet-preview{width:100%;max-width:var(--app-width);background:var(--bg);height:100dvh;max-height:none;color:var(--text);border:0;margin:auto;padding:0;position:fixed;top:0;bottom:0;left:0;right:0}.sheet-preview[open]{flex-direction:column;display:flex}.sheet-preview::backdrop{background:var(--overlay)}.preview-toolbar{padding:max(var(--space-3), env(safe-area-inset-top)) var(--space-3) var(--space-3);background:var(--surface);flex-shrink:0}.preview-heading{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.preview-heading strong{overflow-wrap:anywhere;min-width:0}.preview-heading .button{flex-shrink:0}.preview-controls{justify-content:space-between;align-items:center;gap:var(--space-1);margin-top:var(--space-2);display:flex}.preview-controls .button{padding-inline:var(--space-2)}.preview-controls span{white-space:nowrap;font-size:var(--font-small);font-variant-numeric:tabular-nums}.preview-pages{min-height:0;padding:var(--space-3) var(--space-3) max(var(--space-3), env(safe-area-inset-bottom));touch-action:pan-x pan-y pinch-zoom;flex:1;overflow:auto}.preview-pages img{background:var(--surface);max-width:none;height:auto;display:block}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.list>.card>.button,.sheet-submission .button{width:100%}.list>.card>.button{margin-top:var(--space-2)}.mastery-basis{margin-top:var(--space-1);font-weight:400;display:block}.recovery{max-width:calc(var(--app-width) - var(--space-4) * 2);margin:var(--space-6) auto}.offline-banner{max-width:var(--app-width);margin-inline-start:auto;margin-inline-end:auto}.result-summary{padding:var(--space-4);margin-bottom:var(--space-3);background:var(--success-soft);color:var(--success-text);border-radius:var(--radius-card)}.result-summary>strong{font-size:var(--font-title)}.result-summary p{margin-bottom:0}.pagination{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.pagination>.button{flex:1}.photo-grid a{width:100%;min-width:0}.preview-skeleton{border-radius:var(--radius-input);background:linear-gradient(100deg, var(--surface) 20%, var(--border) 50%, var(--surface) 80%);background-size:200% 100%;place-items:center;min-height:60vh;animation:1.5s ease-in-out infinite preview-loading;display:grid}@keyframes preview-loading{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.preview-skeleton{animation:none}}.app{background:var(--hero-grad) no-repeat;background-size:100% 300px}.topbar-main .brand{font-size:var(--font-title);font-weight:700}.greeting-copy{min-width:0}.greeting-copy p{font-size:var(--font-small);color:var(--text-2);margin:0}.stars{padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--glass);color:var(--accent-text);font-weight:700}.today-heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.today-heading h1{font-size:var(--font-section);margin:0}.today-progress{align-items:center;gap:var(--space-2);font-size:var(--font-small);color:var(--text-2);display:flex}.progress-ring{flex-shrink:0;width:40px;height:40px;transform:rotate(-90deg)}.progress-track{stroke:var(--button-border)}.progress-value{stroke:var(--brand);stroke-linecap:round;transition:stroke-dasharray .25s}.parent-hero{padding:var(--space-5);background:var(--hero-grad);border-radius:var(--radius-card);margin-bottom:var(--space-4)}.parent-hero h1{margin:0}.parent-hero p{font-size:var(--font-small);color:var(--text-2);margin:var(--space-2) 0 0}.countdown-pill{align-items:center;gap:var(--space-1);background:var(--glass);color:var(--brand-text);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3);font-size:var(--font-small);font-variant-numeric:tabular-nums;display:inline-flex}.parent-home-card{color:var(--text);--feature-color:var(--brand);--feature-soft:var(--orange-icon-soft)}.feature-sheets{--feature-color:var(--info);--feature-soft:var(--blue-icon-soft)}.feature-overall{--feature-color:var(--purple);--feature-soft:var(--purple-soft)}.feature-weekly{--feature-color:var(--teal);--feature-soft:var(--teal-soft)}.feature-members{--feature-color:var(--pink);--feature-soft:var(--pink-soft)}.feature-settings{--feature-color:var(--slate);--feature-soft:var(--slate-soft)}.task-card,.sheet-card,.sheet-record{border-top:var(--sheet-stripe) solid var(--sheet-color,var(--brand));position:relative}[data-kind=review]{--sheet-color:var(--danger)}[data-kind=focus]{--sheet-color:var(--info)}[data-kind=consolidate]{--sheet-color:var(--brand)}.task-kind{margin-bottom:var(--space-2);color:var(--text-2);font-size:var(--font-small);display:inline-flex}.task-card h2,.sheet-card h3{font-weight:700}.task-meta{flex-wrap:wrap}.task-result .badge{padding:var(--space-2) var(--space-3);gap:var(--space-1)}.task-result .badge strong{font-size:var(--font-number);font-weight:700;line-height:1.2}.earned-stars{background:var(--accent-soft);color:var(--accent-text);padding:var(--space-2);border-radius:var(--radius-pill);font-weight:700}.completed .step-dot{background:var(--button-end);border-color:var(--button-end)}.completed .step-dot .icon{animation:step-check var(--motion-check) ease-out}@keyframes step-check{0%{opacity:.3;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.button:active:not(:disabled){transform:scale(.98)}.button.card:active:not(:disabled),.parent-home-card:active:not(:disabled){transform:translateY(2px)}.weak{background:var(--brand-soft);color:var(--brand-text)}.button.card,.result-row{border-radius:var(--radius-card);color:var(--text)}input:focus-visible{outline:2px solid var(--button-pressed);outline-offset:0}textarea:focus-visible{outline:2px solid var(--button-pressed);outline-offset:0}select:focus-visible{outline:2px solid var(--button-pressed);outline-offset:0}.empty{box-shadow:var(--card-shadow)}.empty-art .art-paper{fill:var(--surface)}.empty-art .art-soft{fill:var(--brand-soft)}.empty-art .art-orange{fill:var(--brand)}.empty-art .art-yellow{fill:var(--star)}.empty-art .art-line{stroke:var(--button-border)}.welcome-story{position:relative}.welcome-story>.empty-art{width:108px;height:80px;position:absolute;top:0;right:0}.welcome-copy h1{font-size:var(--font-welcome)}.welcome-copy p{color:var(--text-2)}.lock-intro{text-align:center;padding:var(--space-4) 0}.lock-symbol{border-radius:var(--radius-card);background:var(--brand-soft);width:64px;height:64px;color:var(--brand-text);margin-bottom:var(--space-3);place-items:center;display:inline-grid}.lock-form .primary{width:100%}.lock-form input{text-align:center;letter-spacing:.6em;font-size:var(--font-number)!important}.preview-toolbar{box-shadow:var(--card-shadow)}.form-grid{grid-template-columns:minmax(0,1fr);gap:0}.device-row{flex-wrap:wrap}.device-row .row-main{flex-basis:140px}.result-row{flex-wrap:wrap}.result-row .row-main{flex-basis:120px}.choice{min-width:110px}.parent-mode-info>.icon{flex-shrink:0}.parent-home-card.secondary:active{background:var(--surface)}@media (max-width:380px){.topbar-main,.topbar-actions{gap:var(--space-1)}.stars,.parent-mode-info{padding-inline:var(--space-2)}.parent-mode-info>.icon{display:none}}@media (prefers-reduced-motion:reduce){.completed .step-dot .icon,.preview-skeleton{animation:none}}.hero-card p,.hero-card small,.install-banner small,.period-label,.result-summary small{color:var(--text-2)}.activity-line{align-items:center;gap:var(--space-1);margin:var(--space-2) 0;color:var(--text-2);font-size:var(--font-small);text-align:left;overflow-wrap:anywhere;font-weight:400;display:flex}.activity-line>.icon{flex:0 0 14px;width:14px;height:14px}.activity-section{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}.activity-timeline{padding:0 0 0 var(--space-4);margin:var(--space-3) 0;list-style:none}.activity-timeline li{border-left:2px solid var(--border);padding:0 0 var(--space-4) var(--space-4);position:relative}.activity-timeline li:before{content:"";background:var(--brand);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:-5px}.activity-timeline li:last-child{border-color:#0000;padding-bottom:0}.activity-timeline .activity-line{margin:0}
