@import"https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap";:root{--accent:#1f6feb;--accent-soft:rgba(31,111,235,.1);--accent-line:rgba(31,111,235,.25);--bg:#fafaf9;--panel:#fff;--bg-surface:#fff;--bg-surface-2:hsla(0,0%,4%,.04);--bg-surface-hover:hsla(0,0%,4%,.04);--ink:#0a0a0a;--ink-2:#3a3a3a;--ink-3:#6b7280;--ink-4:#9ca3af;--text:var(--ink);--text-muted:var(--ink-3);--text-placeholder:var(--ink-4);--line:hsla(0,0%,4%,.07);--line-2:hsla(0,0%,4%,.04);--border:var(--line);--border-hover:hsla(0,0%,4%,.14);--hover:hsla(0,0%,4%,.04);--press:hsla(0,0%,4%,.06);--green:#1f8a5b;--green-soft:rgba(31,138,91,.12);--amber:#d97706;--amber-soft:rgba(217,119,6,.12);--red:#dc2626;--red-soft:rgba(220,38,38,.1);--success:var(--green);--success-bg:var(--green-soft);--warning:var(--amber);--warning-bg:var(--amber-soft);--danger:var(--red);--danger-bg:var(--red-soft);--primary:var(--ink);--primary-hover:#000;--primary-muted:var(--accent-soft);--primary-text:#fff;--shadow-card:0 1px 2px hsla(0,0%,4%,.04),0 8px 24px -12px hsla(0,0%,4%,.08);--shadow-hover:0 1px 2px hsla(0,0%,4%,.05),0 14px 36px -14px hsla(0,0%,4%,.14);--shadow-pop:0 24px 64px -16px hsla(0,0%,4%,.22),0 8px 24px -12px hsla(0,0%,4%,.1);--shadow-sm:0 1px 2px hsla(0,0%,4%,.04);--shadow:var(--shadow-card);--shadow-lg:var(--shadow-pop);--radius:14px;--radius-sm:10px;--radius-lg:18px;--pad-y:14px;--sidebar-width:232px;--transition:.2s cubic-bezier(.2,.7,.2,1)}[data-theme=dark]{--bg:#0a0a0a;--panel:#111;--bg-surface:#111;--bg-surface-2:hsla(0,0%,100%,.05);--bg-surface-hover:hsla(0,0%,100%,.04);--ink:#f5f5f4;--ink-2:#c4c4c4;--ink-3:#9ca3af;--ink-4:#6b7280;--line:hsla(0,0%,100%,.08);--line-2:hsla(0,0%,100%,.04);--border:var(--line);--border-hover:hsla(0,0%,100%,.18);--hover:hsla(0,0%,100%,.05);--press:hsla(0,0%,100%,.08);--primary:var(--ink);--primary-text:#0a0a0a}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--ink);font-family:Geist,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition),color var(--transition)}::-moz-selection{background:var(--accent-soft)}::selection{background:var(--accent-soft)}button{background:none;border:none;cursor:pointer;padding:0}button,input,select,textarea{color:inherit;font-family:inherit}a{color:inherit;text-decoration:none}.mono{font-family:Geist Mono,ui-monospace,monospace}.serif{font-family:"Instrument Serif",serif}.app-layout{background:var(--bg);color:var(--ink);display:flex;height:100vh;overflow:hidden}.sidebar{background:linear-gradient(180deg,#fafaf9,#f6f5f3);border-right:1px solid var(--line);display:flex;flex-direction:column;flex-shrink:0;gap:4px;overflow-x:hidden;overflow-y:auto;padding:22px 16px 16px;width:var(--sidebar-width)}[data-theme=dark] .sidebar{background:linear-gradient(180deg,#0a0a0a,#0d0d0d)}.brand{align-items:center;color:var(--ink);display:flex;gap:10px;padding:4px 10px 18px;text-decoration:none}.brand-mark{background:var(--ink);border-radius:8px;box-shadow:inset 0 1px #ffffff2e,0 1px #0000000a;color:var(--primary-text);display:grid;font-size:14px;font-weight:600;height:28px;place-items:center;width:28px}.brand-name{font-size:16px;font-weight:600;letter-spacing:-.01em}.nav-item{align-items:center;border-radius:8px;color:var(--ink-2);display:flex;font-size:14px;font-weight:500;gap:10px;padding:8px 10px;position:relative;text-align:left;text-decoration:none;transition:background .18s ease,color .18s ease;width:100%}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.active,.nav-item.router-link-active.exact-active,.nav-item.router-link-exact-active{background:#0a0a0a0d;color:var(--ink)}[data-theme=dark] .nav-item.active,[data-theme=dark] .nav-item.router-link-exact-active{background:#ffffff0f}.nav-item.active:before,.nav-item.router-link-exact-active:before{background:var(--ink);border-radius:0 3px 3px 0;content:"";height:18px;left:-16px;position:absolute;top:50%;transform:translateY(-50%);width:3px}.nav-item .ico{display:grid;flex-shrink:0;height:16px;opacity:.85;place-items:center;width:16px}.nav-item .chev{color:var(--ink-4);margin-left:auto;transition:transform .22s ease}.nav-item .chev.open{transform:rotate(0)}.nav-item .chev.closed{transform:rotate(-90deg)}.sidebar .spacer{flex:1;min-height:4px}.sidebar-footer{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.subnav{animation:fadeUp .24s ease both;display:flex;flex-direction:column;gap:2px;margin:2px 0 6px;padding-left:24px}.subnav-item{align-items:center;background:none;border:none;border-radius:7px;color:var(--ink-3);cursor:pointer;display:flex;font-size:13px;gap:8px;padding:5px 10px;text-align:left;text-decoration:none;transition:background .16s ease,color .16s ease;width:100%}.subnav-item.active,.subnav-item:hover{background:var(--hover);color:var(--ink)}.subnav-item.active{font-weight:600}.subnav-item .ico{display:grid;flex-shrink:0;height:13px;opacity:.7;place-items:center;width:13px}.subnav-item .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subnav-folder-row{align-items:center;border-radius:7px;color:var(--ink-2);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;padding:5px 10px;transition:background .16s ease}.subnav-folder-row:hover{background:var(--hover)}.subnav-folder-row .actions{display:inline-flex;gap:2px;margin-left:auto;opacity:0;transition:opacity .16s ease}.subnav-folder-row:hover .actions{opacity:1}.main{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}.scroll{flex:1;overflow:auto}.scroll::-webkit-scrollbar{height:10px;width:10px}.scroll::-webkit-scrollbar-thumb{background:#0a0a0a1a;background-clip:padding-box;border:2px solid transparent;border-radius:8px}.scroll::-webkit-scrollbar-thumb:hover{background:#0a0a0a2e;background-clip:padding-box;border:2px solid transparent}.page{margin:0 auto;max-width:1120px;padding:36px 40px 56px}.page-wide{max-width:1280px}.page-head{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin-bottom:28px}.page-title{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0}.page-sub{color:var(--ink-3);font-size:14px;margin-top:6px}.btn{align-items:center;border:none;border-radius:10px;color:inherit;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13.5px;font-weight:500;gap:8px;padding:9px 14px;text-decoration:none;transition:transform .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.4}.btn-primary{background:var(--ink);color:var(--primary-text)}.btn-primary:hover:not(:disabled){box-shadow:0 8px 24px -8px #0a0a0a59;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--ink)}.btn-soft{background:#0a0a0a0d;color:var(--ink)}.btn-soft:hover:not(:disabled){background:#0a0a0a14}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){transform:translateY(-1px)}.btn-danger-ghost{background:transparent;color:var(--red)}.btn-danger-ghost:hover:not(:disabled){background:var(--red-soft)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){box-shadow:0 8px 24px -8px var(--red);transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}[data-theme=dark] .btn-secondary{background:var(--bg-surface)}.btn-secondary:hover:not(:disabled){background:var(--hover);border-color:var(--border-hover)}.btn-sm{border-radius:8px;font-size:12.5px;padding:5px 10px}.btn-icon{padding:6px}.row-action{background:transparent;border:none;border-radius:8px;color:var(--ink-3);cursor:pointer;display:inline-grid;height:30px;place-items:center;transition:background .14s ease,color .14s ease;width:30px}.row-action:hover{background:#0a0a0a0d;color:var(--ink)}.row-action-danger:hover{background:var(--red-soft);color:var(--red)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:box-shadow .22s ease,transform .22s ease,border-color .22s ease}.card-pad{padding:22px}.card.hoverable:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:3px 10px}.pill-dot{background:currentColor;border-radius:50%;height:6px;width:6px}.pill-neutral,.pill-todo{background:#0a0a0a0f;color:var(--ink-3)}.pill-doing{background:var(--amber-soft);color:var(--amber)}.pill-done,.pill-paid{background:var(--green-soft);color:var(--green)}.pill-pending{background:var(--amber-soft);color:var(--amber)}.pill-draft{background:#0a0a0a0f;color:var(--ink-3)}.pill-danger,.pill-overdue{background:var(--red-soft);color:var(--red)}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:3px 10px}.badge-success{background:var(--green-soft);color:var(--green)}.badge-warning{background:var(--amber-soft);color:var(--amber)}.badge-danger{background:var(--red-soft);color:var(--red)}.badge-neutral{background:#0a0a0a0f;color:var(--ink-3)}.input,.select,.textarea{background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:14px;outline:none;padding:10px 12px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent-line);box-shadow:0 0 0 4px var(--accent-soft)}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--ink-4)}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}.textarea{line-height:1.55;min-height:80px;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%236b7280' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.label{color:var(--ink-2);display:block;font-size:12.5px;font-weight:500;margin-bottom:6px}.label-up{color:var(--ink-3);display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.check{background:var(--panel);border:1.5px solid hsla(0,0%,4%,.18);border-radius:50%;cursor:pointer;display:grid;flex-shrink:0;height:18px;place-items:center;transition:background .18s ease,border-color .18s ease,transform .18s ease;width:18px}.check:hover{border-color:#0a0a0a66}.check.done{background:var(--green);border-color:var(--green);transform:scale(1.05)}.check.done svg{animation:scaleIn .22s cubic-bezier(.2,.7,.2,1) both}.tabs{border-bottom:1px solid var(--line);display:flex;gap:22px;margin-bottom:22px;overflow-x:auto}.tab{align-items:center;background:none;border:none;color:var(--ink-3);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 2px;position:relative;text-decoration:none;transition:color .16s ease;white-space:nowrap}.tab:hover{color:var(--ink-2)}.tab.active{color:var(--ink)}.tab .underline{background:var(--ink);border-radius:2px;bottom:-1px;height:2px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:center;transition:transform .24s cubic-bezier(.2,.7,.2,1)}.tab.active .underline{transform:scaleX(1)}.pill-tabs{background:#0a0a0a0a;border-radius:10px;display:inline-flex;gap:2px;padding:4px}.pill-tab{align-items:center;background:transparent;border:none;border-radius:7px;color:var(--ink-3);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:7px;padding:7px 14px;transition:all .16s ease}.pill-tab.active{background:var(--panel);box-shadow:0 1px 2px #0a0a0a0f,0 0 0 1px #0a0a0a0a;color:var(--ink);font-weight:600}.pill-tab .count{background:#0a0a0a0a;border-radius:10px;color:var(--ink-3);font-feature-settings:"tnum";font-size:11px;min-width:18px;padding:1px 7px;text-align:center}.pill-tab.active .count{background:#0a0a0a0f;color:var(--ink-2)}.modal-scrim{animation:fadeIn .18s ease both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0a59;display:grid;inset:0;padding:1rem;place-items:center;position:fixed;z-index:60}.modal{animation:scaleIn .26s cubic-bezier(.2,.8,.2,1) both;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-pop);padding:26px;width:min(520px,92vw)}.modal-title{font-size:18px;font-weight:600;letter-spacing:-.01em}.modal-x{background:transparent;border:none;border-radius:8px;color:var(--ink-3);cursor:pointer;display:grid;height:30px;place-items:center;transition:background .16s ease,color .16s ease;width:30px}.modal-x:hover{background:var(--hover);color:var(--ink)}.modal-overlay{animation:fadeIn .18s ease both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0a59;display:grid;inset:0;padding:1rem;place-items:center;position:fixed;z-index:60}.toast{animation:scaleIn .26s cubic-bezier(.2,.8,.2,1) both;background:var(--ink);border-radius:10px;bottom:24px;box-shadow:var(--shadow-pop);color:var(--primary-text);font-size:13px;left:50%;padding:10px 16px;position:fixed;transform:translate(-50%);z-index:80}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes drawerIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.page-enter{animation:pageIn .38s cubic-bezier(.2,.7,.2,1) both}.route-enter-active,.route-leave-active{transition:opacity .24s cubic-bezier(.2,.7,.2,1),transform .32s cubic-bezier(.2,.7,.2,1)}.route-enter-from{opacity:0;transform:translateY(8px)}.route-leave-to{opacity:0;transform:translateY(-4px)}.stagger>*{animation:fadeUp .48s cubic-bezier(.2,.7,.2,1) forwards;opacity:0}.stagger>:first-child{animation-delay:40ms}.stagger>:nth-child(2){animation-delay:90ms}.stagger>:nth-child(3){animation-delay:.14s}.stagger>:nth-child(4){animation-delay:.19s}.stagger>:nth-child(5){animation-delay:.24s}.stagger>:nth-child(6){animation-delay:.29s}.stagger>:nth-child(7){animation-delay:.34s}.stagger>:nth-child(8){animation-delay:.39s}.stagger>:nth-child(n+9){animation-delay:.42s}.col-drop.over{background:color-mix(in oklab,var(--accent) 8%,#f5f5f4)}[data-theme=dark] .col-drop.over{background:#1f6feb14}.task-card.dragging{opacity:.4}.stripes{background-image:repeating-linear-gradient(135deg,hsla(0,0%,4%,.04) 0 1px,transparent 1px 9px)}.flex{display:flex}.flex-1{flex:1}.flex-col{flex-direction:column}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-xs{font-size:12px}.text-sm{font-size:13px}.text-muted{color:var(--ink-3)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.grid-2{grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:14px}.grid-3{grid-template-columns:repeat(3,1fr)}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.uppercase-label{color:var(--ink-3);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
