:root{--surface:#fff;--canvas:#f6f4ec;--grid:rgba(26,26,24,.045);--border:#eceae1;--ink:#1b1a17;--ink-soft:#5e5c54;--ink-mute:#97948a;--accent:#ffd43b;--accent-hover:#fbc92a;--accent-soft:#fff3c9;--on-accent:#1b1a17;--green:#4bae6a;--green-soft:#dcefcb;--green-ink:#356b2e;--danger:#e5484d;--danger-soft:#fbe2e3;--shadow-sm:0 1px 2px rgba(26,26,24,.05),0 2px 6px rgba(26,26,24,.05);--shadow:0 2px 4px rgba(26,26,24,.05),0 8px 20px rgba(26,26,24,.07);--shadow-lg:0 6px 12px rgba(26,26,24,.07),0 16px 34px rgba(26,26,24,.11);--radius:22px;--radius-sm:16px;--radius-xs:11px;--display:var(--font-sans),system-ui,-apple-system,"Segoe UI",sans-serif;--sans:var(--font-sans),system-ui,-apple-system,"Segoe UI",sans-serif;--mono:var(--font-mono),ui-monospace,"SF Mono",monospace;--ease:cubic-bezier(0.16,1,0.3,1);--col-todo:#e4e3fb;--col-todo-dot:#5b5be6;--col-prog:#fcebae;--col-prog-dot:#f2982b;--col-done:#d8eebd;--col-done-dot:#5dae54}*{box-sizing:border-box}body,html{margin:0;height:100%}body{color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-color:var(--canvas);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:34px 34px;background-position:top;background-attachment:fixed}button{font-family:inherit}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:22px;padding:14px 28px;background:var(--canvas);border-bottom:1px solid rgba(26,26,24,.06)}.brand,.topbar{display:flex;align-items:center}.brand{gap:11px;flex-shrink:0;text-decoration:none;cursor:pointer}.brand-logo{display:block;flex-shrink:0}.brand-logo-full{display:block;color:var(--ink);overflow:hidden}.brand:hover,.brand:hover .brand-logo-full{cursor:pointer}.brand-logo-full .bar{transform-box:fill-box;transform-origin:right center}.brand-logo-full .bar-1{--full:1}.brand-logo-full .bar-2{--full:1.364}.brand-logo-full .bar-3{--full:1.875}@keyframes barWave{0%{transform:scaleX(1)}40%{transform:scaleX(0)}55%{transform:scaleX(0)}80%{transform:scaleX(var(--full,1))}to{transform:scaleX(1)}}.brand-logo-full.playing .bar{animation:barWave 1.6s var(--ease) both}.brand-logo-full.playing .bar-1{animation-delay:0s}.brand-logo-full.playing .bar-2{animation-delay:.18s}.brand-logo-full.playing .bar-3{animation-delay:.36s}@media (prefers-reduced-motion:reduce){.brand-logo-full.playing .bar{animation:none}}.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--accent);position:relative;box-shadow:var(--shadow-sm)}.brand-mark:after{content:"";position:absolute;inset:8px 8px auto 8px;height:2.5px;background:var(--ink);border-radius:2px;box-shadow:0 5px 0 var(--ink)}.brand-text h1{margin:0;font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1.05}.brand-sub{margin:2px 0 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--ink-mute)}.projects{display:flex;align-items:center;gap:6px;flex:1 1;min-width:0;overflow-x:auto;scrollbar-width:none}.projects::-webkit-scrollbar{display:none}.proj-isle{display:flex;align-items:center;gap:6px;flex-shrink:0}.isle-sep{width:1px;height:20px;margin:0 6px;background:rgba(26,26,24,.14);flex-shrink:0}.isle-label{font-family:var(--display);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:var(--p-bg,#f1f0ea);color:var(--p-ink,var(--ink-soft));padding:4px 9px;border-radius:7px}.isle-label,.tab{flex-shrink:0;white-space:nowrap}.tab{border:none;background:transparent;color:var(--ink-soft);padding:8px 15px;border-radius:9999px;font-size:13px;font-weight:700;cursor:pointer;transition:background .14s var(--ease),color .14s var(--ease),box-shadow .14s var(--ease)}.tab:hover{background:rgba(26,26,24,.05);color:var(--ink)}.tab.active{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm)}.tab .count{font-family:var(--mono);font-size:10px;opacity:.7;margin-left:6px}.tab.active .count{opacity:.85}.topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:6px;border:none;background:var(--surface);color:var(--ink);text-decoration:none;font-size:12.5px;font-weight:700;padding:9px 15px;border-radius:9999px;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .14s var(--ease),transform .1s var(--ease),box-shadow .14s var(--ease)}.btn:hover{box-shadow:var(--shadow)}.btn:active{transform:translateY(1px)}.btn.ghost,.btn:disabled,.btn:disabled:hover{box-shadow:none}.btn.ghost{background:transparent}.btn.ghost:hover{background:rgba(26,26,24,.05);box-shadow:none}.btn.icon-only{padding:9px}.btn.solid{background:var(--accent);color:var(--on-accent)}.btn.solid:hover{background:var(--accent-hover)}.btn.signout{background:var(--danger-soft);color:#c0282c;border-radius:9px;box-shadow:none}.btn.signout:hover{background:#f6cfd0;box-shadow:none}.btn.danger-solid{background:var(--danger);color:#fff}.btn.danger-solid:hover{background:#d83a3f}.btn.danger{background:var(--danger-soft);color:#c0282c;box-shadow:none}.btn.danger:hover{background:#f6cfd0;box-shadow:none}.btn.bug-btn{background:var(--danger-soft);color:#c0282c}.btn.bug-btn:hover{background:#f8d2d3}.btn.bug-btn .ic{stroke-width:1.9}.ic{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.view-toggle{display:inline-flex;gap:3px;background:var(--surface);padding:3px;border-radius:9999px;box-shadow:var(--shadow-sm)}.view-opt{border:none;background:transparent;cursor:pointer;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--ink-soft);padding:6px 13px;border-radius:9999px;display:inline-flex;align-items:center;gap:6px;transition:background .13s var(--ease),color .13s var(--ease)}.view-opt:hover{color:var(--ink)}.view-opt.active{background:var(--ink);color:#fff}.view-opt svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.save-state,.user-email{font-family:var(--mono);font-size:10.5px;color:var(--ink-mute)}.save-state{letter-spacing:.04em;min-width:52px;text-align:right}.save-state.saving{color:#c25a12}.save-state.error{color:var(--danger)}.project-meta{display:flex;align-items:center;gap:12px;padding:26px 28px 10px}.meta-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0}.meta-side .save-state{min-width:0}.meta-actions{display:flex;align-items:stretch;gap:6px}.meta-import{flex-shrink:0}.meta-actions .btn{height:34px;padding-top:0;padding-bottom:0}.meta-bell{width:34px;justify-content:center}.meta-actions .notif{display:flex}.project-name{font-family:var(--display);font-size:42px;font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--ink);border:none;background:transparent;padding:4px 10px;margin:-4px -10px;border-radius:var(--radius-xs);min-width:200px;outline:none}.project-name:hover{background:hsla(0,0%,100%,.7)}.project-name:focus{background:var(--surface);box-shadow:var(--shadow-sm)}.meta-spacer{flex:1 1}.repo-btn{flex-shrink:0;max-width:210px}.repo-btn.set{font-family:var(--mono);font-weight:600;font-size:11.5px}.repo-btn .ic{flex-shrink:0}.repo-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-form{display:flex;flex-direction:column;gap:9px}.modal-form-label{font-family:var(--display);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute)}.modal-form-label em{font-style:normal;font-weight:600;text-transform:none;letter-spacing:0;opacity:.7}.modal-form-input{font-family:var(--mono);font-size:13px;color:var(--ink);width:100%;border:1.5px solid var(--border);background:#fbfaf6;border-radius:var(--radius-xs);padding:10px 12px;outline:none;transition:border-color .13s var(--ease),background .13s var(--ease),box-shadow .13s var(--ease)}.modal-form-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.modal-form-hint{font-size:12px;line-height:1.5;color:var(--ink-soft);margin:0}.switch{flex-shrink:0;position:relative;width:46px;height:28px;padding:0;border:none;border-radius:9999px;background:#dcd8cc;cursor:pointer;transition:background .16s var(--ease)}.switch span{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:9999px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .16s var(--ease)}.switch.on{background:var(--green)}.switch.on span{transform:translateX(18px)}.version-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 28px 2px}.vchip{display:inline-flex;align-items:center;gap:9px;border:none;background:var(--surface);color:var(--ink-soft);font-family:var(--mono);font-size:11.5px;font-weight:500;padding:8px 16px;border-radius:9999px;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .14s var(--ease),color .14s var(--ease),box-shadow .14s var(--ease)}.vchip:hover{box-shadow:var(--shadow);color:var(--ink)}.vchip.active{background:var(--accent);color:var(--on-accent)}.vchip .vcount{font-size:10px;opacity:.6}.vchip.active .vcount{opacity:.8}.vchip.add{background:transparent;box-shadow:none;color:var(--ink-soft);border:1.5px dashed rgba(26,26,24,.2)}.vchip.add:hover{background:hsla(0,0%,100%,.7)}.vchip.add .ic{width:11px;height:11px}.vchip.completed{opacity:.6}.vchip.completed .vlabel{text-decoration:line-through;-webkit-text-decoration-color:rgba(26,26,24,.4);text-decoration-color:rgba(26,26,24,.4)}.vcheck{display:inline-flex;color:var(--green-ink)}.vcheck svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.vship{font-size:10px;padding:1px 6px;border-radius:6px;background:hsla(0,0%,100%,.6);opacity:.9}.vship.soon{background:var(--accent);color:var(--on-accent)}.vship.late,.vship.soon{opacity:1;font-weight:600}.vship.late{background:var(--danger);color:#fff}.vchip.reveal{background:transparent;box-shadow:none;color:var(--green-ink);font-weight:700;border:1.5px solid rgba(31,174,121,.4)}.vchip.reveal:hover{background:rgba(31,174,121,.1)}.vchip.reveal .ic{width:12px;height:12px}.vchip-ver{background:var(--p-bg);color:var(--p-ink);padding-right:10px}.vchip-ver:hover{color:var(--p-ink);box-shadow:var(--shadow)}.vchip-ver.active{box-shadow:inset 0 0 0 2px var(--p-ink)}.vchip-ver.active:hover{box-shadow:inset 0 0 0 2px var(--p-ink),var(--shadow)}.vchip-ver .vcount{opacity:.75}.vchip-ver .vcheck{color:var(--p-ink)}.vopts{display:inline-grid;place-items:center;width:20px;height:20px;margin:-3px -4px -3px -2px;border-radius:7px;cursor:pointer;opacity:.7;transition:opacity .13s var(--ease),background .13s var(--ease)}.vopts:hover{opacity:1;background:rgba(0,0,0,.09)}.vopts svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.type-filter{margin-left:auto;display:inline-flex;gap:3px;background:var(--surface);padding:3px;border-radius:9999px;box-shadow:var(--shadow-sm)}.tf-opt{border:none;background:transparent;cursor:pointer;font-family:var(--sans);font-size:11.5px;font-weight:700;color:var(--ink-soft);padding:5px 13px;border-radius:9999px;white-space:nowrap;transition:background .13s var(--ease),color .13s var(--ease)}.tf-opt:hover{color:var(--ink)}.tf-opt.active{background:var(--ink);color:#fff}.tf-opt.bug.active{background:#e5484d;color:#fff}.color-pop{position:absolute;z-index:60;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:16px;min-width:168px;background:var(--surface);box-shadow:var(--shadow-lg);animation:rise .16s var(--ease) both}.color-row{display:flex;gap:7px}.color-opt{width:24px;height:24px;border-radius:9999px;border:2.5px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);transition:transform .12s var(--ease)}.color-opt:hover{transform:scale(1.14)}.color-opt.sel{border-color:var(--ink)}.pop-div{height:1px;background:var(--border);margin:0 -2px}.pop-action{display:flex;align-items:center;gap:7px;border:none;background:transparent;cursor:pointer;font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--ink);padding:8px 9px;border-radius:10px;transition:background .13s var(--ease)}.pop-action:hover{background:var(--canvas)}.pop-action.done{color:var(--green-ink)}.pop-action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pop-action.danger{color:var(--danger)}.pop-action.danger:hover{background:var(--danger-soft)}.pop-rename{width:100%;font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);border:1.5px solid var(--border);background:#fbfaf6;border-radius:9px;padding:8px 10px;outline:none}.pop-ship{display:flex;flex-direction:column;gap:5px}.pop-ship-label{font-family:var(--display);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute)}.pop-ship .date-btn{padding:8px 10px;font-size:11.5px}.pop-rename:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.merge-select{display:flex;flex-direction:column}.merge-trigger{display:flex;align-items:center;gap:8px;width:100%;border:none;cursor:pointer;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:12.5px;font-weight:700;border-radius:10px;padding:9px 11px;transition:background .13s var(--ease)}.merge-trigger:hover{background:rgba(26,26,24,.06)}.merge-trigger svg{flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.merge-trigger>svg:first-child{width:15px;height:15px}.merge-chevron{width:13px;height:13px;margin-left:auto;color:var(--ink-mute);transition:transform .14s var(--ease)}.merge-select.open .merge-chevron{transform:rotate(180deg)}.merge-menu{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:200px;overflow-y:auto;overscroll-behavior-y:contain}.merge-opt{border:none;background:transparent;text-align:left;cursor:pointer;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);padding:9px 11px;border-radius:8px;transition:background .13s var(--ease)}.merge-opt:hover{background:var(--canvas)}.danger-link{border:none;background:transparent;color:var(--ink-mute);font-size:12px;font-weight:700;cursor:pointer;padding:8px 13px;border-radius:9999px;transition:color .14s var(--ease),background .14s var(--ease)}.danger-link:hover{color:var(--danger);background:var(--danger-soft)}.board{flex:1 1;display:grid;grid-template-columns:repeat(3,minmax(290px,1fr));grid-gap:20px;gap:20px;padding:16px 28px 48px;align-items:stretch}.column{border:none;transition:box-shadow .18s var(--ease)}.column,.column-body{display:flex;flex-direction:column;min-height:200px}.column-body{border-radius:var(--radius);padding:16px 14px 14px;gap:12px}.column[data-status=todo] .column-body{background:var(--col-todo)}.column[data-status=inprogress] .column-body{background:var(--col-prog)}.column[data-status=done] .column-body{background:var(--col-done)}.column.drop-target{box-shadow:inset 0 0 0 1.5px rgba(26,26,24,.1);border-radius:var(--radius)}.column-head{display:flex;align-items:center;justify-content:space-between;padding:0 6px 4px}.column-title{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}.dot{width:10px;height:10px;border-radius:9999px}.dot.todo{background:var(--col-todo-dot)}.dot.inprogress{background:var(--col-prog-dot)}.dot.done{background:var(--col-done-dot)}.column-count{font-family:var(--mono);font-size:11px;font-weight:600;padding:2px 10px;border-radius:9999px;color:var(--ink);background:hsla(0,0%,100%,.72)}.cards{display:flex;flex-direction:column;gap:12px;min-height:8px}.card-theme-0{--p-bg:#dcefcb;--p-ink:#356b2e}.card-theme-1{--p-bg:#fcebb4;--p-ink:#8a6300}.card-theme-2{--p-bg:#e6defb;--p-ink:#5b43b5}.card-theme-3{--p-bg:#cfede2;--p-ink:#16785c}.card-theme-4{--p-bg:#d8e8fd;--p-ink:#1e5fa8}.card-theme-5{--p-bg:#fbdcea;--p-ink:#b23a6e}.card{position:relative;background:var(--surface);border:none;border-radius:var(--radius-sm);padding:15px 15px 14px;color:var(--ink);cursor:-webkit-grab;cursor:grab;box-shadow:var(--shadow);transition:transform .13s var(--ease),box-shadow .16s var(--ease),opacity .16s var(--ease);animation:rise .34s var(--ease) both}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.card.dragging{background:transparent;box-shadow:inset 0 0 0 2px rgba(26,26,24,.16);cursor:-webkit-grabbing;cursor:grabbing;animation:none}.card.dragging>*{opacity:0}.card.dropped{animation:dropPop .36s var(--ease) both}.card.is-bug{background:#f09595}.card.is-bug,.card.is-bug:hover{box-shadow:none}.card.is-bug.done{background:#e89999}.card.done{background:#fafbf6}.card.done .card-title{color:var(--ink-mute);text-decoration:line-through;-webkit-text-decoration-color:rgba(26,26,24,.35);text-decoration-color:rgba(26,26,24,.35)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dropPop{0%{opacity:.4;transform:scale(1.06) translateY(-2px)}55%{opacity:1;transform:scale(.98) translateY(0)}to{opacity:1;transform:scale(1)}}.card-top{display:flex;align-items:flex-start;gap:11px}.checkbox{flex-shrink:0;margin-top:1px;width:21px;height:21px;border:2px solid #dcd8cc;border-radius:7px;background:var(--surface);cursor:pointer;display:grid;place-items:center;padding:0;transition:background .14s var(--ease),border-color .14s var(--ease)}.checkbox.checked,.checkbox:hover{border-color:var(--green)}.checkbox.checked{background:var(--green)}.checkbox svg{width:14px;height:14px;display:block;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:opacity .14s var(--ease),transform .18s var(--ease)}.checkbox.checked svg{opacity:1;transform:scale(1)}.card-title{flex:1 1;font-size:14.5px;font-weight:700;line-height:1.4;color:var(--ink);word-break:break-word}.card-comment{margin:0;padding-left:32px;font-size:12.5px;line-height:1.5;color:var(--ink-soft);white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card.done .card-comment{color:var(--ink-mute)}.card-menu{flex-shrink:0;display:flex;gap:2px;opacity:0;transition:opacity .14s var(--ease)}.card:hover .card-menu{opacity:1}.icon-btn{border:none;background:transparent;color:var(--ink-mute);width:27px;height:27px;border-radius:8px;cursor:pointer;display:grid;place-items:center;transition:background .13s var(--ease),color .13s var(--ease)}.icon-btn:hover{background:rgba(26,26,24,.06);color:var(--ink)}.icon-btn.del:hover{background:var(--danger-soft);color:var(--danger)}.icon-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.card-meta{display:flex;align-items:center;gap:8px;margin-top:13px;padding-left:32px;flex-wrap:wrap}.chip{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.01em;padding:4px 10px;border-radius:9999px}.chip.version{background:var(--p-bg,var(--green-soft));color:var(--p-ink,var(--green-ink))}.chip.bug{display:inline-flex;align-items:center;gap:4px;background:#e5484d;color:#fff;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px}.chip.bug svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chip.branch{display:inline-flex;align-items:center;gap:5px;max-width:200px;background:#e9e7fb;color:#4b43b5;text-decoration:none;transition:background .13s var(--ease)}.chip.branch,.chip.branch>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.branch:hover{background:#ded9f7}.chip.branch svg{flex-shrink:0;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.chip.branch.plain,.date{background:#f1f0ea;color:var(--ink-soft)}.date{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;font-weight:500;padding:4px 10px;border-radius:9999px}.date svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.7}.date.overdue{background:var(--danger-soft);color:#c0282c;font-weight:600}.date.overdue .pill-overdue{margin-left:2px;text-transform:uppercase;letter-spacing:.05em;font-size:8px;background:var(--danger);color:#fff;padding:2px 6px;border-radius:9999px}.date.soon{background:var(--accent-soft);color:#8a6300;font-weight:600}.date.none{color:var(--ink-mute)}.date.editable{cursor:pointer;box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .13s var(--ease),background .13s var(--ease)}.date.editable:hover{box-shadow:inset 0 0 0 1px rgba(26,26,24,.16)}.date.editable:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.card-edit-wrap{cursor:default;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg)}.card-edit{display:flex;flex-direction:column;gap:9px}.type-toggle{display:inline-flex;gap:3px;align-self:flex-start;background:#f1f0ea;padding:3px;border-radius:9999px}.type-opt{border:none;background:transparent;cursor:pointer;font-family:var(--sans);font-size:11.5px;font-weight:700;color:var(--ink-soft);padding:5px 15px;border-radius:9999px;transition:background .13s var(--ease),color .13s var(--ease),box-shadow .13s var(--ease)}.type-opt.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.type-opt.bug-active{color:#c0282c}.card-edit input,.card-edit textarea{font-family:var(--sans);font-size:13.5px;color:var(--ink);border:1.5px solid var(--border);background:#fbfaf6;border-radius:var(--radius-xs);padding:10px 12px;outline:none;width:100%;transition:border-color .13s var(--ease),background .13s var(--ease)}.card-edit textarea{resize:vertical;min-height:42px;line-height:1.4}.card-edit .title{font-weight:600;font-size:14.5px}.card-edit .comment{margin-top:-3px;min-height:38px;font-weight:400}.card-edit input:focus,.card-edit textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.edit-row{display:flex;gap:8px}.edit-row input{flex:1 1}.card-edit input.date,.card-edit input.version{font-family:var(--mono);font-size:12px}.card-edit input.date{color:var(--ink-soft);width:100%}.date-field{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.date-field>span{font-family:var(--display);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute)}.date-field>span em{font-style:normal;font-weight:600;opacity:.7;text-transform:none;letter-spacing:0}.card-edit input.date:disabled{opacity:.5;cursor:not-allowed}.date-btn{position:relative;display:flex;align-items:center;gap:8px;width:100%;cursor:pointer;border:1.5px solid var(--border);background:#fbfaf6;border-radius:var(--radius-xs);padding:10px 12px;font-family:var(--mono);font-size:12px;color:var(--ink-soft);text-align:left;transition:border-color .13s var(--ease),background .13s var(--ease)}.date-btn:hover{border-color:rgba(26,26,24,.25)}.date-btn.disabled{opacity:.5;cursor:not-allowed}.date-btn svg{flex-shrink:0;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--ink-mute)}.date-btn-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-btn-text.ph,.date-clear{color:var(--ink-mute)}.date-clear{flex-shrink:0;font-size:15px;line-height:1;padding:0 2px;border-radius:6px}.date-clear:hover{color:var(--danger)}.date-field-wrap{position:relative}.cal-pop{position:fixed;z-index:200;width:272px;max-width:calc(100vw - 16px);background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);padding:12px;animation:rise .14s var(--ease) both}.cal-pop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-pop-title{font-family:var(--display);font-weight:800;font-size:13.5px;color:var(--ink);text-transform:capitalize}.cal-pop-nav{border:none;background:transparent;color:var(--ink-soft);width:28px;height:28px;border-radius:8px;display:grid;place-items:center;cursor:pointer;transition:background .13s var(--ease),color .13s var(--ease)}.cal-pop-nav:hover{background:var(--canvas);color:var(--ink)}.cal-pop-nav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.cal-pop-week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;margin-bottom:4px}.cal-pop-week span{text-align:center;font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--ink-mute);text-transform:uppercase;padding:2px 0}.cal-pop-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cal-pop-day,.cal-pop-empty{aspect-ratio:1}.cal-pop-day{border:none;background:transparent;cursor:pointer;border-radius:8px;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);display:grid;place-items:center;transition:background .12s var(--ease),color .12s var(--ease)}.cal-pop-day:hover{background:var(--canvas)}.cal-pop-day.today{color:#c25a12;font-weight:800}.cal-pop-day.sel{background:var(--accent);color:var(--on-accent)}.cal-pop-day:disabled{color:var(--ink-mute);opacity:.35;cursor:not-allowed;background:transparent}.cal-pop-day.in-range{background:var(--accent-soft);color:#8a6300;border-radius:0}.cal-pop-day.r-start{border-top-right-radius:0;border-bottom-right-radius:0}.cal-pop-day.r-end{border-top-left-radius:0;border-bottom-left-radius:0}.date-pop{width:272px}.date-pop-tabs{display:flex;align-items:stretch;gap:4px;margin-bottom:10px}.date-pop-tab{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px;text-align:left;cursor:pointer;border:1.5px solid var(--border);background:#fbfaf6;border-radius:10px;padding:6px 9px;transition:border-color .13s var(--ease),background .13s var(--ease)}.date-pop-tab .k{font-family:var(--display);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute)}.date-pop-tab .v{font-family:var(--mono);font-size:11.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-pop-tab.on{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.date-pop-tab:disabled{opacity:.45;cursor:not-allowed}.date-pop-arrow,.date-pop-tab:disabled .v{color:var(--ink-mute)}.date-pop-arrow{align-self:center;font-size:12px}.date-pop-foot{display:flex;align-items:center;gap:4px;margin-top:10px;padding-top:9px;border-top:1px solid var(--border)}.date-pop-act{border:none;background:transparent;cursor:pointer;color:var(--ink-soft);font-family:var(--sans);font-size:12px;font-weight:700;padding:7px 11px;border-radius:9px;transition:background .13s var(--ease),color .13s var(--ease)}.date-pop-act:hover{background:var(--canvas);color:var(--ink)}.date-pop-act.primary{background:var(--accent);color:var(--on-accent)}.date-pop-act.primary:hover{background:var(--accent-hover)}.ver-label{font-family:var(--display);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);margin:2px 0 -2px}.ver-quick{display:flex;flex-wrap:wrap;gap:6px}.ver-pick{border:2px solid transparent;background:var(--p-bg,#f1f0ea);color:var(--p-ink,var(--ink-soft));font-family:var(--mono);font-size:11px;font-weight:600;padding:5px 11px;border-radius:9999px;cursor:pointer;transition:border-color .13s var(--ease),transform .1s var(--ease)}.ver-pick:hover{transform:translateY(-1px)}.ver-pick.active{border-color:var(--ink)}.ver-pick.ver-none{background:transparent;color:var(--ink-mute);box-shadow:inset 0 0 0 1.5px var(--border)}.ver-pick.ver-none.active{color:var(--ink)}.ver-pick.ver-new{display:inline-flex;align-items:center;gap:5px;background:transparent;color:var(--ink-soft);border:1.5px dashed rgba(26,26,24,.24)}.ver-pick.ver-new:hover{background:var(--surface);color:var(--ink)}.ver-pick.ver-new svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.ver-create{display:flex;flex-direction:column;gap:8px;padding:11px;border-radius:var(--radius-xs);background:#fbfaf6;box-shadow:inset 0 0 0 1.5px var(--border)}.card-edit .ver-create-input{font-family:var(--mono);font-size:12px;background:var(--surface)}.ver-create-actions{display:flex;justify-content:flex-end;gap:8px}.ver-create-actions .btn{padding:7px 14px;font-size:12px}.ver-created{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--green-ink);background:var(--green-soft);padding:8px 11px;border-radius:var(--radius-xs)}.ver-created strong{font-family:var(--mono);font-weight:700}.ver-created svg{flex-shrink:0;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.edit-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:2px}.edit-actions .btn{padding:8px 16px;font-size:12px}.add-card{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;border:1.5px dashed rgba(26,26,24,.18);background:hsla(0,0%,100%,.45);color:var(--ink-soft);font-size:12.5px;font-weight:700;padding:12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease)}.add-card:hover{background:var(--surface);border-color:transparent;color:var(--ink);box-shadow:var(--shadow-sm)}.add-card svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}.add-card.add-bug{border-color:rgba(229,72,77,.45);color:#c0282c}.add-card.add-bug:hover{background:var(--danger-soft);color:#c0282c}.empty-hint{text-align:center;font-size:12.5px;color:var(--ink-soft);padding:16px 0 10px;font-family:var(--display);font-weight:600;opacity:.7}.calendar-h{flex:1 1;display:flex;flex-direction:column;min-height:0}.cal-head2{display:flex;align-items:center;gap:10px;padding:10px 28px 8px}.cal-scale{flex-shrink:0}.cal-scale .seg-opt{padding:5px 12px;font-size:12.5px}.cal-title{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em}.cal-head2 .ic{width:13px;height:13px}.cal-h{--day-w:304px;--lane-h:80px;--cal-gap:10px;flex:1 1;display:flex;overflow-x:auto;padding:10px 28px 36px;scroll-padding-left:28px}.cal-h::-webkit-scrollbar{height:10px}.cal-h::-webkit-scrollbar-thumb{background:rgba(26,26,24,.16);border-radius:9999px}.cal-grid{display:grid;width:max-content;flex:0 0 auto;grid-column-gap:var(--cal-gap);column-gap:var(--cal-gap);grid-row-gap:10px;row-gap:10px;align-items:stretch}.cal-h-head{display:flex;align-items:baseline;gap:8px;padding:2px 6px 8px;border-bottom:2px solid var(--border);min-width:0}.cal-dow2{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute)}.cal-dnum,.cal-dow2{font-family:var(--display);font-weight:800}.cal-dnum{font-size:18px;color:var(--ink)}.cal-mon{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mute);margin-left:auto}.cal-h-head.today{border-bottom-color:var(--accent)}.cal-h-head.today .cal-dnum{background:var(--accent);border-radius:8px;padding:0 7px}.cal-h-head.past{opacity:.6}.cal-h-bg{z-index:0;border-radius:12px;transition:box-shadow .12s var(--ease),background .12s var(--ease)}.cal-h-bg.today{background:rgba(26,26,24,.03);box-shadow:inset 0 0 0 1px var(--accent-soft)}.cal-h-bg.past{background:rgba(26,26,24,.018)}.cal-h-bg.nodate,.cal-h-head.nodate{position:-webkit-sticky;position:sticky;left:0}.cal-h-bg.nodate{z-index:4;background:hsla(47,36%,95%,.1);-webkit-backdrop-filter:blur(1.5px) saturate(1.1);backdrop-filter:blur(1.5px) saturate(1.1);box-shadow:1px 0 0 rgba(26,26,24,.04),10px 0 18px -12px rgba(26,26,24,.14)}.cal-h-head.nodate{z-index:7;background:transparent;border-bottom-color:rgba(26,26,24,.18)}.cal-bar.nodate{position:-webkit-sticky;position:sticky;left:0;z-index:6}.cal-h-bg.drop-target{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}.cal-h-bg.has-ms{box-shadow:inset 3px 0 0 var(--p-ink);background:rgba(26,26,24,.028)}.cal-ms{align-self:center;margin-left:2px;min-width:0;display:inline-flex;align-items:center;gap:5px;background:var(--p-bg);color:var(--p-ink);font-family:var(--mono);font-size:10.5px;font-weight:600;padding:3px 9px 3px 7px;border-radius:9999px}.cal-ms.done{opacity:.55}.cal-ms svg{flex-shrink:0;width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cal-ms-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-bar{z-index:1;position:relative;align-self:start;min-height:88px;display:flex;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-sm);cursor:-webkit-grab;cursor:grab;transition:box-shadow .14s var(--ease),opacity .14s var(--ease),transform .11s var(--ease)}.cal-bar:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.cal-bar:active{cursor:-webkit-grabbing;cursor:grabbing}.cal-bar.dragging{opacity:.4}.cal-bar.is-bug{background:#f09595}.cal-bar.is-bug.done{background:#e89999}.cal-bar.done{background:#fafbf6}.cal-bar-accent{flex:0 0 4px;background:var(--p-bg,var(--border));border-radius:12px 0 0 12px}.cal-bar.is-bug .cal-bar-accent{background:var(--danger)}.cal-bar-main{flex:1 1;min-width:0;display:flex;align-items:flex-start;gap:9px;padding:11px 14px 11px 11px}.cal-bar.multi .cal-bar-main{position:-webkit-sticky;position:sticky;left:var(--stick-left,0);flex:0 1 auto;max-width:calc(var(--day-w) - 6px)}.cal-bar-body{flex:1 1 auto;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:7px;padding-top:1.5px}.cal-bar-title{width:100%;border:none;background:transparent;text-align:left;cursor:pointer;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35;padding:1px 0 0;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cal-bar.done .cal-bar-title{color:var(--ink-mute);text-decoration:line-through;-webkit-text-decoration-color:rgba(26,26,24,.35);text-decoration-color:rgba(26,26,24,.35)}.cal-bar-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tl-status{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:var(--ink-soft);font-family:var(--mono);white-space:nowrap}.cal-bar-edit{flex-shrink:0;align-self:flex-start;margin:-1px -4px 0 0;border:none;background:transparent;color:var(--ink-mute);width:26px;height:26px;border-radius:8px;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .14s var(--ease),background .13s var(--ease),color .13s var(--ease)}.cal-bar:hover .cal-bar-edit{opacity:1}.cal-bar-edit:hover{background:rgba(26,26,24,.06);color:var(--ink)}.cal-bar-edit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(8px);background:var(--ink);color:#fbfaf6;font-size:12.5px;font-weight:600;padding:12px 20px;border-radius:9999px;box-shadow:var(--shadow-lg);z-index:50;opacity:0;transition:opacity .2s var(--ease),transform .2s var(--ease)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{background:var(--danger);color:#fff}.banner{margin:0 28px 8px;background:var(--danger-soft);border:none;color:#b4282c;font-size:12.5px;padding:12px 16px;border-radius:var(--radius-sm);font-family:var(--mono);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;inset:0;background:rgba(26,26,24,.28);z-index:100}.modal{position:fixed;top:96px;left:50%;transform:translateX(-50%);width:384px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);animation:rise .2s var(--ease) both}.modal.moved{transform:none}.modal.modal-wide{width:560px}.modal.modal-center{top:50%;left:50%;transform:translate(-50%,-50%);animation:riseCenter .2s var(--ease) both}.modal.modal-center.moved{transform:none;animation:none}@keyframes riseCenter{0%{opacity:0;transform:translate(-50%,calc(-50% + 8px))}to{opacity:1;transform:translate(-50%,-50%)}}.modal-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 12px 16px;cursor:-webkit-grab;cursor:grab;border-bottom:1px solid var(--border);-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal-bar:active{cursor:-webkit-grabbing;cursor:grabbing}.modal-title{font-family:var(--display);font-weight:800;font-size:13px;color:var(--ink)}.modal-close{border:none;background:transparent;cursor:pointer;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--ink-mute)}.modal-close:hover{background:rgba(26,26,24,.06);color:var(--ink)}.modal-close svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.modal-body{padding:14px 16px 16px}.modal.import-modal{width:880px}.imp{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px;align-items:start}.imp-col{display:flex;flex-direction:column;gap:8px;min-width:0}.imp-text{width:100%;height:300px;resize:vertical;outline:none;font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--ink);border:1.5px solid var(--border);background:#fbfaf6;border-radius:var(--radius-xs);padding:12px;transition:border-color .13s var(--ease),background .13s var(--ease)}.imp-text:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.imp-help{display:flex;flex-direction:column;gap:5px}.imp-help p{margin:0;font-size:12px;line-height:1.5;color:var(--ink-soft)}.imp-help code{font-family:var(--mono);font-size:11px;color:var(--ink);background:#f1f0ea;padding:1px 5px;border-radius:4px}.imp-help-note{color:var(--ink-mute)!important}.imp-preview-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.imp-summary{font-family:var(--mono);font-size:11px;color:var(--green-ink);background:var(--green-soft);padding:3px 9px;border-radius:9999px}.imp-preview{height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:var(--canvas);border-radius:var(--radius-xs);padding:12px}.imp-empty{margin:auto;text-align:center;font-size:12.5px;color:var(--ink-mute)}.imp-block{background:var(--surface);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow-sm)}.imp-block-head{display:flex;align-items:center;gap:8px;margin-bottom:7px}.imp-ver{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink)}.imp-ver.none{color:var(--ink-mute);font-weight:500}.imp-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#f1f0ea;padding:2px 7px;border-radius:6px}.imp-badge.new{color:var(--green-ink);background:var(--green-soft)}.imp-badge svg{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.imp-task{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:4px 0;font-size:12.5px;color:var(--ink)}.imp-task+.imp-task{border-top:1px solid rgba(26,26,24,.05)}.imp-task-title{flex:1 1;min-width:0;overflow-wrap:anywhere}.imp-tag{flex-shrink:0;font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:9999px}.imp-tag.date{background:#f1f0ea;color:var(--ink-soft)}.imp-tag.bug{background:var(--danger);color:#fff;text-transform:uppercase;letter-spacing:.04em;font-size:9px}.imp-skipped{background:var(--danger-soft);border-radius:10px;padding:10px 12px}.imp-skipped-head{font-family:var(--display);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#b4282c;margin-bottom:6px}.imp-skip{display:flex;gap:8px;font-family:var(--mono);font-size:11px;color:#8a2e30;padding:2px 0}.imp-skip-n{flex-shrink:0;opacity:.6;min-width:18px;text-align:right}.imp-skip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.imp-actions{margin-top:16px}.whatsnew-modal{width:440px;max-width:calc(100vw - 32px)}.whatsnew-intro{font-size:13px;color:var(--ink-soft);margin:0 0 12px}.whatsnew-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.whatsnew-list li{position:relative;padding-left:17px;font-size:13px;line-height:1.45;color:var(--ink)}.whatsnew-list li:before{content:"";position:absolute;left:3px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.whatsnew-list strong{font-weight:700}.whatsnew-body{color:var(--ink-soft)}.whatsnew .edit-actions{margin-top:18px}.legal{min-height:100%;display:flex;flex-direction:column;background:var(--canvas)}.legal-nav{display:flex;align-items:center;gap:12px;width:100%;max-width:760px;margin:0 auto;padding:20px 24px}.legal-nav .brand{display:inline-flex;align-items:center}.legal-nav .btn{margin-left:auto}.legal-main{width:100%;max-width:720px;margin:0 auto;padding:8px 24px 56px}.legal-title{font-family:var(--display);font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:12px 0 4px}.legal-updated{font-size:12.5px;color:var(--ink-mute);margin:0 0 28px}.legal-prose{color:var(--ink);font-size:15px;line-height:1.65}.legal-prose h2{font-family:var(--display);font-size:17px;font-weight:800;color:var(--ink);margin:30px 0 8px}.legal-prose p{margin:0 0 14px}.legal-prose ul{margin:0 0 14px;padding-left:22px;display:flex;flex-direction:column;gap:8px}.legal-prose li{line-height:1.6}.legal-prose a{color:#4b43b5;text-decoration:underline}.legal-footer{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px 10px;justify-content:center;align-items:center;padding:22px;border-top:1px solid var(--border);font-size:13px;color:var(--ink-mute)}.legal-footer a{color:var(--ink-soft);text-decoration:none}.legal-footer a:hover{color:var(--ink);text-decoration:underline}.acct{position:relative}.acct-btn{display:inline-flex;align-items:center;gap:5px;border:none;background:transparent;cursor:pointer;padding:3px 5px 3px 3px;border-radius:999px;transition:background .13s var(--ease)}.acct-btn:hover{background:rgba(26,26,24,.05)}.acct-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--display);font-weight:800;font-size:13px;display:grid;place-items:center}.acct-chevron{width:13px;height:13px;fill:none;stroke:var(--ink-mute);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s var(--ease)}.acct.open .acct-chevron{transform:rotate(180deg)}.acct-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:212px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:6px;z-index:60;animation:rise .14s var(--ease) both}.acct-menu form{margin:0}.acct-id{padding:6px 10px 8px}.acct-name{font-size:13px;font-weight:700;color:var(--ink)}.acct-email,.acct-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-email{font-size:11.5px;color:var(--ink-mute)}.notif{position:relative;display:inline-flex}.notif-pop{left:0;top:calc(100% + 10px);width:232px;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:12px 14px;z-index:60;animation:rise .14s var(--ease) both}.notif-pop,.notif-pop:before{position:absolute;background:var(--surface)}.notif-pop:before{content:"";top:-6px;left:15px;width:11px;height:11px;border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}.notif--right .notif-pop{left:auto;right:0}.notif--right .notif-pop:before{left:auto;right:15px}.notif-pop-title{font-family:var(--display);font-weight:800;font-size:13px;color:var(--ink);margin-bottom:4px}.notif-pop-body{font-size:12.5px;line-height:1.5;color:var(--ink-soft);margin:0}.notif-pop-body strong{color:var(--ink)}.notif-btn{position:relative}.notif-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:9999px;background:var(--accent);border:1.5px solid var(--surface)}.notif-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.notif-toggle-label{font-size:12.5px;color:var(--ink)}.notif-pop-link{display:inline-block;margin-top:10px;font-size:12px;color:var(--ink-soft);text-decoration:none}.notif-pop-link:hover{color:var(--ink);text-decoration:underline}.acct-item{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:9px 10px;border:none;background:transparent;border-radius:10px;font-family:var(--sans);font-size:13.5px;color:var(--ink);text-decoration:none;cursor:pointer;text-align:left}.acct-item:hover{background:rgba(26,26,24,.05)}.acct-item svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.acct-item.danger{color:#c0282c}.acct-item.danger:hover{background:var(--danger-soft)}.acct-sep{height:1px;background:var(--border);margin:6px 4px}.settings-page{--set-top:84px;min-height:100%;display:flex;flex-direction:column;background:var(--canvas)}.set-wrap{width:100%;max-width:1360px;margin:0 auto;padding:0 28px 96px}.set-head{padding:26px 0 0}.set-crumb{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-title{font-family:var(--display);font-weight:800;font-size:clamp(34px,5vw,52px);line-height:.95;letter-spacing:-.04em;color:var(--ink);margin:12px 0 0}.set-lede{font-size:14.5px;line-height:1.6;color:var(--ink-soft);max-width:54ch;margin:14px 0 0}.set-rule{height:1px;background:rgba(26,26,24,.09);margin-top:28px}.set-layout{display:grid;grid-template-columns:200px 1fr;grid-gap:48px;gap:48px;align-items:start;margin-top:32px}.set-side{position:-webkit-sticky;position:sticky;top:var(--set-top)}.set-side-list{list-style:none;display:flex;flex-direction:column;gap:2px;margin:0;padding:0}.set-side-link{display:flex;align-items:center;gap:11px;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ink-soft);text-decoration:none;padding:9px 12px;border-radius:11px;transition:background .14s var(--ease),color .14s var(--ease)}.set-side-link .idx{font-size:11px;color:var(--ink-mute);transition:color .14s var(--ease)}.set-side-link:hover{background:rgba(26,26,24,.05);color:var(--ink)}.set-side-link.on{background:var(--ink);color:#fff}.set-side-link.on .idx{color:var(--accent)}.set-side-rule{height:1px;background:var(--border);margin:14px 8px}.set-side-tip{font-size:11.5px;line-height:1.6;color:var(--ink-mute);padding:0 12px;margin:0}.set-side-tip b{color:var(--ink-soft);font-weight:700}.set-section{scroll-margin-top:var(--set-top);margin-bottom:38px}.set-section:last-child{margin-bottom:0}.set-eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:14px}.set-eyebrow:after{content:"";flex:1 1;height:1px;background:rgba(26,26,24,.07)}.set-card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden}.set-card.danger{background:linear-gradient(180deg,var(--surface),#fdf4f3)}.set-row{padding:22px 24px}.set-row+.set-row{border-top:1px solid rgba(26,26,24,.06)}.set-rowhead{display:flex;align-items:center;gap:18px}.set-rowtext{flex:1 1;min-width:0}.btn.set-action{flex-shrink:0;min-width:168px;justify-content:center;white-space:nowrap}.set-h3{font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:-.01em;color:var(--ink);display:flex;align-items:center;gap:9px;margin:0}.set-h3.danger{color:#b4282c}.set-desc{font-size:13px;line-height:1.55;color:var(--ink-soft);max-width:62ch;margin:6px 0 0}.set-badge{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:#8a6300;background:var(--accent-soft);padding:2px 7px;border-radius:6px}.set-confirm{display:flex;align-items:center;gap:8px;flex-shrink:0}.set-warn{margin-bottom:14px;padding:11px 14px;border-radius:var(--radius-xs);background:var(--danger-soft);color:#8a2e30;font-size:12.5px;line-height:1.5}.set-warn code{font-family:var(--mono);font-size:11.5px}.set-label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:9px}.set-inputline{display:flex;gap:10px;max-width:620px}.set-input{width:100%;min-width:0;font-family:var(--sans);font-size:14px;color:var(--ink);background:#fbfaf6;border:1.5px solid var(--border);border-radius:var(--radius-xs);padding:10px 12px;outline:none;transition:border-color .13s var(--ease),background .13s var(--ease),box-shadow .13s var(--ease)}.set-inputline .set-input{flex:1 1}.set-input.mono{font-family:var(--mono);font-size:13px}.set-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.set-hint{font-size:12px;line-height:1.5;color:var(--ink-mute);margin:9px 0 0}.set-hint b{color:var(--ink-soft);font-weight:600}.set-hint code{font-family:var(--mono);font-size:11px;color:var(--ink-soft);background:#f1f0ea;padding:1px 5px;border-radius:4px}.set-metarow{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.set-meta{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);background:#fbfaf6;border:1px solid var(--border);border-radius:9999px;padding:6px 12px}.set-meta svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--ink-mute)}.set-links{display:flex;flex-direction:column}.set-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;transition:color .13s var(--ease)}.set-link+.set-link{border-top:1px solid rgba(26,26,24,.06)}.set-link:hover{color:#4b43b5}.set-link svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--ink-mute)}.set-link:hover svg{color:#4b43b5}.set-builder{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,528px);grid-gap:24px;gap:24px;align-items:start;transition:opacity .16s var(--ease)}.set-builder.off{opacity:.45;pointer-events:none;filter:grayscale(.3)}.set-form{display:flex;flex-direction:column;gap:18px}.set-savebar{display:flex;justify-content:flex-end;gap:10px}.set-projlist{display:flex;flex-direction:column}.set-proj{display:flex;align-items:center;gap:11px;padding:12px 0}.set-proj:first-child{padding-top:2px}.set-proj:last-child{padding-bottom:0}.set-proj+.set-proj{border-top:1px solid rgba(26,26,24,.06)}.set-swatch{flex-shrink:0;width:10px;height:10px;border-radius:3px;background:var(--p-ink,var(--ink-mute))}.set-proj-name{font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-proj-count{font-family:var(--mono);font-size:11px;color:var(--ink-mute)}.set-proj-spacer{flex:1 1}.set-flag{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#f1f0ea;padding:2px 7px;border-radius:6px}.set-chips{display:flex;flex-wrap:wrap;gap:9px}.set-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-soft);background:#fbfaf6;border:1.5px solid var(--border);border-radius:9999px;padding:7px 14px 7px 11px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease)}.set-chip .dot{width:9px;height:9px;border-radius:50%;background:#d9d5c8;transition:background .14s var(--ease)}.set-chip:hover{border-color:var(--ink-mute)}.set-chip:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.set-chip[aria-pressed=true]{color:var(--ink)}.set-chip[data-key=overdue][aria-pressed=true]{background:var(--danger-soft);border-color:#f0c9ca;color:#b4282c}.set-chip[data-key=overdue][aria-pressed=true] .dot{background:var(--danger)}.set-chip[data-key=today][aria-pressed=true]{background:var(--accent-soft);border-color:#f0e4b0;color:#8a6300}.set-chip[data-key=today][aria-pressed=true] .dot{background:#e6b400}.set-chip[data-key=upcoming][aria-pressed=true]{background:var(--green-soft);border-color:#c6e0ae;color:var(--green-ink)}.set-chip[data-key=upcoming][aria-pressed=true] .dot{background:var(--green)}.set-days{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.set-day{width:38px;height:38px;flex-shrink:0;border-radius:9999px;cursor:pointer;border:1.5px solid var(--border);background:#fbfaf6;font-family:var(--display);font-size:13px;font-weight:800;color:var(--ink-mute);transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease)}.set-day:hover{border-color:var(--ink-mute);color:var(--ink)}.set-day.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.set-day:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.set-day-presets{display:flex;gap:6px;margin-left:6px}.set-preset{border:none;cursor:pointer;background:#f1f0ea;color:var(--ink-soft);font-family:var(--sans);font-size:12px;font-weight:700;padding:8px 13px;border-radius:9999px;transition:background .13s var(--ease),color .13s var(--ease)}.set-preset:hover{background:#e9e7de;color:var(--ink)}.set-preset.on{background:var(--ink);color:#fff}.set-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));grid-gap:9px;gap:9px}.set-mode{display:flex;flex-direction:column;gap:2px;text-align:left;cursor:pointer;border:1.5px solid var(--border);background:#fbfaf6;border-radius:var(--radius-xs);padding:12px 14px;transition:border-color .14s var(--ease),background .14s var(--ease),box-shadow .14s var(--ease)}.set-mode:hover{border-color:var(--ink-mute)}.set-mode.on{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.set-mode-name{font-family:var(--display);font-size:14px;font-weight:800;color:var(--ink)}.set-mode-hint{font-size:12px;line-height:1.4;color:var(--ink-mute)}.set-sample{flex-wrap:wrap;margin-top:16px;background:var(--canvas);border-radius:var(--radius-xs);padding:12px 14px;overflow-x:auto}.set-sample,.set-sample-isle{display:flex;align-items:center;gap:6px}.set-sample-sep{width:1px;height:18px;margin:0 5px;background:rgba(26,26,24,.16)}.set-sample-label{font-family:var(--display);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:var(--p-bg,#f1f0ea);color:var(--p-ink,var(--ink-soft));padding:3px 8px;border-radius:6px;white-space:nowrap}.set-sample-tab{font-size:12px;font-weight:700;color:var(--ink-soft);background:var(--surface);box-shadow:var(--shadow-sm);padding:5px 12px;border-radius:9999px;white-space:nowrap}.set-pick{display:flex;flex-wrap:wrap;gap:8px}.set-pickopt{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:1.5px solid var(--border);background:#fbfaf6;color:var(--ink-soft);font-family:var(--sans);font-size:13px;font-weight:600;padding:8px 15px;border-radius:9999px;transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease)}.set-pickopt:hover{border-color:var(--ink-mute);color:var(--ink)}.set-pickopt.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.set-pickopt:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.set-pickopt svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.set-grouplist{display:flex;flex-direction:column;gap:8px}.set-group{display:flex;align-items:center;gap:11px;background:#fbfaf6;border-radius:var(--radius-xs);padding:9px 11px}.set-group .set-swatch{width:12px;height:12px;border-radius:4px}.set-group-name{flex:1 1;min-width:0;background:var(--surface)}.set-group-colors{display:flex;gap:5px;flex-shrink:0}.set-group-colors .color-opt{width:18px;height:18px;border-width:2px}.set-grouppick{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.set-gopt{border:2px solid transparent;cursor:pointer;background:var(--p-bg,#f1f0ea);color:var(--p-ink,var(--ink-soft));font-family:var(--mono);font-size:11px;font-weight:600;padding:5px 11px;border-radius:9999px;transition:border-color .13s var(--ease),transform .1s var(--ease)}.set-gopt:hover{transform:translateY(-1px)}.set-gopt.on{border-color:var(--ink)}.set-inline{display:flex;align-items:center}.set-stepper{display:inline-flex;align-items:stretch;background:#fbfaf6;border:1.5px solid var(--border);border-radius:var(--radius-xs);overflow:hidden}.set-stepper button{width:38px;height:40px;border:none;background:transparent;color:var(--ink-soft);font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .13s var(--ease),color .13s var(--ease)}.set-stepper button:hover:not(:disabled){background:#f1f0ea;color:var(--ink)}.set-stepper button:disabled{opacity:.35;cursor:not-allowed}.set-stepper .val{width:46px;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:14.5px;color:var(--ink);border-left:1.5px solid var(--border);border-right:1.5px solid var(--border)}.set-unit{font-size:13px;color:var(--ink-soft);margin-left:12px}.set-preview-wrap{position:-webkit-sticky;position:sticky;top:var(--set-top)}.set-pv-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.set-live{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--green-ink)}.set-live i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:beat 1.8s infinite}@keyframes beat{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.set-live i{animation:none}}.set-mail{background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-lg)}.set-mail-chrome{display:flex;gap:6px;padding:11px 14px;background:#fbfaf6;border-bottom:1px solid var(--border)}.set-mail-chrome i{width:9px;height:9px;border-radius:9999px;background:#e6e3da}.set-mail-subj{padding:11px 14px;border-bottom:1px solid var(--border)}.set-mail-subj .k{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute)}.set-mail-subj .v{font-family:var(--mono);font-size:12.5px;font-weight:500;color:var(--ink);margin-top:3px;overflow-wrap:anywhere}.set-frame{width:100%;height:560px;border:0;display:block;background:var(--canvas)}.set-mail-empty{padding:44px 20px;text-align:center;font-size:12.5px;line-height:1.6;color:var(--ink-mute);background:var(--canvas)}.set-mobnav{display:none}@media (max-width:1120px){.set-builder{grid-template-columns:minmax(0,1fr)}.set-preview-wrap{position:static}.set-frame{height:520px}}@media (max-width:900px){.set-layout{grid-template-columns:1fr;gap:0;margin-top:4px}.set-side{display:none}.set-mobnav{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:22px -28px 0;padding:0 28px}.set-mobnav::-webkit-scrollbar{display:none}.set-mobnav-link{flex-shrink:0;font-family:var(--mono);font-size:12px;color:var(--ink-soft);text-decoration:none;background:var(--surface);box-shadow:var(--shadow-sm);padding:8px 14px;border-radius:9999px;white-space:nowrap}.set-mobnav-link.on{background:var(--ink);color:#fff}}.seg{display:inline-flex;gap:4px;background:#f1f0ea;border-radius:12px;padding:4px;width:-moz-fit-content;width:fit-content}.seg-opt{border:none;background:transparent;padding:7px 14px;border-radius:9px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:background .13s var(--ease),color .13s var(--ease)}.seg-opt.active,.seg-opt:hover{color:var(--ink)}.seg-opt.active{background:var(--surface);box-shadow:var(--shadow-sm)}.home{min-height:100%;display:flex;flex-direction:column}.home-top{gap:12px;padding:16px 28px;background:var(--canvas);border-bottom:1px solid rgba(26,26,24,.06);position:-webkit-sticky;position:sticky;top:0;z-index:20}.home-head,.home-top{display:flex;align-items:center}.home-head{gap:16px;padding:32px 28px 18px}.home-title{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.03em;margin:0}.home-head .ic{width:13px;height:13px}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));grid-gap:16px;gap:16px;padding:6px 28px 48px;align-items:start}.proj-card{position:relative;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);transition:box-shadow .16s var(--ease),transform .13s var(--ease)}.proj-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.proj-open{display:block;padding:20px 20px 22px;text-decoration:none}.proj-mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;margin-bottom:14px;font-size:16px;letter-spacing:-.01em;background:var(--p-bg,var(--accent-soft));color:var(--p-ink,var(--ink))}.proj-mark,.proj-name{font-family:var(--display);font-weight:800}.proj-name{font-size:18px;letter-spacing:-.02em;color:var(--ink);margin:0 0 4px;word-break:break-word}.proj-meta{font-family:var(--mono);font-size:11.5px;color:var(--ink-mute);margin:0}.proj-actions{position:absolute;top:12px;right:12px;z-index:1;display:flex;gap:2px}.proj-actions button{border:none;background:transparent;color:var(--ink-mute);width:30px;height:30px;border-radius:8px;cursor:pointer;display:grid;place-items:center;opacity:.5;transition:opacity .14s var(--ease),background .14s var(--ease),color .14s var(--ease),transform .14s var(--ease)}.proj-card:hover .proj-actions button{opacity:1}.proj-actions button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.proj-menu-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.proj-menu-btn:hover{background:rgba(26,26,24,.06);color:var(--ink)}.proj-fav svg{width:17px;height:17px;stroke-width:1.6;stroke-linejoin:round}.proj-fav.on{opacity:1;color:#e6b400}.proj-fav:hover{background:rgba(230,180,0,.14);color:#e6b400;transform:scale(1.08)}.proj-fav.on svg{fill:#e6b400}.proj-menu{position:absolute;top:46px;right:12px;z-index:5;min-width:156px;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);animation:rise .14s var(--ease) both}.proj-menu button{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;color:var(--ink);font-family:var(--sans);font-size:13px;font-weight:700;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer;transition:background .13s var(--ease),color .13s var(--ease)}.proj-menu button:hover{background:var(--canvas)}.proj-menu button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.proj-menu button.danger{color:var(--danger)}.del-name,.proj-menu button.danger:hover{background:var(--danger-soft)}.del-name{font-family:var(--mono);color:#b4282c;padding:1px 7px;border-radius:6px}.proj-open.editing{cursor:default}.proj-rename{width:100%;font-size:18px;letter-spacing:-.02em;color:var(--ink);border:1.5px solid var(--accent);background:var(--surface);border-radius:9px;padding:5px 9px;margin:0 0 4px;outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.home-section,.proj-rename{font-family:var(--display);font-weight:800}.home-section{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:8px 0 0;padding:0 28px}.home-section.muted{color:var(--ink-mute);margin-top:22px}.home-section-ic{width:15px;height:15px;fill:#e6b400;stroke:#e6b400;stroke-width:1.4;stroke-linejoin:round}.auth-screen{min-height:100%;display:grid;place-items:center;padding:40px 20px}.auth-card{width:100%;max-width:392px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:40px 38px 44px}.auth-brand{gap:12px;margin-bottom:4px}.auth-brand h1{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;margin:0}.auth-logo{color:var(--ink);display:block;margin-bottom:24px}.auth-sub{color:var(--ink-soft);font-size:13.5px;line-height:1.55;margin:0 0 30px}.auth-sub.tight{margin-bottom:16px}.auth-alt{align-self:center;width:auto}.auth-form{gap:18px}.auth-form,.auth-form form{display:flex;flex-direction:column}.auth-form form{gap:14px;margin:0}.btn.google{background:var(--surface);box-shadow:var(--shadow-sm);justify-content:center;padding:11px;font-weight:700;width:100%}.btn.google:hover{box-shadow:var(--shadow)}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--ink-mute);font-size:11px}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.auth-input{font-family:var(--sans);font-size:14px;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--radius-xs);background:#fbfaf6;outline:none;width:100%}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-submit{justify-content:center;width:100%;padding:11px}.auth-error{color:var(--danger);font-size:12.5px;margin:4px 0 0}.auth-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--ink-soft);cursor:pointer;text-align:left;margin:2px 0}.auth-consent input{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:1px 0 0;width:18px;height:18px;flex-shrink:0;border:1.5px solid var(--border);border-radius:6px;background:#fbfaf6;cursor:pointer;position:relative;transition:background .12s var(--ease),border-color .12s var(--ease)}.auth-consent input:hover{border-color:var(--ink-mute)}.auth-consent input:checked{background:var(--accent);border-color:var(--accent)}.auth-consent input:checked:after{content:"";position:absolute;left:5px;top:1.5px;width:5px;height:9px;border:solid var(--on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}.auth-consent input:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.auth-consent a{color:#4b43b5;text-decoration:underline}.auth-switch{text-align:center;font-size:13px;color:var(--ink-soft);margin:2px 0 0}.auth-switch a{color:#4b43b5;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.btn:disabled{opacity:.5;cursor:not-allowed}.auth-legal{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;margin-top:22px;font-size:12px}.auth-legal a{color:var(--ink-mute);text-decoration:none}.auth-legal a:hover{color:var(--ink-soft);text-decoration:underline}.auth-codenote{color:var(--ink-soft);font-size:13px;margin:0}.auth-codenote strong{color:var(--ink)}.otp{display:flex;gap:8px;justify-content:center}.otp-box{width:44px;height:54px;text-align:center;font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink);border:1.5px solid var(--border);background:#fbfaf6;border-radius:10px;outline:none;transition:border-color .13s var(--ease),box-shadow .13s var(--ease),background .13s var(--ease)}.otp-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.auth-sent{text-align:center;color:var(--ink-soft);font-size:14px;display:flex;flex-direction:column;gap:14px;align-items:center}.lp{min-height:100%}.lp-nav{display:flex;align-items:center;gap:10px;padding:18px 28px;max-width:1080px;margin:0 auto}.lp-hero{max-width:880px;margin:0 auto;padding:44px 28px 16px;text-align:center}.lp-tag{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--surface);padding:6px 13px;border-radius:9999px;box-shadow:var(--shadow-sm)}.lp-h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,6vw,58px);line-height:1.04;letter-spacing:-.035em;margin:22px 0 0;color:var(--ink)}.lp-sub{font-size:16px;line-height:1.6;color:var(--ink-soft);max-width:620px;margin:18px auto 0}.lp-cta{margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:12px}.lp-big{font-size:15px;padding:14px 28px}.lp-note{font-size:12.5px;color:var(--ink-mute)}.lp-mock{max-width:740px;margin:48px auto 0;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:18px;text-align:left}.lp-mock-bar{display:flex;gap:7px;padding:2px 4px 14px}.lp-mock-bar span{width:11px;height:11px;border-radius:9999px;background:#e6e3da}.lp-mock-cols{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.lp-mc{border-radius:14px;padding:12px}.lp-mc.todo{background:var(--col-todo)}.lp-mc.prog{background:var(--col-prog)}.lp-mc.done{background:var(--col-done)}.lp-mc b{font-family:var(--display);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);display:block;margin-bottom:10px}.lp-mcard{background:#fff;border-radius:10px;padding:10px 11px;font-size:12px;font-weight:700;color:var(--ink);box-shadow:var(--shadow-sm);margin-bottom:8px;display:flex;flex-direction:column;gap:8px}.lp-mcard.bug{background:#f09595}.lp-pill{align-self:flex-start;font-family:var(--mono);font-size:9.5px;font-weight:600;padding:3px 8px;border-radius:9999px;background:#d8e8fd;color:#1e5fa8;font-style:normal}.lp-pill.g{background:#dcefcb;color:#356b2e}.lp-pill.bug{background:#e5484d;color:#fff}.lp-features{max-width:1000px;margin:64px auto 0;padding:0 28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(278px,1fr));grid-gap:18px;gap:18px}.lp-feature{background:var(--surface);border-radius:var(--radius-sm);padding:24px;box-shadow:var(--shadow-sm)}.lp-fbar{display:block;width:34px;height:6px;border-radius:3px;margin-bottom:16px}.lp-feature h3{font-family:var(--display);font-weight:800;font-size:16.5px;letter-spacing:-.01em;margin:0 0 8px;color:var(--ink)}.lp-feature p{font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin:0}.lp-faq{max-width:760px;margin:80px auto 0;padding:0 28px}.lp-faq .lp-h2{text-align:center;margin-bottom:26px}.lp-faq-list{display:grid;grid-gap:12px;gap:12px}.lp-faq-item{background:var(--surface);border-radius:var(--radius-sm);padding:20px 22px;box-shadow:var(--shadow-sm)}.lp-faq-item h3{font-family:var(--display);font-weight:800;font-size:15px;margin:0 0 6px;color:var(--ink)}.lp-faq-item p{font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin:0}.lp-final{max-width:680px;margin:72px auto 0;padding:48px 28px;text-align:center}.lp-h2{font-family:var(--display);font-weight:800;font-size:clamp(26px,4vw,38px);letter-spacing:-.03em;margin:0 0 10px;color:var(--ink)}.lp-final .lp-big{margin-top:22px}.nowrap{white-space:nowrap}.lp-footer{margin-top:84px;border-top:1px solid rgba(26,26,24,.08);padding:40px 28px 60px}.lp-footer-inner{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px 28px;flex-wrap:wrap}.lp-footer-brand{display:flex;align-items:center;gap:12px;color:var(--ink-soft);font-size:13px}.lp-footer-brand .brand-logo-full{color:var(--ink)}.lp-footer-made{color:var(--ink-soft);font-size:13px;text-decoration:none}.lp-footer-made strong{color:var(--ink);font-weight:700}.lp-footer-made:hover{color:var(--ink)}.lp-footer-made:hover strong{text-decoration:underline}.lp-footer-legal{display:flex;flex-wrap:wrap;gap:8px 18px}.lp-footer-legal a{color:var(--ink-soft);font-size:13px;text-decoration:none}.lp-footer-legal a:hover{color:var(--ink);text-decoration:underline}@media (max-width:920px){.board{grid-template-columns:1fr}.topbar{flex-wrap:wrap;gap:14px}.projects{order:3;width:100%}.lp-mock-cols{grid-template-columns:1fr}}@media (max-width:720px){*{-webkit-tap-highlight-color:transparent}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.project-meta{display:none}.m-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;flex-shrink:0;background:var(--canvas);border-bottom:1px solid rgba(26,26,24,.06);padding-top:env(safe-area-inset-top)}.m-topbar-row{display:flex;align-items:center;gap:8px;padding:13px 12px 10px}.m-topbar .brand{flex-shrink:0}.m-proj{flex:0 1 auto;min-width:0;max-width:62%;display:flex;align-items:center;gap:6px;border:none;background:var(--surface);box-shadow:var(--shadow-sm);border-radius:9999px;padding:10px 14px;font-family:var(--display);font-weight:800;color:var(--ink);cursor:pointer}.m-proj-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:15px}.m-proj .ic{width:13px;height:13px;flex-shrink:0}.m-menu{flex-shrink:0;width:40px;height:40px;background:var(--surface);box-shadow:var(--shadow-sm)}.m-menu svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.m-topbar .save-state{min-width:0;flex-shrink:0;font-size:15px;line-height:1}.m-topbar-row2{display:flex;padding:0 12px 13px}.m-topbar-row2 .view-toggle{display:flex;width:100%}.m-topbar-row2 .view-opt{flex:1 1;justify-content:center;padding:10px}.version-bar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding:18px 14px 8px;gap:7px;flex-shrink:0;background:var(--canvas);scrollbar-width:none;-webkit-overflow-scrolling:touch}.version-bar::-webkit-scrollbar{display:none}.version-bar>*{flex-shrink:0}.version-bar .type-filter{margin-left:4px;gap:5px;padding:0;background:transparent;box-shadow:none}.version-bar .tf-opt{background:var(--surface);box-shadow:var(--shadow-sm);padding:7px 13px;font-size:11.5px}.version-bar .tf-opt.active{background:var(--ink);color:#fff}.version-bar .tf-opt.bug.active{background:#e5484d;color:#fff}.board-pager{flex-shrink:0;display:flex;gap:6px;padding:6px 14px 14px}.pager-opt{flex:1 1;min-width:0;display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;border:none;background:var(--surface);box-shadow:var(--shadow-sm);border-radius:9999px;padding:10px 12px;font-family:var(--display);font-weight:800;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden}.pager-opt .dot{flex-shrink:0;width:8px;height:8px}.pager-count{margin-left:auto;font-family:var(--mono);font-size:10px;opacity:.7}.pager-opt.active{color:var(--ink)}.pager-opt.active[data-status=todo]{background:var(--col-todo)}.pager-opt.active[data-status=inprogress]{background:var(--col-prog)}.pager-opt.active[data-status=done]{background:var(--col-done)}.board{display:flex;grid-template-columns:none;gap:0;padding:0;align-items:stretch;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.board::-webkit-scrollbar{display:none}.board>.column{flex:0 0 100%;width:100%;scroll-snap-align:start;display:flex;flex-direction:column}.board>.column .column-body{flex:1 1;min-height:50dvh;border-radius:0;gap:12px;padding:14px 14px calc(28px + env(safe-area-inset-bottom))}.board>.column .add-card{display:none}.fab{position:fixed;z-index:40;right:18px;bottom:calc(20px + env(safe-area-inset-bottom));width:58px;height:58px;border:none;cursor:pointer;border-radius:20px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-lg);transition:transform .12s var(--ease)}.fab:active{transform:scale(.94)}.fab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.modal-overlay~.fab,.sheet-overlay~.fab{display:none}.card:hover,.column.drop-target{transform:none}.card:hover{box-shadow:var(--shadow)}.card-menu.m-visible{opacity:1}.card-meta{margin-top:12px}.card-comment,.card-meta{padding-left:0}.auth-input,.card-edit .title,.card-edit input,.card-edit input.date,.card-edit input.version,.card-edit textarea,.modal-form-input,.pop-rename{font-size:16px}.date-row{gap:0}.date-row .date-field{min-width:0}.date-row .date-field:first-child .date-btn{border-top-right-radius:0;border-bottom-right-radius:0}.date-row .date-field:last-child .date-btn{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:transparent}.agenda{overflow-x:hidden;display:flex;flex-direction:column;padding:0 14px calc(28px + env(safe-area-inset-bottom))}.agenda-head{display:flex;align-items:center;gap:10px;margin:0 -14px 6px;padding:12px 14px;background:var(--canvas);border-bottom:1px solid rgba(26,26,24,.06)}.agenda-head .cal-title{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em}.ag-section{margin-bottom:10px}.ag-section-head{display:flex;align-items:center;gap:8px;padding:8px 2px;font-family:var(--display);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.ag-section.overdue .ag-section-head{color:var(--danger)}.ag-section-count{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink-mute);background:rgba(26,26,24,.05);padding:1px 8px;border-radius:9999px}.ag-list{display:flex;flex-direction:column;gap:10px}.ag-card{display:flex;align-items:flex-start;gap:11px;background:var(--surface);border-radius:var(--radius-sm);padding:14px;box-shadow:var(--shadow-sm)}.ag-card.is-bug{background:#f09595;box-shadow:none}.ag-card.is-bug.done{background:#e89999}.ag-card.done{background:#fafbf6}.ag-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:9px}.ag-title{border:none;background:transparent;text-align:left;padding:0;font-size:15px;font-weight:700;color:var(--ink);line-height:1.35;cursor:pointer;overflow-wrap:anywhere;word-break:break-word}.ag-card.done .ag-title{color:var(--ink-mute);text-decoration:line-through;-webkit-text-decoration-color:rgba(26,26,24,.35);text-decoration-color:rgba(26,26,24,.35)}.ag-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.ag-menu{flex-shrink:0;margin:-2px -4px 0 0}.ag-ms{display:flex;align-items:center;gap:9px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--p-bg);color:var(--p-ink);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.06)}.ag-ms.done{opacity:.55}.ag-ms svg{flex-shrink:0;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.ag-ms-name{flex:1 1;min-width:0;font-family:var(--mono);font-size:13.5px;font-weight:700;overflow-wrap:anywhere}.ag-ms-word{flex-shrink:0;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.modal-overlay.as-sheet{background:rgba(26,26,24,.4)}.as-sheet .modal{position:fixed;left:0;right:0;bottom:0;top:auto;transform:none;width:100%;max-width:100%;border-radius:20px 20px 0 0;max-height:90dvh;overflow-y:auto;animation:sheetUp .24s var(--ease) both;padding-bottom:env(safe-area-inset-bottom)}.as-sheet .modal-bar{cursor:default;position:-webkit-sticky;position:sticky;top:0;background:var(--surface);border-radius:20px 20px 0 0}.sheet-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;background:rgba(26,26,24,.4)}.sheet{width:100%;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:var(--shadow-lg);max-height:85dvh;overflow-y:auto;padding:8px 16px calc(16px + env(safe-area-inset-bottom));animation:sheetUp .24s var(--ease) both}.sheet-grip{width:40px;height:4px;border-radius:9999px;background:var(--border);margin:6px auto 10px}.sheet-title{font-family:var(--display);font-weight:800;font-size:15px;text-align:center;margin-bottom:10px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-body{display:flex;flex-direction:column;gap:6px}.sheet-section-label{font-family:var(--display);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute);margin:8px 2px 2px}.sheet-list,.sheet-moves{display:flex;flex-direction:column;gap:6px}.sheet-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:none;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:700;text-align:left;text-decoration:none;padding:14px 16px;border-radius:12px;cursor:pointer}.sheet-item:active{background:rgba(26,26,24,.06)}.sheet-item.active{box-shadow:inset 0 0 0 2px var(--accent)}.sheet-item-main{display:inline-flex;align-items:center;gap:11px;min-width:0}.sheet-item-main svg{flex-shrink:0;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--ink-mute)}.sheet-item-note{flex-shrink:0;font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink-mute)}.sheet-toggle{display:flex;align-items:center;gap:12px;background:var(--canvas);border-radius:12px;padding:12px 16px}.sheet-toggle-label{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px;font-size:15px;font-weight:700;color:var(--ink)}.sheet-toggle-label em{font-style:normal;font-size:12px;font-weight:500;line-height:1.4;color:var(--ink-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-item.danger{color:var(--danger);background:var(--danger-soft)}.sheet-item.done{color:var(--green-ink)}.sheet-item .count{font-family:var(--mono);font-size:11px;opacity:.6}.sheet-move{display:flex;align-items:center;gap:10px;width:100%;border:none;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:700;padding:13px 16px;border-radius:12px;cursor:pointer}.sheet-move .dot{width:10px;height:10px}.sheet-move.current{background:var(--accent-soft)}.sheet-move:disabled{cursor:default}.merge-trigger{padding:14px 16px}.merge-opt,.merge-trigger{font-size:15px;border-radius:12px}.merge-opt{padding:13px 16px}.merge-opt:hover{background:var(--canvas)}.merge-menu{max-height:244px}.sheet-check{margin-left:auto;color:var(--green-ink);font-weight:800}.sheet-rename{display:flex;flex-direction:column;gap:5px;margin-bottom:4px}.sheet-rename label{font-family:var(--display);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute)}.sheet-rename .auth-input{font-size:16px}.sheet .color-row{justify-content:space-between;padding:6px 0 12px}.sheet .color-opt{width:34px;height:34px}.home-top{gap:12px;padding:calc(16px + env(safe-area-inset-top)) 14px 14px;min-height:calc(74px + env(safe-area-inset-top))}.home-head{padding:20px 16px 14px;flex-wrap:wrap;gap:12px}.home-title{font-size:26px}.home-section{padding:0 16px}.home-grid{grid-template-columns:1fr;padding:6px 16px 40px;gap:12px}.proj-card:hover{transform:none}.proj-actions button{opacity:1}.set-wrap{padding:0 16px 56px}.set-head{padding-top:20px}.set-rule{margin-top:22px}.set-mobnav{margin:20px -16px 0;padding:0 16px}.set-row{padding:18px 16px}.set-input,.set-input.mono{font-size:16px}.set-inputline{flex-direction:column;align-items:stretch}.set-inputline .btn{justify-content:center}.set-rowhead{gap:12px;flex-wrap:wrap}.btn.set-action{min-width:0;width:100%}.set-confirm{width:100%}.set-confirm form,.set-confirm>.btn{flex:1 1}.set-confirm .btn{width:100%;justify-content:center}.set-frame{height:340px}.set-day{width:36px;height:36px}.set-day-presets{width:100%;margin:4px 0 0}.set-preset{flex:1 1}.set-modes{grid-template-columns:1fr}.set-group{flex-wrap:wrap}.set-group-name{flex:1 1 100%;order:-1}.set-grouppick{justify-content:flex-start;width:100%}.set-proj{flex-wrap:wrap}.imp{grid-template-columns:1fr}.imp-text{height:190px;font-size:16px}.imp-preview{height:230px}.auth-screen{padding:24px 16px}.auth-card{padding:32px 22px 34px}}@media (max-width:430px){.otp{gap:6px}.otp-box{width:40px;height:50px;font-size:20px}.auth-card{padding:28px 18px 30px}}