:root{color:#28312e;font-synthesis:none;--ink:#28312e;--muted:#74807b;--green:#315f52;--pale:#e4ece7;--line:#dedfd8;--paper:#fff;--cream:#f7f6f2;background:#f3f2ed;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Noto Sans JP,Yu Gothic UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:244px 1fr;min-height:100vh;display:grid}.sidebar{color:#eff5f1;z-index:20;background:#233c35;flex-direction:column;width:244px;padding:32px 20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:auto}.brand{align-items:center;gap:12px;padding:0 7px 34px;display:flex}.brand-mark{color:#294e43;background:#d7e6dc;border-radius:11px;place-items:center;width:38px;height:38px;font-family:Georgia,serif;font-size:23px;display:grid}.brand strong{font-family:Georgia,Yu Mincho,serif;font-size:22px;display:block}.brand small{color:#a9bdb5;letter-spacing:.06em;margin-top:2px;font-size:10px;display:block}.sidebar nav{gap:7px;display:grid}.sidebar nav button{color:#b9cbc4;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:13px;padding:12px 14px;display:flex}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;background:#37564d}.local-note{color:#c6d5d0;border-top:1px solid #3c574f;margin-top:auto;padding:20px 8px 0;font-size:12px}.local-note small{color:#849d94;margin:6px 0 0 15px;font-size:10px;display:block}.status-dot{background:#9dd2ab;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}main{grid-column:2;min-width:0}header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffffb8;justify-content:space-between;align-items:center;height:94px;padding:20px 38px;display:flex;position:sticky;top:0}header p{letter-spacing:.18em;color:#87918d;margin:0 0 4px;font-size:10px}h1{margin:0;font-family:Georgia,Yu Mincho,serif;font-size:25px;font-weight:500}.date-chip{color:#52615c;background:#edf1ed;border-radius:20px;padding:9px 16px;font-size:13px}.content{max-width:1380px;margin:auto;padding:30px 38px 60px}.welcome{color:#fff;background:linear-gradient(115deg,#315d51,#3e7062);border-radius:15px;justify-content:space-between;align-items:center;min-height:166px;padding:31px 35px;display:flex;box-shadow:0 8px 25px #315f521a}.eyebrow{letter-spacing:.18em;color:#bed3cb;font-size:10px}.welcome h2{margin:12px 0 7px;font-family:Georgia,Yu Mincho,serif;font-size:29px;font-weight:500}.welcome p{color:#d2e0db;margin:0;font-size:13px}.primary,.secondary{border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:11px 17px;font-weight:600;display:inline-flex}.primary{color:#fff;background:#315f52}.secondary{color:#52615c;background:#eef0ec}.stat-grid{grid-template-columns:repeat(3,1fr);gap:15px;margin:18px 0;display:grid}.stat{background:var(--paper);border:1px solid #e3e3dd;border-radius:12px;padding:19px 21px}.stat>span{color:var(--muted);font-size:12px}.stat div{margin:6px 0 1px}.stat strong{font-family:Georgia,serif;font-size:30px;font-weight:500}.stat b{margin-left:4px;font-size:12px}.stat small{color:#8a938f;font-size:11px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.panel{background:var(--paper);border:1px solid #e2e2dc;border-radius:12px;min-height:218px;padding:20px 22px}.panel-title{border-bottom:1px solid #edede8;justify-content:space-between;align-items:center;margin-bottom:7px;padding-bottom:13px;display:flex}.panel h3{margin:0;font-size:14px}.panel-title button,.record-actions button{color:#52766b;background:0 0;border:0;font-size:11px}.row-item{border-bottom:1px solid #f0f0eb;align-items:center;gap:12px;padding:12px 2px;display:flex}.row-item:last-child{border:0}.row-item>div{flex:1;min-width:0}.row-item strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.row-item small{color:#8a928f;margin-top:4px;font-size:10px;display:block}.priority{border-radius:5px;place-items:center;min-width:28px;height:22px;font-size:9px;display:inline-grid}.priority.high{color:#a95143;background:#f8e4df}.priority.medium{color:#8d7130;background:#f6eed8}.priority.low{color:#527267;background:#e5ece9}.progress-text{color:#71817c;font-size:11px}.subject-icon{color:#40665b;background:#e5ece8;border-radius:7px;flex:none;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.subject-icon.large{border-radius:10px;width:40px;height:40px;font-size:15px}.overdue{color:#a95143;font-size:9px}.panel-hint{color:#8c9691;font-size:10px}.weak-row{grid-template-columns:70px 1fr 35px;align-items:center;gap:10px;padding:10px 0;font-size:11px;display:grid}.weak-row>div,.progress{background:#edf0ed;border-radius:9px;height:5px;overflow:hidden}.weak-row i,.progress i{background:#76998f;border-radius:9px;height:100%;display:block}.weak-row strong{font-size:10px}.empty{color:#9aa29e;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:130px;font-size:12px;display:flex}.empty span{color:#c5ccc8;font-size:26px}.page-tools{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.page-tools p{color:#6e7a75;font-size:13px}.search{border:1px solid var(--line);color:#929b97;background:#fff;border-radius:9px;align-items:center;gap:9px;width:min(420px,100%);margin-bottom:16px;padding:0 12px;display:flex}.search input{background:0 0;border:0;outline:0;width:100%;padding:11px 0}.records{gap:10px;display:grid}.record{background:#fff;border:1px solid #e1e2dc;border-radius:11px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:25px;padding:18px 20px;display:grid}.record-main{align-items:center;gap:14px;min-width:0;display:flex}.record-main>div{min-width:0}.record h3{margin:5px 0;font-size:14px}.record p{color:#808b86;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:11px;overflow:hidden}.record-meta{color:#72807a;align-items:center;gap:8px;font-size:10px;display:flex}.tag{color:#427060;background:#e7efea;border-radius:10px;padding:3px 7px}.tag.in_progress{color:#8b712f;background:#f7efd8}.tag.not_started,.tag.mistake{color:#9a584c;background:#f5e6e2}.record-numbers{gap:20px;display:flex}.record-numbers strong{font-size:19px}.record-numbers small{color:#82908a;margin-left:2px;font-size:9px}.record-actions{gap:7px;display:flex}.record-actions button{padding:6px}.record-actions button.danger{color:#a45a4d}.check{color:#fff;background:#fff;border:1px solid #b8c4bf;border-radius:7px;width:24px;height:24px}.task-record.done{opacity:.62}.task-record.done h3{text-decoration:line-through}.task-record .record-main>div{flex:1}.progress{width:min(380px,100%);margin-top:9px}.review-date{text-align:center}.review-date small,.review-date strong,.review-date span{display:block}.review-date small{color:#929b97;font-size:9px}.review-date strong{margin:4px;font-size:12px}.review-date span{color:#56766c;font-size:9px}.modal-backdrop{z-index:50;background:#1d2c2766;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:#fbfbf8;border-radius:14px;width:min(660px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 25px 70px #1c2b2655}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:21px 25px;display:flex}.modal-head h2{margin:0;font-family:Georgia,Yu Mincho,serif;font-size:20px}.modal-head button{color:#75817c;background:0 0;border:0}.form-grid{grid-template-columns:1fr 1fr;gap:17px;padding:23px 25px;display:grid}.field{gap:7px;display:grid}.field.wide,.form-actions,.form-error{grid-column:1/-1}.field>span{font-size:11px;font-weight:600}.field b{color:#a45749;margin-left:7px;font-size:8px}.field input,.field select,.field textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #d8dbd6;border-radius:8px;outline:0;padding:10px 11px}.field textarea{resize:vertical;min-height:85px}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;padding-top:18px;display:flex}.form-error,.error-banner{color:#974f43;background:#f8e7e3}.form-error{padding:10px;font-size:11px}.error-banner{border-radius:8px;justify-content:space-between;align-items:center;margin:16px 38px 0;padding:11px 15px;font-size:12px;display:flex}.error-banner button{color:inherit;background:0 0;border:0}.loading{text-align:center;color:#77837e;padding:80px}.menu-button,.scrim{display:none}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}main{grid-column:1}.menu-button{color:#42544e;background:0 0;border:0;place-items:center;margin-right:14px;display:grid}.scrim{z-index:19;background:#1d2c2755;border:0;display:block;position:fixed;top:0;bottom:0;left:0;right:0}header{justify-content:flex-start}.date-chip{margin-left:auto}.record{grid-template-columns:1fr auto}.record-actions{grid-column:1/-1;justify-content:flex-end}.record-numbers,.review-date{grid-area:1/2}.content{padding:24px}.error-banner{margin:12px 24px 0}}@media (max-width:650px){header{height:76px;padding:15px 18px}header p{display:none}h1{font-size:20px}.date-chip{padding:7px 10px;font-size:10px}.content{padding:18px 14px 40px}.welcome{flex-direction:column;align-items:flex-start;gap:22px;padding:25px}.welcome h2{font-size:24px}.stat-grid,.dashboard-grid{grid-template-columns:1fr}.page-tools{align-items:flex-start;gap:15px}.page-tools p{margin-top:0}.page-tools .primary{flex:none;font-size:0}.page-tools .primary svg{margin:0}.record{grid-template-columns:1fr;gap:12px;padding:15px}.record-numbers,.review-date{text-align:left;grid-area:auto}.record-actions{grid-column:1}.form-grid{grid-template-columns:1fr}.field.wide,.form-actions,.form-error{grid-column:1}.modal-backdrop{padding:8px}.modal{max-height:calc(100vh - 16px)}.record-meta{flex-wrap:wrap}.record h3{font-size:13px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.data-page{max-width:980px;margin:0 auto}.data-intro{background:var(--surface-muted);border:1px solid var(--border-strong);border-radius:12px;align-items:center;gap:15px;margin-bottom:20px;padding:20px 23px;display:flex}.data-intro>span{color:#fff;background:#315f52;border-radius:11px;flex:none;place-items:center;width:45px;height:45px;display:grid}.data-intro h2{margin:0 0 5px;font-family:Georgia,Yu Mincho,serif;font-size:21px}.data-intro p,.data-card p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.7}.data-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.data-card{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:27px}.data-card-icon{background:var(--icon-bg);width:42px;height:42px;color:var(--interactive);border-radius:10px;place-items:center;margin-bottom:18px;display:grid}.data-card h3{margin:0 0 8px;font-size:16px}.data-card ul{border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-secondary);gap:18px;margin:15px 0;padding:13px 0;font-size:11px;list-style:none;display:flex}.warning-note,.danger-note{border-radius:8px;margin:15px 0;padding:12px 14px;font-size:11px;line-height:1.6}.warning-note{background:var(--warning-bg);color:var(--warning-text)}.warning-note strong,.danger-note strong{display:block}.data-message{border-radius:9px;margin-bottom:16px;padding:12px 15px;font-size:12px}.data-message.error{background:var(--danger-bg);color:var(--danger-text)}.data-message.success{background:var(--success-bg);color:var(--success-text)}.restore-summary{padding:22px 25px}.restore-summary>p{color:var(--text-secondary);margin-top:0;font-size:12px}.restore-summary dl{border:1px solid var(--border);border-radius:9px;margin:17px 0;overflow:hidden}.restore-summary dl div{border-bottom:1px solid var(--border);justify-content:space-between;padding:11px 13px;font-size:12px;display:flex}.restore-summary dl div:last-child{border:0}.restore-summary dt{color:var(--text-secondary)}.restore-summary dd{margin:0;font-weight:600}.danger-note{background:var(--danger-bg);color:var(--danger-text)}.backup-first{color:var(--interactive);background:0 0;border:0;align-items:center;gap:7px;padding:7px 0;font-size:11px;font-weight:600;display:inline-flex}.confirm-check{align-items:flex-start;gap:9px;margin:16px 0;font-size:12px;font-weight:600;display:flex}.confirm-check input{accent-color:#315f52;margin-top:2px}.restore-button{color:#fff;background:#9a5146;border:0;border-radius:9px;padding:11px 17px;font-weight:600}.restore-button:disabled{opacity:.45;cursor:not-allowed}@media (max-width:650px){.data-grid{grid-template-columns:1fr}.data-card{padding:21px}.data-card ul{flex-direction:column;gap:7px}.data-intro{align-items:flex-start}.restore-summary{padding:18px}.restore-summary dl div{gap:4px;display:grid}}.analysis-filters{grid-template-columns:minmax(240px,1fr) repeat(3,auto);gap:9px;margin-bottom:17px;display:grid}.analysis-filters .search{width:auto;margin:0}.analysis-filters select{border:1px solid var(--line);color:#56645f;background:#fff;border-radius:9px;padding:9px;font-size:11px}.analysis-record{background:#fff;border:1px solid #e1e2dc;border-radius:11px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:22px;padding:17px 20px;display:grid}.analysis-record-head{align-items:center;gap:13px;min-width:0;display:flex}.analysis-record h3{margin:5px 0;font-size:14px}.analysis-record p{color:#7c8883;margin:0;font-size:11px}.analysis-review{text-align:right;gap:6px;display:grid}.analysis-review small{color:#89938f;font-size:9px}.review-status{color:#597269;background:#e7ece9;border-radius:10px;padding:4px 8px;font-size:10px}.review-status.overdue,.review-status.needs_review{color:#995247;background:#f5e3df}.review-status.passed{color:#357052;background:#e2efe7}.analysis-record .record-actions button{align-items:center;gap:3px;display:inline-flex}.modal:has(.analysis-form){width:min(900px,100%)}.analysis-form{padding:0 25px 24px}.analysis-form fieldset{border:0;border-bottom:1px solid var(--line);margin:0;padding:22px 0}.analysis-form legend{font-family:Georgia,Yu Mincho,serif;font-size:16px;font-weight:600}.analysis-form legend span{color:#fff;background:#315f52;border-radius:50%;place-items:center;width:25px;height:25px;margin-right:9px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;font-size:11px;display:inline-grid}.section-grid{padding:17px 0 0}.analysis-helper{background:#f0f3ef;border-radius:9px;grid-column:1/-1;padding:14px}.analysis-helper>strong,.analysis-helper>small{display:block}.analysis-helper>small{color:#79857f;margin:4px 0 10px;font-size:10px}.check-list{flex-wrap:wrap;gap:7px;display:flex}.check-list label{background:#fff;border:1px solid #dce1dc;border-radius:15px;align-items:center;gap:5px;padding:6px 9px;font-size:10px;display:flex}.check-list input{accent-color:#315f52}.field-help{color:#7c8883;font-size:10px}.ai-caution{color:#78662f;background:#f7f1df;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:10px}.imported-at{color:#78837e;grid-column:1/-1;font-size:10px}.prompt-modal{padding:20px 25px}.prompt-modal>p{color:#68756f;font-size:11px}.prompt-modal textarea{border:1px solid var(--line);resize:vertical;border-radius:8px;width:100%;min-height:370px;padding:12px;font:12px/1.7 ui-monospace,monospace}.analysis-dash-counts{gap:25px;padding:15px 2px;display:flex}.analysis-dash-counts span{color:#78847f;font-size:10px}.analysis-dash-counts strong{color:#415b53;margin-right:5px;font-family:Georgia,serif;font-size:25px}.analysis-dash-counts .alert-count strong{color:#9a5146}.category-summary{border-top:1px solid #eceee9;flex-wrap:wrap;align-items:center;gap:8px;padding-top:11px;display:flex}.category-summary small{color:#7a8681;margin-right:auto}.category-summary span{background:#edf1ee;border-radius:12px;padding:5px 8px;font-size:9px}.category-summary b{margin-left:4px}@media (max-width:800px){.analysis-filters{grid-template-columns:1fr 1fr}.analysis-filters .search{grid-column:1/-1}.analysis-record{grid-template-columns:1fr auto}.analysis-record .record-actions{grid-column:1/-1;justify-content:flex-end}}@media (max-width:650px){.analysis-filters{grid-template-columns:1fr}.analysis-filters .search{grid-column:1}.analysis-record{grid-template-columns:1fr}.analysis-review{text-align:left}.analysis-form{padding:0 18px 18px}.check-list{display:grid}.prompt-modal{padding:16px}.prompt-modal textarea{min-height:300px}}.os-hero{color:#fff;background:linear-gradient(125deg,#294f45,#49776a);border-radius:15px;margin-bottom:18px;padding:29px 32px}.os-hero span{letter-spacing:.18em;color:#bdd2ca;font-size:9px}.os-hero h2{margin:9px 0 5px;font:500 27px Georgia,Yu Mincho,serif}.os-hero p{color:#d4e1dc;margin:0;font-size:12px}.today-columns{grid-template-columns:1fr 1fr 1fr;gap:13px;margin-bottom:14px;display:grid}.os-panel{background:#fff;border:1px solid #e0e2dc;border-radius:12px;padding:19px}.os-panel h3{margin:0 0 13px;font-size:13px}.os-panel h3 small{color:#8a948f;margin-left:6px;font-weight:400}.today-columns .os-panel.top{border-top:3px solid #a8584a}.today-columns .os-panel.required{border-top:3px solid #517b6f}.today-columns .os-panel.optional{border-top:3px solid #b29d64}.os-panel>article{border-bottom:1px solid #eef0eb;padding:10px 0}.os-panel>article:last-child{border:0}.os-panel article b,.os-panel article small{display:block}.os-panel article b{font-size:11px}.os-panel article small{color:#7e8984;margin-top:4px;font-size:9px;line-height:1.5}.os-empty{text-align:center;color:#9aa39f;padding:24px 0;font-size:11px}.review-candidates{grid-template-columns:1fr 1fr;gap:0 22px;display:grid}.review-candidates article{border-bottom:1px solid #edf0eb;align-items:center;gap:10px;padding:10px 0;display:flex}.review-candidates article>span{color:#537268;background:#edf1ee;border-radius:8px;flex:none;padding:4px 6px;font-size:8px}.review-candidates article>span.overdue{color:#a05245;background:#f6e4df}.review-candidates article>span.today{color:#387058;background:#e3eee7}.resource-grid{grid-template-columns:1.15fr .85fr;gap:15px;display:grid}.tool-buttons{gap:8px;display:flex}.material-row{grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;display:grid!important}.material-row>div i{background:#e9ede9;border-radius:5px;width:100%;height:5px;margin-top:8px;display:block;overflow:hidden}.material-row>div em{background:#5f8a7d;height:100%;display:block}.material-row button,.unit-row button,.exam-head button,.plan-list button{color:#54756b;background:0 0;border:0;font-size:10px}.unit-row{grid-template-columns:45px 1fr auto auto auto;align-items:center;gap:8px;display:grid!important}.unit-row>span{color:#55766c;font-size:9px}.unit-row>small{margin:0!important}.os-modal{width:min(760px,100%)}.simple-form{grid-template-columns:1fr 1fr;gap:14px;padding:22px;display:grid}.simple-form label{gap:6px;font-size:10px;font-weight:600;display:grid}.simple-form input,.simple-form select,.simple-form textarea,.subject-editor input,.subject-editor select{background:#fff;border:1px solid #d7dbd6;border-radius:8px;min-width:0;padding:9px}.simple-form textarea{min-height:75px}.simple-form .wide,.subject-editor,.simple-form .form-actions,.simple-form .form-error{grid-column:1/-1}.subject-editor>div{justify-content:space-between;margin-bottom:8px;display:flex}.subject-editor button{color:#477267;background:0 0;border:0}.subject-editor section{grid-template-columns:100px 1fr auto 1fr 1fr 1fr auto;align-items:center;gap:6px;margin:6px 0;display:grid}.exam-list{gap:12px;display:grid}.exam-head{align-items:center;gap:8px;display:flex}.exam-head>div{margin-right:auto}.exam-head h3{margin:3px 0}.exam-head small{color:#7c8782;font-size:9px}.exam-subjects{flex-wrap:wrap;gap:8px;display:flex}.exam-subjects article{background:#f1f4f1;border-radius:8px;grid-template-columns:auto auto;gap:3px 12px;padding:9px 11px;display:grid}.exam-subjects b,.exam-subjects strong{font-size:11px}.exam-subjects span,.exam-subjects small{color:#66756f;font-size:9px}.plan-list{gap:8px;display:grid}.plan-list article{background:#fff;border:1px solid #e0e2dc;border-radius:10px;grid-template-columns:90px 1fr auto auto auto;align-items:center;gap:12px;padding:14px;display:grid}.plan-list article.completed{opacity:.6}.plan-list span,.plan-list small{color:#71807a;font-size:10px}.plan-list b{font-size:12px;display:block}.plan-list strong{font-size:11px}.check-field{grid-column:1/-1;align-items:center;display:flex!important}.insight-tabs{gap:6px;margin-bottom:14px;display:flex;overflow:auto}.insight-tabs button{background:#fff;border:1px solid #dce0db;border-radius:17px;padding:7px 13px;font-size:10px}.insight-tabs button.active{color:#fff;background:#315f52}.insight-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.wide-panel{grid-column:1/-1}.metric-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.metric-grid span{color:#76837d;background:#f2f4f1;border-radius:8px;padding:11px;font-size:9px}.metric-grid b{color:#385c52;font:20px Georgia,serif;display:block}.carry{color:#738079;font-size:10px}.trend-row{border-top:1px solid #eceee9;justify-content:space-between;padding:8px;font-size:10px;display:flex}.weakness-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:12px;display:grid!important}.weakness-row span{color:#78847f;font-size:9px}.weakness-row strong{color:#a15346;font:18px Georgia,serif}@media (max-width:900px){.today-columns,.resource-grid,.insight-grid{grid-template-columns:1fr}.wide-panel{grid-column:1}.subject-editor section{grid-template-columns:1fr 1fr}.review-candidates{grid-template-columns:1fr}}@media (max-width:650px){.os-hero{padding:23px}.page-tools{flex-wrap:wrap}.simple-form{grid-template-columns:1fr}.simple-form .wide,.subject-editor,.simple-form .form-actions,.simple-form .form-error{grid-column:1}.material-row,.unit-row,.plan-list article,.weakness-row{grid-template-columns:1fr auto!important}.material-row>div,.plan-list article>div,.weakness-row>b{grid-column:1/-1}.metric-grid{grid-template-columns:1fr 1fr}.exam-subjects{display:grid}.subject-editor section{grid-template-columns:1fr}}body{overflow-x:hidden}.app-shell{min-height:100dvh}.today-priorities{grid-template-columns:1fr 1fr;gap:13px;margin-bottom:14px;display:grid}.today-priorities .top{border-top:3px solid #a8584a}.today-priorities .required{border-top:3px solid #517b6f}.today-optional{margin-top:14px}.today-optional .optional{border-top:3px solid #b29d64}.mobile-bottom-nav,.mobile-quick-button,.mobile-sheet,.mobile-sheet-scrim{display:none}@media (max-width:650px){body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.app-shell{min-height:100dvh}.sidebar,.scrim,.menu-button{display:none!important}main{width:100%;min-width:0}header{height:auto;min-height:64px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;position:sticky}header>div:first-of-type{min-width:0}h1{font-size:19px}.date-chip{white-space:nowrap}.content{padding:14px 12px 28px}.os-hero{margin-bottom:10px;padding:18px 17px}.os-hero span,.os-hero p{display:none}.os-hero h2{margin:0;font-size:22px}.today-priorities{grid-template-columns:1fr;gap:10px;margin-bottom:10px}.today-optional{margin-top:10px}.os-panel{padding:15px}.today-review-panel{scroll-margin-top:78px}.review-candidates article{min-height:52px}.page-tools{margin-bottom:12px}.page-tools>p{display:none}.page-tools .primary,.page-tools .secondary{min-width:44px;min-height:44px}.record,.analysis-record,.material-row,.unit-row,.plan-list article,.weakness-row{max-width:100%;overflow:hidden}.record-actions{border-top:1px solid #eceee9;gap:14px;padding-top:8px}.record-actions button,.material-row button,.unit-row button,.plan-list button,.exam-head button{min-width:44px;min-height:40px}.record-actions .danger{margin-left:auto}.analysis-filters{display:block}.analysis-filters>.search{margin-bottom:8px}.analysis-filters>select{display:none}.form-grid,.simple-form{gap:14px;padding:16px 14px}.field input,.field select,.field textarea,.simple-form input,.simple-form select,.simple-form textarea{min-height:44px;font-size:16px}.modal-backdrop{align-items:end;padding:0}.modal,.os-modal{width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 8px);padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0}.modal-head{z-index:2;background:#fbfbf8;padding:14px 16px;position:sticky;top:0}.modal-head button{min-width:44px;min-height:44px}.form-actions{padding:12px 0 calc(8px + env(safe-area-inset-bottom));z-index:2;background:#fbfbf8;position:sticky;bottom:0}.form-actions button{flex:1;min-height:46px}.analysis-form fieldset{padding:17px 0}.analysis-form legend{font-size:14px}.analysis-form textarea{min-height:92px}.subject-editor section{background:#f1f3f0;border-radius:9px;padding:10px}.subject-editor section input,.subject-editor section select{width:100%}.mobile-bottom-nav{height:calc(62px + env(safe-area-inset-bottom));padding:5px 4px env(safe-area-inset-bottom);z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border-top:1px solid #dcded8;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav button{color:#7c8782;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;display:flex}.mobile-bottom-nav svg{width:21px;height:21px}.mobile-bottom-nav span{font-size:9px}.mobile-bottom-nav button.active{color:#315f52}.mobile-bottom-nav button.active span{font-weight:700}.mobile-quick-button{right:15px;bottom:calc(74px + env(safe-area-inset-bottom));color:#fff;z-index:44;background:#315f52;border:0;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:fixed;box-shadow:0 5px 18px #203d3555}.mobile-sheet-scrim{z-index:41;background:#1c2c2766;border:0;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.mobile-sheet{left:10px;right:10px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:43;max-height:calc(75dvh - env(safe-area-inset-bottom));background:#fff;border-radius:15px 15px 8px 8px;padding:17px;display:block;position:fixed;overflow:auto;box-shadow:0 -10px 35px #20352e33}.mobile-sheet strong{font-size:13px}.mobile-sheet>div{grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;display:grid}.mobile-sheet button{color:#40574f;background:#f0f3f0;border:0;border-radius:9px;min-height:48px}.quick-sheet>div button{align-items:center;gap:8px;padding:12px;display:flex}.sheet-head{align-items:center;grid-template-columns:1fr auto!important;margin:0!important;display:flex!important}.sheet-head button{background:0 0;min-width:44px}.more-sheet>div:last-child button.active{color:#315f52;background:#dfeae4;font-weight:700}body:has(.modal-backdrop) .mobile-bottom-nav{display:none}body:has(.modal-backdrop) .mobile-quick-button{display:none}.analysis-filters{grid-template-columns:repeat(3,minmax(140px,1fr));padding-bottom:5px;overflow-x:auto;display:grid!important}.analysis-filters>.search{grid-column:1/-1;margin-bottom:0;position:sticky;left:0}.analysis-filters>select{min-height:42px;display:block!important}body{--mobile-edge-gap:12px;--mobile-nav-height:62px;--mobile-fab-size:48px;--mobile-control-gap:12px;padding-bottom:calc(var(--mobile-edge-gap) + var(--mobile-nav-height) + 20px + env(safe-area-inset-bottom))}.mobile-bottom-nav{left:calc(var(--mobile-edge-gap) + env(safe-area-inset-left));right:calc(var(--mobile-edge-gap) + env(safe-area-inset-right));bottom:calc(var(--mobile-edge-gap) + env(safe-area-inset-bottom));height:var(--mobile-nav-height);border:1px solid #dcded8;border-radius:18px;padding:5px 4px;box-shadow:0 7px 24px #20352e24}.mobile-bottom-nav button{min-height:44px}.mobile-quick-button{right:calc(15px + env(safe-area-inset-right));bottom:calc(var(--mobile-edge-gap) + var(--mobile-nav-height) + var(--mobile-control-gap) + env(safe-area-inset-bottom));width:var(--mobile-fab-size);height:var(--mobile-fab-size)}.mobile-sheet{left:calc(10px + env(safe-area-inset-left));right:calc(10px + env(safe-area-inset-right));bottom:calc(var(--mobile-edge-gap) + var(--mobile-nav-height) + var(--mobile-control-gap) + env(safe-area-inset-bottom))}.quick-sheet{bottom:calc(var(--mobile-edge-gap) + var(--mobile-nav-height) + var(--mobile-fab-size) + var(--mobile-control-gap) * 2 + env(safe-area-inset-bottom))}}.mobile-wheel-trigger{display:none}.wheel-picker-backdrop{z-index:80;background:#1c2c2766;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.wheel-picker{width:100%;padding-bottom:env(safe-area-inset-bottom);background:#fbfbf8;border-radius:16px 16px 0 0;box-shadow:0 -12px 40px #20352e3d}.wheel-picker-head{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;height:52px;padding:0 12px;display:grid}.wheel-picker-head strong{font-size:14px}.wheel-picker-head button{color:#315f52;background:0 0;border:0;min-width:64px;min-height:44px}.wheel-picker-head button:last-child{justify-self:end;font-weight:700}.wheel-columns{justify-content:center;gap:24px;padding:8px 20px;display:flex;position:relative}.wheel-columns:after{content:"";pointer-events:none;background:#e8efeb80;border-top:1px solid #cfdbd5;border-bottom:1px solid #cfdbd5;height:44px;position:absolute;top:96px;left:20px;right:20px}.wheel-column-wrap{z-index:1;align-items:center;gap:8px;display:flex}.wheel-column-wrap>span{font-size:13px}.wheel-column{-webkit-overflow-scrolling:touch;scroll-snap-type:y proximity;overscroll-behavior:contain;scrollbar-width:none;touch-action:pan-y;width:72px;height:220px;padding:88px 0;overflow-y:auto}.wheel-column::-webkit-scrollbar{display:none}.wheel-column>div{scroll-snap-align:center;color:#9aa39f;place-items:center;height:44px;font-size:18px;transition:color .1s,transform .1s,filter .1s;display:grid;transform:scale(.94)}.wheel-column>div.selected{color:#28312e;font-weight:700;transform:scale(1)}.wheel-column-wrap.has-interacted .wheel-column>div.selected{animation:.1s ease-out wheel-tick}.wheel-columns.single .wheel-column{width:100px}@keyframes wheel-tick{50%{filter:brightness(1.12);transform:scale(1.08)}}@media (max-width:650px){.desktop-number-input{display:none}.mobile-wheel-trigger{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #d8dbd6;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 11px;display:flex}body:has(.wheel-picker-backdrop) .mobile-bottom-nav{display:none}body:has(.wheel-picker-backdrop) .mobile-quick-button{display:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--app-bg:#f3f2ed;--surface:#fff;--surface-elevated:#fbfbf8;--surface-muted:#eef0ec;--control-bg:#fff;--icon-bg:#e8efeb;--text-primary:#28312e;--text-secondary:#74807b;--text-disabled:#89938f;--border:#dedfd8;--border-strong:#c9cec9;--accent:#315f52;--interactive:#426f62;--success-bg:#e4efe8;--success-text:#346b53;--warning-bg:#f7f1df;--warning-text:#79662f;--danger-bg:#f8e7e3;--danger-text:#974f43;--disabled-bg:#edf0ed}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#0b0e0d;--surface:#141917;--surface-elevated:#1b211e;--text-primary:#f0f4f1;--text-secondary:#a8b3ad;--border:#2a342f;--accent:#64ad94;color:var(--text-primary);background:var(--app-bg);--ink:var(--text-primary);--muted:var(--text-secondary);--green:var(--accent);--line:var(--border);--paper:var(--surface);--cream:var(--surface-elevated)}body,.app-shell,main{background:var(--app-bg);color:var(--text-primary)}header{border-color:var(--border);background:#111614e8}header p,.page-tools p,.record p,.analysis-record p,.data-intro p,.data-card p,.os-panel article small,.plan-list span,.plan-list small,.analysis-review small,.field-help,.imported-at,.prompt-modal>p,.carry,.weakness-row span,.exam-head small,.exam-subjects span,.exam-subjects small{color:var(--text-secondary)}.stat,.panel,.record,.analysis-record,.data-card,.os-panel,.plan-list article,.search,.check-list label,.exam-subjects article,.metric-grid span,.category-summary span,.analysis-helper,.subject-editor section{background:var(--surface);border-color:var(--border)}.modal,.os-modal,.wheel-picker{background:var(--surface-elevated);color:var(--text-primary)}.modal-head,.form-actions{background:var(--surface-elevated);border-color:var(--border)}.field input,.field select,.field textarea,.simple-form input,.simple-form select,.simple-form textarea,.subject-editor input,.subject-editor select,.analysis-filters select,.search input,.prompt-modal textarea,.mobile-wheel-trigger{background:var(--control-bg);color:var(--text-primary);border-color:var(--border)}.primary,.mobile-quick-button,.analysis-form legend span,.data-intro>span{color:#f5faf7;background:#397b67}.secondary{background:var(--surface-muted);color:#cbd6d0}.sidebar{background:#101714}.mobile-bottom-nav,.mobile-sheet{border-color:var(--border);color:var(--text-primary);background:#171d1aef}.mobile-bottom-nav button{color:#929f99}.mobile-bottom-nav button.active,.mobile-sheet button.active{color:var(--interactive)}.mobile-sheet button{background:var(--surface-muted);color:#d5ded9}.sheet-head button{background:0 0}.date-chip,.subject-icon,.tag,.review-status,.review-candidates article>span{background:var(--surface-muted);color:#b9cec5}.review-status.passed,.review-candidates article>span.today,.data-message.success{background:var(--success-bg);color:var(--success-text)}.review-status.overdue,.review-status.needs_review,.tag.mistake,.data-message.error,.danger-note,.form-error,.error-banner{background:var(--danger-bg);color:var(--danger-text)}.restore-button{background:#a95e52}.analysis-helper,.metric-grid span,.category-summary span,.exam-subjects article{background:var(--surface-elevated)}.wheel-picker-backdrop,.modal-backdrop,.mobile-sheet-scrim{background:#050706b8}.wheel-picker-head{border-color:var(--border)}.wheel-picker-head button{color:var(--interactive)}.wheel-columns:after{background:#29413799;border-color:#46675b}.wheel-column>div{color:#77837d}.wheel-column>div.selected{color:#f2f7f4}.os-empty,.empty{color:#89958f}.record-actions,.analysis-form fieldset,.panel-title,.category-summary,.data-card ul,.restore-summary dl,.restore-summary dl div,.review-candidates article,.os-panel>article,.trend-row{border-color:var(--border)}.check{background:var(--control-bg);border-color:#52615b}.check.checked{background:#397b67}.focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.restore-button:disabled,button:disabled{opacity:.5}:root{--surface-muted:#202824;--control-bg:#101513;--icon-bg:#22302b;--text-disabled:#718079;--border-strong:#3a4741;--interactive:#78c2a8;--success-bg:#173a2d;--success-text:#8ed5b7;--warning-bg:#39321e;--warning-text:#e2cb81;--danger-bg:#40231f;--danger-text:#f0a99d;--disabled-bg:#1b211e}.data-intro{background:var(--surface-muted);border-color:var(--border-strong);color:var(--text-primary)}.data-intro h2{color:var(--text-primary)}.data-card-icon{background:var(--icon-bg);color:var(--accent)}.data-card ul,.restore-summary>p,.restore-summary dt{color:var(--text-secondary)}.backup-first{color:var(--interactive)}.warning-note,.ai-caution{background:var(--warning-bg);color:var(--warning-text)}.danger-note,.data-message.error,.form-error,.error-banner{background:var(--danger-bg);color:var(--danger-text)}.data-message.success{background:var(--success-bg);color:var(--success-text)}.priority.high,.tag.not_started,.tag.mistake,.review-status.overdue,.review-status.needs_review{background:var(--danger-bg);color:var(--danger-text)}.priority.medium,.tag.in_progress{background:var(--warning-bg);color:var(--warning-text)}.priority.low,.review-status.passed,.review-candidates article>span.today{background:var(--success-bg);color:var(--success-text)}.row-item small,.record-meta,.record-numbers small,.progress-text,.review-date small,.review-date span,.panel-hint,.stat small,.os-panel h3 small,.category-summary small,.analysis-dash-counts span{color:var(--text-secondary)}.panel-title button,.record-actions button,.material-row button,.unit-row button,.exam-head button,.plan-list button,.subject-editor button,.backup-first{color:var(--interactive)}.record-actions button.danger,.overdue,.analysis-dash-counts .alert-count strong,.weakness-row strong{color:var(--danger-text)}.analysis-dash-counts strong{color:var(--text-primary)}.metric-grid b{color:var(--interactive)}.weak-row>div,.progress,.material-row>div i{background:var(--surface-muted)}.modal-head button,.loading{color:var(--text-secondary)}input::placeholder,textarea::placeholder{color:#84918b}.field b{color:var(--danger-text)}button:disabled,input:disabled,select:disabled,textarea:disabled{background:var(--disabled-bg);color:var(--text-disabled);border-color:var(--border);opacity:.7;-webkit-text-fill-color:var(--text-disabled)}.primary:disabled,.restore-button:disabled,.mobile-quick-button:disabled{background:var(--disabled-bg);color:var(--text-disabled)}.mobile-bottom-nav,.mobile-sheet,.modal,.wheel-picker{box-shadow:0 10px 30px #0008}.unit-row>span,.analysis-helper>small,.wheel-column>div{color:var(--text-secondary)}.menu-button{color:var(--interactive)}.more-sheet>div:last-child button.active{background:var(--surface-muted);color:var(--interactive)}.check:disabled{background:var(--disabled-bg);border-color:var(--border-strong)}}:root{--priority-gradient:linear-gradient(110deg,#b84d43,#dc7966);--required-gradient:linear-gradient(110deg,#b86b2f,#d9a53c);--review-gradient:linear-gradient(110deg,#397da0,#419b91);--optional-gradient:linear-gradient(110deg,#4d876c,#79ad86);--priority-tint:#fff5f2;--required-tint:#fff9ed;--review-tint:#f1f8fa;--optional-tint:#f3faf5}.today-priorities .top,.today-priorities .required,.today-review-panel,.today-optional .optional{border:1px solid var(--line)}.today-priorities .top{background:var(--priority-tint)}.today-priorities .required{background:var(--required-tint)}.today-review-panel{background:var(--review-tint)}.today-optional .optional{background:var(--optional-tint)}.today-priorities .top>h3,.today-priorities .required>h3,.today-review-panel>h3,.today-optional .optional>h3{color:#fff;border-radius:8px;padding:8px 10px}.today-priorities .top>h3{background:var(--priority-gradient)}.today-priorities .required>h3{background:var(--required-gradient)}.today-review-panel>h3{background:var(--review-gradient)}.today-optional .optional>h3{background:var(--optional-gradient)}.today-review-panel>h3 small{color:inherit}@media (prefers-color-scheme:dark){:root{--priority-gradient:linear-gradient(110deg,#74352f,#a65347);--required-gradient:linear-gradient(110deg,#744820,#9b742c);--review-gradient:linear-gradient(110deg,#28566d,#2d756d);--optional-gradient:linear-gradient(110deg,#315b48,#4b7858);--priority-tint:#211715;--required-tint:#211c13;--review-tint:#131f22;--optional-tint:#142019}.insight-tabs button{background:var(--surface-elevated);color:var(--text-secondary);border-color:var(--border)}.insight-tabs button.active{background:var(--accent);color:#07110d;border-color:#82c9b0}.insight-tabs button:focus-visible{border-color:var(--accent);outline-color:var(--accent)}}@media (prefers-reduced-motion:reduce){.wheel-column>div{transition:none}.wheel-column-wrap.has-interacted .wheel-column>div.selected{animation:none}}.modal,.modal>form,.form-grid,.field,.form-actions{min-width:0;max-width:100%}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.field input,.field select,.field textarea,.mobile-wheel-trigger{min-width:0;max-width:100%}input[type=date]{width:100%;inline-size:100%;min-width:0;min-inline-size:0;box-sizing:border-box;max-width:100%;display:block}.form-actions>button{min-width:0}@media (max-width:650px){.form-grid{grid-template-columns:minmax(0,1fr)}.modal{width:100%;max-width:100%}}#root{min-width:0;max-width:100%}.modal-backdrop{overscroll-behavior:none}.modal{overscroll-behavior-x:none;overscroll-behavior-y:contain;touch-action:pan-y;overflow:clip auto}html:has(.modal-backdrop){overscroll-behavior:none;overflow:hidden}body:has(.modal-backdrop){overscroll-behavior:none;overflow:hidden}:root{--accent:#2f6f9f;--accent-strong:#245779;--accent-soft:#e6f0f7;--accent-hover:#1f4d6d;--accent-band:#d7e9f5b8;--accent-band-border:#9fc2d9;--focus-ring:#2f6f9f33;--interactive:#245779;--icon-bg:var(--accent-soft);--brand-sidebar:#172f43;--brand-sidebar-active:#245779;--brand-sidebar-text:#c8d9e5;--brand-sidebar-muted:#91aabd;--brand-hero:linear-gradient(115deg,#245779,#397da8);--brand-hero-muted:#d0e3ef;--success-accent:#3f7f62;--green:var(--accent);--pale:var(--accent-soft)}@media (prefers-color-scheme:dark){:root{--accent:#68a9d3;--accent-strong:#285d80;--accent-soft:#172b3a;--accent-hover:#34749c;--accent-band:#214963b8;--accent-band-border:#477d9e;--focus-ring:#68a9d344;--interactive:#68a9d3;--icon-bg:var(--accent-soft);--brand-sidebar:#101b24;--brand-sidebar-active:#234e6b;--brand-sidebar-text:#d2e0e9;--brand-sidebar-muted:#8ca5b6;--brand-hero:linear-gradient(125deg,#183e58,#285f82);--brand-hero-muted:#c1d9e8;--success-accent:#4f9875;--green:var(--accent);--pale:var(--accent-soft)}}.sidebar{background:var(--brand-sidebar)}.sidebar nav button{color:var(--brand-sidebar-text)}.sidebar nav button:hover,.sidebar nav button.active{background:var(--brand-sidebar-active);color:#fff}.brand-mark{background:var(--accent-soft);color:var(--interactive)}.brand small,.local-note small{color:var(--brand-sidebar-muted)}.local-note{border-color:var(--brand-sidebar-active);color:var(--brand-sidebar-text)}.welcome,.os-hero{background:var(--brand-hero)}.eyebrow,.os-hero span,.welcome p,.os-hero p{color:var(--brand-hero-muted)}.welcome{box-shadow:0 8px 25px #2457792e}.primary,.mobile-quick-button,.analysis-form legend span,.data-intro>span{background:var(--accent-strong);color:#fff}.primary:not(:disabled):hover,.mobile-quick-button:not(:disabled):hover{background:var(--accent-hover)}.welcome .primary{color:var(--accent-strong);background:#f7f9fb}.secondary{background:var(--accent-soft);color:var(--interactive)}.data-intro{background:var(--accent-soft);border-color:var(--accent-band-border)}.data-card-icon,.subject-icon,.date-chip,.tag,.review-candidates article>span{background:var(--accent-soft);color:var(--interactive)}.panel-title button,.record-actions button,.material-row button,.unit-row button,.exam-head button,.plan-list button,.subject-editor button,.backup-first,.wheel-picker-head button,.menu-button,.metric-grid b{color:var(--interactive)}.weak-row i,.progress i,.material-row>div em{background:var(--accent)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.check-list input,.confirm-check input{accent-color:var(--accent)}.insight-tabs button.active{background:var(--accent-strong);color:#fff;border-color:var(--accent)}.mobile-bottom-nav button.active{color:var(--interactive)}.more-sheet>div:last-child button.active{background:var(--accent-soft);color:var(--interactive)}.wheel-columns:after{background:var(--accent-band);border-color:var(--accent-band-border)}.mobile-quick-button{box-shadow:0 5px 18px #183e5866}.review-candidates article>span.today{background:var(--accent-soft);color:var(--interactive)}.review-date span{color:var(--text-secondary)}.status-dot{background:var(--success-accent)}.check.checked{background:var(--success-accent);border-color:var(--success-accent)}.check-field input{accent-color:var(--success-accent)}.tag.completed{background:var(--success-bg);color:var(--success-text)}button:focus-visible{outline-color:var(--accent)}input:focus-visible{outline-color:var(--accent)}select:focus-visible{outline-color:var(--accent)}textarea:focus-visible{outline-color:var(--accent)}.today-item-button,.review-candidate-button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:44px;color:inherit;text-align:left;background:0 0;padding:10px 0}.today-item-button:last-of-type,.review-candidate-button:last-of-type{border-bottom:0}.today-item-button b,.today-item-button small,.review-candidate-button b,.review-candidate-button small{display:block}.today-item-button small,.review-candidate-button small{color:var(--text-secondary);margin-top:4px;font-size:9px;line-height:1.5}.today-item-button:hover,.review-candidate-button:hover{background:var(--accent-soft)}.review-candidate-button{align-items:center;gap:10px;display:flex}.review-candidate-button>span{background:var(--accent-soft);color:var(--interactive);border-radius:8px;flex:none;padding:4px 6px;font-size:8px}.review-candidate-button>span.overdue{background:var(--danger-bg);color:var(--danger-text)}.review-candidate-button>div,.completion-form{min-width:0}.completion-target{border:1px solid var(--accent-band-border);background:var(--accent-soft);border-radius:10px;margin:18px 22px 0;padding:14px 16px}.completion-target strong,.completion-target span{display:block}.completion-target span{color:var(--text-secondary);margin-top:4px;font-size:10px}.completion-form .form-grid{padding-top:16px}.completion-form .check-field{gap:9px;min-height:44px}.completion-form .check-field input{width:18px;height:18px}.missing-checks{color:var(--danger-text);margin:10px 0 0;font-size:11px;line-height:1.6}.required-mark{color:var(--danger-text);margin-left:6px;font-size:8px}.completion-notice{z-index:70;border:1px solid var(--accent-band-border);background:var(--surface-elevated);max-width:min(390px,100% - 24px);color:var(--text-primary);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:12px;display:flex;position:fixed;bottom:24px;right:18px;box-shadow:0 10px 30px #0003}.completion-notice strong,.completion-notice small{display:block}.completion-notice small{color:var(--text-secondary);margin-top:3px}.completion-notice button{color:var(--interactive);background:0 0;border:0;min-width:32px;min-height:32px}.today-item-button,.review-candidate-button{position:relative;overflow:hidden}.today-item-button.is-leaving,.review-candidate-button.is-leaving{opacity:1;cursor:default;animation:.65s ease-out both completion-card-success}.today-item-button.is-leaving:has(.needs_review){animation-name:completion-card-review}.review-candidate-button.is-leaving:has(.needs_review){animation-name:completion-card-review}.completion-result{z-index:1;background:var(--success-bg);color:var(--success-text);justify-content:center;align-items:center;gap:7px;animation:.24s ease-out both completion-mark;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.completion-result.needs_review{background:linear-gradient(110deg,var(--accent-soft),var(--warning-bg));color:var(--warning-text)}.completion-result svg{stroke-width:2.5px;width:20px;height:20px}.completion-result b{font-size:12px}@keyframes completion-mark{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes completion-card-success{0%,30%{background:var(--success-bg);opacity:1;transform:none}to{background:var(--success-bg);opacity:0;transform:translateY(-7px)scale(.97)}}@keyframes completion-card-review{0%,30%{background:var(--accent-soft);opacity:1;transform:none}to{background:var(--warning-bg);opacity:0;transform:translateY(-7px)scale(.97)}}@media (max-width:650px){.today-item-button,.review-candidate-button{min-height:52px;padding:11px 2px}.completion-target{margin:14px 14px 0}.completion-form .form-grid{padding-bottom:0}.completion-notice{left:12px;right:12px;bottom:calc(74px + env(safe-area-inset-bottom));max-width:none}.completion-form .form-actions{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.today-item-button.is-leaving,.review-candidate-button.is-leaving,.completion-result{animation:none!important;transform:none!important}.completion-result{transition:background-color .12s linear}}@media (prefers-color-scheme:dark){.today-item-button,.review-candidate-button{border-color:var(--border)}.today-item-button:hover,.review-candidate-button:hover{background:var(--accent-soft)}.completion-target,.completion-notice{background:var(--surface-elevated);border-color:var(--accent-band-border)}}button,[role=button],.mobile-bottom-nav,.mobile-sheet button,.insight-tabs button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true],.record p,.analysis-record p,.prompt-modal textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.study-log-add{justify-content:center;align-items:center;width:50px;min-width:50px;height:50px;min-height:50px;padding:0;font-size:0;line-height:1;display:inline-flex;overflow:hidden}.study-log-add svg{width:20px;height:20px;margin:0;display:block}.subject-accent{border-left:4px solid var(--subject-color)}.subject-icon,.subject-badge{background:var(--subject-soft);color:var(--subject-color)}.subject-badge{border-radius:10px;padding:3px 7px;font-weight:700;display:inline-flex}.insight-tabs button.active{background:var(--subject-soft);color:var(--subject-color);border-color:var(--subject-color);box-shadow:inset 0 -3px var(--subject-color);font-weight:700}.weakness-row.subject-accent{padding-left:10px}.subject-duration-panel{min-width:0}.subject-duration-content{grid-template-columns:minmax(180px,260px) minmax(230px,1fr);align-items:center;gap:28px;padding:18px 8px 4px;display:grid}.donut-wrap{aspect-ratio:1;width:min(230px,100%);margin:auto;position:relative}.subject-donut{width:100%;height:100%;display:block;overflow:visible;transform:rotate(-90deg)}.donut-track,.donut-segment{fill:none;stroke-width:16px}.donut-track{stroke:var(--surface-muted)}.donut-segment{stroke-linecap:butt}.donut-total{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:27%;bottom:27%;left:27%;right:27%}.donut-total small{color:var(--text-secondary);font-size:10px}.donut-total strong{margin-top:4px;font-size:17px}.subject-legend{gap:8px;margin:0;padding:0;list-style:none;display:grid}.subject-legend li{border-bottom:1px solid var(--border);grid-template-columns:12px minmax(58px,1fr) auto 42px;align-items:center;gap:9px;min-width:0;padding:8px 10px;font-size:11px;display:grid}.subject-legend i{background:var(--subject-color);border-radius:50%;width:10px;height:10px}.subject-legend strong{text-align:right}.subject-legend small{text-align:right;color:var(--text-secondary)}.subject-duration-empty{min-height:180px;color:var(--text-secondary);text-align:center;place-items:center;margin:0;padding:24px;font-size:12px;display:grid}@media (prefers-color-scheme:dark){.subject-icon,.subject-badge,.insight-tabs button.active{background:var(--subject-dark-soft);color:var(--subject-dark-color)}.subject-accent{border-left-color:var(--subject-dark-color)}.insight-tabs button.active{border-color:var(--subject-dark-color);box-shadow:inset 0 -3px var(--subject-dark-color)}.subject-legend i{background:var(--subject-dark-color)}}@media (max-width:650px){.study-log-add{width:50px;min-width:50px;height:50px}.subject-duration-content{grid-template-columns:minmax(0,1fr);gap:15px}.donut-wrap{width:min(210px,78vw)}.subject-legend li{grid-template-columns:12px minmax(52px,1fr) auto 38px}.subject-duration-panel{overflow:hidden}.content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}.material-quick{margin-bottom:18px;padding:20px}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.section-heading h2{margin:0 0 4px;font-size:18px}.section-heading p{color:var(--text-secondary);margin:0;font-size:11px}.material-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.material-quick-grid>button{text-align:left;border:1px solid var(--border);border-left:4px solid var(--subject-color);background:var(--surface-elevated);min-width:0;min-height:108px;color:var(--text-primary);border-radius:10px;flex-direction:column;align-items:flex-start;gap:7px;padding:13px;display:flex}.material-quick-grid>button:hover{border-color:var(--subject-color);background:var(--subject-soft)}.material-quick-grid strong{overflow-wrap:anywhere;max-width:100%;font-size:14px;line-height:1.45}.material-quick-grid small{color:var(--text-secondary);font-size:10px}.material-quick-empty{text-align:center;min-height:120px;color:var(--text-secondary);place-items:center;gap:10px;font-size:12px;display:grid}.study-report{gap:16px;margin-bottom:20px;display:grid}.report-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.report-summary>span{border:1px solid var(--border);background:var(--surface);border-radius:11px;flex-direction:column;gap:7px;min-width:0;padding:15px;display:flex}.report-summary small{color:var(--text-secondary);font-size:10px}.report-summary strong{overflow-wrap:anywhere;font-size:18px}.weekly-bars svg{width:100%;max-height:240px;display:block}.weekly-bars svg text{fill:var(--text-secondary);font-size:12px}.study-calendar{min-width:0}.calendar-head{grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:12px;display:grid}.calendar-head h3{text-align:center;font-size:16px}.calendar-head button{background:var(--surface-muted);min-width:44px;min-height:44px;color:var(--text-primary);border:0;border-radius:8px;font-size:25px}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{text-align:center;color:var(--text-secondary);padding:7px;font-size:10px}.calendar-grid button{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:48px;color:var(--text-primary);position:relative}.calendar-grid button.outside{opacity:.42}.calendar-grid button.today span{outline:2px solid var(--accent);border-radius:50%;place-items:center;min-width:25px;height:25px;display:inline-grid}.calendar-grid button.selected{z-index:1;outline:2px solid var(--interactive);outline-offset:-2px}.calendar-grid button.level-1{background:color-mix(in srgb,var(--accent-soft) 50%,var(--surface))}.calendar-grid button.level-2{background:color-mix(in srgb,var(--accent-soft) 75%,var(--surface))}.calendar-grid button.level-3{background:var(--accent-band)}.calendar-grid button.level-4{background:var(--accent-strong);color:#fff}.calendar-grid i{color:currentColor;height:5px;font-style:normal;display:block}.calendar-history{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.calendar-history>h3{margin-bottom:8px;font-size:13px}.calendar-history>button{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;min-height:58px;color:inherit;background:0 0;align-items:center;gap:10px;padding:9px 3px;display:flex}.calendar-history>button>div{min-width:0}.calendar-history strong,.calendar-history small{display:block}.calendar-history strong{overflow-wrap:anywhere;font-size:13px}.calendar-history small{color:var(--text-secondary);white-space:normal;margin-top:4px;font-size:10px}.review-candidate-card{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.review-candidate-card .review-candidate-button{border:0;min-width:0;padding:13px 8px}.review-edit-button{min-width:44px;min-height:44px;color:var(--interactive);background:0 0;border:0;align-self:center;font-size:11px}.candidate-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:7px;font-weight:600;font-size:12px!important;display:flex!important}.candidate-title{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:7px;font-weight:700;line-height:1.45;display:-webkit-box;overflow:hidden;font-size:17px!important}.candidate-detail{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:5px;font-size:13px;line-height:1.45;display:block}.candidate-reason{font-weight:500;display:block;margin-top:9px!important;font-size:12px!important}.overdue-reason{color:var(--danger-text)!important;font-weight:600!important}.today-priorities .os-panel>h3,.today-review-panel>h3,.today-optional .os-panel>h3{justify-content:space-between;align-items:center;padding:10px 12px;font-size:18px;font-weight:700;line-height:1.4;display:flex}.today-priorities .os-panel>h3 small,.today-review-panel>h3 small,.today-optional .os-panel>h3 small{font-size:10px;font-weight:600}.today-item-button{min-height:76px;padding:14px 9px}.review-test{padding-bottom:18px}.review-test-question{border:1px solid var(--border);border-left:4px solid var(--subject-color);background:var(--surface);border-radius:11px;margin:18px;padding:18px;position:relative}.review-test-question h3{margin:13px 0;font-size:18px;line-height:1.45}.review-test-question dl,.review-answer dl{gap:7px;margin:0;display:grid}.review-test-question dl div,.review-answer dl div{grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:12px;display:grid}.review-test-question dt,.review-answer dt{color:var(--text-secondary)}.review-test-question dd,.review-answer dd{overflow-wrap:anywhere;margin:0}.review-timer{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:12px;position:absolute;top:15px;right:15px}.review-test-hidden{text-align:center;color:var(--text-secondary);place-items:center;gap:16px;padding:28px 20px;font-size:12px;display:grid}.review-answer{background:var(--surface-muted);border-radius:10px;margin:0 18px;padding:16px}.review-answer h3{margin-top:0;font-size:14px}.review-test-form{gap:15px;padding:18px;display:grid}.review-test-form .analysis-helper{min-width:0}.review-test-form .form-actions{margin-top:4px}.review-test-form .field textarea{min-height:70px}.weekly-reflection{margin-bottom:20px;padding:20px}.reflection-preview{flex-wrap:wrap;gap:8px;display:flex}.reflection-preview span{background:var(--surface-muted);border-radius:8px;padding:8px 10px;font-size:11px}.reflection-saved{gap:12px;display:grid}.reflection-saved>div{background:var(--surface-muted);border-radius:9px;padding:12px}.reflection-saved strong{font-size:11px}.reflection-saved p{white-space:pre-wrap;margin:5px 0 0;font-size:12px;line-height:1.7}.reflection-form{gap:15px;padding:20px;display:grid}.reflection-form label{gap:7px;font-size:11px;font-weight:600;display:grid}.reflection-form textarea{resize:vertical;border:1px solid var(--border);background:var(--control-bg);min-height:90px;color:var(--text-primary);border-radius:8px;padding:10px}.draft-facts{background:var(--surface-muted);border-radius:9px;gap:6px;padding:13px;font-size:11px;display:grid}.backup-state{background:var(--accent-soft);border-radius:8px;padding:10px;font-weight:600;color:var(--interactive)!important;margin-bottom:12px!important}.backup-notice-card{border:1px solid var(--accent-band-border);background:var(--surface);border-radius:10px;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:10px;margin:14px 0;padding:12px 14px;font-size:11px;display:grid}.backup-notice-card strong,.backup-notice-card span{display:block}.backup-notice-card span{color:var(--text-secondary);margin-top:4px}.backup-notice-card button{min-height:44px;color:var(--interactive);background:0 0;border:0;font-weight:600}@media (prefers-color-scheme:dark){.material-quick-grid>button:hover{background:var(--subject-dark-soft);border-color:var(--subject-dark-color)}.calendar-grid button.level-1{background:#172736}.calendar-grid button.level-2{background:#1b3447}.calendar-grid button.level-3{background:#234c66}.calendar-grid button.level-4{background:#326f96}.review-test-question{border-left-color:var(--subject-dark-color)}}@media (max-width:800px){.material-quick-grid,.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:650px){.material-quick{padding:15px}.material-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.material-quick-grid>button{min-height:114px;padding:11px}.section-heading{flex-direction:column;align-items:stretch}.section-heading .secondary,.section-heading .primary{align-self:flex-start;min-height:44px}.weekly-bars{overflow-x:auto}.weekly-bars svg{min-width:620px}.calendar-grid button{min-height:45px}.review-candidate-card{grid-template-columns:minmax(0,1fr) 48px}.candidate-title{font-size:16px!important}.review-test-question{margin:10px;padding:14px}.review-answer{margin:0 10px}.review-test-form{padding:14px 10px calc(14px + env(safe-area-inset-bottom))}.review-test-question dl div,.review-answer dl div{grid-template-columns:78px minmax(0,1fr)}.backup-notice-card{grid-template-columns:minmax(0,1fr) 44px}.backup-notice-card>button:first-of-type{grid-area:2/1/auto/-1}.backup-notice-card>button:nth-of-type(2){grid-area:1/2}.today-item-button{padding:14px 7px}.today-priorities .os-panel>h3,.today-review-panel>h3,.today-optional .os-panel>h3{font-size:17px}}@media (max-width:360px){.material-quick-grid,.report-summary{grid-template-columns:minmax(0,1fr)}.calendar-grid button{min-height:44px;padding:2px}.subject-badge{padding:3px 5px}.review-test-question dl div,.review-answer dl div{grid-template-columns:minmax(0,1fr)}}
