:root{--canvas:#f4efe6;--canvas-deep:#ece5d9;--surface:#fffcf7;--surface-raised:#fffefa;--ink:#2f342e;--ink-soft:#555d54;--muted:#686d63;--faint:#686d63;--border:#ded5c7;--border-soft:#ebe4d9;--control-border:#958d82;--primary:#466052;--primary-hover:#394f43;--primary-pale:#e7ede8;--terracotta:#c77b5d;--terracotta-pale:#f3e2d8;--lamp:#e8c87a;--lamp-pale:#f7edcf;--info:#6f8fa6;--danger:#b95555;--shadow:0 1px 1px #392d2009, 0 8px 26px #392d200e;--display:Georgia, "Times New Roman", serif;--sans:"Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--canvas);color:var(--ink);font-family:var(--sans);margin:0;font-size:15px}button,input,select,textarea{color:inherit;font:inherit}button{-webkit-tap-highlight-color:transparent}button:active{transform:none}button,summary{outline:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--info);outline-offset:2px}svg{width:20px;height:20px;display:block}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-frame{min-height:100vh;display:flex;overflow:hidden}.sign-in-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.sign-in-card{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:460px;padding:48px;display:flex}.sign-in-card .eyebrow{margin-top:22px}.sign-in-card h1{font-family:var(--display);letter-spacing:-.03em;margin:8px 0 10px;font-size:34px}.sign-in-card p{color:var(--muted);margin:0 0 25px;line-height:1.6}.auth-actions{gap:10px;width:100%;display:flex}.auth-actions .primary-button,.auth-actions .secondary-button{flex:1}.account-button{z-index:70;position:fixed;top:18px;right:22px}.app-main{background:var(--canvas);flex:1;min-width:0;height:100vh;position:relative;overflow-y:auto}.app-main:before{content:"";opacity:.25;pointer-events:none;background-image:radial-gradient(#4b40300f .45px,#0000 .45px);background-size:5px 5px;position:fixed;inset:0}.page-wrap{max-width:1280px;margin:0 auto;padding:46px 48px 100px;position:relative}.sidebar{background:var(--canvas-deep);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex:none;width:232px;height:100vh;padding:24px 14px 18px;transition:width .22s;display:flex;position:relative;overflow:hidden}.sidebar.closed{width:74px}.brand-row{align-items:center;height:52px;padding:0 8px;display:flex}.brand-mark,.mobile-brand b{background:var(--primary);color:var(--surface);font-family:var(--display);border-radius:11px 11px 11px 4px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:21px;display:flex}.brand-copy{flex-direction:column;min-width:0;margin-left:11px;display:flex}.brand-copy span{font-family:var(--display);letter-spacing:-.02em;font-size:21px;font-weight:700;line-height:1}.brand-copy small{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin-top:5px;font-size:10px}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;width:38px;height:38px;padding:0;display:inline-flex}.icon-button:hover{background:#46605214}.sidebar-toggle{color:var(--muted);margin-left:auto}.sidebar-toggle svg{width:17px;height:17px;transition:transform .2s}.sidebar-toggle .flip{transform:rotate(180deg)}.closed .sidebar-toggle{margin-left:2px}.side-nav{flex-direction:column;flex:1;gap:3px;margin-top:24px;display:flex}.side-nav button{color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;font-size:14px;font-weight:600;transition:background .16s,color .16s,border-color .16s;display:flex}.side-nav button svg{color:var(--muted);flex:none;width:19px;height:19px}.side-nav button:hover{color:var(--ink);background:#fffcf78c}.side-nav button.active{background:var(--surface);color:var(--primary);border-color:#ded5c7bf;box-shadow:0 3px 12px #392d2009}.side-nav button.active svg{color:var(--primary)}.closed .side-nav button{justify-content:center;padding:0}.storage-status{color:var(--muted);align-items:center;gap:7px;margin:0 7px 9px;padding:5px 4px;font-size:10px;display:flex}.storage-status>span{background:var(--faint);border-radius:50%;width:7px;height:7px}.storage-status.server>span{background:var(--primary);box-shadow:0 0 0 3px var(--primary-pale)}.storage-status.local>span{background:var(--lamp);box-shadow:0 0 0 3px var(--lamp-pale)}.storage-status.memory>span{background:var(--terracotta);box-shadow:0 0 0 3px var(--terracotta-pale)}.exam-control{border:1px solid var(--border);background:#fffcf794;border-radius:13px;justify-content:space-between;align-items:center;min-height:62px;padding:10px 11px;display:flex}.exam-control>div{flex-direction:column;display:flex}.exam-control strong{font-size:12px}.exam-control>div span{color:var(--muted);margin-top:3px;font-size:10px}.exam-control.enabled{background:var(--lamp-pale);border-color:#dbc587}.closed .exam-control{background:0 0;border:0;justify-content:center;padding:0}.switch{cursor:pointer;background:#cbc7bc;border:0;border-radius:15px;flex:none;width:42px;height:24px;padding:3px;transition:background .2s}.switch span{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;display:block;transform:translate(0);box-shadow:0 1px 4px #00000026}.switch[aria-pressed=true]{background:var(--primary)}.switch[aria-pressed=true] span{transform:translate(18px)}.mobile-header,.mobile-nav,.mobile-menu{display:none}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.page-heading h1{font-family:var(--display);letter-spacing:-.035em;margin:4px 0 0;font-size:clamp(34px,4vw,48px);line-height:1.05}.eyebrow{color:var(--primary);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:800}.page-meta{color:var(--muted);padding-bottom:5px;font-size:13px}.page-intro{color:var(--muted);max-width:680px;margin:12px 0 28px;font-size:15px;line-height:1.65}.section-heading{justify-content:space-between;align-items:end;margin-bottom:14px;display:flex}.section-heading h2{font-family:var(--display);margin:3px 0 0;font-size:22px}.surface-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:17px}.mode-banner{background:var(--lamp-pale);border:1px solid #dec98d;border-radius:15px;align-items:center;gap:13px;margin:24px 0;padding:14px 16px;display:flex}.mode-icon{background:#e8c87a6b;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.mode-banner>div:nth-child(2){flex-direction:column;flex:1;display:flex}.mode-banner strong{font-size:13px}.mode-banner div span{color:var(--ink-soft);margin-top:2px;font-size:12px}.soft-badge{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:#ffffff8c;border-radius:12px;padding:5px 9px;font-size:10px;font-weight:700}.today-grid{grid-template-columns:minmax(430px,1.45fr) minmax(290px,.8fr);align-items:start;gap:22px;margin-top:30px;display:grid}.today-rail{flex-direction:column;gap:14px;padding-top:2px;display:flex}.empty-timeline{text-align:center;flex-direction:column;align-items:center;min-height:385px;padding:58px 30px;display:flex}.empty-timeline h3,.large-empty h2,.chat-welcome h2{font-family:var(--display);letter-spacing:-.015em;margin:22px 0 8px;font-size:22px}.empty-timeline>p,.large-empty>p,.chat-welcome>p{color:var(--muted);max-width:430px;margin:0;line-height:1.6}.empty-illustration{width:146px;height:92px;position:relative}.timeline-lines:before{background:var(--terracotta);border:4px solid var(--surface);box-shadow:0 0 0 1px var(--border);content:"";z-index:2;border-radius:50%;width:18px;height:18px;position:absolute;top:12px;left:1px}.timeline-lines:after{background:var(--border);content:"";width:1px;height:84px;position:absolute;top:10px;left:10px}.timeline-lines span{background:var(--canvas-deep);border:1px solid var(--border-soft);border-radius:8px;height:23px;position:absolute;left:27px;right:0}.timeline-lines span:first-child{top:7px}.timeline-lines span:nth-child(2){top:38px;left:38px}.timeline-lines span:nth-child(3){top:69px}.button-row{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.button-row.center{justify-content:center}.primary-button,.secondary-button,.text-button{cursor:pointer;block-size:44px;white-space:nowrap;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:0 15px;font-size:13px;font-weight:700;line-height:1;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s;display:inline-flex}.primary-button{background:var(--primary);border:1px solid var(--primary);color:var(--surface)}.primary-button:hover{background:var(--primary-hover)}.primary-button svg{width:16px;height:16px}.secondary-button{border:1px solid var(--border);color:var(--ink-soft);background:0 0}.secondary-button:hover{background:var(--canvas);border-color:#cbbfac}.secondary-button:disabled{cursor:default;opacity:.62}.text-button{color:var(--muted);background:0 0;border:0}.next-card,.stat-card,.polish-card{padding:20px}.next-card .button-row{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.next-card .button-row>button{inline-size:100%;padding-inline:10px}.next-card .subject-tab{margin-top:18px}.next-card h2{font-family:var(--display);margin:8px 0 5px;font-size:22px;line-height:1.2}.next-card>p,.stat-card>p,.polish-card>p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.subject-tab{color:var(--primary);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:800;display:block;overflow:hidden}.why-details{border-top:1px solid var(--border-soft);color:var(--muted);margin-top:18px;padding-top:12px;font-size:11px}.why-details summary{cursor:pointer;font-weight:700}.why-details p{line-height:1.5}.card-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-title-row h2,.card-title-row h3{margin:0;font-size:13px}.card-title-row>span{color:var(--muted);font-size:11px}.progress-track{background:var(--canvas-deep);border-radius:5px;height:7px;margin:14px 0 10px;overflow:hidden}.progress-track span{background:var(--primary);border-radius:inherit;height:100%;transition:width .3s;display:block}.polish-card button{border:0;border-top:1px solid var(--border-soft);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;width:100%;margin-top:12px;padding:11px 0 0;font-size:12px;display:flex}.polish-card button svg{color:var(--muted);width:15px;height:15px}.empty-compact{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:150px;padding:18px;display:flex}.empty-compact svg{color:var(--lamp);width:30px;height:30px}.empty-compact p{max-width:220px;margin:12px 0 0;font-size:12px;line-height:1.55}.board-toolbar{justify-content:space-between;align-items:center;margin:12px 0 27px;display:flex}.board-toolbar p{color:var(--muted);margin:0;line-height:1.5}.kanban{grid-template-columns:repeat(3,minmax(240px,1fr));align-items:start;gap:14px;padding:2px 2px 22px;display:grid;overflow-x:auto}.wip-confirm{margin:-10px 0 22px}.wip-actions{flex:none;gap:7px;display:flex}.wip-actions .primary-button,.wip-actions .secondary-button{min-height:36px}.kanban-column{min-width:210px}.column-heading,.column-heading>div{align-items:center;display:flex}.column-heading{justify-content:space-between;padding:0 5px 12px}.column-heading>div{gap:8px}.column-heading h2{margin:0;font-size:13px}.column-heading>span{color:var(--muted);font-size:11px}.column-heading>span.limit{color:var(--danger);font-weight:800}.column-dot{background:var(--faint);border-radius:50%;width:7px;height:7px}.column-dot.todo{background:var(--info)}.column-dot.doing{background:var(--lamp)}.column-dot.done{background:var(--primary)}.task-stack{border:1px solid #0000;border-radius:15px;flex-direction:column;gap:10px;min-height:112px;transition:background .16s,border-color .16s;display:flex}.kanban-column.drop-target .task-stack{background:#e7ede8ad;border-color:#46605247}.empty-column{color:var(--faint);cursor:pointer;text-align:center;background:#fffcf74d;border:1px dashed #cec4b4;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;min-height:112px;padding:20px;font-size:11px;line-height:1.45;display:flex}.empty-column:hover{border-color:var(--primary);color:var(--primary);background:#fffcf7b3}.empty-column svg{width:18px;height:18px}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;position:relative;box-shadow:0 5px 16px #392d200b}.task-card.mvp{border-left:4px solid var(--lamp)}.task-card.perfected{border-left:4px solid var(--primary);opacity:.84}.task-card-top{justify-content:space-between;align-items:center;display:flex}.quiet-icon{color:var(--faint);cursor:pointer;background:0 0;border:0;padding:2px}.quiet-icon:hover{color:var(--danger)}.quiet-icon svg{width:14px;height:14px}.task-card h3{margin:8px 0 12px;font-size:13px;line-height:1.42}.task-meta{color:var(--muted);justify-content:space-between;align-items:center;font-size:10px;display:flex}.task-meta>span:first-child{align-items:center;gap:5px;display:flex}.task-meta svg{width:13px;height:13px}.complexity{text-transform:capitalize;border-radius:9px;padding:3px 7px}.complexity.small{background:var(--primary-pale)}.complexity.medium{background:var(--lamp-pale)}.complexity.large{background:var(--terracotta-pale)}.deadline{background:var(--terracotta-pale);color:#8d4f39;border-radius:8px;margin-top:9px;padding:6px 8px;font-size:10px}.mvp-label,.final-label{text-transform:uppercase;align-items:center;gap:5px;margin-top:10px;font-size:10px;font-weight:800;display:flex}.mvp-label{color:#8f6c1d}.final-label{color:var(--primary)}.final-label svg{width:13px;height:13px}.task-actions{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;margin-top:13px;padding-top:9px;display:flex}.task-actions button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:3px 0;font-size:10px;font-weight:700}.task-actions button:last-child{color:var(--primary)}.task-actions button.perfect-action{color:#8f6c1d}.task-card.dragging{opacity:.72;z-index:4;transform:rotate(1deg);box-shadow:0 14px 35px #392d202e}.task-card.drop-target{border-color:var(--primary)}.task-card-icons{align-items:center;gap:7px;display:flex}.drag-handle{color:var(--faint);cursor:grab;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:2px;display:flex}.drag-handle:active{cursor:grabbing}.drag-handle svg{width:15px;height:15px}.task-actions button:disabled,.drag-handle:disabled{cursor:wait;opacity:.45}.task-title-button{cursor:pointer;text-align:left;background:0 0;border:0;width:100%;margin:8px 0 12px;padding:0;font-size:13px;font-weight:700;line-height:1.42;display:block}.task-title-button:hover{color:var(--primary)}.task-description{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:-5px 0 11px;font-size:10px;line-height:1.45;display:-webkit-box;overflow:hidden}.large-empty{text-align:center;flex-direction:column;align-items:center;min-height:390px;margin-top:28px;padding:72px 30px;display:flex}.large-empty-icon{background:var(--primary-pale);color:var(--primary);border:1px solid #d6e0d8;border-radius:18px 18px 18px 7px;justify-content:center;align-items:center;width:58px;height:58px;display:flex}.large-empty-icon svg{width:27px;height:27px}.large-empty .secondary-button{margin-top:25px}.split-empty{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.split-empty .large-empty{min-height:355px}.subject-grid{grid-template-columns:repeat(2,minmax(260px,1fr));gap:16px;display:grid}.subject-card{padding:21px;position:relative;overflow:hidden}.subject-colour{background:var(--primary);height:4px;position:absolute;inset:0 0 auto}.subject-card:nth-child(6n+2) .subject-colour{background:var(--terracotta)}.subject-card:nth-child(6n+3) .subject-colour{background:var(--info)}.subject-card:nth-child(6n+4) .subject-colour{background:var(--lamp)}.subject-card:nth-child(6n+5) .subject-colour{background:#8a708c}.subject-card:nth-child(6n+6) .subject-colour{background:#7d9472}.subject-card .card-title-row h2{font-family:var(--display);font-size:20px}.subject-card>p{color:var(--muted);font-size:12px}.subject-card>button{color:var(--primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-top:17px;padding:0;font-size:11px;font-weight:700;display:flex}.subject-card>button svg{width:14px;height:14px}.subjects-toolbar{justify-content:space-between;align-items:start;display:flex}.subjects-toolbar .page-intro{margin-bottom:24px}.subjects-toolbar .primary-button{flex:none;margin-top:12px}.subject-error{margin-top:0}.subject-loading{color:var(--muted);justify-content:center;align-items:center;gap:10px;min-height:160px;display:flex}.subject-card.subject-forest .subject-colour{background:var(--primary)}.subject-card.subject-terracotta .subject-colour{background:var(--terracotta)}.subject-card.subject-blue .subject-colour{background:var(--info)}.subject-card.subject-gold .subject-colour{background:var(--lamp)}.subject-card.subject-plum .subject-colour{background:#8a708c}.subject-card.subject-sage .subject-colour{background:#7d9472}.subject-actions{align-items:center;gap:16px;margin-top:17px;display:flex}.subject-actions button{color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;font-weight:700}.subject-actions button.delete-subject{color:var(--danger)}.subject-actions button:disabled{cursor:not-allowed;opacity:.5}.companion-launcher{background:var(--primary);color:var(--surface);cursor:pointer;z-index:35;border:0;border-radius:23px 23px 23px 8px;align-items:center;gap:8px;min-height:46px;padding:0 17px;font-size:12px;font-weight:800;display:flex;position:fixed;bottom:22px;right:24px;box-shadow:0 8px 24px #2e463940}.companion-launcher:hover{background:var(--primary-hover);transform:translateY(-1px)}.companion-launcher svg{width:17px;height:17px}.companion-panel{background:var(--surface);border-left:1px solid var(--border);z-index:40;flex-direction:column;flex:none;width:0;height:100vh;transition:width .25s,opacity .2s;display:flex;overflow:hidden}.companion-panel.open{opacity:1;width:360px}.companion-panel>header{border-bottom:1px solid var(--border-soft);flex:none;justify-content:space-between;align-items:center;min-width:360px;padding:20px;display:flex}.companion-panel header>div{flex-direction:column;display:flex}.companion-title{font-family:var(--display);align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.companion-title svg{color:var(--lamp);width:18px;height:18px}.companion-panel header small{color:var(--muted);margin:4px 0 0 26px;font-size:10px}.chat-body{flex-direction:column;flex:1;gap:10px;min-width:360px;padding:18px;display:flex;overflow-y:auto}.chat-welcome{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.chat-welcome h2{font-size:21px}.chat-welcome>p{font-size:12px}.permission-note{background:var(--canvas);color:var(--muted);border-radius:9px;margin-top:18px;padding:8px 10px;font-size:10px}.chat-message{border:1px solid var(--border-soft);border-radius:13px 13px 13px 5px;max-width:88%;padding:10px 12px;font-size:12px;line-height:1.55}.chat-message.user{background:var(--primary);border-color:var(--primary);color:var(--surface);border-radius:13px 13px 5px;align-self:flex-end}.chat-message.companion{background:var(--canvas);align-self:flex-start}.chat-compose{border-top:1px solid var(--border-soft);align-items:end;gap:8px;min-width:360px;padding:14px;display:flex}.chat-compose textarea{background:var(--canvas);border:1px solid var(--border);resize:none;border-radius:11px;flex:1;padding:10px 12px;font-size:12px;line-height:1.4}.chat-compose button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.chat-compose button:disabled{cursor:default;opacity:.4}.chat-compose button svg{width:16px;height:16px}.modal-backdrop{z-index:100;background:#26282457;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.quick-add{width:100%;max-width:590px;max-height:calc(100vh - 40px);padding:26px;overflow-y:auto}.modal-heading{justify-content:space-between;align-items:start;margin-bottom:23px;display:flex}.modal-heading h2{font-family:var(--display);letter-spacing:-.02em;margin:4px 0 0;font-size:28px}.field{flex-direction:column;gap:7px;display:flex}.field>span,.complexity-field legend{font-size:11px;font-weight:800}.field small{color:var(--muted);font-weight:500}.field input,.field select{background:var(--surface-raised);border:1px solid var(--border);border-radius:10px;width:100%;height:44px;padding:0 12px}.field input::placeholder{color:var(--faint)}.field.full input{font-family:var(--display);font-size:18px}.form-grid{grid-template-columns:1fr 1fr;gap:15px;margin:17px 0;display:grid}.complexity-field{border:0;gap:8px;margin:0;padding:0;display:flex}.complexity-field legend{margin-bottom:8px}.complexity-field label{border:1px solid var(--border);cursor:pointer;text-align:center;text-transform:capitalize;border-radius:10px;flex:1;padding:9px}.complexity-field label.selected{background:var(--lamp-pale);color:#725914;border-color:#d9c27b;font-weight:700}.complexity-field input{opacity:0;width:0;height:0;position:absolute}.modal-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;align-items:center;margin-top:24px;padding-top:18px;display:flex}.toast{background:var(--ink);color:var(--surface);z-index:120;border-radius:10px;padding:11px 16px;font-size:12px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.subject-modal,.confirm-modal{width:100%;max-width:500px;padding:26px}.confirm-modal>p{color:var(--muted);line-height:1.6}.danger-button{background:var(--danger);border:1px solid var(--danger);color:#fff;cursor:pointer;block-size:44px;white-space:nowrap;border-radius:10px;flex:none;justify-content:center;align-items:center;min-height:44px;padding:0 15px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.subject-colour-picker{border:0;gap:10px;margin:20px 0 0;padding:0;display:flex}.subject-colour-picker legend{margin-bottom:10px;font-size:11px;font-weight:800}.colour-choice{cursor:pointer;border:2px solid #0000;border-radius:50%;padding:3px}.colour-choice.selected{border-color:var(--ink-soft)}.colour-choice:has(input:focus-visible){outline-offset:2px;outline:3px solid #6f8fa673}.colour-choice input{opacity:0;width:0;height:0;position:absolute}.colour-choice>span:first-of-type{background:var(--primary);border-radius:50%;width:26px;height:26px;display:block}.colour-choice.terracotta>span:first-of-type{background:var(--terracotta)}.colour-choice.blue>span:first-of-type{background:var(--info)}.colour-choice.gold>span:first-of-type{background:var(--lamp)}.colour-choice.plum>span:first-of-type{background:#8a708c}.colour-choice.sage>span:first-of-type{background:#7d9472}.subject-picker-block.expanded{grid-column:1/-1}.other-subject-fields{border:1px solid var(--border-soft);background:#f4efe68c;border-radius:12px;grid-template-columns:1fr auto;gap:16px;margin-top:10px;padding:14px;display:grid}.other-subject-fields .subject-colour-picker{align-self:end;margin:0}.other-subject-fields .subject-colour-picker legend{margin-bottom:5px}.field textarea{background:var(--surface-raised);border:1px solid var(--border);resize:vertical;border-radius:10px;width:100%;padding:11px 12px;line-height:1.5}.task-editor{max-width:650px}.primary-button:disabled,.text-button:disabled{cursor:wait;opacity:.65}.field select:disabled{background:var(--canvas);color:var(--faint);cursor:not-allowed}.task-history{border:1px solid var(--border-soft);background:#f4efe680;border-radius:14px;margin-top:24px;padding:18px}.task-history-heading{justify-content:space-between;align-items:center;display:flex}.task-history-heading h3{font-family:var(--display);margin:3px 0 0;font-size:20px}.task-history-heading>span{color:var(--muted);font-size:10px}.history-state{color:var(--muted);align-items:center;gap:10px;min-height:44px;margin-top:16px;font-size:12px;line-height:1.45;display:flex}.history-state>svg{color:var(--info);flex:none;width:18px;height:18px}.history-state>div{flex-direction:column;flex:1;display:flex}.history-state strong{color:var(--ink-soft);font-size:12px}.history-state span{margin-top:2px}.history-state .text-button{flex:none;min-height:36px}.history-error{background:var(--lamp-pale);border-radius:10px;margin-left:-6px;margin-right:-6px;padding:10px}.history-pulse{background:var(--lamp);border-radius:50%;width:9px;height:9px;margin:0 3px;animation:1.3s ease-in-out infinite history-pulse}.history-timeline{margin:18px 0 0;padding:0;list-style:none}.history-timeline>li{grid-template-columns:12px 1fr;gap:12px;padding-bottom:17px;display:grid;position:relative}.history-timeline>li:last-child{padding-bottom:0}.history-timeline>li:before{background:var(--border);content:"";width:1px;position:absolute;top:11px;bottom:0;left:5px}.history-timeline>li:last-child:before{display:none}.history-marker{background:var(--surface);border:2px solid var(--primary);z-index:1;border-radius:50%;width:11px;height:11px;margin-top:3px;position:relative}.history-event>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.history-event strong{font-size:12px}.history-event time{color:var(--muted);flex:none;font-size:10px}.history-event ul{color:var(--muted);margin:5px 0 0;padding:0;font-size:11px;line-height:1.45;list-style:none}.history-event ul li+li{margin-top:2px}@keyframes history-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.toast{align-items:center;gap:14px;padding:8px 9px 8px 16px;display:flex}.toast button{background:var(--surface);color:var(--ink);cursor:pointer;border:0;border-radius:7px;min-height:32px;padding:0 11px;font-size:11px;font-weight:800}.secondary-button,.field input,.field select,.field textarea,.complexity-field label,.empty-column{border-color:var(--control-border)}.subject-card .subject-colour{border-radius:2px;width:9px;height:9px;inset:28px auto auto 21px}.subject-card .card-title-row h2{padding-left:17px}.task-card.mvp,.task-card.perfected{border-left:1px solid var(--border);opacity:1}.design-page{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.design-page>header{margin-bottom:32px}.design-page h1{font-family:var(--display);letter-spacing:-.035em;margin:5px 0 10px;font-size:clamp(36px,5vw,54px)}.design-page>header p{color:var(--muted);max-width:700px;margin:0;line-height:1.6}.design-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;display:grid}.design-state{min-height:220px;padding:22px}.design-state>header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.design-state h2{font-family:var(--display);margin:0;font-size:20px}.design-state>header span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.design-state p{color:var(--muted);line-height:1.55}.design-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.design-empty .large-empty-icon{width:48px;height:48px}.design-empty p{margin:12px 0 0}.design-loading-row{align-items:center;gap:10px;min-height:100px;display:flex}.design-error{background:var(--lamp-pale);border:1px solid #dec98d;border-radius:12px;padding:15px}.design-error strong,.design-permission strong{display:block}.design-error p,.design-permission p{margin:5px 0 14px;font-size:12px}.design-risk{border-left:4px solid var(--danger);padding-left:14px}.design-risk-label{color:var(--danger);text-transform:uppercase;font-size:11px;font-weight:800}.design-risk h3,.design-task h3{margin:8px 0;font-size:14px}.design-risk p,.design-task p{margin:0;font-size:12px}.design-wip-count{color:var(--danger);font-weight:800}.design-task{border:1px solid var(--border);border-left:4px solid var(--lamp);border-radius:12px;margin-top:12px;padding:14px}.design-offline{background:var(--canvas);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.design-offline svg,.design-permission svg{color:var(--terracotta);flex:none}.design-offline strong{font-size:13px;display:block}.design-offline span{color:var(--muted);margin-top:2px;font-size:11px;display:block}.design-permission{background:var(--terracotta-pale);border-radius:12px;align-items:flex-start;gap:12px;padding:15px;display:flex}@media (max-width:1120px){.page-wrap{padding-left:32px;padding-right:32px}.today-grid,.today-page .today-grid{grid-template-columns:1fr}.today-rail,.today-page .today-rail{grid-template-columns:repeat(2,1fr);display:grid;position:static}.next-card{grid-column:1/-1}.companion-panel{position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 30px #392d201a}.kanban{grid-template-columns:repeat(3,250px)}}@media (max-width:760px){body{font-size:14px}.app-frame{display:block}.sidebar{display:none}.app-main{height:auto;min-height:100vh;padding-bottom:82px;overflow:visible}.app-main:before{position:absolute}.mobile-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;background:#f4efe6eb;justify-content:space-between;align-items:center;height:60px;padding:0 14px;display:flex;position:sticky;top:0}.mobile-brand{font-family:var(--display);align-items:center;gap:8px;font-size:19px;font-weight:700;display:flex}.mobile-brand b{border-radius:8px 8px 8px 3px;width:27px;height:27px;font-size:15px}.mobile-menu{z-index:45;grid-template-columns:repeat(2,1fr);gap:5px;padding:10px;display:grid;position:fixed;top:66px;left:12px;right:12px}.mobile-menu button{background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;min-height:42px;padding:0 10px;font-size:12px;display:flex}.mobile-menu button.active{background:var(--primary-pale);color:var(--primary)}.mobile-menu svg{width:17px;height:17px}.page-wrap{padding:27px 17px 70px}.page-heading{flex-direction:column;align-items:start;gap:6px}.page-heading h1,.today-page .page-heading h1{font-size:34px}.page-meta{padding:0}.page-intro{margin-bottom:22px;font-size:13px}.today-grid,.today-page .today-grid{margin-top:22px}.empty-timeline{min-height:335px;padding:42px 20px}.today-rail,.today-page .today-rail{display:flex}.button-row{flex-direction:column}.button-row .primary-button,.button-row .secondary-button{width:100%}.next-card .button-row{grid-template-columns:1fr}.mobile-nav{border-top:1px solid var(--border);height:70px;padding:5px 7px max(5px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:60;background:#fffcf7f5;grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav>button{color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:48px;font-size:9px;display:flex}.mobile-nav>button.active{color:var(--primary)}.mobile-nav svg{width:19px;height:19px}.mobile-nav .mobile-add{background:var(--primary);color:#fff;border-radius:50% 50% 50% 34%;place-self:end center;width:48px;height:48px;transform:translateY(-12px);box-shadow:0 6px 16px #2e463938}.mobile-nav .mobile-add svg{width:22px;height:22px}.companion-launcher{bottom:81px;right:14px}.companion-launcher span{display:none}.companion-launcher{border-radius:50% 50% 50% 35%;justify-content:center;width:44px;height:44px;padding:0}.companion-panel.open{z-index:90;bottom:0;border:0;width:100%;height:100dvh;position:fixed;inset:0}.companion-panel>header,.chat-body,.chat-compose{width:100%;min-width:0}.chat-compose{padding-bottom:max(14px, env(safe-area-inset-bottom))}.board-toolbar,.subjects-toolbar{flex-direction:column;align-items:stretch;gap:14px}.board-toolbar .primary-button,.subjects-toolbar .primary-button{width:100%;margin-top:0}.kanban{margin-right:-17px}.subject-grid,.split-empty{grid-template-columns:1fr}.large-empty{min-height:340px;padding:52px 20px}.form-grid{grid-template-columns:1fr}.subject-picker-block.expanded{grid-column:auto}.other-subject-fields{grid-template-columns:1fr}.quick-add,.subject-modal,.confirm-modal{max-height:92dvh;padding:22px 18px max(22px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0;position:absolute;bottom:0;overflow-y:auto}.modal-backdrop{align-items:end;padding:0}.complexity-field,.subject-colour-picker{flex-wrap:wrap}.history-state{align-items:flex-start}.history-error{flex-wrap:wrap}.history-error .text-button{margin-left:28px}.history-event>div{flex-direction:column;align-items:flex-start;gap:2px}.modal-actions{background:var(--surface);position:sticky;bottom:0}.toast{white-space:normal;max-width:calc(100% - 32px);bottom:82px}.mobile-menu button,.primary-button,.secondary-button,.text-button,.danger-button,.task-actions button,.polish-card button,.subject-actions button,.chat-compose button{min-height:44px}.mobile-header .icon-button,.quiet-icon,.drag-handle{width:44px;min-width:44px;height:44px}.task-actions button{padding-left:8px;padding-right:8px}.complexity-field label{justify-content:center;align-items:center;min-height:44px;display:flex}.colour-choice{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.wip-confirm{flex-direction:column;align-items:stretch}.wip-actions{width:100%}.wip-actions button{flex:1}.design-grid{grid-template-columns:1fr}.design-page{padding:30px 17px 90px}.design-state{min-height:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.app-main:before{display:none}.column-dot,.storage-status>span{forced-color-adjust:none}.surface-card,.task-card,.mode-banner{box-shadow:none}}.board-tools,.wip-limit-control{align-items:center;gap:10px;display:flex}.wip-limit-control{color:var(--muted);font-size:12px;font-weight:700}.wip-limit-control select{background:var(--surface);border:1px solid var(--control-border);border-radius:9px;min-height:44px;padding:0 10px}.project-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0;padding:22px;display:grid}.project-summary>div{flex-direction:column;gap:5px;display:flex}.project-summary>div span{color:var(--muted)}.project-summary .progress-track{grid-column:1/-1;margin:0}.project-phases{gap:14px;margin-bottom:20px;display:grid}.project-phases>section{padding:20px}.project-phases h2{font-family:var(--display);margin-top:0}.project-phases li{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;min-height:44px;display:flex}.subject-projects{flex-direction:column;gap:6px;margin-top:14px;display:flex}.subject-projects button{background:var(--canvas);border:1px solid var(--border-soft);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;min-height:50px;padding:8px 10px;display:flex}.subject-projects small{color:var(--muted);margin-top:3px}.estimate-panel,.timing-panel,.subtask-panel{background:var(--canvas);border:1px solid var(--border-soft);border-radius:14px;margin-top:18px;padding:16px}.estimate-panel p{margin-bottom:0}.timing-panel>button{margin:8px 8px 0 0}.timing-panel ol{color:var(--muted);padding-left:22px}.subtask-panel ul{padding:0;list-style:none}.subtask-panel li{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;min-height:44px;display:flex}.estimate-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.estimate-values>div{background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;flex-direction:column;gap:4px;min-height:68px;padding:10px;display:flex}.estimate-values span,.estimate-evidence{color:var(--muted);font-size:11px}.estimate-values strong{font-family:var(--display);font-size:17px}.estimate-explanation,.estimate-state{color:var(--ink);line-height:1.55}.estimate-evidence{margin-top:7px}.estimate-panel.insufficient_history{border-left:4px solid var(--lamp)}.estimate-panel.applied{border-left:4px solid var(--primary)}@media (max-width:680px){.project-summary{grid-template-columns:1fr}.board-tools{flex-direction:column;align-items:stretch}.estimate-values{grid-template-columns:1fr}}.today-page .page-heading h1{font-size:clamp(38px,4vw,46px)}.today-page .page-intro{margin-bottom:22px}.today-page .today-grid{grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:26px}.today-column{min-width:0}.today-page .section-heading{margin-bottom:12px}.today-page .section-heading h2{font-size:24px;line-height:1.15}.today-page .section-heading .text-button{inline-size:104px;padding-inline:8px}.today-page .today-rail{gap:14px;padding-top:0;position:sticky;top:24px}.today-page .next-card,.today-page .stat-card,.today-page .polish-card{padding:18px}.planning-setup{margin:0;padding:0;overflow:hidden}.planning-setup>summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:58px;padding:0 18px;font-size:12px;font-weight:800;list-style:none;display:flex}.planning-setup>summary::-webkit-details-marker{display:none}.planning-setup>summary:after{color:var(--muted);content:"+";font-size:18px;font-weight:500;line-height:1}.planning-setup[open]>summary:after{content:"−"}.planning-setup form{border-top:1px solid var(--border-soft);padding:18px}.planning-setup form>.primary-button{inline-size:166px}.plan-kind{grid-template-columns:210px 190px;gap:10px;margin-bottom:18px;display:grid}.plan-kind button{border:1px solid var(--control-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:42px;padding:0 16px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.plan-kind button.active{background:var(--primary-pale);border-color:var(--primary);color:var(--primary);font-weight:800}.timeline-state{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;min-height:88px;padding:18px;display:flex}.timeline-state>div{flex-direction:column;gap:4px;display:flex}.timeline-state strong{color:var(--ink)}.today-timeline{margin:0;padding:0;list-style:none;overflow:hidden}.today-timeline li{grid-template-columns:112px minmax(0,1fr);gap:18px;min-height:0;padding:18px 20px;display:grid;position:relative}.today-timeline li+li{border-top:1px solid var(--border-soft)}.today-timeline li:before{background:var(--primary);content:"";width:4px;position:absolute;inset:0 auto 0 0}.today-timeline li.fixed:before{background:var(--info)}.today-timeline li.proposed{background:#fbf3dc}.today-timeline li.proposed:before{display:none}.today-timeline time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:2px;font-size:11px;font-weight:800;line-height:1.35}.today-timeline li>div{flex-direction:column;gap:4px;min-width:0;display:flex}.today-timeline strong{font-family:var(--display);font-size:18px;line-height:1.25}.today-timeline p{color:var(--muted);max-width:620px;margin:3px 0 0;font-size:11px;line-height:1.5}.timeline-kind{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:900}.proposed .timeline-kind{color:#80601b}.timeline-actions{grid-template-columns:152px 126px;gap:8px;margin-top:8px;display:grid}.timeline-actions button{inline-size:100%}.factor-list{margin:12px 0 0}.factor-list>div{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;min-height:32px;display:flex}.factor-list dt{color:var(--muted)}.factor-list dd{font-variant-numeric:tabular-nums;margin:0;font-weight:800}.plan-risk{border-left:4px solid var(--danger)}.modal-actions .primary-button{inline-size:152px}.modal-actions .text-button{min-inline-size:112px}.exam-active>button{inline-size:154px}@media (max-width:1120px){.today-page .today-grid{grid-template-columns:1fr}.today-page .today-rail{grid-template-columns:repeat(2,1fr);display:grid;position:static}.today-page .next-card{grid-column:1/-1}}@media (max-width:760px){.today-page .page-heading h1{font-size:34px}.today-page .today-grid{margin-top:22px}.today-page .today-rail{display:flex}.today-timeline li{grid-template-columns:1fr;gap:8px;padding:16px}.timeline-actions{grid-template-columns:1fr}.timeline-actions button{width:100%;min-height:44px}.next-card .button-row{grid-template-columns:1fr}.plan-kind{grid-template-columns:1fr;max-width:none}.planning-setup form>.primary-button,.exam-active>button{inline-size:100%}}.calendar-import-section{border-bottom:1px solid var(--border);margin:28px 0 38px;padding-bottom:36px}.calendar-import-section .section-heading{margin-bottom:8px}.calendar-import-section .section-heading h2{font-size:25px}.privacy-note{background:var(--primary-pale);color:var(--primary);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800}.calendar-import-intro{color:var(--muted);max-width:760px;margin:0 0 18px;font-size:13px;line-height:1.6}.calendar-import-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.calendar-import-form,.import-preview,.import-placeholder{min-height:100%;padding:20px}.calendar-import-form{flex-direction:column;gap:15px;display:flex}.import-kind{background:var(--canvas);border:1px solid var(--border-soft);border-radius:11px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.import-kind button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;height:38px;padding:0 12px;font-size:12px;font-weight:700}.import-kind button.active{background:var(--surface);border-color:var(--border);color:var(--primary);box-shadow:0 2px 7px #392d200d}.import-kind button:disabled{cursor:default;opacity:.45}.calendar-import-form-heading{justify-content:space-between;align-items:center;display:flex}.calendar-import-form-heading strong{font-family:var(--display);font-size:19px}.calendar-import-form-heading .text-button{block-size:36px;min-height:36px}.calendar-import-form input[type=file]{cursor:pointer;height:auto;min-height:44px;padding:8px}.calendar-import-form input[type=file]::file-selector-button{background:var(--canvas);border:1px solid var(--control-border);color:var(--ink-soft);cursor:pointer;border-radius:7px;min-height:30px;margin-right:10px;padding:0 10px;font-size:11px;font-weight:700}.field-help{color:var(--muted);font-size:10px;line-height:1.45}.import-submit{inline-size:164px;margin-top:auto}.inline-error{background:var(--terracotta-pale);color:#7c4537;border-radius:9px;margin:0;padding:10px 12px;font-size:11px;line-height:1.45}.calendar-import-results{min-width:0}.import-preview{flex-direction:column;display:flex}.import-preview>p{color:var(--muted);margin:10px 0 0;font-size:11px;line-height:1.55}.import-preview ol{margin:16px 0;padding:0;list-style:none}.import-preview li{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;min-height:38px;font-size:11px;display:flex}.import-preview li span{color:var(--muted)}.import-preview>.primary-button{align-self:flex-start;inline-size:148px;margin-top:auto}.import-warning{background:var(--lamp-pale);border-radius:8px;padding:8px 10px;color:#725914!important}.import-placeholder{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.import-placeholder svg{color:var(--primary);width:30px;height:30px;margin-bottom:14px}.import-placeholder strong{color:var(--ink);font-family:var(--display);font-size:19px}.import-placeholder p{max-width:300px;margin:8px 0 0;font-size:12px;line-height:1.55}.calendar-source-heading{justify-content:space-between;align-items:center;margin:24px 2px 10px;display:flex}.calendar-source-heading h3{font-family:var(--display);margin:0;font-size:19px}.calendar-source-heading span{color:var(--muted);font-size:11px}.calendar-source-list{gap:10px;display:grid}.calendar-source-card{justify-content:space-between;align-items:center;gap:20px;padding:17px 18px;display:flex}.calendar-source-card>div:first-child{min-width:0}.calendar-source-card h3{font-family:var(--display);margin:5px 0;font-size:18px}.calendar-source-card p,.calendar-source-card small{color:var(--muted);margin:0;font-size:11px;line-height:1.5;display:block}.calendar-source-card.source-error{border-color:#dbc47e}.calendar-source-actions{flex:none;align-items:center;gap:7px;display:flex}.disconnect-confirm{align-items:center;gap:8px;display:flex}.disconnect-confirm>span{color:var(--muted);max-width:190px;font-size:11px}.disconnect-confirm .danger-button{inline-size:130px}.disconnect-confirm .text-button{inline-size:74px}.import-empty{padding:18px}.import-empty strong{font-size:12px}.import-empty p{color:var(--muted);margin:5px 0 0;font-size:11px}.calendar-learning-heading{margin:0 0 18px}.calendar-learning-heading h2{font-family:var(--display);margin:4px 0 0;font-size:25px}@media (max-width:850px){.calendar-import-grid{grid-template-columns:1fr}.calendar-source-card{flex-direction:column;align-items:stretch}.calendar-source-actions{align-items:stretch}.disconnect-confirm{flex-direction:column;align-items:stretch}.disconnect-confirm>span{max-width:none}}@media (max-width:760px){.calendar-import-section{margin-top:22px;padding-bottom:28px}.calendar-import-form,.import-preview,.import-placeholder{padding:17px}.import-kind button{height:44px}.import-submit,.import-preview>.primary-button{inline-size:100%}.calendar-source-actions{flex-direction:column}.calendar-source-actions button,.disconnect-confirm .danger-button,.disconnect-confirm .text-button{inline-size:100%;width:100%}}.daily-close{margin-top:34px;padding:24px}.daily-close-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.daily-close-heading h2{font-family:var(--display);margin:4px 0 0;font-size:25px}.snapshot-badge{background:var(--primary-pale);color:var(--primary);letter-spacing:.04em;border-radius:999px;flex:none;padding:7px 10px;font-size:10px;font-weight:800}.neutral-copy{color:var(--muted);max-width:820px;margin:10px 0 18px;font-size:12px;line-height:1.65}.daily-facts{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:18px 0 24px;display:grid}.daily-facts div{background:var(--canvas);border:1px solid var(--border-soft);border-radius:10px;padding:12px}.daily-facts dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:800}.daily-facts dd{color:var(--ink);font-family:var(--display);margin:5px 0 0;font-size:20px}.daily-outcomes{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.daily-outcomes>div{border:1px solid var(--border-soft);border-radius:11px;padding:15px}.daily-outcomes h3,.carry-section h3,.tomorrow-review h3{font-family:var(--display);margin:0;font-size:19px}.daily-outcomes p{color:var(--muted);margin:9px 0 0;font-size:11px}.daily-outcomes ul{margin:9px 0 0;padding:0;list-style:none}.daily-outcomes li{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;min-height:34px;font-size:11px;display:flex}.daily-outcomes li span{color:var(--muted)}.carry-section,.tomorrow-review{border-top:1px solid var(--border);margin-top:24px;padding-top:22px}.carry-list,.proposal-list{gap:8px;margin-top:12px;display:grid}.carry-list label,.proposal-list label{background:var(--canvas);border:1px solid var(--border-soft);cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:10px 12px;display:grid}.carry-list input,.proposal-list input{accent-color:var(--primary);width:18px;height:18px}.carry-list span,.proposal-list span{gap:3px;display:grid}.carry-list strong,.proposal-list strong{font-size:12px}.carry-list small,.proposal-list small{color:var(--muted);font-size:10px;line-height:1.45}.carry-list b,.proposal-list b{color:var(--primary);letter-spacing:.04em;text-transform:uppercase;font-size:9px}.preview-tomorrow-button{margin-top:14px}.tomorrow-evidence{flex-wrap:wrap;gap:7px;margin:12px 0;display:flex}.tomorrow-evidence span{background:var(--primary-pale);color:var(--primary);border-radius:999px;padding:6px 9px;font-size:10px;font-weight:700}.proposal-list label{grid-template-columns:auto 90px minmax(0,1fr) auto}.proposal-list time{color:var(--ink-soft);font-size:11px;font-weight:700}.close-actions{justify-content:flex-end;margin-top:18px;display:flex}.close-confirm{background:var(--lamp-pale);border-radius:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;width:100%;padding:12px;display:flex}.close-confirm p{color:var(--ink-soft);flex:320px;margin:0;font-size:11px;line-height:1.5}.daily-history{border-top:1px solid var(--border);margin-top:24px;padding-top:15px}.daily-history summary{color:var(--ink-soft);cursor:pointer;font-size:11px;font-weight:700}.daily-history ol{margin:10px 0 0;padding:0;list-style:none}.daily-history li{border-top:1px solid var(--border-soft);grid-template-columns:110px minmax(0,1fr);gap:4px;padding:10px 0;display:grid}.daily-history time{font-size:11px;font-weight:700}.daily-history li span,.daily-history li small{color:var(--muted);font-size:10px}.daily-history li small{grid-column:2}@media (max-width:760px){.daily-close{margin-top:26px;padding:17px}.daily-close-heading{flex-direction:column;align-items:flex-start}.daily-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-facts div:last-child{grid-column:1/-1}.daily-outcomes{grid-template-columns:1fr}.carry-list label{grid-template-columns:auto minmax(0,1fr);min-height:64px}.carry-list b{grid-column:2}.proposal-list label{grid-template-columns:auto minmax(0,1fr);align-items:start;min-height:84px}.proposal-list time,.proposal-list span,.proposal-list b{grid-column:2}.preview-tomorrow-button,.close-actions>button,.close-confirm button{width:100%;min-height:44px}.daily-history li{grid-template-columns:1fr}.daily-history li small{grid-column:1}}.rate-evidence{border-top:1px solid var(--border-soft);margin-top:14px;padding-top:12px}.rate-evidence>p{line-height:1.5}.next-slot-banner{background:var(--primary-pale);border-color:#bdcdbf}.next-slot-banner>.primary-button{flex:none}.learning-state{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;min-height:92px;padding:20px;display:flex}.learning-state>div{flex-direction:column;gap:5px;display:flex}.learning-state strong{color:var(--ink)}.learning-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.learning-form{padding:0 18px 18px}.learning-form>summary{cursor:pointer;min-height:52px;padding-top:17px;font-weight:800}.learning-form form{border-top:1px solid var(--border-soft);padding-top:16px}.learning-form .form-grid{margin-bottom:14px}.check-field{color:var(--ink-soft);align-items:center;gap:9px;min-height:44px;margin:12px 0;font-size:12px;display:flex}.check-field input{width:20px;height:20px}.revision-grid,.habit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.review-card,.habit-card,.exam-card{padding:21px}.review-card h2,.habit-card h2,.exam-card h3{font-family:var(--display);margin:12px 0 8px}.review-card>p,.habit-card>p,.exam-card>p{color:var(--muted);line-height:1.55}.review-card>small,.habit-card>small,.exam-card>small{color:var(--muted);font-size:10px;display:block}.rating-row{grid-template-columns:repeat(4,1fr);gap:7px;margin-top:18px;display:grid}.rating-row button{background:var(--surface);border:1px solid var(--control-border);cursor:pointer;border-radius:9px;min-height:44px;font-size:11px;font-weight:800}.rating-again{color:var(--danger)}.rating-good,.rating-easy{color:var(--primary)}.learning-section{margin-top:28px}.learning-section>h2,.calendar-learning-grid h2{font-family:var(--display)}.learning-list{margin:0;padding:0;list-style:none}.learning-list li{justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:12px 17px;display:flex}.learning-list li+li{border-top:1px solid var(--border-soft)}.learning-list li>div{flex-direction:column;flex:1;gap:4px;display:flex}.learning-list li span,.learning-list time{color:var(--muted);font-size:11px}.habit-card .primary-button{width:100%;margin-top:16px}.exam-active{background:var(--lamp-pale);border-color:#dbc47e}.exam-active>button,.mode-banner>button{flex:none}.calendar-tools{margin-top:22px}.calendar-learning-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px;display:grid}.learning-list .free-period{border-left:4px dashed var(--lamp)}.learning-list .fixed-period{border-left:4px solid var(--info)}.exam-list{gap:12px;display:grid}.readiness-score{color:var(--primary);font-family:var(--display);margin-top:12px;font-size:22px;display:block}.exam-card dl{margin:15px 0}.exam-card dl>div{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;min-height:38px;display:flex}.exam-card dt{color:var(--muted)}.exam-card dd{margin:0;font-weight:800}@media (max-width:850px){.learning-toolbar,.revision-grid,.habit-grid,.calendar-learning-grid{grid-template-columns:1fr}.rating-row{grid-template-columns:repeat(2,1fr)}.mode-banner{flex-direction:column;align-items:stretch}.mode-banner>button{width:100%}}@media (max-width:760px){.learning-form button,.rating-row button,.habit-card button{min-height:44px}.learning-list li{flex-direction:column;align-items:flex-start}.review-card,.habit-card,.exam-card{padding:18px}}
