:root{--paper:#EFF1EC;--panel:#FFFFFF;--ink:#23302A;--ink-soft:#5C6A62;--line:#D8DDD5;--orange:#E8630A;--orange-soft:#FDEBDD;--gold:#C79A2A;--gold-soft:#FAF3DF;--blue:#4A7A8C;--blue-soft:#E6EEF1;--green:#3E7A52;--green-soft:#E4F0E8;--tape:#F2C14E;--done:#9AA79F;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.45;padding-bottom:80px}.wrap{max-width:680px;margin:0 auto;padding:16px}header{padding:20px 0 4px}.kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}h1{font-size:clamp(28px,7vw,40px);font-weight:900;letter-spacing:-.02em;line-height:1.05;margin-top:2px}h1 .accent{color:var(--orange)}.subline{color:var(--ink-soft);font-size:14px;margin-top:6px}.statbar{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;color:var(--ink-soft)}.stat b{color:var(--ink)}.stat.factor{border-color:var(--blue);color:var(--blue)}.stat.factor b{color:var(--blue)}.tabs{display:flex;gap:6px;margin-top:18px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px;width:fit-content}.tabs button{border:none;background:none;font-size:14px;font-weight:700;padding:7px 18px;border-radius:999px;cursor:pointer;color:var(--ink-soft)}.tabs button.on{background:var(--ink);color:#fff}.coach{margin-top:16px;background:var(--panel);border:1.5px solid var(--ink);border-radius:var(--radius);padding:14px}.coach.closed{padding:10px 14px}.coach.closed .chatlog,.coach.closed .coach-actions,.coach.closed .coach-ask,.coach.closed .coach-loading{display:none}.coach-head{cursor:pointer;-webkit-user-select:none;user-select:none}.coach-head .chev{color:var(--ink-soft);font-size:12px;transition:transform .15s;margin-left:4px}.coach.closed .chev{transform:rotate(-90deg)}.coach-head{display:flex;align-items:center;gap:8px}.coach-head .dot{width:10px;height:10px;border-radius:50%;background:var(--green);flex-shrink:0}.coach-head h2{font-size:14px;font-weight:800;letter-spacing:.02em}.coach-head .hint{font-size:12px;color:var(--ink-soft);margin-left:auto;text-align:right}.coach-head .clear{background:none;border:none;color:var(--ink-soft);font-size:11px;text-decoration:underline;cursor:pointer;margin-left:8px;flex-shrink:0}.chatlog{margin-top:10px;max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.chatlog:empty{display:none}.bubble{border-radius:10px;padding:9px 12px;font-size:14px;white-space:pre-wrap;max-width:92%}.bubble.user{background:var(--paper);border:1px solid var(--line);align-self:flex-end}.bubble.coach{background:var(--green-soft);align-self:flex-start}.bubble.err{background:var(--orange-soft);color:var(--orange);align-self:flex-start}.proposals{align-self:stretch;display:flex;flex-direction:column;gap:6px;margin-top:-2px}.proposal{display:flex;align-items:center;gap:8px;background:var(--blue-soft);border:1px dashed var(--blue);border-radius:8px;padding:8px 10px;font-size:13px}.proposal .ptxt{flex:1;color:var(--ink)}.proposal button{border:none;background:var(--blue);color:#fff;border-radius:6px;padding:5px 12px;font-size:12.5px;font-weight:700;cursor:pointer;flex-shrink:0}.proposal.applied{opacity:.55;border-style:solid}.proposal.applied button{background:var(--green);cursor:default}.applyall{align-self:flex-start;border:1.5px solid var(--blue);background:var(--panel);color:var(--blue);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer;margin-top:2px}.coach-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.coach-actions button{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:700;cursor:pointer}.coach-actions button:disabled{opacity:.5;cursor:wait}.coach-ask{display:flex;gap:8px;margin-top:10px}.coach-ask input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:14px;min-width:0}.coach-ask input:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:transparent}.coach-ask button{border:none;border-radius:8px;padding:0 14px;font-size:14px;font-weight:700;cursor:pointer;background:var(--ink);color:#fff}.coach-ask button:disabled{opacity:.5;cursor:wait}.coach-loading{margin-top:10px;font-size:13px;color:var(--ink-soft);display:none;font-style:italic}.coach-loading.show{display:block}.today{margin-top:16px;background:var(--ink);border-radius:var(--radius);padding:16px 16px 18px;color:#f4f6f2;position:relative;overflow:hidden}.today:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,var(--tape),var(--tape) 12px,#D9A93B 12px,#D9A93B 24px)}.today h2{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600;color:var(--tape);margin:6px 0 10px}.today-slots{display:flex;flex-direction:column;gap:8px}.slot{background:#ffffff12;border:1px dashed rgba(255,255,255,.25);border-radius:8px;padding:10px 12px;font-size:15px;display:flex;align-items:center;gap:10px;min-height:44px}.slot.filled{background:#f2c14e1f;border-style:solid;border-color:#f2c14e73}.slot .empty-hint{color:#ffffff73;font-size:13.5px}.slot .txt{flex:1}.slot .est{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--tape);flex-shrink:0}.slot button{background:none;border:none;color:var(--tape);cursor:pointer;font-size:16px;padding:6px;line-height:1;flex-shrink:0}.today .note{font-size:12px;color:#ffffff8c;margin-top:10px}.today .load{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:#ffffffb3;margin-top:10px}.today .load b{color:var(--tape)}section{margin-top:22px}.sec-head{display:flex;align-items:baseline;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 2px}.sec-head h2{font-size:17px;font-weight:800;letter-spacing:-.01em}.sec-head .count{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink-soft)}.sec-head .chev{margin-left:auto;color:var(--ink-soft);font-size:13px;transition:transform .15s}section.collapsed .chev{transform:rotate(-90deg)}section.collapsed .sec-body{display:none}.sec-tag{width:10px;height:10px;border-radius:3px;flex-shrink:0;align-self:center}.sec-body{margin-top:8px}.sec-note{font-size:12.5px;color:var(--ink-soft);margin:0 2px 8px}.task{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;display:flex;align-items:flex-start;gap:10px}.task .check{width:24px;height:24px;border-radius:7px;border:2px solid var(--line);background:none;cursor:pointer;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;font-size:14px;color:transparent;transition:all .12s}.task .check:hover{border-color:var(--green)}.task .body{flex:1;min-width:0}.task .label{font-size:15px;font-weight:500}.task .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;align-items:center}.chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;padding:2px 8px;border-radius:999px;letter-spacing:.03em}.chip.late{background:var(--orange);color:#fff;font-weight:700}.chip.due{background:var(--orange-soft);color:var(--orange);font-weight:600}.chip.info{background:var(--paper);color:var(--ink-soft);border:1px solid var(--line)}.chip.seq{background:var(--blue-soft);color:var(--blue);font-weight:700}.chip.day{background:var(--green-soft);color:var(--green);font-weight:700}.chip.slipped{background:var(--orange);color:#fff;font-weight:700}.task .star{background:none;border:none;cursor:pointer;font-size:17px;color:var(--line);padding:4px;flex-shrink:0;transition:color .12s}.task .star.on{color:var(--tape)}.task .star:hover{color:var(--gold)}.task.gold{background:var(--gold-soft);border-color:#ead9a8}.task.gold .check{border-color:#d9c98f}.task.parked{background:transparent;border-style:dashed;opacity:.75}.task.parked .label{color:var(--ink-soft)}select.daypick,select.estpick{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;border:1px solid var(--line);border-radius:999px;padding:2px 6px;background:var(--paper);color:var(--ink-soft);cursor:pointer;max-width:110px}select.estpick.set{border-color:var(--blue);color:var(--blue);font-weight:700}.addrow{display:flex;gap:8px;margin-top:2px}.addrow input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:14px;background:var(--panel);color:var(--ink);min-width:0}.addrow input:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:transparent}.addrow button{border:none;background:var(--ink);color:#fff;border-radius:8px;padding:0 16px;font-size:14px;font-weight:600;cursor:pointer}.daycard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-top:12px}.daycard.today-card{border-color:var(--orange);border-width:2px}.daycard.heavy{border-color:var(--orange)}.daycard .dhead{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.daycard .dname{font-weight:800;font-size:15px}.daycard .ddate{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--ink-soft)}.daycard .dcount{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink-soft);margin-left:auto}.daycard .dcount.over{color:var(--orange);font-weight:700}.daycard .dload{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink-soft);margin-bottom:8px}.daycard .dload b{color:var(--blue)}.daycard .dload.over,.daycard .dload.over b{color:var(--orange);font-weight:700}.daycard .empty{font-size:13px;color:var(--ink-soft);padding:4px 2px 8px}.daycard .task{border:none;background:var(--paper);padding:8px 10px}.weeknote{font-size:12.5px;color:var(--ink-soft);margin-top:14px}.weeknav{display:flex;align-items:center;gap:12px;justify-content:center;margin-top:14px}.weeknav button{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:8px;width:36px;height:32px;font-size:16px;font-weight:700;cursor:pointer}.weeknav span{font-weight:800;font-size:14px;min-width:110px;text-align:center}.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px}.mhead{text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--ink-soft);padding-bottom:2px}.mcell{position:relative;aspect-ratio:1;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;font-family:inherit}.mcell.dim{opacity:.35}.mcell.today{border-color:var(--orange);border-width:2px}.mcell.sel{background:var(--green-soft);border-color:var(--green);border-width:2px}.mnum{font-size:13px;font-weight:600;color:var(--ink)}.mdots{display:flex;gap:3px;height:6px}.mdots i{width:6px;height:6px;border-radius:50%;display:block}.mdots .sd{background:var(--blue)}.mdots .dd{background:var(--orange)}.mdet-head{font-weight:800;font-size:15px;margin-top:16px}.mdet-sub{font-size:12px;color:var(--ink-soft);margin:10px 0 4px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}#month-detail .empty{font-size:13px;color:var(--ink-soft);padding:8px 2px}#month-detail .addrow{margin-top:10px}.drag-handle{cursor:grab;color:var(--done);font-size:17px;padding:2px 4px 2px 0;flex-shrink:0;touch-action:none;user-select:none;-webkit-user-select:none;line-height:1.3}.drag-ghost{position:fixed;transform:translate(-50%,-130%);background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;z-index:200;pointer-events:none;max-width:75vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 6px 20px #0000004d}.daycard.droptarget{border-color:var(--green);border-width:2px;background:var(--green-soft)}body.dragging{overflow:hidden;touch-action:none}.done-sec .task{opacity:.6}.done-sec .task .label{text-decoration:line-through;color:var(--done)}.done-sec .task .check{background:var(--green);border-color:var(--green);color:#fff}.celebrate{font-size:13px;color:var(--green);font-weight:600;margin:0 2px 8px}.undo{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:12px;text-decoration:underline;padding:4px;flex-shrink:0}.hist-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--ink-soft)}.overlay{position:fixed;inset:0;background:#23302a73;display:none;align-items:flex-end;justify-content:center;z-index:100}.overlay.show{display:flex}.modal{background:var(--panel);border-radius:16px 16px 0 0;padding:18px 16px 24px;width:100%;max-width:680px}.modal h3{font-size:15px;font-weight:800;margin-bottom:2px}.modal .mtask{font-size:13.5px;color:var(--ink-soft);margin-bottom:12px}.modal .mest{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--blue);margin-bottom:12px}.timegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.timegrid button{border:1.5px solid var(--line);background:var(--paper);border-radius:10px;padding:12px 4px;font-size:14px;font-weight:700;cursor:pointer;color:var(--ink)}.timegrid button:active{background:var(--green-soft);border-color:var(--green)}.modal .skip{display:block;margin:14px auto 0;background:none;border:none;color:var(--ink-soft);font-size:13px;text-decoration:underline;cursor:pointer}input.duepick{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;border:1px solid var(--line);border-radius:999px;padding:1px 6px;background:var(--paper);color:var(--ink-soft);cursor:pointer;max-width:122px}input.duepick.set{border-color:var(--gold);color:var(--gold);font-weight:700}.chip.duesoon{background:var(--orange-soft);color:var(--orange);font-weight:700}.chip.overdue{background:var(--orange);color:#fff;font-weight:700}.coming{margin-top:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.coming h2{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.coming .row{display:flex;gap:8px;font-size:13.5px;padding:4px 0;align-items:center;border-bottom:1px solid var(--paper)}.coming .row:last-child{border-bottom:none}.coming .row .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.datarow{display:flex;gap:16px;justify-content:center;margin-top:26px}.datarow button{background:none;border:none;color:var(--ink-soft);font-size:12px;text-decoration:underline;cursor:pointer}.modal textarea{width:100%;height:160px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:8px;resize:vertical}.modal .btnrow{display:flex;gap:8px;margin-top:10px}.modal .btnrow button{flex:1;border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:8px;padding:9px 4px;font-size:13.5px;font-weight:700;cursor:pointer}.modal .btnrow button.primary{background:var(--ink);color:#fff}.stat.reset{border-color:var(--gold);color:var(--gold);cursor:pointer}.timerbar{position:fixed;bottom:0;left:0;right:0;background:var(--ink);color:#f4f6f2;z-index:60;display:none;padding:10px 14px 12px}.timerbar.show{display:block}.timerbar .trow{max-width:680px;margin:0 auto;display:flex;align-items:center;gap:10px}.timerbar .tlabel{flex:1;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timerbar .tclock{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;font-weight:700;color:var(--tape);flex-shrink:0}.timerbar .tclock.over{color:var(--orange)}.timerbar button{background:#ffffff1f;border:none;color:#fff;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;flex-shrink:0}.timerbar button.tdone{background:var(--green)}.timerbar .tprog{max-width:680px;margin:8px auto 0;height:5px;background:#ffffff26;border-radius:99px;overflow:hidden}.timerbar .tfill{height:100%;background:var(--tape);border-radius:99px;transition:width 1s linear}.timerbar .tfill.over{background:var(--orange)}.timerbar .tsub{max-width:680px;margin:5px auto 0;font-size:11px;color:#fff9;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}body.has-timer{padding-bottom:150px}body.has-timer .status{bottom:96px}.slot .play{color:var(--tape);font-size:14px}.status{position:fixed;bottom:14px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:8px 16px;border-radius:999px;font-size:13px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:50;white-space:normal;max-width:92vw;text-align:center}.status.show{opacity:1}.task .body{cursor:pointer}.task .meta:empty{display:none}.task.expanded{border-color:var(--ink-soft)}.task.expanded .meta{gap:8px;margin-top:8px}.task.expanded select.daypick,.task.expanded select.estpick{font-size:13px;padding:11px 12px;border-radius:10px;max-width:none;min-height:44px}.task.expanded input.duepick{font-size:13px;padding:10px 12px;border-radius:10px;max-width:150px;min-height:44px}.stakes-row{margin-top:8px}.stakes-row input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:13px;background:var(--paper);color:var(--ink);min-height:44px}.stakes-row input:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}.stakes-row input.set{border-color:var(--gold);background:var(--gold-soft)}.fab{position:fixed;right:18px;bottom:18px;width:56px;height:56px;border-radius:50%;border:none;background:var(--orange);color:#fff;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 4px 16px #23302a4d;z-index:55;display:flex;align-items:center;justify-content:center;padding-bottom:3px}.fab:active{transform:scale(.94)}body.has-timer .fab{bottom:112px}.task .check{position:relative}.task .check:after{content:"";position:absolute;inset:-11px}.task .star{position:relative}.task .star:after{content:"";position:absolute;inset:-9px}.slot button{position:relative}.slot button:after{content:"";position:absolute;inset:-8px}.undo{position:relative}.undo:after{content:"";position:absolute;inset:-10px}.weeknav button{width:44px;height:44px}.tabs button{padding:10px 18px}.addrow input{padding:11px 12px}.addrow button{min-width:60px}.coach-head{min-height:36px}.coach-head .clear{position:relative}.coach-head .clear:after{content:"";position:absolute;inset:-12px}.datarow button{padding:12px 6px}#notif-enable{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:10px;padding:12px 16px;font-size:14px;font-weight:700;cursor:pointer;min-height:44px;width:100%}.notif-row{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;min-height:48px;cursor:pointer;font-size:14px}.notif-row span{flex:1}.notif-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--green);flex-shrink:0}.notif-row select{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--paper);min-height:40px}.notif-actions{display:flex;gap:8px;margin-top:4px}.notif-actions button{flex:1;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:8px;padding:10px;font-size:13px;cursor:pointer;min-height:44px}input.remindpick{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper);color:var(--ink-soft);cursor:pointer;min-height:44px;max-width:130px}input.remindpick.set{border-color:var(--green);color:var(--green);font-weight:700}#sync-create{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:10px;padding:12px 16px;font-size:14px;font-weight:700;cursor:pointer;min-height:44px;width:100%}.sync-code-row{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px}.sync-code-row code{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;color:var(--ink)}.sync-code-row button{border:none;background:var(--ink);color:#fff;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;min-height:44px}.pop{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--green);color:#fff;font-size:40px;display:flex;align-items:center;justify-content:center;z-index:210;pointer-events:none;animation:pop .38s ease-out forwards}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}75%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.02)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.pop{display:none}}
