:root{--ink:#15161a;--ink-2:#2b2d34;--ink-3:#3e4049;--muted:#5c5f69;--faint:#8b8e98;--disabled:#b9b6ac;--line:#e4e1d8;--line-2:#eceae3;--line-3:#d6d3c9;--paper:#f5f3ec;--paper-2:#efede5;--paper-3:#f0eee7;--paper-4:#faf9f5;--surface:#fff;--indigo:#3b36e0;--indigo-d:#2a25b8;--indigo-l:#ecebfd;--indigo-sel:#e1e0fa;--indigo-ink:#dad9fb;--lime:#cdf25a;--lime-l:#f2fbd6;--lime-ink:#2c3a00;--lime-d:#3f5200;--green:#1f8a4c;--green-d:#17693a;--green-l:#e3f2e9;--red:#c8341f;--red-d:#a42a18;--red-l:#fbe7e3;--amber:#e59400;--amber-l:#fdf1dc;--amber-ink:#6b4500;--blue:#2f6feb;--blue-l:#e6eefd;--shadow-pop:0 16px 40px #15161a24;--shadow-card:0 1px 2px #15161a0a, 0 4px 16px #15161a0a;--font:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Bricolage Grotesque", "Instrument Sans", sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--sidebar:#efede5;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=ink]{--ink:#f3f2ee;--ink-2:#e4e3de;--ink-3:#cfcec8;--muted:#a3a5ae;--faint:#7e818b;--disabled:#5a5c63;--line:#2e3038;--line-2:#26282f;--line-3:#3a3c44;--paper:#111216;--paper-2:#1a1b20;--paper-3:#1e1f25;--paper-4:#16171b;--surface:#1a1b20;--indigo:#7c78ff;--indigo-d:#a19eff;--indigo-l:#25244a;--indigo-sel:#2c2a5c;--indigo-ink:#dad9fb;--lime-l:#252d10;--lime-ink:#ddf58d;--green-l:#15301f;--red-l:#3a1b16;--amber-l:#33260e;--amber-ink:#f6c66b;--blue-l:#172440;--shadow-pop:0 16px 40px #00000080;--sidebar:#16171b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--indigo)}a:hover{color:var(--indigo-d)}h1,h2,h3,h4,p{margin:0}kbd{font-family:var(--mono);font-size:12px}:focus-visible{outline:3px solid color-mix(in srgb, var(--indigo) 45%, transparent);outline-offset:2px}[data-reduce-motion=true] *{transition:none!important;animation:none!important}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.display{font-family:var(--display);letter-spacing:-.03em;font-weight:800}.h1{font-family:var(--display);letter-spacing:-.03em;font-size:40px;font-weight:800;line-height:1.05}.h2{font-family:var(--display);letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1.1}.h3{font-family:var(--display);letter-spacing:-.01em;font-size:20px;font-weight:700}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.mono{font-family:var(--mono)}.num{font-variant-numeric:tabular-nums}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.grow{flex-grow:1;min-width:0}.spacer{flex-grow:1}.wrap{flex-wrap:wrap}.center{justify-content:center;align-items:center;display:flex}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn{white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55}.btn-primary{background:var(--indigo);color:#fff}.btn-primary:hover:not(:disabled){background:var(--indigo-d);color:#fff}.btn-lime{background:var(--lime);color:#15161a;font-weight:700}.btn-lime:hover:not(:disabled){color:#15161a;background:#bfe63f}.btn-dark{color:#fff;background:#15161a}.btn-dark:hover:not(:disabled){color:#fff;background:#2b2d34}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-secondary:hover:not(:disabled){background:var(--paper);color:var(--ink)}.btn-ghost{color:var(--ink-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--paper-2);color:var(--ink)}.btn-link{color:var(--indigo-d);background:0 0;height:auto;padding:0 6px}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:var(--red-d);color:#fff}.btn-danger-ghost{color:var(--red-d);border-color:var(--line);background:0 0}.btn-danger-ghost:hover:not(:disabled){background:var(--red-l)}.btn-sm{border-radius:10px;height:36px;padding:0 12px;font-size:14px}.btn-xs{border-radius:8px;height:30px;padding:0 10px;font-size:13px}.btn-lg{border-radius:14px;height:52px;padding:0 24px;font-size:16px}.btn-block{width:100%}.icon-btn{width:36px;height:36px;color:var(--ink-3);background:0 0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:var(--paper-2);color:var(--ink)}.icon-btn.sm{border-radius:8px;width:30px;height:30px}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{color:var(--ink-2);font-size:14px;font-weight:600}.hint{color:var(--muted);font-size:13px}.error-text{color:var(--red-d);font-size:13px;font-weight:500}.input,.textarea{border:1px solid var(--line);background:var(--surface);width:100%;height:44px;color:var(--ink);border-radius:12px;outline:none;padding:0 14px;font-size:15px;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;height:auto;min-height:88px;padding:12px 14px;line-height:1.5}.input:focus,.textarea:focus{border-color:var(--indigo);box-shadow:0 0 0 3px color-mix(in srgb, var(--indigo) 18%, transparent)}.input[aria-invalid=true]{border-color:var(--red)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap>.input{padding-right:44px}.input-wrap>.icon-btn{position:absolute;right:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px}.card-pad{padding:20px}.divider{background:var(--line-2);border:none;height:1px;margin:0}.banner{border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.banner-lime{background:var(--lime-l);color:var(--lime-ink)}.banner-amber{background:var(--amber-l);color:var(--amber-ink)}.banner-red{background:var(--red-l);color:var(--red-d)}.banner-indigo{background:var(--indigo-l);color:var(--indigo-d)}.chip{background:var(--paper-2);height:24px;color:var(--ink-3);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;display:inline-flex}.chip-green{background:var(--green-l);color:var(--green-d)}.chip-red{background:var(--red-l);color:var(--red-d)}.chip-amber{background:var(--amber-l);color:var(--amber-ink)}.chip-indigo{background:var(--indigo-l);color:var(--indigo-d)}.chip-lime{background:var(--lime-l);color:var(--lime-ink)}.chip-blue{background:var(--blue-l);color:var(--blue)}.chip-dark{color:#fff;background:#15161a}.meta{color:var(--muted);align-items:center;gap:4px;font-size:13px;display:inline-flex}.meta.overdue{color:var(--red-d)}.meta.today{color:var(--green-d)}.popover{z-index:1000;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-pop);border-radius:14px;flex-direction:column;min-width:200px;max-height:min(440px,100vh - 24px);padding:6px;animation:.12s ease-out pop-in;display:flex;position:fixed;overflow:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}.opt{height:40px;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:10px;flex-shrink:0;align-items:center;gap:10px;width:100%;padding:0 10px;font-size:14px;display:flex}.opt:hover,.opt[data-active=true]{background:var(--paper)}.opt[aria-selected=true]{font-weight:600}.opt .check{color:var(--indigo);font-weight:700}.opt.danger{color:var(--red-d);font-weight:600}.opt:disabled{color:var(--disabled)}.opt kbd{color:var(--muted);font-size:11px}.pop-search{background:var(--paper);border:none;border-radius:10px;outline:none;flex-shrink:0;width:100%;height:38px;margin-bottom:4px;padding:0 10px;font-size:14px}.pop-sep{background:var(--line-2);flex-shrink:0;height:1px;margin:4px 2px}.pop-title{padding:6px 10px 4px}.select-btn{border:1px solid var(--line);background:var(--surface);height:44px;color:var(--ink);text-align:left;border-radius:12px;align-items:center;gap:8px;width:100%;padding:0 12px 0 14px;font-size:15px;display:flex}.select-btn[aria-expanded=true]{border:2px solid var(--indigo);padding:0 11px 0 13px}.select-btn.sm{border-radius:10px;height:36px;font-size:14px}.select-btn .caret{color:var(--muted);flex-shrink:0}.checkbox{border:2px solid var(--disabled);background:var(--surface);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:inline-flex}.checkbox[aria-checked=true],.checkbox[aria-checked=mixed]{background:var(--indigo);border-color:var(--indigo);color:#fff}.checkbox:disabled{background:var(--paper-2);border-color:var(--line-3)}.radio{border:2px solid var(--disabled);background:var(--surface);border-radius:50%;flex-shrink:0;width:22px;height:22px;padding:0}.radio[aria-checked=true]{border:7px solid var(--indigo)}.switch{background:#c9c6bb;border:none;border-radius:999px;flex-shrink:0;width:48px;height:28px;padding:3px;transition:background .15s;display:inline-flex}.switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;box-shadow:0 1px 2px #0003}.switch[aria-checked=true]{background:var(--indigo)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:disabled{opacity:.5}.segmented{background:var(--paper-2);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented button{height:32px;color:var(--ink-3);background:0 0;border:none;border-radius:8px;padding:0 12px;font-size:13px;font-weight:500}.segmented button[aria-checked=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 2px #0000000f}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper button{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:36px;height:36px;font-size:18px}.stepper span{text-align:center;min-width:34px;font-weight:700}.tcheck{border:2px solid var(--faint);background:var(--surface);color:#0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:background .12s;display:inline-flex}.tcheck:hover{color:var(--faint)}.tcheck.p1{border-color:var(--red);background:var(--red-l)}.tcheck.p2{border-color:var(--amber);background:var(--amber-l)}.tcheck.p3{border-color:var(--blue);background:var(--blue-l)}.tcheck.p1:hover{color:var(--red)}.tcheck.p2:hover{color:var(--amber)}.tcheck.p3:hover{color:var(--blue)}.tcheck.done{background:var(--lime);border-color:var(--lime);color:#15161a}.overlay{z-index:900;background:#15161a6b;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;animation:.12s fade-in;display:flex;position:fixed;inset:0;overflow:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:20px;flex-direction:column;width:100%;max-width:520px;animation:.14s ease-out pop-in;display:flex;box-shadow:0 24px 64px #15161a47}.modal-head{align-items:center;gap:12px;padding:20px 20px 8px 24px;display:flex}.modal-body{flex-direction:column;gap:14px;padding:8px 24px 20px;display:flex}.modal-foot{border-top:1px solid var(--line-2);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.toasts{z-index:1100;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#15161a;border-radius:14px;align-items:center;gap:12px;min-width:280px;padding:10px 10px 10px 14px;font-size:14px;animation:.15s pop-in;display:flex;box-shadow:0 12px 32px #15161a4d}.toast .tick{background:var(--lime);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.toast .tick.err{background:#f08a7e}.toast button{color:var(--lime);background:0 0;border:none;border-radius:8px;padding:6px 8px;font-weight:700}.toast button:hover{background:#ffffff14}.avatar-stack{display:flex}.avatar-stack>*{box-shadow:0 0 0 2px var(--surface);border-radius:50%;margin-left:-8px}.avatar-stack>:first-child{margin-left:0}.avatar-more{background:var(--paper-2);color:var(--ink-3);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:700}.table td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:12px}.table tr.clickable:hover td{background:var(--paper-4);cursor:pointer}.spinner{border:2.5px solid var(--line);border-top-color:var(--indigo);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--paper-2), var(--paper-3), var(--paper-2));background-size:200% 100%;border-radius:8px;animation:1.2s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.app{background:var(--surface);height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:2px;width:280px;padding:16px 12px;display:flex;overflow-y:auto}.nav-item{height:38px;color:var(--ink-2);text-align:left;background:0 0;border:none;border-radius:10px;flex-shrink:0;align-items:center;gap:10px;width:100%;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:color-mix(in srgb, var(--ink) 5%, transparent);color:var(--ink)}.nav-item.active{color:var(--indigo-d);background:var(--indigo-sel);font-weight:600}.nav-item .count{color:var(--muted);font-size:13px;font-weight:500}.nav-section{justify-content:space-between;align-items:center;padding:18px 12px 6px;display:flex}.main{flex-direction:column;flex-grow:1;min-width:0;display:flex;overflow:hidden}.topbar{flex-shrink:0;align-items:center;gap:8px;height:56px;padding:0 24px;display:flex}.page{flex-grow:1;overflow-y:auto}.page-narrow{width:100%;max-width:760px;margin:0 auto;padding:8px 24px 80px}.page-wide{width:100%;padding:8px 32px 80px}.task-row{border-bottom:1px solid var(--line-2);align-items:flex-start;gap:14px;padding:14px 4px;display:flex;position:relative}.task-row:hover{background:var(--paper-4)}.task-row .title{color:var(--ink);cursor:pointer;font-size:16px;line-height:1.35}.task-row.done .title{color:var(--muted);text-decoration:line-through}.task-row .desc{color:var(--muted);margin-top:2px;font-size:14px}.task-row .metas{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.task-row .actions{opacity:0;gap:2px;display:flex}.task-row:hover .actions,.task-row:focus-within .actions{opacity:1}@media (width<=900px){.sidebar{z-index:800;box-shadow:var(--shadow-pop);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:none}.page-narrow,.page-wide{padding-left:16px;padding-right:16px}.topbar{padding:0 12px}.h1{font-size:32px}}@media (width>=901px){.only-mobile{display:none!important}}.app-logo rect{fill:var(--indigo)}.app-logo path{stroke:#fff}[data-sidebar=dark] .sidebar,[data-sidebar=accent] .sidebar{--sb-fg:#d9dae0;--sb-muted:#9fa2ad;--sb-hover:#ffffff12;--sb-active:#ffffff1f;--sb-line:#ffffff1a;color:var(--sb-fg);border-right-color:var(--sb-line)}[data-sidebar=dark] .sidebar{background:#15161a}[data-sidebar=accent] .sidebar{background:color-mix(in srgb, var(--indigo) 88%, black);--sb-muted:#ffffffb3;--sb-active:#ffffff2e}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .nav-item{color:var(--sb-fg)}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .nav-item:hover{background:var(--sb-hover);color:#fff}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .nav-item.active{background:var(--sb-active);color:#fff;box-shadow:inset 3px 0 #cdf25a}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .nav-item .count,:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .muted,:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .eyebrow{color:var(--sb-muted)}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .icon-btn{color:var(--sb-fg)}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar .icon-btn:hover{background:var(--sb-hover);color:#fff}:is([data-sidebar=dark],[data-sidebar=accent]) .sidebar button[aria-label=Account\ menu]{color:var(--sb-fg);border-color:var(--sb-line)!important}[data-sidebar=dark] .app-logo rect{fill:#cdf25a}[data-sidebar=dark] .app-logo path{stroke:#15161a}[data-sidebar=accent] .app-logo rect{fill:#fff}[data-sidebar=accent] .app-logo path{stroke:var(--indigo)}[data-sidebar=accent] .sidebar .sb-add{color:var(--indigo)!important;background:#fff!important}[data-sidebar=accent] .sidebar .sb-add kbd{background:color-mix(in srgb, var(--indigo) 14%, white)!important;color:var(--indigo)!important}[data-sidebar=dark] .sidebar .sb-add kbd{background:#00000040!important}
