:root{--bg: #0a0c0f;--bg-elev: #0e1218;--surface: #13181f;--surface-2: #1a212b;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #eef0f3;--muted: #8b93a4;--faint: #5f6778;--accent: #2dd4bf;--accent-dim: #113936;--good: #2dd4bf;--warn: #e6b84c;--bad: #f07178;--danger-bg: rgba(240, 113, 120, .08);--ink: #04221e;--focus: #2dd4bf;--focus-ring: rgba(45, 212, 191, .28);--shadow: 0 24px 60px rgba(0, 0, 0, .45);--radius: 16px;--radius-sm: 8px;--nav: 168px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--control-h: 36px;--touch: 44px;--ease: .16s ease;--font: Inter, system-ui, sans-serif;--mono: "ui-monospace", "SFMono-Regular", "Cascadia Mono", Consolas, monospace}*{box-sizing:border-box}html,body{overflow-x:clip}html,body,#root{min-height:100%;color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-shell{display:grid;grid-template-columns:var(--nav) 1fr;min-height:100vh;min-height:100dvh;background:radial-gradient(1200px 500px at 80% -10%,rgba(45,212,191,.08),transparent 50%),radial-gradient(800px 400px at 0% 100%,rgba(122,162,247,.06),transparent 45%),var(--bg)}.nav{position:sticky;top:0;height:100vh;height:100dvh;padding:var(--space-5) 12px;border-right:1px solid var(--border);background:#0a0c0fb8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;flex-direction:column;gap:2px}.nav-brand{display:flex;align-items:baseline;gap:8px;padding:4px 10px 18px}.nav-mark{font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:-.08em;color:var(--accent);line-height:1}.nav-week{margin:0 10px 16px}.nav-week-bar,.mobile-week-chip .nav-week-bar{display:block;height:3px;border-radius:99px;background:var(--surface-2);overflow:hidden}.nav-week-bar i{display:block;height:100%;width:var(--pct, 0%);background:var(--accent);transition:width var(--ease)}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--muted);position:relative;transition:color var(--ease),background var(--ease)}.nav-link svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:99px;background:var(--accent)}.nav-spacer{flex:1}.mobile-week-chip{display:none}.content{padding:var(--space-5) 32px 48px;min-width:0}.stack{display:flex;flex-direction:column;gap:var(--space-5)}.section{display:flex;flex-direction:column;gap:var(--space-3)}.page-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.page-head p.muted{margin:6px 0 0}.kicker{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.03em}h1{font-size:28px;letter-spacing:-.04em}h2{font-size:18px}.muted{color:var(--muted)}.faint{color:var(--faint)}.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-4)}.grid-3,.goal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.btn,.icon-btn,.strip-cell,.check-item,.gantt-bar,.nav-link,.heat-cell{transition:border-color var(--ease),background var(--ease),color var(--ease),opacity var(--ease)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.card-head:last-child{margin-bottom:0}.card-head .kicker{margin-bottom:4px}.card-head h2{display:flex;align-items:center;gap:8px;min-width:0}.card-head .count-chip{flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:auto;flex-shrink:0;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);padding:6px 12px;min-height:32px;color:var(--text);white-space:nowrap}.btn:hover{border-color:var(--border-strong);background:var(--surface-2);filter:brightness(1.08)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--ink);font-weight:600}.btn-primary:hover{filter:brightness(1.06);border-color:var(--accent);background:var(--accent)}.btn-ghost{background:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{color:var(--bad);border-color:transparent;background:transparent}.btn-danger:hover{border-color:transparent;background:var(--danger-bg)}.btn-compact{min-height:28px;padding:3px 8px;font-size:13px}.btn-dashed{width:100%;border-style:dashed;color:var(--muted)}.btn-dashed:hover{color:var(--text);border-style:dashed}.btn:disabled{opacity:.45;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-3)}.field span,.field-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:var(--control-h);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;outline:none;color:var(--text)}input:not([type=checkbox]):not([type=radio])::placeholder,textarea::placeholder{color:var(--faint)}textarea{min-height:88px;resize:vertical}input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}input:not([type=checkbox]):not([type=radio]):-webkit-autofill,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--surface-2) inset;transition:background-color 9999s ease-out}input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--accent);flex:none;cursor:pointer}.composer{display:flex;flex-direction:column;gap:var(--space-3);padding:12px 14px}.composer .kicker{margin-bottom:0}.composer-row{display:flex;gap:var(--space-2);align-items:center}.composer-row input{flex:1;min-width:0;margin:0}.composer-row .btn{flex:none;align-self:stretch;min-height:var(--control-h)}.composer textarea{min-height:72px;margin:0}.meter{display:flex;flex-direction:column;gap:8px;max-width:360px}.meter-track{position:relative;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.meter-fill{display:block;height:100%;border-radius:99px;background:currentColor;min-width:0}.meter-tick{position:absolute;top:-2px;bottom:-2px;left:85%;width:2px;background:var(--text);opacity:.55;border-radius:99px}.count-chip{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:3px 8px;flex:none}.tone-good{color:var(--good)}.tone-warn{color:var(--warn)}.tone-bad{color:var(--bad)}.tone-muted{color:var(--muted)}.page-loading{color:var(--muted);padding:var(--space-6) 0;letter-spacing:.04em}.score-ring{position:relative;width:176px;height:176px;flex:none}.score-ring.compact{width:128px;height:128px}.score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.score-ring .track{stroke:var(--surface-2)}.score-ring .value{stroke:currentColor}.score-ring .tick{stroke:var(--muted)}.score-ring .label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:none}.score-ring .pct{font-family:var(--mono);font-size:36px;letter-spacing:-.06em;line-height:1}.score-ring.compact .pct{font-size:28px}.score-ring .sub{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px}.hero{display:flex;gap:24px;align-items:center;padding:16px 18px}.hero-copy{min-width:0;flex:1}.hero-copy .meter{margin-top:var(--space-4)}.week-strip{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;scrollbar-width:none}.week-strip::-webkit-scrollbar{display:none}.strip-cell{height:64px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;font-size:12px;color:var(--faint);position:relative;overflow:hidden}a.strip-cell:hover{border-color:var(--border-strong);color:var(--text)}.strip-cell .fill{position:absolute;left:0;right:0;bottom:0;opacity:.85;background:currentColor}.strip-cell.tone-good{color:var(--good)}.strip-cell.tone-warn{color:var(--warn)}.strip-cell.tone-bad{color:var(--bad)}.strip-cell.tone-muted{color:transparent}.strip-cell.current{outline:1px solid var(--accent);outline-offset:0}.strip-cell .n{position:relative;z-index:1;color:var(--text);font-weight:600}.goal-card{padding:0;overflow:hidden;transition:border-color .15s ease,background .15s ease}.goal-card:hover{border-color:var(--border-strong)}.goal-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);padding:12px 14px 8px;border-left:3px solid var(--goal, var(--accent))}.goal-card-head h2{font-size:15px;line-height:1.35}.mini-heat{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;padding:0}.mini-heat i{display:block;height:16px;border-radius:3px;background:#232a36}.mini-heat i.current{box-shadow:inset 0 0 0 1px var(--accent)}.mini-heat i.done{background:var(--good)}.mini-heat i.partial{background:var(--warn)}.mini-heat i.missed{background:var(--bad)}.mini-heat i.future,.mini-heat i.open{background:var(--goal, #7aa2f7);opacity:.4}.mini-heat i.out{background:#1a1f28}.type-pip{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none;vertical-align:middle}.type-pip.daily{background:#9ec1ff}.type-pip.weekly{background:#e6d09a}.type-pip.once{background:#d0c4ff}.gantt-wrap{display:flex;flex-direction:column;gap:var(--space-4)}.gantt-goal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.gantt-goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:14px 16px 12px;border-left:3px solid var(--goal)}.gantt-goal-head h2{flex:1;font-size:16px;line-height:1.35;min-width:0}.gantt-goal-tools{display:flex;align-items:center;gap:8px;flex:none;padding-top:1px}.gantt-timeline{padding:0 16px 14px;overflow-x:auto}.gantt-weeks{display:grid;grid-template-columns:repeat(12,1fr);min-width:420px;margin-bottom:6px;text-align:center;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.gantt-weeks .is-current{color:var(--accent);font-weight:600}.gantt-track{display:flex;flex-direction:column;gap:6px;min-width:420px}.gantt-row{display:flex;flex-direction:column;min-width:0}.gantt-bar-name{display:none}.gantt-row-track{display:grid;grid-template-columns:repeat(12,1fr);height:28px;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px);background-size:calc(100% / 12) 100%;border-radius:6px;position:relative}.gantt-row-track:before{content:"";position:absolute;top:0;bottom:0;left:calc((var(--current, 1) - 1) * 100% / 12);width:calc(100% / 12);background:#2dd4bf1f;pointer-events:none;border-radius:4px}.gantt-bar{grid-column:var(--from) / var(--to);background:var(--goal);color:var(--bg);font-weight:600;border-radius:5px;display:flex;align-items:center;padding:0 8px;font-size:11px;min-width:0;position:relative;z-index:1;overflow:hidden;cursor:pointer}.gantt-bar.is-selected{outline:1px solid var(--text);outline-offset:1px}.gantt-bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tactic-list{border-top:1px solid var(--border);padding:8px;background:var(--bg-elev);display:flex;flex-direction:column;gap:4px}.tactic-hint{margin:4px 8px 0;font-size:13px}.tactic-add{padding:2px}.tactic-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:10px;border-radius:var(--radius-sm);border-left:2px solid transparent}.tactic-row:hover{background:var(--surface);border-left-color:var(--goal)}.tactic-editor,.tactic-list>.inline-form{display:grid;gap:var(--space-2);padding:10px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.tactic-editor{position:relative}.tactic-editor .editor-delete{justify-content:flex-end;margin-top:-4px}.tactic-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0}.tactic-action{font-size:14px;font-weight:600;line-height:1.35}.tactic-meta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.tactic-weeks{font-size:12px}.tactic-editor .inline-form{padding:0}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);justify-self:start}.week-switcher{display:flex;flex-wrap:wrap;gap:6px}.week-switcher button,.weekday-toggles button{width:32px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--muted)}.week-switcher button:hover,.weekday-toggles button:hover{border-color:var(--border-strong);color:var(--text)}.week-switcher button.on,.weekday-toggles button.on{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:600}.week-switcher button.on:hover{border-color:var(--accent);color:var(--ink)}.weekday-toggles button.on{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.weekday-toggles button.on:hover{color:var(--accent);border-color:var(--accent)}.day-chips{display:none}.week-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day-col{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-height:160px;padding:10px}.day-col.today{border-color:var(--accent);background:#141c22;box-shadow:inset 0 0 0 1px #2dd4bf33}.day-col h3{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.day-count{font-size:11px;letter-spacing:0;color:var(--faint);font-weight:500}.day-empty{font-size:12px;color:var(--faint);padding:6px 2px}.check-item{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;border-left:3px solid var(--goal);margin-bottom:4px;cursor:pointer}.check-item:last-child{margin-bottom:0}.check-item:hover{background:var(--surface);border-left-color:var(--goal)}.check-item .action{flex:1;min-width:0}.check-item .type-pip{margin-left:auto}.check-item.done{opacity:.72}.check-item.done .action{color:var(--muted);text-decoration:line-through}.check-item .action{font-size:13px}.check-item input{margin-top:1px}.backlog-list{display:flex;flex-direction:column;gap:10px}.backlog-item{display:flex;flex-direction:column;gap:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s ease,background .15s ease}.backlog-item:hover,.backlog-item.is-open{border-color:var(--border-strong);background:#181e27}.backlog-item.done{opacity:.78}.backlog-item.done .action{color:var(--muted);text-decoration:line-through}.backlog-item-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}.backlog-check{display:flex;align-items:center;padding-top:3px;cursor:pointer}.backlog-check input{margin:0}.backlog-body{min-width:0}.backlog-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.backlog-title-row .action{margin:0;flex:1;font-size:15px;font-weight:600;line-height:1.4;min-width:0}.backlog-item-actions{flex:none;justify-content:flex-end}.backlog-notes{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45;white-space:pre-wrap}.backlog-schedule{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);display:flex;flex-direction:column;gap:12px}.backlog-schedule .kicker{margin-bottom:10px}.backlog-schedule .inline-form{padding-top:4px}.backlog-item-main.is-editing .inline-form{padding-top:0}.today-list{display:flex;flex-direction:column;gap:var(--space-4)}.today-list .card-head{margin-bottom:var(--space-3)}.today-list h2{margin-bottom:0}.dot{width:8px;height:8px;border-radius:50%;background:var(--goal);flex:none}.heatmap{width:100%;border-collapse:separate;border-spacing:4px;font-size:13px}.heatmap th{font-size:11px;font-weight:500;color:var(--faint);text-align:center}.heatmap th.current-week{color:var(--accent);font-weight:600}.heatmap-card{padding:14px 16px;overflow:hidden}.heatmap-scroll{overflow-x:auto}.heatmap-cards{display:none}.heatmap td.sticky,.heatmap th.sticky{text-align:left;position:sticky;left:0;background:var(--bg-elev);min-width:180px;max-width:240px;padding-right:10px}.heat-label{display:flex;align-items:center;gap:8px;border-left:3px solid var(--goal, var(--accent));padding-left:8px;min-width:0}.heat-action{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.heat-cell{width:36px;height:28px;border-radius:5px;background:#1a1f28;text-align:center;font-size:10px;color:transparent;cursor:default}.heatmap td.current-week .heat-cell{box-shadow:inset 0 0 0 1px var(--accent)}.heat-cell:hover{filter:brightness(1.12);color:var(--text)}.heat-cell.done{background:var(--good);color:var(--ink)}.heat-cell.partial{background:var(--warn);color:#2a2108}.heat-cell.missed{background:var(--bad);color:#2a0d10}.heat-cell.future,.heat-cell.open{background:#2a3344;color:var(--muted)}.heat-cell.out{background:#12161c}.totals-row .heat-cell{font-family:var(--mono);color:var(--text);background:var(--surface-2)}.line-85{height:3px;border-radius:99px;background:linear-gradient(to right,var(--bad),var(--warn) 60%,var(--good) 85%);position:relative;margin:8px 0 18px}.line-85 span{position:absolute;left:85%;top:-18px;font-size:10px;color:var(--muted);transform:translate(-50%)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:0 0 var(--space-4)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.legend .swatch-done{background:var(--good)}.legend .swatch-partial{background:var(--warn)}.legend .swatch-missed{background:var(--bad)}.legend .swatch-open{background:#2a3344}.auth-screen{min-height:100vh;display:flex;justify-content:center;padding:var(--space-5) 16px;background:radial-gradient(700px 300px at 50% 0%,rgba(45,212,191,.12),transparent 60%),var(--bg)}.auth-frame{display:grid;grid-template-columns:1fr 1fr;width:min(820px,94vw);margin:auto 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.auth-frame.wide{grid-template-columns:.85fr 1.15fr;width:min(920px,96vw)}.auth-panel{padding:36px 32px;background:radial-gradient(400px 220px at 0% 0%,rgba(45,212,191,.16),transparent 70%),var(--bg-elev);display:flex;flex-direction:column;justify-content:center;gap:var(--space-3)}.auth-panel h1{font-size:32px}.auth-panel p{margin:0;color:var(--muted);max-width:28ch}.auth-form{padding:32px 28px}.auth-form .btn{margin-top:4px}.login-mark{font-family:var(--mono);font-size:48px;letter-spacing:-.08em;color:var(--accent);line-height:1}.banner-inline{margin:0 0 var(--space-3);padding:8px 10px;border-radius:var(--radius-sm);background:var(--danger-bg);border:1px solid rgba(240,113,120,.35);color:var(--bad);font-size:13px}.onboard-block{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.onboard-block:last-of-type{border-bottom:0;margin-bottom:var(--space-3);padding-bottom:0}.weekday-toggles{display:flex;flex-wrap:wrap;gap:6px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.form-row.triple{grid-template-columns:1.1fr .95fr .95fr}.inline-form{display:grid;gap:var(--space-2);padding:10px 0 4px}.inline-form .btn,.tactic-editor>.btn{width:auto;justify-self:start}.inline-form .field{margin-bottom:0}.empty{color:var(--muted);padding:var(--space-6) var(--space-4);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.empty-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;border-radius:12px;background:var(--accent-dim);color:var(--accent)}.empty-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.empty-icon svg circle.filled{fill:currentColor;stroke:none}.empty .kicker{margin-bottom:0}.empty p{margin:0}.empty .btn{margin-top:0}.banner{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:14px 16px}.banner .btn{margin-top:var(--space-3)}.row-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.busy{opacity:.55;pointer-events:none}@media (max-width: 960px){.app-shell{grid-template-columns:1fr;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.nav{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;z-index:50;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:2px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);background:#0b0d10f5}.nav-brand,.nav-week,.nav-spacer{display:none}.nav-link{flex:1;flex-direction:column;gap:4px;min-height:var(--touch);padding:8px 2px 10px;font-size:11px;letter-spacing:0;text-align:center;border-radius:8px}.nav-link svg{width:22px;height:22px}.nav-link.active{box-shadow:none}.nav-link.active:before{left:50%;top:auto;bottom:4px;transform:translate(-50%);width:12px;height:2px}.mobile-week-chip{display:block;padding:0 0 12px;margin-bottom:var(--space-3);border:0;background:transparent}.grid-2,.auth-frame,.auth-frame.wide,.form-row,.form-row.triple{grid-template-columns:1fr}.gantt-goal-head,.backlog-title-row,.tactic-row{flex-wrap:wrap;grid-template-columns:1fr;align-items:start}.gantt-goal-tools,.backlog-item-actions,.tactic-row .row-actions{width:100%;justify-content:flex-start}.composer-row{flex-wrap:wrap}.composer-row .btn{flex:none}.content{padding:calc(18px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 28px calc(16px + env(safe-area-inset-left))}.hero{flex-direction:column;align-items:flex-start}.auth-panel{padding:24px 22px 16px}.auth-form{padding:20px 22px 24px}.do-hero{flex-direction:column;align-items:flex-start;width:100%}.do-hero .week-strip{width:100%}.do-hero .score-ring.compact{width:96px;height:96px}.do-hero .score-ring.compact .pct{font-size:22px}.do-hero .skel-ring{width:96px;height:96px}.mini-heat i{height:22px}.week-strip{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:8px;-webkit-overflow-scrolling:touch}.strip-cell{flex:0 0 var(--touch);scroll-snap-align:center}.check-item{min-height:var(--touch);padding:12px 10px}.icon-btn{width:var(--touch);height:var(--touch)}.icon-btn svg{width:18px;height:18px}.icon-btn.add-inline{width:var(--touch);height:var(--touch)}.btn,.btn-compact{min-height:var(--touch)}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}.week-head{flex-wrap:nowrap;gap:8px}.display-week,.display-pct{font-size:22px}.day-chips{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:12px}.day-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:52px;padding:4px 2px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);line-height:1.15}.day-chip.on{border-color:var(--accent);color:var(--text);background:#141c22}.day-chip.today:not(.on){border-color:var(--border-strong)}.day-chip-letter{font-weight:600;font-size:12px;letter-spacing:.04em}.day-chip-date{font-size:11px;font-family:var(--mono)}.day-chip-count{font-size:9px;color:var(--faint)}.week-board{display:block}.week-board .day-col{display:none;min-height:0}.week-board .day-col.is-active{display:block}.week-board .day-col h3{display:none}.gantt-timeline{overflow-x:visible}.gantt-weeks,.gantt-track{min-width:0}.gantt-bar-name{display:block;font-size:13px;font-weight:600;padding:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-row{padding:8px 0}.gantt-row-track{height:38px;min-width:0}.gantt-bar-label,.heatmap-scroll{display:none}.heatmap-cards{display:flex;flex-direction:column;gap:12px}.heat-card{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.heat-card-weeks{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px}.heat-card-weeks .heat-cell{width:auto;height:22px}.heat-card-weeks .heat-cell.current-week{box-shadow:inset 0 0 0 1px var(--accent)}.heat-card .heat-action{white-space:normal}.heat-card-head{font-size:10px;color:var(--faint);text-align:center;padding:0 12px}.heat-card-head .current-week{color:var(--accent);font-weight:600}.heat-card-totals .heat-cell{color:var(--text);font-size:8px;display:flex;align-items:center;justify-content:center}.seg button{min-width:var(--touch);height:var(--touch)}.week-picks{grid-template-columns:repeat(6,1fr)}.week-picks button{height:var(--touch)}.weekday-toggles button,.week-switcher button{width:var(--touch);height:var(--touch)}.add-goal{flex-wrap:wrap}.add-goal input{flex:1 1 100%}.overlay{padding:0}.overlay-panel{border-radius:0;width:100%;min-height:100%;padding:calc(52px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.overlay-close{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));width:var(--touch);height:var(--touch)}.drawer{width:100%;padding:calc(52px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.route-fade{animation:fade-in var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes slide-in{0%{transform:translate(12px);opacity:0}to{transform:none;opacity:1}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.85}}.score-ring-btn{border:0;background:transparent;padding:0;color:inherit;flex:none}.score-ring-btn:hover .score-ring{filter:brightness(1.08)}.do-hero{display:flex;align-items:center;gap:var(--space-5)}.do-hero .week-strip{flex:1;min-width:0}.do-goals{display:flex;flex-direction:column;gap:14px}.do-goal h2{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:8px;padding-left:10px;border-left:3px solid var(--goal, var(--accent))}.today-group{min-width:0}.today-group .card-head{margin-bottom:8px}.today-group h2{font-size:14px;font-weight:500;color:var(--muted)}.week-head{align-items:center}.week-head .display-week{flex:1}.plan-head{justify-content:flex-end}.display-week{display:flex;align-items:baseline;gap:14px;font-family:var(--mono);font-size:32px;letter-spacing:-.06em;font-weight:600}.display-week h1{font-size:inherit;font-weight:inherit;letter-spacing:inherit;font-family:inherit}.display-pct{border:0;background:transparent;padding:0;font-family:var(--mono);font-size:32px;letter-spacing:-.06em;font-weight:600;cursor:pointer}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);position:relative}.icon-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-btn:hover{color:var(--text);background:var(--surface)}.icon-btn.danger:hover,.icon-btn.armed{color:var(--bad);background:var(--danger-bg)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn.has-badge{color:var(--text)}.icon-btn .badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;padding:0 3px;border-radius:99px;background:var(--accent);color:var(--ink);font-size:9px;font-weight:700;line-height:14px;font-style:normal}.hover-reveal{opacity:0;transition:opacity var(--ease)}.gantt-goal-head:hover .hover-reveal,.gantt-goal-head:focus-within .hover-reveal,.backlog-item:hover .hover-reveal,.backlog-item:focus-within .hover-reveal,.backlog-item.is-open .hover-reveal{opacity:1}@media (hover: none){.hover-reveal{opacity:1}}.form-toolbar{display:flex;flex-direction:column;gap:var(--space-2)}.seg{display:inline-flex;padding:2px;gap:2px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);width:max-content}.seg button{min-width:36px;height:28px;border:0;background:transparent;color:var(--muted);border-radius:6px;font-family:var(--mono);font-weight:600}.seg button.on{background:var(--surface);color:var(--text)}.week-picks{display:grid;grid-template-columns:repeat(12,1fr);gap:4px}.week-picks button{height:28px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--faint);font-size:11px;font-family:var(--mono);padding:0}.week-picks button.in{background:var(--accent-dim);color:var(--accent);border-color:transparent}.week-picks button.edge{background:var(--accent);color:var(--ink);border-color:var(--accent)}.add-goal{display:flex;gap:var(--space-2);align-items:center}.add-goal input{flex:1;min-width:0}.add-goal-btn{display:flex;align-items:center;justify-content:center;width:100%;height:44px;border:1px dashed var(--border);border-radius:var(--radius);background:transparent;color:var(--faint)}.add-goal-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round}.add-goal-btn:hover{color:var(--text);border-color:var(--border-strong)}.tactic-add{padding:4px 8px 10px}.icon-btn.add-inline{width:28px;height:28px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0000008c;display:flex;align-items:stretch;justify-content:center;padding:28px;animation:fade-in var(--ease)}.overlay-panel{position:relative;width:min(1100px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:36px 24px 24px;overflow:auto;animation:rise var(--ease)}.overlay-close{position:absolute;top:10px;right:10px;z-index:1}.drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;animation:fade-in var(--ease)}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--bg-elev);border-left:1px solid var(--border);padding:44px 20px 20px;overflow:auto;animation:slide-in var(--ease)}.heatmap-embed,.backlog-embed{min-width:0}.backlog-embed .composer{padding:0}.backlog-done{opacity:.7}.skel{background:var(--surface);border-radius:var(--radius-sm);animation:pulse 1.2s ease infinite}.skel-ring{width:128px;height:128px;border-radius:50%;flex:none}.skel-strip{height:64px;flex:1}.skel-head{height:36px;width:160px}.skel-line{height:12px;width:40%}.skel-block{height:120px;border-radius:var(--radius)}.skel-board{height:220px;border-radius:var(--radius)}.skel-auth{width:min(320px,80vw);height:180px;border-radius:var(--radius)}.auth-solo{display:flex;flex-direction:column;gap:var(--space-3);width:min(320px,90vw);margin:auto}.auth-solo.wide{width:min(400px,92vw)}.auth-solo .login-mark{margin-bottom:8px}.gantt-goal-tools.hover-reveal{padding-top:0}.totals-row .heat-cell{font-size:9px}
