:root,[data-theme=light]{--paper-0:#fffdf9;--paper-1:#faf6ef;--paper-2:#f3ede3;--paper-3:#e9e1d4;--line-1:#ece5da;--line-2:#dcd2c3;--line-3:#c9bdab;--ink-1:#2a2521;--ink-2:#574f48;--ink-3:#756b62;--ink-4:#a69c91;--pine-50:#eef4f0;--pine-100:#e1ece6;--pine-200:#c3d8cc;--pine-400:#5e8b79;--pine-500:#2f5b4c;--pine-600:#264b3f;--pine-700:#1e3d33;--slate-500:#4d6a94;--slate-600:#3f5879;--slate-100:#e6ecf4;--clay-500:#b4613a;--clay-600:#96502f;--clay-100:#f6e6dc;--heather-500:#7e5a8e;--heather-600:#684a76;--heather-100:#efe6f2;--sand-700:#7d5a12;--sand-500:#b48a2e;--sand-100:#f7edd5;--brick-600:#94473a;--brick-100:#f5e3de;--person-rosa:#a84e67;--person-rosa-soft:#f5e1e7;--person-hav:#2d7482;--person-hav-soft:#ddeff1;--person-senap:#8a6a12;--person-senap-soft:#f5ebcb;--person-oliv:#5f6b25;--person-oliv-soft:#e9edd3;--person-lavendel:#5e58a0;--person-lavendel-soft:#e6e4f5;--person-kanel:#8e5536;--person-kanel-soft:#f3e3d8;--surface-app:var(--paper-1);--surface-card:var(--paper-0);--surface-sunken:var(--paper-2);--surface-shelf:var(--paper-2);--surface-hover:#f6f1e8;--surface-selected:var(--pine-50);--surface-inverse:var(--ink-1);--text-strong:var(--ink-1);--text-body:var(--ink-2);--text-muted:var(--ink-3);--text-disabled:var(--ink-4);--text-inverse:var(--paper-0);--text-link:var(--pine-500);--border-subtle:var(--line-1);--border-default:var(--line-2);--border-strong:var(--line-3);--action-primary:var(--pine-500);--action-primary-hover:var(--pine-600);--action-primary-ink:#fff;--type-task:var(--slate-500);--type-task-soft:var(--slate-100);--type-project:var(--clay-500);--type-project-soft:var(--clay-100);--type-recurring:var(--heather-500);--type-recurring-soft:var(--heather-100);--state-done:var(--pine-500);--state-done-soft:var(--pine-100);--state-attention:var(--sand-700);--state-attention-soft:var(--sand-100);--state-danger:var(--brick-600);--state-danger-soft:var(--brick-100);--overlay-scrim:#2a252152;--shadow-1:0 1px 2px #2a25210f,0 1px 1px #2a252108;--shadow-2:0 6px 16px -4px #2a25211a,0 2px 4px #2a25210a;--shadow-3:0 24px 56px -16px #2a252147,0 4px 12px #2a25210f;--shadow-drag:0 14px 32px -8px #2a252147,0 2px 6px #2a252114;--focus-ring:0 0 0 3px #2f5b4c47}:root{--space-0:0;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:12px;--space-6:16px;--space-7:20px;--space-8:24px;--space-9:32px;--space-10:40px;--space-11:56px;--space-12:72px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--sidebar-width:248px;--bottomnav-height:64px;--content-max:1120px;--touch-min:44px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--tracking-label:.06em;--tracking-tight:-.01em;--font-ui:"Figtree",ui-sans-serif,system-ui,sans-serif;--font-display:"Newsreader",Georgia,"Times New Roman",serif}.text-display{font-family:var(--font-display);font-size:44px;font-weight:500;line-height:1.08}.text-h1{font-family:var(--font-display);font-size:34px;font-weight:500;line-height:1.15}.text-h2{font-family:var(--font-display);font-size:26px;font-weight:500;line-height:1.2}.text-h3{font-family:var(--font-ui);font-size:19px;font-weight:600;line-height:1.3}.text-title{font-family:var(--font-ui);font-size:16px;font-weight:600;line-height:1.35}.text-body-lg{font-family:var(--font-ui);font-size:17px;font-weight:400;line-height:1.55}.text-body-md{font-family:var(--font-ui);font-size:15px;font-weight:400;line-height:1.5}.text-body-sm{font-family:var(--font-ui);font-size:14px;font-weight:400;line-height:1.45}.text-caption{font-family:var(--font-ui);font-size:13px;font-weight:500;line-height:1.35}.text-label{font-family:var(--font-ui);letter-spacing:.06em;font-size:12px;font-weight:600;line-height:1.3}:root{--ease-out:cubic-bezier(.2,.7,.2,1);--ease-in-out:cubic-bezier(.45,0,.25,1);--ease-spring:cubic-bezier(.3,1.4,.5,1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--text-display:500 44px/1.08 var(--font-display);--text-h1:500 34px/1.15 var(--font-display);--text-h2:500 26px/1.2 var(--font-display);--text-h3:600 19px/1.3 var(--font-ui);--text-title:600 16px/1.35 var(--font-ui);--text-body-lg:400 17px/1.55 var(--font-ui);--text-body-md:400 15px/1.5 var(--font-ui);--text-body-sm:400 14px/1.45 var(--font-ui);--text-caption:500 13px/1.35 var(--font-ui);--text-label:600 12px/1.3 var(--font-ui)}*,:before,:after{box-sizing:border-box}body{background:var(--surface-app);color:var(--text-body);font:var(--text-body-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:var(--text-link);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--pine-700)}h1,h2,h3,h4,p{margin:0}::selection{background:var(--pine-200)}.fp-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fp-btn{border-radius:var(--radius-md);height:40px;font:600 15px/1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.fp-btn:active:not([disabled]){transform:scale(.98)}.fp-btn:focus-visible,.fp-iconbtn:focus-visible{box-shadow:var(--focus-ring);outline:none}.fp-btn[disabled],.fp-iconbtn[disabled]{opacity:.45;cursor:not-allowed}.fp-btn--sm{border-radius:8px;gap:6px;height:32px;padding:0 12px;font-size:14px}.fp-btn--lg{height:48px;padding:0 22px;font-size:16px}.fp-btn--block{width:100%}.fp-btn--primary{background:var(--action-primary);color:var(--action-primary-ink)}.fp-btn--primary:hover:not([disabled]){background:var(--action-primary-hover)}.fp-btn--secondary{background:var(--surface-card);color:var(--text-strong);border-color:var(--border-default);box-shadow:var(--shadow-1)}.fp-btn--secondary:hover:not([disabled]){background:var(--surface-hover);border-color:var(--border-strong)}.fp-btn--soft{background:var(--pine-100);color:var(--pine-700)}.fp-btn--soft:hover:not([disabled]){background:var(--pine-200)}.fp-btn--ghost{color:var(--text-body);background:0 0}.fp-btn--ghost:hover:not([disabled]){background:var(--paper-2);color:var(--text-strong)}.fp-btn--danger{color:var(--state-danger);background:0 0;border-color:#e3c7bf}.fp-btn--danger:hover:not([disabled]){background:var(--state-danger-soft)}.fp-iconbtn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-body);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.fp-iconbtn:active:not([disabled]){transform:scale(.94)}.fp-iconbtn--sm{border-radius:8px;width:32px;height:32px}.fp-iconbtn--lg{border-radius:var(--radius-lg);width:48px;height:48px}.fp-iconbtn--ghost:hover:not([disabled]){background:var(--paper-2);color:var(--text-strong)}.fp-iconbtn--secondary{background:var(--surface-card);border-color:var(--border-default);box-shadow:var(--shadow-1)}.fp-iconbtn--secondary:hover:not([disabled]){background:var(--surface-hover)}.fp-iconbtn--primary{background:var(--action-primary);color:#fff}.fp-iconbtn--primary:hover:not([disabled]){background:var(--action-primary-hover)}.fp-iconbtn--soft{background:var(--pine-100);color:var(--pine-700)}.fp-iconbtn--soft:hover:not([disabled]){background:var(--pine-200)}.fp-checkwrap{cursor:pointer;font:var(--text-body-md);color:var(--text-strong);align-items:center;gap:10px;display:inline-flex;position:relative}.fp-checkwrap.is-disabled{opacity:.45;cursor:not-allowed}.fp-check{border:1.5px solid var(--border-strong);background:var(--surface-card);color:#0000;width:22px;height:22px;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base),color var(--dur-fast),transform var(--dur-base) var(--ease-spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.fp-check--square{border-radius:6px}.fp-check--lg{width:28px;height:28px}.fp-checkwrap:hover .fp-check:not(.is-checked){border-color:var(--pine-400);color:var(--pine-200)}.fp-check.is-checked{background:var(--state-done);border-color:var(--state-done);color:#fff;animation:fp-pop var(--dur-slow) var(--ease-spring)}.fp-sr:focus-visible+.fp-check{box-shadow:var(--focus-ring)}@keyframes fp-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}.fp-switch{cursor:pointer;font:var(--text-body-md);color:var(--text-strong);align-items:center;gap:10px;display:inline-flex}.fp-switch__track{background:var(--line-3);width:38px;height:22px;transition:background var(--dur-base) var(--ease-out);border-radius:999px;flex-shrink:0;position:relative}.fp-switch__thumb{width:18px;height:18px;transition:transform var(--dur-base) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #2a252133}.fp-switch.is-on .fp-switch__track{background:var(--action-primary)}.fp-switch.is-on .fp-switch__thumb{transform:translate(16px)}.fp-sr:focus-visible+.fp-switch__track{box-shadow:var(--focus-ring)}.fp-field{flex-direction:column;gap:6px;min-width:0;display:flex}.fp-field__label{font:600 13px/1.3 var(--font-ui);color:var(--text-strong)}.fp-field__hint{font:var(--text-caption);color:var(--text-muted);font-weight:400}.fp-inputwrap{align-items:center;display:flex;position:relative}.fp-inputwrap>.fp-input__icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.fp-inputwrap>.fp-select__chev{color:var(--text-muted);pointer-events:none;position:absolute;right:10px}.fp-input{border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);width:100%;height:40px;font:var(--text-body-md);color:var(--text-strong);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);appearance:none;outline:none;padding:0 12px}.fp-input::placeholder{color:var(--text-disabled)}.fp-input:hover{border-color:var(--border-strong)}.fp-input:focus{border-color:var(--pine-400);box-shadow:var(--focus-ring)}.fp-input--icon{padding-left:38px}.fp-input--sm{border-radius:8px;height:32px;font-size:14px}.fp-input--lg{height:48px;font-size:16px}textarea.fp-input{resize:vertical;height:auto;min-height:88px;padding:10px 12px;line-height:1.5}select.fp-input{cursor:pointer;padding-right:34px}.fp-seg{background:var(--paper-2);border-radius:var(--radius-md);border:1px solid var(--border-subtle);gap:2px;padding:3px;display:inline-flex}.fp-seg__item{height:30px;font:600 14px/1 var(--font-ui);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.fp-seg__item:hover{color:var(--text-strong)}.fp-seg__item.is-active{background:var(--surface-card);color:var(--text-strong);box-shadow:var(--shadow-1)}.fp-seg--sm .fp-seg__item{height:26px;padding:0 10px;font-size:13px}.fp-tag{border-radius:var(--radius-pill);height:22px;font:500 12.5px/1 var(--font-ui);white-space:nowrap;background:var(--paper-2);color:var(--text-body);align-items:center;gap:4px;padding:0 8px;display:inline-flex}.fp-tag--plain{height:auto;color:var(--text-muted);background:0 0;padding:0}.fp-tag--task{background:var(--type-task-soft);color:var(--slate-600)}.fp-tag--project{background:var(--type-project-soft);color:var(--clay-600)}.fp-tag--recurring{background:var(--type-recurring-soft);color:var(--heather-600)}.fp-tag--attention{background:var(--state-attention-soft);color:var(--state-attention)}.fp-tag--pine{background:var(--pine-100);color:var(--pine-700)}.fp-tag--outline{box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-body);background:0 0}.fp-type{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.fp-type--task{color:var(--type-task)}.fp-type--project{color:var(--type-project)}.fp-type--recurring{color:var(--type-recurring)}.fp-type--badge{border-radius:6px}.fp-type--badge.fp-type--task{background:var(--type-task-soft)}.fp-type--badge.fp-type--project{background:var(--type-project-soft)}.fp-type--badge.fp-type--recurring{background:var(--type-recurring-soft)}.fp-typedot{flex-shrink:0;width:8px;height:8px;display:inline-block}.fp-typedot--task{background:var(--type-task);border-radius:50%}.fp-typedot--project{background:var(--type-project);border-radius:2px}.fp-typedot--recurring{box-shadow:inset 0 0 0 2px var(--type-recurring);border-radius:50%}.fp-typechip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);height:30px;font:600 13px/1 var(--font-ui);color:var(--text-body);cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast);align-items:center;gap:6px;padding:0 11px 0 9px;display:inline-flex}.fp-typechip:hover{border-color:var(--border-strong)}.fp-typechip.is-selected.fp-type--task{background:var(--type-task-soft);color:var(--slate-600);border-color:#0000}.fp-typechip.is-selected.fp-type--project{background:var(--type-project-soft);color:var(--clay-600);border-color:#0000}.fp-typechip.is-selected.fp-type--recurring{background:var(--type-recurring-soft);color:var(--heather-600);border-color:#0000}.fp-typechip:not(.is-selected){color:var(--text-body)}.fp-person{align-items:center;gap:8px;min-width:0;display:inline-flex}.fp-person__name{font:500 14px/1.2 var(--font-ui);color:var(--text-strong);white-space:nowrap}.fp-avatar{width:28px;height:28px;font:700 12px/1 var(--font-ui);letter-spacing:.01em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.fp-avatar--xs{width:18px;height:18px;font-size:9px}.fp-avatar--sm{width:22px;height:22px;font-size:10px}.fp-avatar--lg{width:40px;height:40px;font-size:15px}.fp-progress{flex-direction:column;gap:6px;min-width:0;display:flex}.fp-progress__head{font:var(--text-caption);color:var(--text-muted);justify-content:space-between;gap:8px;display:flex}.fp-progress__track{background:var(--paper-3);border-radius:999px;height:6px;overflow:hidden}.fp-progress__fill{height:100%;transition:width var(--dur-slow) var(--ease-out);border-radius:999px}.fp-progress--lg .fp-progress__track{height:10px}.fp-task{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:background var(--dur-fast),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),opacity var(--dur-base);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 14px;display:grid}.fp-task.is-clickable{cursor:pointer}.fp-task.is-clickable:hover{background:var(--surface-hover)}.fp-task.is-draggable{cursor:grab}.fp-task.is-dragging{box-shadow:var(--shadow-drag);opacity:.96;transform:rotate(1.2deg)scale(1.02)}.fp-task--compact{border-radius:var(--radius-md);gap:8px;padding:8px 10px}.fp-task--compact .fp-task__title{font-size:14px}.fp-task__check{padding-top:1px}.fp-task__body{flex-direction:column;gap:6px;min-width:0;display:flex}.fp-task__title{font:500 15px/1.35 var(--font-ui);color:var(--text-strong);align-items:center;gap:7px;min-width:0;display:flex}.fp-task__title>span:last-child{text-overflow:ellipsis;text-wrap:pretty;overflow:hidden}.fp-task__meta{flex-wrap:wrap;gap:6px;display:flex}.fp-task__trail{color:var(--text-disabled);align-items:center;gap:6px;padding-top:1px;display:flex}.fp-task.is-done .fp-task__title{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line-3);text-decoration-color:var(--line-3)}.fp-task.is-done .fp-task__meta{opacity:.6}.fp-task.is-blocked .fp-task__title{color:var(--text-muted)}.fp-qa{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:box-shadow var(--dur-base),border-color var(--dur-base)}.fp-qa.is-open{border-color:var(--pine-200);box-shadow:var(--shadow-2)}.fp-qa__row{min-height:52px;color:var(--text-muted);align-items:center;gap:10px;padding:0 8px 0 14px;display:flex}.fp-qa__input{min-width:0;font:500 16px/1.4 var(--font-ui);color:var(--text-strong);background:0 0;border:0;outline:none;flex:1;padding:14px 0}.fp-qa__input::placeholder{color:var(--text-muted);font-weight:400}.fp-qa__opts{border-top:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px 12px;display:flex}.fp-qa__sep{background:var(--border-default);width:1px;height:20px;margin:0 4px}.fp-qa__pill{border:1px solid var(--border-default);background:var(--surface-card);height:30px;font:500 13px/1 var(--font-ui);color:var(--text-body);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.fp-qa__pill.is-on{background:var(--pine-100);color:var(--pine-700);border-color:#0000}.fp-qa__pill--person{padding:0 4px}.fp-qa__pill--person.is-on{box-shadow:0 0 0 2px var(--pine-400);background:var(--surface-card)}.fp-qa__hint{font:var(--text-caption);color:var(--text-muted);padding:0 14px 12px;font-weight:400}.fp-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.fp-card--flat{box-shadow:none}.fp-card--sunken{background:var(--surface-sunken);box-shadow:none;border-color:#0000}.fp-card--pad-sm{padding:12px}.fp-card--pad-md{padding:20px}.fp-card--pad-lg{padding:28px}.fp-card--interactive{cursor:pointer;transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.fp-card--interactive:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.fp-overlay{z-index:100;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fp-fade var(--dur-base) var(--ease-out);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.fp-dialog{background:var(--surface-card);border-radius:var(--radius-xl);max-width:100%;box-shadow:var(--shadow-3);animation:fp-rise var(--dur-slow) var(--ease-out);flex-direction:column;gap:16px;padding:28px;display:flex;position:relative}.fp-dialog__close{position:absolute;top:14px;right:14px}.fp-dialog__title{font:var(--text-h2);color:var(--text-strong);text-wrap:pretty;padding-right:32px}.fp-dialog__desc{font:var(--text-body-md);color:var(--text-body);margin-top:-8px}.fp-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}@keyframes fp-fade{0%{opacity:0}to{opacity:1}}@keyframes fp-rise{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.fp-toast{background:var(--surface-inverse);min-height:48px;color:var(--text-inverse);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);font:500 14.5px/1.35 var(--font-ui);animation:fp-rise var(--dur-slow) var(--ease-out);align-items:center;gap:12px;max-width:100%;padding:10px 10px 10px 16px;display:inline-flex}.fp-toast__icon{color:var(--pine-200)}.fp-toast__msg{flex:1;min-width:0}.fp-toast__action{color:var(--pine-200);font:600 14px/1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px}.fp-toast__action:hover{background:#ffffff14}.fp-toast .fp-iconbtn{color:var(--ink-4)}.fp-toast .fp-iconbtn:hover{color:#fff;background:#ffffff14}.fp-tip{display:inline-flex;position:relative}.fp-tip__bubble{background:var(--surface-inverse);color:var(--text-inverse);font:500 12.5px/1.3 var(--font-ui);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease-out);z-index:50;border-radius:8px;padding:6px 9px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.fp-tip--bottom .fp-tip__bubble{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-4px)}.fp-tip:hover .fp-tip__bubble,.fp-tip:focus-within .fp-tip__bubble,.fp-tip.is-open .fp-tip__bubble{opacity:1;transform:translate(-50%)}.fp-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.fp-empty__icon{background:var(--paper-2);width:56px;height:56px;color:var(--pine-500);border-radius:50%;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.fp-empty__title{font:var(--text-h2);color:var(--text-strong);text-wrap:balance;font-size:22px}.fp-empty__body{font:var(--text-body-md);color:var(--text-body);text-wrap:pretty;max-width:38ch}.fp-empty__action{gap:8px;margin-top:10px;display:flex}.fp-notice{border-radius:var(--radius-lg);grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:14px 16px;display:grid}.fp-notice--attention{background:var(--state-attention-soft);color:var(--state-attention)}.fp-notice--info{background:var(--slate-100);color:var(--slate-600)}.fp-notice--pine{background:var(--pine-100);color:var(--pine-700)}.fp-notice--neutral{background:var(--paper-2);color:var(--text-body)}.fp-notice__icon{padding-top:1px}.fp-notice__title{font:600 15px/1.35 var(--font-ui);color:var(--text-strong)}.fp-notice__body{font:var(--text-body-sm);color:var(--text-body);grid-column:2}.fp-notice__actions{flex-wrap:wrap;grid-column:2;gap:6px;margin-top:8px;display:flex}.fp-side{width:var(--sidebar-width);border-right:1px solid var(--border-subtle);background:var(--surface-app);flex-direction:column;gap:4px;height:100%;padding:20px 14px;display:flex}.fp-side__brand{font:500 22px/1.1 var(--font-display);color:var(--text-strong);letter-spacing:-.01em;padding:4px 10px 18px}.fp-side__sub{font:500 12.5px/1.3 var(--font-ui);color:var(--text-muted);letter-spacing:0;margin-top:4px;display:block}.fp-side__item{border-radius:var(--radius-md);height:40px;font:500 15px/1 var(--font-ui);color:var(--text-body);cursor:pointer;text-align:left;width:100%;transition:background var(--dur-fast),color var(--dur-fast);background:0 0;border:0;align-items:center;gap:12px;padding:0 10px;display:flex}.fp-side__item:hover{background:var(--paper-2);color:var(--text-strong)}.fp-side__item.is-active{background:var(--surface-card);color:var(--text-strong);box-shadow:var(--shadow-1);font-weight:600}.fp-side__item.is-active .fp-side__icon{color:var(--pine-500)}.fp-side__icon{color:var(--text-muted)}.fp-side__label{flex:1}.fp-side__count{font:500 12.5px/1 var(--font-ui);color:var(--text-muted)}.fp-side__section{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);padding:18px 10px 6px}.fp-side__foot{flex-direction:column;gap:4px;margin-top:auto;display:flex}.fp-bnav{height:var(--bottomnav-height);background:var(--surface-card);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.fp-bnav__item{font:600 11.5px/1 var(--font-ui);color:var(--text-muted);cursor:pointer;min-height:var(--touch-min);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.fp-bnav__item.is-active{color:var(--pine-500)}.fp-tabs{box-shadow:inset 0 -1px 0 var(--border-subtle);scrollbar-width:none;gap:22px;display:flex;overflow:auto hidden}.fp-tabs::-webkit-scrollbar{display:none}.fp-tabs__item{font:600 14.5px/1 var(--font-ui);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:10px 0 11px;display:inline-flex;box-shadow:inset 0 -2px #0000}.fp-tabs__item:hover{color:var(--text-strong)}.fp-tabs__item.is-active{color:var(--text-strong);box-shadow:inset 0 -2px 0 var(--ink-1)}.fp-tabs__count{color:var(--text-muted);font-weight:500}@media (width<=759px){.fp-task{gap:12px;padding:12px}.fp-task:not(.fp-task--compact) .fp-check{width:28px;height:28px}.fp-overlay{align-items:flex-end;padding:0}.fp-dialog{border-radius:20px 20px 0 0;max-height:92vh;padding:24px 20px 28px;overflow:auto;width:100%!important}.fp-dialog__actions .fp-btn{flex:1}.fp-seg__item{height:34px}}.app-shell{min-height:100vh;display:flex}.app-side{flex-shrink:0;height:100vh;position:sticky;top:0}.app-side .fp-side{height:100%}.app-side a.fp-side__item{text-decoration:none}.app-side__people{flex-direction:column;display:flex}.app-side__people>*{padding:6px 10px}.app-side__link{text-align:left;font:500 14px var(--font-ui);color:var(--pine-600);cursor:pointer;background:0 0;border:0;padding:6px 10px;text-decoration:none}.app-main{flex:1;min-width:0}.app-topbar,.app-bnav{display:none}.app-bnav a.fp-bnav__item{text-decoration:none}.app-fab{display:none}.app-page{flex-direction:column;gap:24px;max-width:1040px;margin:0 auto;padding:36px 40px 56px;display:flex}.app-page--wide{max-width:1360px}.app-stack{flex-direction:column;gap:8px;display:flex}.app-stack--md{flex-direction:column;gap:12px;display:flex}.app-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-muted{color:var(--text-muted);font:var(--text-body-sm)}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.app-header__text{flex-direction:column;gap:6px;min-width:0;display:flex}.app-header__back{font:500 14px var(--font-ui);color:var(--text-muted);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.app-header__back:hover{color:var(--text-strong)}.app-header__title{font:var(--text-display);color:var(--text-strong);letter-spacing:-.01em;text-wrap:balance}.app-header__sub{font:var(--text-body-lg);color:var(--text-body)}.app-header__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-eyebrow,.app-section-label>span{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.app-section-label{justify-content:space-between;align-items:center;gap:8px;padding:4px 2px 0;display:flex}.app-rhythm{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.app-rhythm>div{background:var(--surface-sunken);border-radius:12px;flex-direction:column;gap:6px;padding:16px;display:flex}.app-rhythm b{font:600 15px var(--font-ui);color:var(--text-strong);align-items:center;gap:8px;display:flex}.app-rhythm b svg{color:var(--pine-500)}.app-rhythm span{font:var(--text-body-sm);color:var(--text-body)}.app-shelf{background:var(--surface-shelf);border-radius:14px;flex-direction:column;gap:12px;padding:16px;transition:background .12s;display:flex}.app-shelf__head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.app-shelf__title{font:600 15px var(--font-ui);color:var(--text-strong);align-items:center;gap:8px;display:flex}.app-shelf__items{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;display:grid}.app-days{grid-template-columns:repeat(var(--cols,7), minmax(128px, 1fr));gap:8px;padding-bottom:4px;display:grid;overflow-x:auto}.app-day{border:1px solid var(--border-subtle);background:0 0;border-radius:14px;flex-direction:column;gap:6px;min-height:220px;padding:8px;transition:background .12s;display:flex}.app-day.is-today{background:var(--surface-card);border-color:var(--pine-200)}.app-day__head{align-items:baseline;gap:6px;padding:4px 4px 6px;text-decoration:none;display:flex}.app-day__name{font:600 14px var(--font-ui);color:var(--text-strong)}.app-day.is-today .app-day__name{color:var(--pine-600)}.app-day__date{font:500 13px var(--font-ui);color:var(--text-muted)}.app-day__head .fp-tag{margin-left:auto}.app-day .fp-task{grid-template-columns:auto minmax(0,1fr);padding:8px}.app-day .fp-task__trail{grid-column:2;padding-top:0}.app-day .fp-task__trail:empty{display:none}.app-day .fp-task__title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;align-items:flex-start}.app-day .fp-task__title .fp-type{margin-top:2px}.is-drop-over{box-shadow:inset 0 0 0 1.5px var(--pine-400);background:var(--pine-50)!important}.is-drop-target{outline:1.5px dashed var(--pine-400);outline-offset:-2px;cursor:pointer}.app-hint{font:var(--text-body-sm);color:var(--text-muted)}.app-hint.is-active{color:var(--pine-600)}.app-month{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.app-month__goals{flex-direction:column;flex:420px;gap:8px;min-width:0;display:flex}.app-month__cal{flex:280px;max-width:360px}.app-cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.app-cal__dow{font:var(--text-label);color:var(--text-muted);padding:4px 0}.app-cal__day{height:38px;font:500 13.5px var(--font-ui);color:var(--text-strong);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex}.app-cal__day.is-week{background:var(--pine-50)}.app-cal__day.is-today{background:var(--pine-500);color:#fff;font-weight:700}.app-cal__day.is-out{color:var(--text-disabled)}.app-cal__dots{gap:2px;display:flex}.app-cal__dots i{background:var(--pine-400);border-radius:2px;width:4px;height:4px}.app-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.app-area__head{color:var(--pine-500);align-items:center;gap:10px;padding:16px 18px 10px;display:flex}.app-area__head h2{font:var(--text-h2);color:var(--text-strong);font-size:22px}.app-area__list{flex-direction:column;padding:0 8px 8px;display:flex}.app-home-row{color:inherit;border-radius:10px;align-items:center;gap:12px;padding:10px;text-decoration:none;transition:background .12s;display:flex}.app-home-row:hover{background:var(--surface-hover)}.app-home-row__main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.app-home-row__title{font:500 15px/1.3 var(--font-ui);color:var(--text-strong)}.app-home-row__sub{font:var(--text-caption);color:var(--text-muted);font-weight:400}.app-home-row.is-out{opacity:.6}.app-project-hero{grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:24px;display:grid}.app-goal{font:italic 400 24px/1.3 var(--font-display);color:var(--text-strong);text-wrap:pretty}.app-goal.is-empty{color:var(--text-muted)}.app-subproject{flex-direction:column;gap:8px;display:flex}.app-subproject__head{align-items:center;gap:10px;padding:8px 4px 0;display:flex}.app-subproject__title{font:600 15px var(--font-ui);color:var(--text-strong)}.app-subproject__children{border-left:1px solid var(--line-2);flex-direction:column;gap:8px;margin-left:10px;padding-left:18px;display:flex}.app-mood{columns:3;column-gap:12px}.app-mood figure{break-inside:avoid;flex-direction:column;gap:6px;margin:0 0 12px;display:flex;position:relative}.app-mood img{background:var(--paper-3);border-radius:12px;width:100%;display:block}.app-mood figcaption{font:var(--text-body-sm);color:var(--text-body)}.app-mood__link{background:var(--paper-2);color:var(--text-strong);word-break:break-all;font:var(--text-body-sm);border-radius:12px;align-items:center;gap:8px;padding:14px;display:flex}.app-mood__remove{box-shadow:var(--shadow-1);position:absolute;top:6px;right:6px;background:var(--surface-card)!important}.app-mood__add{break-inside:avoid;border:1.5px dashed var(--line-3);width:100%;min-height:140px;color:var(--text-muted);font:500 14px var(--font-ui);background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.app-history{flex-direction:column;display:flex}.app-history__row{border-bottom:1px solid var(--border-subtle);grid-template-columns:110px auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 4px;display:grid}.app-history__date{font:var(--text-caption);color:var(--text-muted)}.app-history__text{font:var(--text-body-sm);color:var(--text-body)}.app-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.app-fact{flex-direction:column;gap:6px;display:flex}.app-fact__label{font:600 13px var(--font-ui);color:var(--text-strong)}.app-fact__big{font:var(--text-body-lg);color:var(--text-strong)}.app-inline-fields{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-inline-fields .fp-field{min-width:0}.app-steps{flex-wrap:wrap;gap:6px;display:flex}.app-step{background:var(--paper-2);font:600 14px var(--font-ui);color:var(--text-muted);border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:inline-flex}.app-step b{background:var(--paper-0);width:24px;height:24px;font:700 13px var(--font-ui);color:var(--text-muted);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.app-step.is-active{background:var(--pine-100);color:var(--pine-700)}.app-step.is-active b{background:var(--pine-500);color:#fff}.app-step.is-done b{background:var(--pine-200);color:var(--pine-700)}.app-pick{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.app-pick.is-on{border-color:var(--pine-400);background:var(--pine-50)}.app-pick.is-out{opacity:.6}.app-pick__main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.app-pick__title{font:500 15px/1.3 var(--font-ui);color:var(--text-strong);align-items:center;gap:8px;display:flex}.app-pick__meta{flex-wrap:wrap;gap:6px;display:flex}.app-plan-foot{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:8px;display:flex}.app-summary{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.app-summary>div{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.app-summary h4{font:600 14px var(--font-ui);color:var(--text-strong);margin:0}.app-summary ul{font:var(--text-body-sm);color:var(--text-body);margin:0;padding-left:18px}.app-avatar-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0}.app-avatar-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.app-avatar-empty{border:1.5px dashed var(--line-3);width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.app-menu{display:inline-flex;position:relative}.app-menu__panel{background:var(--surface-card);border:1px solid var(--border-subtle);width:230px;box-shadow:var(--shadow-2);z-index:30;border-radius:12px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.app-menu__label{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);padding:6px 10px 4px}.app-menu__item{font:500 14px var(--font-ui);color:var(--text-strong);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.app-menu__item:hover{background:var(--surface-hover)}.app-menu__sep{background:var(--border-subtle);height:1px;margin:4px 6px}.app-choice{border:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;text-align:left;font:inherit;border-radius:12px;align-items:center;gap:14px;width:100%;padding:12px 14px;transition:background .12s;display:flex}.app-choice.is-on{border-color:var(--pine-400);background:var(--pine-50);box-shadow:0 0 0 1px var(--pine-400)}.app-choice__icon{background:var(--paper-2);width:36px;height:36px;color:var(--text-body);border-radius:10px;justify-content:center;align-items:center;display:flex}.app-choice.is-on .app-choice__icon{background:var(--pine-500);color:#fff}.app-choice__text{flex-direction:column;gap:2px;display:flex}.app-choice__title{font:600 15px var(--font-ui);color:var(--text-strong)}.app-choice__desc{font:var(--text-body-sm);color:var(--text-muted)}.app-form{flex-direction:column;gap:14px;display:flex}.app-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app-error{font:var(--text-caption);color:var(--state-danger)}.app-sheet{background:var(--surface-app);width:100%;box-shadow:var(--shadow-3);animation:fp-rise .32s var(--ease-out);border-radius:20px 20px 0 0;flex-direction:column;gap:12px;padding:10px 16px 24px;display:flex}.app-sheet__grip{background:var(--line-3);border-radius:2px;align-self:center;width:40px;height:4px}.app-sheet__title{font:var(--text-h2);color:var(--text-strong);font-size:22px}.app-toasts{z-index:200;flex-direction:column;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.app-settings{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.app-settings__section{flex-direction:column;gap:14px;display:flex}.app-settings__section h2{font:var(--text-h3);color:var(--text-strong)}.app-member-row{align-items:center;gap:10px;display:flex}.app-colors{gap:6px;display:flex}.app-color{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;padding:0}.app-color.is-on{border-color:var(--ink-1)}.app-preview-notice{background:var(--surface-card);box-shadow:var(--shadow-2);border-radius:16px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.app-preview-notice b{font:600 14px var(--font-ui);color:var(--text-strong)}.app-preview-notice ul{font:var(--text-body-sm);color:var(--text-body);margin:0;padding-left:18px}.app-auth{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.app-auth__card{flex-direction:column;gap:18px;width:100%;max-width:420px;display:flex}.app-auth__brand{font:500 34px/1.1 var(--font-display);color:var(--text-strong)}@media (width<=1099px){.app-month__cal{max-width:none}.app-settings,.app-project-hero{grid-template-columns:1fr}}@media (width<=759px){.app-side{display:none}.app-main{padding-bottom:72px}.app-topbar{justify-content:space-between;align-items:center;padding:10px 8px 0 16px;display:flex}.app-topbar__brand{font:500 19px var(--font-display);color:var(--text-strong)}.app-bnav{z-index:20;display:block;position:fixed;bottom:0;left:0;right:0}.app-fab{z-index:25;background:var(--action-primary);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-2);cursor:pointer;border:0;border-radius:18px;justify-content:center;align-items:center;display:flex;position:fixed;bottom:80px;right:16px}.app-page{gap:16px;padding:20px 16px 24px}.app-header__title{font:var(--text-h1)}.app-desktop-only{display:none!important}.app-rhythm,.app-grid-2,.app-facts,.app-form-grid,.app-shelf__items{grid-template-columns:1fr}.app-days{grid-template-columns:1fr;overflow-x:visible}.app-day{min-height:56px}.app-mood{columns:2}.app-history__row{grid-template-columns:1fr auto}.app-history__text{grid-column:1/-1}.app-toasts{bottom:80px}}@media (width>=760px){.app-mobile-only{display:none!important}}[x-cloak]{display:none!important}@media (width<=760px){.app-task-wrap{grid-template-columns:auto minmax(0,1fr)}.app-task-wrap .fp-task__trail{flex-wrap:wrap;grid-column:2}}.app-hint svg{vertical-align:-3px;display:inline-block}.app-add-step{border-radius:var(--radius-lg);border:1.5px dashed var(--line-2);color:var(--text-muted);align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.app-add-step:focus-within{border-color:var(--pine-400);background:var(--surface-card);border-style:solid}.app-add-step__input{min-width:0;font:500 15px var(--font-ui);color:var(--text-strong);background:0 0;border:0;outline:none;flex:1;padding:6px 0}@media (width<=760px){.app-add-step{flex-wrap:wrap}.app-add-step__input{flex-basis:calc(100% - 30px)}}button.app-subproject__title{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.app-mood__link{padding-right:44px}.app-day .fp-task__meta{min-width:0}.app-day .fp-tag{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}
