:root { --bg:#f4f4ef; --paper:#fffefa; --paper2:#f6f7f1; --ink:#1e2d27; --muted:#64736b; --line:#dfe5da; --deep:#234d3c; --accent:#316c50; --soft:#e9f3e9; --warm:#f5f0e4; --warn:#856022; --shadow:0 12px 40px rgba(23,43,33,.055); color-scheme:light; }
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;line-height:1.43;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #88b39b;outline-offset:2px}.shell{max-width:760px;margin:0 auto;padding:20px 17px 124px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.brand{display:flex;gap:11px;align-items:center}.brandmark{width:43px;height:43px;border-radius:14px;background:var(--deep);color:#fff;display:grid;place-items:center;font-weight:800;font-size:23px;letter-spacing:-2px}.brandtitle{font-size:18px;font-weight:780;letter-spacing:-.55px}.brandsub{font-size:12px;color:var(--muted);margin-top:2px}.iconbtn{display:grid;place-items:center;border:1px solid var(--line);width:40px;height:40px;background:var(--paper);border-radius:13px;color:var(--ink);font-size:20px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.headline{font-size:27px;line-height:1.13;letter-spacing:-1.1px;margin:0 0 8px;font-weight:790}.sub{margin:0;color:var(--muted);font-size:14px}.panel{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:18px;margin-top:17px;box-shadow:var(--shadow)}.headingrow{display:flex;justify-content:space-between;align-items:center;gap:8px}.sectiontitle{font-size:16px;letter-spacing:-.35px;font-weight:760;margin:0}.micro{font-size:12px;color:var(--muted)}.timenum{font-size:36px;font-weight:820;letter-spacing:-1.7px}.timenum span{font-size:15px;color:var(--muted);font-weight:600;letter-spacing:0}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.chip{background:#f6f8f3;border:1px solid var(--line);padding:10px 12px;border-radius:12px;color:var(--ink);font-weight:700;font-size:13px;min-width:48px}.chip.active{background:var(--deep);border-color:var(--deep);color:#fff}.timecontrols{display:flex;align-items:center;gap:8px}.step{width:35px;height:35px;border-radius:11px;border:1px solid var(--line);background:var(--paper2);font-size:22px;color:var(--deep)}.timeentry{width:60px;font-size:24px;font-weight:800;border:none;background:transparent;text-align:right;color:var(--ink);padding:2px 0;appearance:textfield}.timeentry::-webkit-outer-spin-button,.timeentry::-webkit-inner-spin-button{appearance:none;margin:0}.rowactions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 13px}.pills{display:flex;gap:6px;flex-wrap:wrap}.smallbtn{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:8px 11px;font-size:12px;font-weight:700;color:var(--deep)}.smallbtn.dark{background:var(--soft);border-color:#c5ddcb}.smallbtn.selected{background:var(--deep);color:white;border-color:var(--deep)}.search{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:12px 14px;color:var(--ink);font-size:15px}.room{margin-top:10px;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}.roomhead{width:100%;border:0;background:transparent;padding:14px 15px;text-align:left;display:flex;gap:10px;align-items:center;color:var(--ink)}.roomicon{font-size:19px;width:25px;text-align:center;filter:saturate(.45)}.roomname{font-size:15px;font-weight:740;flex:1}.roomcount{font-size:11px;color:var(--accent);font-weight:750}.chevron{font-size:13px;color:var(--muted)}.roomrows{border-top:1px solid var(--line)}.taskrow{display:flex;align-items:center;gap:9px;padding:11px 12px;border-bottom:1px solid #edf0ea;min-height:52px}.taskrow:last-child{border-bottom:0}.taskrow.on{background:#f3f9f2}.tasklabel{flex:1;min-width:0;display:flex;align-items:center;gap:11px;cursor:pointer}.tasklabel input{accent-color:var(--accent);width:19px;height:19px;flex:0 0 19px;margin:0}.tasktext{min-width:0;font-weight:590;font-size:14px}.metacell{display:flex;align-items:center;gap:6px;flex-shrink:0}.score{min-width:34px;height:34px;background:#edf4ec;border:1px solid #d7e6d9;color:var(--deep);border-radius:10px;font-weight:800;font-size:14px}.score.low{background:#f5f3ee;border-color:#e9e4d9;color:#76694d}.duration{background:transparent;border:0;color:var(--muted);font-size:12px;padding:6px 1px;min-width:34px;text-align:right}.roomfoot{padding:8px 12px;background:#fbfcf9;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line)}.roomfoot button{background:transparent;border:0;color:var(--accent);font-size:12px;font-weight:720;padding:4px 5px}.primary{border:0;background:var(--deep);color:#fff;border-radius:14px;padding:15px 18px;font-weight:790;font-size:15px;box-shadow:0 6px 14px rgba(26,77,55,.13)}.primary:hover{background:#356f53}.secondary{border:1px solid var(--line);background:var(--paper);color:var(--deep);border-radius:13px;padding:12px 16px;font-weight:730}.primary.full,.secondary.full{width:100%}.sticky{position:fixed;bottom:0;left:0;right:0;padding:11px max(18px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:linear-gradient(to top,rgba(244,244,239,.99),rgba(244,244,239,.97));border-top:1px solid var(--line);z-index:10}.sticky-inner{max-width:730px;margin:auto;display:flex;align-items:center;gap:11px}.sticky .primary{flex:1}.stickycaption{color:var(--muted);font-size:12px;line-height:1.23}.empty{margin:18px 0;text-align:center;border:1px dashed var(--line);padding:27px 15px;border-radius:16px;color:var(--muted)}.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.stat{border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:14px 8px;text-align:center}.statnumber{font-size:25px;font-weight:830;letter-spacing:-1px}.statlabel{font-size:11px;color:var(--muted)}.plangroup{margin:17px 0;border:1px solid var(--line);background:var(--paper);border-radius:17px;overflow:hidden}.grouphead{display:flex;align-items:center;justify-content:space-between;background:var(--paper2);padding:11px 14px;border-bottom:1px solid var(--line)}.grouptitle{font-size:13px;font-weight:780}.groupmeta{font-size:11px;color:var(--muted)}.planrow{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid #edf0ea}.planrow:last-child{border:0}.tasknum{display:grid;place-items:center;background:#e8f1e7;color:var(--deep);border-radius:9px;width:28px;height:28px;flex:0 0 28px;font-size:12px;font-weight:800}.planrow input{accent-color:var(--accent);width:22px;height:22px;margin-top:4px}.planbody{flex:1;min-width:0}.planname{font-size:14px;font-weight:720}.plannotes{font-size:12px;color:var(--muted);margin-top:3px}.planvalue{color:var(--deep);font-size:13px;font-weight:780;white-space:nowrap}.muted{color:var(--muted)}.divider{height:1px;background:var(--line);margin:15px 0}.info{border-radius:13px;padding:13px 14px;background:var(--soft);font-size:13px;line-height:1.48;color:#375847;margin-top:13px}.warning{background:var(--warm);color:var(--warn)}.linkbtn{border:0;background:transparent;color:var(--deep);font-size:13px;font-weight:750;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.checkboxline{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.checkboxline input{accent-color:var(--accent)}.modalwrap{position:fixed;inset:0;z-index:30;background:rgba(18,31,24,.5);display:grid;place-items:end center;padding:20px 10px max(15px,env(safe-area-inset-bottom))}.modal{background:var(--paper);width:min(100%,520px);border-radius:22px;padding:20px;max-height:87vh;overflow:auto;box-shadow:0 30px 70px rgba(0,0,0,.2)}.modal h2{font-size:20px;letter-spacing:-.5px;margin:0 0 3px}.field{display:block;margin:15px 0}.fieldlabel{font-size:12px;font-weight:750;color:var(--muted);margin-bottom:7px;display:block}.input{width:100%;background:var(--paper);border:1px solid #cddbcf;border-radius:11px;padding:11px 12px;color:var(--ink)}.fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.range{width:100%;accent-color:var(--accent)}.modalbuttons{display:flex;gap:8px;margin-top:20px}.modalbuttons>*{flex:1}.toast{position:fixed;z-index:50;left:50%;bottom:100px;transform:translateX(-50%);padding:11px 16px;border-radius:13px;background:#1e2d27;color:white;font-size:13px;box-shadow:0 10px 26px #0003;opacity:0;pointer-events:none;transition:opacity .2s;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1}.progress{height:8px;border-radius:30px;overflow:hidden;background:#e2eade;margin:15px 0 4px}.progress>div{height:100%;background:#4b9465;transition:width .15s}.planfooter{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.planfooter>*{flex:1}.footnote{font-size:12px;color:var(--muted);margin-top:15px}.pill{font-size:12px;padding:4px 8px;background:var(--soft);color:var(--deep);border-radius:20px;font-weight:700}.topspace{margin-top:18px}.smallcaps{text-transform:uppercase;font-weight:800;letter-spacing:.12em;font-size:10px;color:var(--accent)}@media(max-width:420px){.shell{padding:16px 12px 126px}.panel{padding:15px}.headline{font-size:25px}.chip{padding:9px 10px}.taskrow{padding:10px}.tasktext{font-size:13px}.statnumber{font-size:23px}.stat{padding:12px 5px}.brandtitle{font-size:17px}}@media(min-width:800px){.sticky{position:static;background:transparent;border:0;padding:18px 0}.shell{padding-bottom:40px}.sticky-inner{max-width:760px}}
/* v2: compact presets and categorical priority */
.presetgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:11px}
.preset{border:1px solid var(--line);text-align:left;padding:12px;border-radius:13px;background:var(--paper2);min-height:76px;color:var(--ink)}
.preset strong{display:block;font-size:13px;line-height:1.25;margin-bottom:4px}
.preset span{display:block;font-size:11px;color:var(--muted);line-height:1.35}
.preset:active{background:var(--soft)}
.morepresets{padding-top:11px}.morepresets summary{font-size:13px;color:var(--deep);font-weight:700;cursor:pointer}
.score.cat1{background:#e0eee5;border-color:#b2d3bd;color:#22553b}
.score.cat2{background:#eff1f4;border-color:#d9e0e6;color:#46596a}
.score.cat3{background:#f6f0e5;border-color:#e9ddc7;color:#80622d}
.daily-mark{display:inline-block;margin-left:7px;font-size:9px;line-height:1;padding:4px 5px;border-radius:6px;color:#38714f;background:#e3efe7;font-weight:750;vertical-align:middle}
.roomfoot{justify-content:space-between;gap:0;flex-wrap:wrap}
.roomfoot button{padding:7px 5px}
.smallheading{font-size:14px;margin:0 0 8px}
.topmargin{margin-top:16px}
.linkedlist{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:12px 0}
.linkeditem{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;border-bottom:1px solid var(--line)}
.linkeditem:last-child{border:0}.linkeditem strong{font-size:12px;font-weight:650}
.deferred{margin:9px 0;padding-left:19px;color:var(--muted);font-size:13px}.deferred li{padding:4px 0}
@media(max-width:370px){.preset{padding:10px}.preset strong{font-size:12px}.preset span{font-size:10px}}

.linkactions{display:flex;gap:4px}.linkactions .smallbtn{white-space:nowrap;padding:6px}

.preset[data-preset="daily"]{background:#e7f2e9;border-color:#bcd8c6}

/* v2.1: live summary of all selected work in the time budget panel */
.selection-time{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:15px;padding-top:13px;flex-wrap:wrap}
.selection-time>div{display:flex;align-items:baseline;gap:10px}
.selection-time-label{font-size:13px;font-weight:730;color:var(--ink)}
.selection-time-value{font-size:21px;letter-spacing:-.5px;color:var(--deep);font-weight:830;white-space:nowrap}
.selection-time-status{font-size:12px;font-weight:670;color:var(--muted)}
.selection-time-status.over{color:var(--warn)}
.selection-time-note{margin:5px 0 0;line-height:1.35}
