:root,html[data-theme=vice]{--bg: #0b0f2b;--bg-elevated: #101538;--bg-sidebar: #101538;--bg-card: #141a42;--bg-card-hover: #1a2154;--bg-input: #101538;--line: #2a3372;--line-strong: #333d80;--text: #f3f5ff;--text-muted: #c5cbf0;--text-faint: #aeb6e4;--accent: #bc6cff;--accent-2: #dcb3ff;--accent-dim: #2a1259;--accent-2-dim: rgba(188, 108, 255, .16);--on-accent: #1b0033;--nav-active: #dcb3ff;--danger: #ff7cbb;--warn: #ffb86b;--ok: #7cf3ff;--high: #ff7cbb;--med: #ffb86b;--low: #c5cbf0;--bar-track: #232c66;--radius: 10px;--radius-sm: 7px;--shadow: 0 18px 44px rgba(10, 13, 30, .22);--font: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--sidebar: 240px;--drawer: 320px;--topbar: 56px;--subnav: 48px;color-scheme:dark}html[data-theme=light]{color-scheme:light;--bg: #f4f5f6;--bg-elevated: #ffffff;--bg-sidebar: #ffffff;--bg-card: #ffffff;--bg-card-hover: #fafbfb;--bg-input: #ffffff;--line: #e2e5e8;--line-strong: #cfd3d7;--text: #14181d;--text-muted: #3a4149;--text-faint: #575e67;--accent: #8b2be2;--accent-2: #7a1fd0;--accent-dim: #f1e4ff;--accent-2-dim: #e7d4ff;--on-accent: #ffffff;--nav-active: #57109b;--danger: #bd0f61;--warn: #8a4f0a;--ok: #0a6272;--high: #bd0f61;--med: #8a4f0a;--low: #3a4149;--bar-track: #e9e2f6;--shadow: 0 18px 44px rgba(10, 13, 30, .12)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.app{display:grid;grid-template-columns:var(--sidebar) 1fr;grid-template-rows:var(--topbar) var(--subnav) 1fr;grid-template-areas:"sidebar topbar" "sidebar subnav" "sidebar main";min-height:100%}.app.has-drawer{grid-template-columns:var(--sidebar) 1fr var(--drawer);grid-template-areas:"sidebar topbar drawer" "sidebar subnav drawer" "sidebar main drawer"}.sidebar{grid-area:sidebar;background:var(--bg-sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 12px 12px;min-height:100vh;position:sticky;top:0}.brand-row{display:flex;align-items:flex-start;gap:4px;padding:0 0 16px}.brand{display:block;padding:0 4px 0 0;min-width:0;flex:1}.brand-logo{display:none;width:100%;height:auto;max-height:72px;object-fit:contain;object-position:left center}html[data-theme=vice] .brand-logo-dark,html[data-theme=light] .brand-logo-light{display:block}.brand-name{font-weight:600;font-size:15px;letter-spacing:-.03em}.brand-name span{color:var(--accent)}.team-switch{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);background:var(--bg-elevated);border-radius:var(--radius-sm);margin:0 4px 18px}.team-switch strong{display:block;font-size:13px;font-weight:600}.team-switch small{color:var(--text-muted);font-size:11px}.chev{color:var(--text-faint);font-size:11px}.nav-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:0 10px 6px}.nav-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--text-muted);margin-bottom:2px}.nav-item:hover{background:var(--bg-card);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--nav-active);box-shadow:inset 2px 0 0 var(--accent)}.nav-item .count{margin-left:auto;font-size:11px;color:var(--text-faint);font-family:var(--mono)}.sidebar-foot{margin-top:auto;padding:10px 8px 4px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.me-meta{min-width:0}.me-meta strong{display:block;font-size:13px}.me-meta small{color:var(--text-muted);font-size:11px}.avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;flex-shrink:0;color:#0c0e12}.avatar.lg{width:32px;height:32px;font-size:12px}.av-av{background:var(--accent-2-dim);color:var(--nav-active)}.av-mo{background:#5eead4}.av-kl{background:#fcd34d}.av-ds{background:#93c5fd}.av-empty{background:transparent;border:1px dashed var(--line-strong);color:var(--text-faint)}.avatars{display:flex}.avatars .avatar{margin-left:-6px;box-shadow:0 0 0 2px var(--bg-elevated)}.avatars .avatar:first-child{margin-left:0}.topbar{grid-area:topbar;display:flex;align-items:center;gap:16px;min-height:var(--topbar);padding:0 20px;border-bottom:1px solid var(--line);background:var(--bg)}.crumbs{display:flex;align-items:center;gap:8px;min-width:0}.crumbs .muted{color:var(--text-muted)}.crumbs h1{margin:0;font-size:15px;font-weight:600;letter-spacing:-.02em}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.live{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--text-muted);font-size:12px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px #7fd99a26}.presence-bar{padding:8px 16px 0}.presence{display:flex;align-items:center;gap:8px;margin-right:8px}.presence .avatars .avatar{box-shadow:0 0 0 2px var(--bg)}.presence-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-card);font-size:13px;font-weight:500;white-space:nowrap;flex-shrink:0}.btn:hover{background:var(--bg-card-hover)}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:600}.btn.primary:hover{filter:brightness(1.05)}.btn:disabled,.btn.primary:disabled{opacity:.45;filter:none;cursor:default;pointer-events:none}.btn.ghost{background:transparent}.btn.sm{height:28px;padding:0 9px;font-size:12px}.btn.danger{color:var(--danger);border-color:#f0717859}.btn.danger:hover{background:#f071781f}.subnav{grid-area:subnav;display:flex;align-items:center;gap:4px;min-height:var(--subnav);padding:0 16px;border-bottom:1px solid var(--line);background:var(--bg)}.subnav>.btn{margin-left:8px}.tab{height:48px;display:inline-flex;align-items:center;padding:0 12px;color:var(--text-muted);font-weight:500;border-bottom:2px solid transparent}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.board-pills{display:flex;gap:6px;margin-left:16px}.pill{height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--line);color:var(--text-muted);font-size:12px;display:inline-flex;align-items:center}.pill.active{background:var(--accent-2-dim);border-color:transparent;color:#c5d2ff}.search{margin-left:auto;height:30px;width:200px;border-radius:8px;border:1px solid var(--line);background:var(--bg-input);color:var(--text-muted);padding:0 10px;font:inherit;font-size:12px}.search:focus{outline:none;border-color:var(--accent);color:var(--text)}.board-search-bar,.task-search-bar{display:flex;align-items:center;gap:8px;padding:10px 16px 0;flex-shrink:0}.board-search-bar .search,.task-search-bar .search{margin-left:0;width:min(380px,100%);height:32px}.board-search-meta{font-size:12px;color:var(--text-muted);white-space:nowrap}.main{grid-area:main;min-width:0;min-height:0;overflow:auto}.board{display:flex;gap:12px;padding:16px;align-items:stretch;flex:1;min-height:0}.board-stack{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.board-stack.is-frozen{overflow:hidden;flex:none}.board-layer.is-live{flex:1;min-height:0;display:flex;flex-direction:column}.board-stack.has-cover .board-layer.is-live,.board-stack.has-cover .board-layer.is-cover{position:absolute;inset:0;display:flex;flex-direction:column;min-height:0;overflow:auto}.board-stack.has-cover .board-layer.is-live{z-index:1;pointer-events:none}.board-stack.has-cover .board-layer.is-cover{z-index:2;background:var(--bg);pointer-events:auto;cursor:wait}.board-stack.has-cover .board{flex:1;min-height:100%}.main.is-board-pending{position:relative}.board-switch-bar{position:absolute;top:0;left:0;right:0;z-index:4;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:board-switch-slide .9s linear infinite}@keyframes board-switch-slide{0%{background-position:-40% 0}to{background-position:140% 0}}@media(prefers-reduced-motion:reduce){.board-layer.is-cover{transition:none}.board-switch-bar{animation:none;background:var(--accent)}}.column{flex:1 1 0;min-width:198px;min-height:0;background:var(--bg-elevated);border:1px solid var(--line);border-top:3px solid var(--col-color, var(--line));border-radius:12px;display:flex;flex-direction:column}.column-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:12px 12px 8px;position:sticky;top:0;background:var(--bg-elevated)}.column-head h2{margin:0;font-size:13px;font-weight:600;white-space:nowrap;color:var(--col-color, var(--text))}.col-capped{font-size:11px;color:var(--text-faint)}.badge{font-family:var(--mono);font-size:11px;color:var(--text-faint);background:var(--bg);border-radius:999px;padding:1px 7px}.column-hours{flex:1 0 100%;margin-left:0;font-family:var(--mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.column-body{padding:4px 8px 12px;overflow:auto;display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}.column.is-over{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-dim)}.column.is-over .column-head{background:transparent}.column-body.is-over{background:transparent;border-radius:8px}.card{display:block;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:11px 12px 10px;box-shadow:0 1px #ffffff05 inset}.card.can-drag{cursor:grab;touch-action:none}.card.dragging{opacity:.35}.card-overlay{cursor:grabbing;box-shadow:var(--shadow);border-color:var(--accent)}.card:hover{background:var(--bg-card-hover);border-color:var(--line-strong)}.card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.card-title-row{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px}.card-title-row .card-title{margin:0;flex:1;min-width:0}.ver{font-family:var(--mono);font-size:11px;color:var(--text-faint);flex-shrink:0}.card-comments,.card-checklist{font-family:var(--mono);font-size:11px;color:var(--text-faint);flex-shrink:0;white-space:nowrap}.card-checklist.is-done{color:var(--ok)}.checklists-list{display:flex;flex-direction:column;gap:14px;margin-bottom:12px}.checklist-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.checklist-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.checklist-title{flex:1;min-width:0;border:none;background:transparent;font-weight:600;padding:2px 4px}.checklist-title:focus{outline:1px solid var(--accent);border-radius:4px}.checklist-progress{font-family:var(--mono);font-size:12px;color:var(--text-faint);flex-shrink:0}.checklist-items{display:flex;flex-direction:column;gap:4px}.checklist-item{display:flex;align-items:center;gap:8px}.checklist-item .check{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.checklist-item-text{flex:1;min-width:0;border:none;background:transparent;padding:2px 4px}.checklist-item-text:focus{outline:1px solid var(--accent);border-radius:4px}.checklist-item-text.is-checked{text-decoration:line-through;color:var(--text-faint)}.tabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 2px 10px;font-size:14px;font-weight:550;color:var(--text-faint);display:flex;align-items:center;gap:6px;cursor:pointer}.tab:hover{color:var(--text)}.tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.tab-count{font-family:var(--mono);font-size:11px;color:inherit;opacity:.75}.task-modal-tab-body{min-height:120px}.head-checklist-progress{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:4px 2px}.head-checklist-bar{width:64px;height:4px;border-radius:2px;background:var(--line);overflow:hidden;display:inline-block}.head-checklist-bar-fill{height:100%;background:var(--accent);border-radius:2px}.head-checklist-count{font-family:var(--mono);font-size:12px;color:var(--text-faint)}.head-checklist-progress:hover .head-checklist-count{color:var(--text)}.checklist-empty-state{text-align:center;padding:32px 16px}.checklist-empty-state h3{margin:0 0 8px}.checklist-empty-state .desc{max-width:420px;margin:0 auto 16px}.checklist-empty-hint{padding:4px 0}.checklist-collapse-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:12px;padding:0 2px;flex-shrink:0}.checklist-progress-bar{width:80px;height:4px;border-radius:2px;background:var(--line);overflow:hidden;flex-shrink:0}.checklist-progress-fill{height:100%;background:var(--accent)}.checklist-delete-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;flex-shrink:0}.checklist-delete-btn:hover{color:var(--danger)}.checklist-drag-handle{cursor:grab;color:var(--text-faint);flex-shrink:0;touch-action:none}.checklist-drag-handle.is-empty{width:12px}.checklist-item.is-readonly .check{opacity:.45}.checklist-title:disabled{opacity:.45}.checklist-item.dragging{opacity:.6}.checklist-item-meta-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.checklist-item-meta-row.is-muted{opacity:.6}.checklist-item-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-faint);white-space:nowrap;background:var(--bg-elevated);border:1px solid var(--line);border-radius:6px;padding:2px 6px}.checklist-item-chip button{background:none;border:none;color:inherit;cursor:pointer;padding:0;line-height:1}.checklist-item-chip.due-today{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.checklist-item-chip.due-overdue{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,var(--line))}.checklist-item-add-meta{background:none;border:none;color:var(--text-faint);font-size:11px;cursor:pointer;white-space:nowrap;padding:2px 4px}.checklist-item-add-meta:hover{color:var(--accent)}.checklist-item-picker{min-width:160px}.checklist-add-item{width:100%;background:none;border:1px dashed var(--line);border-radius:8px;padding:6px 10px;font-size:13px;margin-top:4px}.checklist-add-item::placeholder{color:var(--text-faint)}.task-no{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text-faint);flex-shrink:0}.filter-date{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);flex-shrink:0}.filter-date .date-field{width:148px}.date-field{position:relative;min-width:0}.date-field-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:32px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg-input);color:var(--text);font:inherit;font-size:12px;text-align:left}.date-field-btn .is-ph{color:var(--text-muted)}.date-field-btn:hover:not(:disabled){border-color:var(--accent)}.date-field.is-open .date-field-btn{border-color:var(--accent)}.date-field-btn:disabled{opacity:.6;cursor:default}.date-field-btn svg{flex-shrink:0;color:var(--text-faint)}.date-cal{position:fixed;z-index:60;padding:10px;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow)}.date-cal-nav{display:flex;align-items:center;gap:8px;margin-bottom:8px}.date-cal-month{flex:1;text-align:center;font-size:13px;font-weight:600}.date-cal-nav-btn{width:28px;height:28px;border-radius:8px;color:var(--text);font-size:18px;line-height:1}.date-cal-nav-btn:hover{background:var(--accent-dim)}.date-cal-week,.date-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.date-cal-week{margin-bottom:4px;font-size:11px;color:var(--text-faint)}.date-cal-day{height:32px;border-radius:8px;color:var(--text);font:inherit;font-size:12px}.date-cal-day:hover{background:var(--accent-dim)}.date-cal-day.is-today{box-shadow:inset 0 0 0 1px var(--accent)}.date-cal-day.is-on{background:var(--accent);color:var(--on-accent)}.date-cal-day.is-on:hover{background:var(--accent)}.date-cal-day.is-out{color:var(--text-faint);opacity:.55}.date-cal-foot{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.fields .date-field,.hours-form .date-field{width:100%}.drawer .fields .date-field-btn,.task-modal .fields .date-field-btn,.hours-form .date-field-btn{border-color:var(--line)}.drawer-head-actions{display:flex;align-items:center;gap:10px;margin-top:8px}.drawer-head-actions .drawer-del{margin-left:auto}.icon-btn{width:28px;height:28px;border-radius:8px;color:var(--text-muted);display:grid;place-items:center;flex-shrink:0}.icon-btn:hover{background:var(--bg-card);color:var(--text)}.icon-btn.has-count{width:auto;padding:0 8px;gap:4px}.icon-btn-count{font-family:var(--mono);font-size:11px}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:#f071781f;color:var(--danger)}.card-title{font-weight:550;font-size:13.5px;letter-spacing:-.015em;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"prio id avatar" "hours hours hours";align-items:center;gap:8px 8px}.card-meta .prio{grid-area:prio}.card-meta .id{grid-area:id}.card-meta .avatar,.card-meta .avatars{grid-area:avatar}.card-meta .avatars .avatar{grid-area:auto}.card-meta .hours{grid-area:hours;margin-left:0}.prio{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:4px}.prio.high{color:var(--high);background:#f071781f}.prio.med{color:var(--med);background:#e6c07b1f}.prio.low{color:var(--low);background:#8b929e1f}.prio-wrap{position:relative;display:inline-flex}button.prio.is-pick{cursor:pointer}button.prio:disabled{opacity:1;cursor:default}.prio-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow)}.prio-menu .prio{text-align:left}.prio-menu .prio.is-current{outline:1px solid var(--accent)}.status-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.03em;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--text-muted)}.pick-wrap{position:relative;display:inline-flex;align-self:flex-start}.pick-label{display:inline-flex;align-items:center;font-size:12px;font-weight:600;letter-spacing:.02em;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text)}button.pick-label.is-pick{cursor:pointer}button.pick-label:disabled{opacity:1;cursor:default}.pick-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:160px;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow)}.pick-menu .pick-label{width:100%;justify-content:flex-start}.pick-menu .pick-label.is-current{outline:1px solid var(--accent)}.pick-menu .pick-label:hover{background:var(--accent-dim)}.hours{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--text-muted);display:inline-flex;flex-direction:row;align-items:center;gap:6px}.bar{width:36px;height:3px;border-radius:99px;background:var(--bar-track);overflow:hidden;flex-shrink:0}.bar>span{display:block;height:100%;background:var(--accent);border-radius:inherit}.bar.over>span{background:var(--danger)}.hours.is-over{color:var(--danger)}.id{color:var(--text-faint);font-family:var(--mono);font-size:11px}.drawer{grid-area:drawer;border-left:1px solid var(--line);background:var(--bg-elevated);display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0}.drawer-head{padding:12px 16px;border-bottom:1px solid var(--line-strong);background:var(--bg-elevated)}.drawer-head-top{display:flex;justify-content:flex-end;align-items:center;gap:4px}.drawer-close{width:28px;height:28px;border-radius:8px;color:var(--text-muted)}.drawer-close:hover{background:var(--bg-card);color:var(--text)}.drawer-head .id{display:block;margin-bottom:6px}.drawer-head h2{margin:0 0 8px;font-size:17px;letter-spacing:-.03em;font-weight:600;padding-right:0}.app-shell .drawer{position:fixed;top:0;right:0;width:min(420px,100vw);height:100vh;z-index:24;box-shadow:var(--shadow);overflow:auto}.drawer-title-wrap{display:flex;flex-direction:column;gap:4px;margin:0 0 8px}.drawer-title-row{display:flex;gap:8px;align-items:center}.drawer-title-row .drawer-title{flex:1}.drawer-title-hint{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.drawer-title-hint.is-ok{color:var(--ok)}.drawer-title-hint.is-error{color:var(--danger);text-transform:none;letter-spacing:0}.drawer-title{width:100%;font:inherit;font-size:16px;font-weight:600;letter-spacing:-.03em;color:var(--text);background:var(--bg-input);border:1px dashed var(--line-strong);border-radius:8px;padding:8px 10px;margin:0}.drawer-title:hover{border-color:var(--text-muted)}.drawer-title:focus{outline:none;border-style:solid;border-color:var(--accent)}.drawer-title::-webkit-search-cancel-button,.drawer-title::-ms-clear{display:none}.drawer .fields input,.drawer .fields select,.task-modal .fields input,.task-modal .fields select{height:32px;border-radius:8px;border:1px solid var(--line);background:var(--bg-input);color:var(--text);padding:0 8px;font:inherit}.drawer .fields input[type=checkbox],.task-modal .fields input[type=checkbox]{margin:2px 0 0}.assignee-list{display:flex;flex-direction:column;gap:6px}.assignee-list .check{display:flex;align-items:center;gap:8px}.chip-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px 0 6px;border-radius:999px;border:1px solid var(--line);background:var(--bg-card);color:var(--text);font-size:12px;max-width:100%;line-height:1}.chip.sm{height:20px;font-size:11px;padding:0 7px}.chip .avatar{width:18px;height:18px;font-size:8px}.chip-x{display:grid;place-items:center;width:16px;height:16px;margin-right:-2px;border-radius:50%;color:inherit;opacity:.7;font-size:14px;line-height:1}.chip-x:hover{opacity:1;background:#ffffff14}.chip-plus{width:26px;padding:0;justify-content:center;font-size:16px;color:var(--text-muted)}.chip-plus:hover{color:var(--text);border-color:var(--accent)}.chip-add{position:relative}.chip-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:220px;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);padding:8px}.chip-menu input{width:100%;height:32px;margin-bottom:6px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:0 8px;font:inherit}.chip-menu-list{max-height:180px;overflow:auto;display:flex;flex-direction:column}.chip-menu-list button{text-align:left;padding:7px 8px;border-radius:6px;display:flex;align-items:center;gap:8px;color:var(--text)}.chip-menu-list button:hover{background:var(--bg-card)}.chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chip-empty{color:var(--text-faint);font-size:12px;padding:6px 8px}.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 8px}.file-list{display:flex;flex-direction:column;gap:6px}.file-row{display:flex;align-items:center;gap:6px}.file-row .file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent-2)}.file-icon-btn{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--bg-card);color:var(--text-muted);flex-shrink:0}.file-icon-btn:hover{color:var(--text);border-color:var(--line-strong)}.file-icon-btn:disabled{opacity:.35;pointer-events:none}.file-row.is-deleting{opacity:.5}.file-row.is-deleting .file-name{text-decoration:line-through}.upload-queue{display:flex;flex-direction:column;gap:8px;margin-top:8px}.upload-summary{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-muted)}.upload-row{display:flex;flex-direction:column;gap:4px}.upload-line{display:flex;align-items:center;gap:8px;min-height:28px}.upload-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.upload-row.is-error .upload-status{color:var(--danger);white-space:normal;text-align:right}.upload-row.is-queued .upload-name{color:var(--text-muted)}.upload-bar{position:relative;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.upload-bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .2s linear}.upload-row.is-done .upload-bar>span{background:var(--ok)}.upload-bar.is-indeterminate>span{width:40%!important;animation:upload-indeterminate 1.1s ease-in-out infinite}@keyframes upload-indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.upload-bar.is-indeterminate>span{animation:none;width:100%!important;opacity:.6}}.hours-block{border-top:1px solid var(--line-strong);padding-top:4px}.task-modal-tab-body .hours-block{border-top:0;padding-top:0}.hours-summary,.hours-empty{padding:0 18px 10px}.time-table-wrap{padding:0 18px 12px;overflow-x:auto}.time-table{width:100%;border-collapse:collapse;font-size:13px}.time-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);padding:0 8px 6px 0;white-space:nowrap}.time-table td{padding:4px 8px 4px 0;border-top:1px solid var(--line);vertical-align:middle}.time-who{display:flex;align-items:center;gap:6px;white-space:nowrap}.time-who-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-date{white-space:nowrap}.time-table .date-field-btn{height:28px;border-color:transparent;background:none;padding:0 6px}.time-table .date-field-btn:hover{border-color:var(--line);background:var(--bg-input)}.time-amount{white-space:nowrap}.time-amount-input{width:52px;height:28px;border-radius:7px;border:1px solid transparent;background:none;color:var(--text);padding:0 6px;font:inherit;text-align:right}.time-unit{color:var(--text-faint);margin-left:4px}.time-note input{width:100%;min-width:120px;height:28px;border-radius:7px;border:1px solid transparent;background:none;color:var(--text);padding:0 6px;font:inherit}.time-amount-input:hover,.time-note input:hover{border-color:var(--line)}.time-amount-input:focus,.time-note input:focus{outline:none;border-color:var(--accent);background:var(--bg-input)}.time-actions{width:32px;text-align:right}.hours-pager{padding:0 18px 16px}.hours-amount{display:flex;align-items:center;gap:6px}.hours-amount input{min-width:0;flex:1}.hint-icon{position:relative;display:inline-grid;place-items:center;color:var(--text-faint);cursor:help;flex-shrink:0}.hint-icon:hover,.hint-icon:focus-visible{color:var(--text)}.hint-icon:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:50%}.hint-bubble{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:40;width:max-content;max-width:min(240px,70vw);padding:6px 9px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-card);box-shadow:var(--shadow);color:var(--text);font-size:12px;line-height:1.35;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none}.hint-icon:hover .hint-bubble,.hint-icon:focus-visible .hint-bubble{opacity:1;visibility:visible}.hours-form input.is-invalid,.time-amount-input.is-invalid{border-color:var(--danger)}.hours-form input.is-invalid:focus,.time-amount-input.is-invalid:focus{border-color:var(--danger);outline:none}.hours-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 18px 20px}.hours-form input,.hours-form select{height:32px;border-radius:8px;border:1px solid var(--line);background:var(--bg-input);color:var(--text);padding:0 8px;font:inherit}.hours-form .filter-combo-wrap,.hours-form .filter-combo-input{width:100%}.hours-form .filter-combo-input{height:32px;border-color:var(--line)}.hours-form .chip{height:32px}.rich-editor-shell{border:1px solid var(--line);border-radius:10px;background:var(--bg-input);overflow:hidden;display:flex;flex-direction:column;min-height:0;max-height:min(60vh,520px)}.rich-editor-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.rich-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border-bottom:1px solid var(--line);flex-shrink:0}.rich-toolbar button{width:28px;height:28px;padding:0;border-radius:6px;border:1px solid var(--line);background:var(--bg-card);display:grid;place-items:center;color:var(--text)}.rich-toolbar button.on{background:var(--accent-dim);color:var(--accent);border-color:transparent}.rich-editor-shell .tiptap,.rich-editor-shell .ProseMirror{min-height:var(--editor-min-height, 120px);padding:10px 12px;outline:none}.rich-editor-shell .tiptap img,.desc-html img{max-width:100%;height:auto;border-radius:8px;display:block;margin:8px 0}.rich-editor-shell .tiptap a[href^="/api/files/"],.desc-html a[href^="/api/files/"]{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-dim);color:var(--accent-2);font-weight:600;text-decoration:none;font-size:13px}.rich-editor-shell .tiptap a[href^="/api/files/"]:hover,.desc-html a[href^="/api/files/"]:hover{filter:brightness(1.08)}.rich-editor-shell .tiptap a[href^="/api/files/"]:before,.desc-html a[href^="/api/files/"]:before{content:"";flex-shrink:0;width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5H4A1.5 1.5 0 0 0 2.5 3v10A1.5 1.5 0 0 0 4 14.5h8a1.5 1.5 0 0 0 1.5-1.5V5.5z'/%3E%3Cpath d='M9.5 1.5v4h4'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5H4A1.5 1.5 0 0 0 2.5 3v10A1.5 1.5 0 0 0 4 14.5h8a1.5 1.5 0 0 0 1.5-1.5V5.5z'/%3E%3Cpath d='M9.5 1.5v4h4'/%3E%3C/svg%3E") center / contain no-repeat}.rich-editor-shell .tiptap p{margin:0 0 8px}.rich-editor-shell .tiptap ul,.rich-editor-shell .tiptap ol{margin:0 0 8px;padding-left:1.25em}.rich-editor-shell .tiptap a{color:var(--accent-2);text-decoration:underline}.rich-editor-shell .tiptap code{font-family:var(--mono);font-size:12px;background:var(--bg-card);border:1px solid var(--line);border-radius:4px;padding:.05em .35em}.rich-editor-shell .tiptap pre{font-family:var(--mono);background:#0a0c10;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;overflow-x:auto;margin:0 0 8px}.rich-editor-shell .tiptap pre code{background:none;border:0;padding:0;font-size:12.5px;line-height:1.45;white-space:pre}.rich-editor-shell.is-disabled{opacity:.75}.drawer-actions{display:flex;gap:8px}.timer{display:flex;align-items:center;justify-content:space-between;margin:16px 18px 0;padding:12px 14px;border-radius:12px;background:var(--accent-dim);border:1px solid rgba(62,224,197,.2)}.timer-time{font-family:var(--mono);font-size:20px;font-weight:500;letter-spacing:-.04em}.timer small{display:block;color:var(--text-muted);font-size:11px;margin-top:2px}.fields{padding:16px 18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:1 / -1}.field label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.field-value{display:flex;align-items:center;gap:8px;min-height:28px}.desc{color:var(--text-muted);margin:0;font-size:13px}.desc-preview{min-height:88px;height:auto;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--bg-input);color:var(--text);overflow:visible;box-sizing:border-box}.desc-html{overflow-wrap:anywhere;word-break:break-word}.desc-preview.is-editable{cursor:default}.desc-preview.is-empty{color:var(--text-faint)}.desc-html p{margin:0 0 8px}.desc-html p:last-child{margin-bottom:0}.desc-field label{display:flex;align-items:baseline;gap:4px}.desc-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.desc-head label{margin:0}.desc-edit-btn{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--bg-card);color:var(--text-muted);flex-shrink:0}.desc-edit-btn:hover{color:var(--text);border-color:var(--line-strong)}.task-modal-backdrop{position:fixed;inset:0;background:#0000008c;z-index:36;display:grid;place-items:center;padding:16px}.task-modal{width:min(1080px,96vw);height:min(860px,92vh);background:var(--bg-elevated);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.task-modal .drawer-head{flex-shrink:0;border-bottom:1px solid var(--line-strong);background:var(--bg-elevated)}.task-modal-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);background:var(--bg)}.task-modal-main{min-height:0;overflow:auto;padding:16px 18px 20px;display:flex;flex-direction:column;background:var(--bg-elevated)}.task-modal-main .desc-field{flex:1;min-height:0;display:flex;flex-direction:column}.task-modal-main .desc-preview{flex:0 0 auto;min-height:88px;height:auto;overflow:visible}.task-modal-main .rich-editor-shell{flex:1 1 auto;min-height:0;max-height:none}.task-modal-side{min-height:0;overflow:auto;border-left:1px solid var(--line-strong);background:var(--bg-elevated);box-shadow:inset 1px 0 0 var(--line)}.section-title{padding:4px 18px 8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);display:flex;justify-content:space-between}.entries{padding:0 12px 20px;display:flex;flex-direction:column;gap:6px}.entries.in-modal{padding:0 0 8px;max-height:min(60vh,480px);overflow:auto}.entry{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:start;padding:10px;border-radius:8px}.entry:hover{background:var(--bg-card)}.entry p{margin:2px 0 0;color:var(--text-muted);font-size:12px}.entry .when{color:var(--text-faint);font-size:11px}.entry .amt{font-family:var(--mono);font-size:12px;color:var(--accent)}.backlog-layout{display:grid;grid-template-columns:1fr 260px;min-height:calc(100vh - var(--topbar) - var(--subnav))}.list{padding:8px 12px 24px}.backlog-create{display:flex;align-items:center;gap:8px;padding:12px}.backlog-create .search{flex:1;width:auto;min-width:0;height:36px}.backlog-create .btn{height:36px}.list-head,.row{display:grid;grid-template-columns:28px minmax(0,1.6fr) 140px 88px 88px 72px 110px;gap:8px;align-items:center;padding:0 8px}.list-head{height:36px;color:var(--text-faint);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:1}.row{min-height:52px;border-bottom:1px solid var(--line);border-radius:8px}.row:hover{background:var(--bg-elevated)}.handle{color:var(--text-faint);letter-spacing:1px;cursor:grab;text-align:center}.row-title{display:flex;flex-direction:column;gap:2px;min-width:0}.row-title strong{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title .card-title-row{margin:0;min-width:0}.row-title .card-title-row strong{flex:1;min-width:0}.task-list-head,.task-list-row{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) 140px 120px 108px 108px}.task-list-head>*,.task-list-row>*{min-width:0}.search-layout{padding:12px 20px 20px}.search-results .task-list-head,.search-results .task-list-row{grid-template-columns:minmax(0,3fr) 140px 120px 40px}.search-results .task-list-row{cursor:pointer}.search-results .task-list-row.is-closed .row-title strong{color:var(--text-muted)}.assignee-filter{position:relative}.assignee-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:220px;max-height:320px;overflow-y:auto;padding:6px;border-radius:10px;border:1px solid var(--line-strong);background:var(--bg-elevated);box-shadow:var(--shadow)}.assignee-option{gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer}.assignee-option:hover{background:var(--bg-card-hover)}.assignee-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-empty{padding:6px 8px;margin:0}.assignee-menu-actions{display:flex;gap:4px;margin-top:4px}.assignee-menu-actions .btn{flex:1}.task-list-row .desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:13px}.num{font-family:var(--mono);font-size:12px;color:var(--text-muted)}.filters{border-left:1px solid var(--line);padding:16px;background:var(--bg-elevated)}.filters h3{margin:0 0 12px;font-size:13px}.stat{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-card);margin-bottom:10px}.stat b{display:block;font-size:20px;font-family:var(--mono);letter-spacing:-.04em;margin-top:4px}.stat span{color:var(--text-muted);font-size:12px}.filter-list{display:flex;flex-direction:column;gap:6px;margin-top:16px}.check{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:13px;line-height:1.35}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-width:16px;margin:0;padding:0;flex-shrink:0;border:1.5px solid var(--line-strong);border-radius:4px;background:var(--bg-input);display:inline-grid;place-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease}input[type=checkbox]:after{content:"";width:4px;height:8px;margin-top:-1px;border:solid var(--on-accent);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .1s ease}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{transform:rotate(45deg) scale(1)}input[type=checkbox]:hover:not(:disabled){border-color:var(--accent)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.menu-btn{display:none;width:32px;height:32px;border-radius:8px;border:1px solid var(--line)}.overlay{display:none}@media(max-width:1100px){.app.has-drawer{grid-template-columns:var(--sidebar) 1fr;grid-template-areas:"sidebar topbar" "sidebar subnav" "sidebar main"}.drawer{position:fixed;top:0;right:0;width:min(var(--drawer),100vw);height:100vh;z-index:20;box-shadow:var(--shadow)}.search{width:140px}.backlog-layout{grid-template-columns:1fr}.task-modal-body{grid-template-columns:1fr;gap:8px}.task-modal-side{border-left:0;box-shadow:none;border-top:1px solid var(--line-strong)}.filters{border-left:0;border-top:1px solid var(--line)}}@media(max-width:800px){.app-shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"workspace"}.app-shell .sidebar{position:fixed;z-index:30;box-shadow:var(--shadow)}.app,.app.has-drawer{grid-template-columns:1fr;grid-template-areas:"topbar" "subnav" "main"}.app.app-shell,.app.app-shell.has-drawer{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(100vh,auto);grid-template-areas:"workspace"}.sidebar{position:fixed;z-index:50;transform:translate(-110%);transition:transform .2s ease;width:var(--sidebar)}body.nav-open .sidebar{transform:none}body.nav-open .overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:40}body.nav-open .drawer{display:none}.menu-btn{display:grid;place-items:center}.board-pills,.live{display:none}.list-head,.row{grid-template-columns:minmax(0,1fr) 72px}.handle,.assignee,.row .prio,.row-actions,.row>.num:not(.num-logged),.list-head span:nth-child(1),.list-head span:nth-child(3),.list-head span:nth-child(4),.list-head span:nth-child(6),.list-head span:nth-child(7){display:none}.column{flex:0 0 240px}}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative}.login-brand{position:absolute;top:20px;left:24px;width:min(280px,42vw)}.login-card{width:min(420px,100%);background:var(--bg-elevated);border:1px solid var(--line);border-radius:16px;padding:28px 28px 22px}.login-card h1{margin:0 0 6px;font-size:22px;letter-spacing:-.03em}.login-card .lead{color:var(--text-muted);margin:0 0 22px}.login-card label{display:block;font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:6px}.login-card label.check{display:flex;align-items:center;gap:10px;margin:0 0 14px;text-transform:none;letter-spacing:0;font-size:13px;font-weight:500;color:var(--text-muted)}.login-card input:not([type=checkbox]){width:100%;height:38px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:0 12px;font:inherit;margin-bottom:14px}.login-card label.check input{width:16px;height:16px;margin:0;padding:0;flex-shrink:0}.login-card input:focus{outline:none;border-color:var(--accent)}.login-card .btn.primary{width:100%;height:40px;justify-content:center;margin-top:4px}.login-error{color:var(--danger);font-size:13px;margin:0 0 12px}.login-alt{margin:14px 0 0;text-align:center;font-size:13px;color:var(--text-muted)}.login-alt a{color:var(--accent)}.login-alt a:hover{color:var(--text)}.demo-accounts{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--text-muted);font-size:12px}.demo-accounts button{display:block;width:100%;text-align:left;padding:6px 0;color:var(--text)}.demo-accounts button:hover{color:var(--accent)}.audit-list{padding:16px 20px 40px;display:flex;flex-direction:column;gap:8px}.audit-item{background:var(--bg-card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.audit-item .btn:hover,.audit-item .btn:focus-visible{background:var(--accent-dim);border-color:var(--line-strong);color:var(--nav-active)}.audit-item .when{color:var(--text-faint);font-size:11px;font-family:var(--mono)}.home-grid{padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;align-items:stretch}.projects-list{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:24px}.project-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr) auto;align-items:center;gap:32px;padding:28px}.project-card-info,.project-card-summary{min-width:0}.project-card .card-title{margin:0 0 10px;font-size:22px;line-height:1.3;overflow-wrap:anywhere}.project-card .desc{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0;overflow-wrap:anywhere}.project-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}.project-card-meta .id{grid-area:auto;font-size:12px;color:var(--text-faint)}.project-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 20px}.project-stats dt{color:var(--text-muted);font-size:12px;margin-bottom:8px}.project-stats dd{margin:0;color:var(--text);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.project-progress-caption{display:flex;justify-content:space-between;color:var(--text-muted);font-size:12px;margin-bottom:8px}.project-progress{display:block;appearance:none;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;background:var(--line);color:var(--accent)}.project-progress::-webkit-progress-bar{background:var(--line)}.project-progress::-webkit-progress-value{background:var(--accent);border-radius:6px}.project-progress::-moz-progress-bar{background:var(--accent);border-radius:6px}.project-card-go{display:flex;align-items:center;gap:12px}.project-card-go .btn{white-space:nowrap}@media(max-width:1200px){.project-card{grid-template-columns:minmax(0,1fr) minmax(280px,1fr);gap:24px}.project-card-go{grid-column:1 / -1;justify-content:flex-end}}@media(max-width:700px){.projects-list{padding:16px;gap:12px}.project-card{grid-template-columns:minmax(0,1fr);padding:20px;gap:24px}.project-card .card-title{font-size:20px}.project-stats{gap:10px}.project-stats dd{font-size:22px}.project-stats dt{font-size:11px}}.archive-icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--bg-card);color:var(--text-muted);flex-shrink:0}.archive-icon-btn:hover{color:var(--text);border-color:var(--line-strong)}.team-pick-btn{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:999px;border:1px solid var(--line);background:var(--bg-card);color:var(--text);font-size:12px}.team-pick-btn:hover{border-color:var(--line-strong)}.team-pick-list{margin:0 0 12px}.chip.is-on{background:var(--accent-dim);border-color:transparent;color:var(--accent)}button.chip{cursor:pointer}.empty{color:var(--text-muted);padding:40px 20px}.load-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:24px 20px}.load-error.compact{padding:12px 20px}.load-error p{margin:0;color:var(--danger)}.skeleton-list{display:grid;gap:10px;padding:20px}.skeleton-row{height:44px;border-radius:10px;background:linear-gradient(90deg,var(--bg-card) 0%,var(--bg-card-hover) 50%,var(--bg-card) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-row.sm{height:18px;width:55%}.skeleton-grid .card{min-height:120px;display:grid;gap:10px;align-content:start}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.modal-backdrop{position:fixed;inset:0;background:#0000008c;z-index:40;display:grid;place-items:center;padding:16px}.modal-backdrop.diff-layer{z-index:46}.modal{width:min(440px,100%);background:var(--bg-elevated);border:1px solid var(--line);border-radius:16px;padding:22px 22px 18px}.modal h2{margin:0 0 16px;font-size:17px}.modal label{display:block;font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:6px}.modal input,.modal select,.modal textarea{width:100%;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:8px 12px;font:inherit;margin-bottom:12px}.modal input[type=checkbox]{width:16px;height:16px;flex-shrink:0;margin:2px 0 0}.modal textarea{min-height:72px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.card.ghost{border-style:dashed;background:transparent;display:grid;place-items:center;min-height:140px;color:var(--text-muted);cursor:pointer}.card.ghost:hover{border-color:var(--accent);color:var(--accent)}.team-head{display:flex;align-items:center;gap:8px;padding:16px 20px 8px;flex-wrap:wrap}.team-head .nav-label{padding:0;margin-right:auto}.member-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 4px}.member-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;border-radius:999px;border:1px solid var(--line);background:var(--bg-card);font-size:12px;color:var(--text-muted)}.team-card{display:flex;flex-direction:column;min-width:0;padding:20px}.team-card .card-title{display:block;font-size:18px;line-height:1.3;overflow-wrap:anywhere}.team-card .desc{margin:0;color:var(--text-muted);font-size:14px;line-height:1.6}.team-card .member-chips{padding:12px 0 0;min-height:40px}.team-card .member-chip{min-width:0;max-width:100%;overflow-wrap:anywhere}.team-card-actions{display:flex;margin-top:auto;padding-top:16px}.member-chip.more{padding-left:8px;color:var(--text-faint)}.team-modal{width:min(520px,100%);max-height:min(80vh,680px);overflow:auto}.team-member-list{padding:0;margin:0 0 12px;max-height:360px;overflow:auto}.team-member-list .people-row{padding:8px 10px}.person-suggest-meta{display:flex;flex-direction:column;min-width:0}.person-suggest-meta strong{font-size:13px;font-weight:600}.person-suggest-meta small{color:var(--text-muted);font-size:12px}.person-suggest .filter-combo-input{height:36px;font-size:13px;margin-bottom:8px}.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-rows:minmax(100vh,auto);grid-template-areas:"sidebar workspace";min-height:100%}.app-shell.is-nav-hidden{grid-template-columns:minmax(0,1fr);grid-template-areas:"workspace"}.app-shell .sidebar{grid-area:sidebar;position:sticky;top:0;height:100vh}.app-shell .workspace{grid-area:workspace}.app-shell .topbar,.app-shell .subnav,.app-shell .main{grid-area:auto}.workspace{min-width:0;display:flex;flex-direction:column;min-height:100vh;position:relative}.workspace .topbar{padding-right:56px}.app-shell.is-nav-hidden:not(.is-mobile) .workspace .topbar{padding-left:calc(168px + 7ch)}.workspace .board{min-height:0}.workspace .topbar,.workspace .subnav{flex-shrink:0}.workspace .main{flex:1;min-height:0;display:flex;flex-direction:column}.sidebar-foot .btn{margin-left:auto;flex-shrink:0}.logout-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--text-muted);display:grid;place-items:center;flex-shrink:0;margin-left:auto}.logout-btn:hover{color:var(--text);border-color:var(--line-strong)}.people-list{padding:12px 20px 8px;display:flex;flex-direction:column;gap:8px}.people-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius)}.people-row.is-off{opacity:.55}.people-meta{min-width:0;flex:1}.people-meta strong{display:block;font-size:14px}.people-meta small{display:block;color:var(--text-muted);font-size:12px}.people-teams{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.people-actions{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0}.people-h{margin:16px 20px 0;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.people-notice{margin:12px 20px 0;padding:10px 12px;border-radius:8px;background:var(--accent-dim);color:var(--text);font-size:13px;word-break:break-all}.people-role-label{margin:14px 0 8px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint)}.modal.project-settings{overflow-y:auto;overscroll-behavior:contain}.project-members{margin:0 0 4px;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;flex:0 0 auto;min-height:96px;max-height:38vh;overflow-y:auto;overscroll-behavior:contain}.project-member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.project-member-row:last-child{border-bottom:none}.project-member-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;color:var(--text)}.project-member-name>span{flex:none}.modal .chip-row{margin-bottom:12px}.modal-actions .btn.danger{margin-right:auto}.subnav .search{width:min(260px,42vw)}@media(max-width:800px){.people-row{flex-wrap:wrap}.people-actions{width:100%}}.app-ver{font-family:var(--mono);font-size:11px;color:var(--text-faint);padding:6px 10px 2px}.chrome-left{display:flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap}.brand-inline{display:block;width:auto;flex-shrink:0}.brand-inline .brand-logo{width:auto;height:32px;max-height:32px;max-width:96px}.mobile-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line);background:var(--bg);flex-shrink:0}.mobile-brand .brand-inline{min-width:0;max-width:min(180px,calc(100vw - 80px))}.mobile-brand .brand-logo{height:36px;max-height:36px;max-width:100%}.chrome-ver{padding:0}.login-ver{text-align:center;margin:14px 0 0;padding:0}.me-link{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.me-link:hover strong{color:var(--accent)}.profile-page{padding:20px;max-width:560px;display:flex;flex-direction:column;gap:16px}.profile-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:12px;padding:20px 22px 18px}.token-fresh{padding:12px;margin-bottom:14px;border:1px solid var(--accent);border-radius:10px;background:var(--accent-dim)}.token-copy{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.token-copy code{flex:1;min-width:0;padding:6px 8px;border-radius:6px;background:var(--bg-input);font-size:12px;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.token-list{display:flex;flex-direction:column;margin-bottom:14px;border-top:1px solid var(--line)}.token-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.token-row.is-off .token-main{opacity:.5}.token-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.token-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-meta{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px;color:var(--text-muted)}.token-row .btn{flex-shrink:0}.profile-page>[hidden]{display:none}.token-form{display:flex;flex-wrap:wrap;gap:8px}.token-form input{flex:1;min-width:220px}.profile-card h2{margin:0 0 16px;font-size:16px;letter-spacing:-.02em}.profile-card .field{margin-bottom:12px}.profile-card>label:not(.check),.profile-card .field label{display:block;font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:6px}.profile-card>label.check{display:flex;align-items:center;gap:10px;margin:4px 0 16px;text-transform:none;letter-spacing:0;font-size:13px;font-weight:500;color:var(--text-muted);line-height:1.3}.profile-card>label.check input{width:16px;height:16px;margin:0;flex-shrink:0}.profile-card input:not([type=checkbox]):not([type=radio]),.profile-card select{width:100%;height:38px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:0 12px;font:inherit;margin-bottom:12px}.profile-card input:disabled,.profile-card select:disabled{opacity:.65}.profile-card input:focus{outline:none;border-color:var(--accent)}.profile-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-hint{margin:6px 0 0;color:var(--text-faint);font-size:12px}.profile-ok{color:var(--ok);font-size:13px;margin:0 0 12px}.profile-fill{margin-top:6px;font-size:12px;color:var(--accent-2)}.profile-fill:hover{color:var(--accent)}.profile-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:8px}@media(max-width:640px){.profile-row{grid-template-columns:1fr}}.subnav-tools{margin-left:auto;display:flex;align-items:center;gap:4px}.subnav-gap{width:1px;align-self:stretch;margin:10px 10px 10px 6px;background:var(--line-strong)}.card-close-row{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:8px}button.tab{background:none;border:0;border-bottom:2px solid transparent}.modal.wide{width:min(960px,96vw);max-height:90vh;display:flex;flex-direction:column}.hist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.hist-head h2{margin:0}.hist-search{width:100%;height:36px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:0 12px;font:inherit;margin-bottom:12px}.hist-scroll{overflow:auto;min-height:200px;max-height:60vh;border:1px solid var(--line);border-radius:8px}.notif-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notif-table-wrap{overflow-x:auto}.notif-table tbody tr{cursor:pointer}.notif-table td{height:44px}.notif-table tbody tr:hover,.notif-table tbody tr:focus-visible{background:var(--bg-card-hover);outline:none}.notif-table tr.is-unread td{color:var(--text);font-weight:600}.notif-table tr.is-unread td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.notif-table .notif-task{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-table .notif-actions{text-align:right}.inbox-all{display:block;padding:10px 12px;border-top:1px solid var(--line);text-align:center;color:var(--accent-2);font-size:13px}.inbox-all:hover{background:var(--bg-card-hover)}.hist-table{width:100%;border-collapse:collapse;font-size:13px}.hist-table th{position:sticky;top:0;background:var(--bg-elevated);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);padding:8px 10px;cursor:pointer;white-space:nowrap}.hist-table td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}.hist-table td.nowrap{white-space:nowrap;color:var(--text-muted);font-variant-numeric:tabular-nums}.hist-table tbody tr:hover td{background:var(--bg-card)}.hist-table tfoot td{border-top:1px solid var(--line-strong);font-weight:600;padding:10px}.report{padding:12px 20px 32px;display:flex;flex-direction:column;gap:28px}.report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;color:var(--text-muted);font-size:13px}.report-head p{margin:0}.report-table{table-layout:fixed;width:100%}.report-table th{cursor:default}.report-table .col-task{width:46%}.report-table .col-people{width:38%}.report-table .col-hrs,.report-table th.col-hrs,.report-table td.col-hrs{width:7.5rem;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.report-table-2 .col-hrs,.report-table-2 th.col-hrs,.report-table-2 td.col-hrs{width:7.5rem}.ts-check{display:flex;align-items:center;gap:8px;cursor:pointer;font:inherit;text-transform:none;letter-spacing:normal}.timesheet th .ts-check{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.timesheet tr.is-off td{opacity:.45}.ts-status{font-size:12px;color:var(--text-faint)}.ts-status.is-pending{color:var(--text-muted)}.report-modes{display:flex;gap:6px;margin-left:auto}.timesheet-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.timesheet{width:max-content;min-width:100%}.timesheet th,.timesheet td{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.timesheet th.ts-name,.timesheet td.ts-name{position:sticky;left:0;z-index:1;text-align:left;background:var(--bg-elevated);min-width:200px;box-shadow:inset -1px 0 0 var(--line)}.timesheet th.ts-name{z-index:2}.timesheet .ts-day{min-width:56px}.timesheet .is-weekend{background:color-mix(in srgb,var(--line) 35%,transparent)}.timesheet .ts-total,.timesheet tfoot td{font-weight:600}.timesheet tfoot td{border-top:2px solid var(--line-strong)}.report-block h2{margin:0 0 10px;font-size:15px}.report-person h3{margin:16px 0 8px;font-size:13px;font-weight:600}.report-flag{display:inline-block;margin-left:8px;font-size:11px;color:var(--text-faint);font-weight:500}.hist-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;color:var(--text-muted)}.hist-pager-btns{display:flex;align-items:center;gap:8px}.chrome{position:absolute;top:0;left:0;right:0;height:var(--topbar);display:flex;align-items:center;justify-content:space-between;padding:0 12px;z-index:16;pointer-events:none}.chrome>*{pointer-events:auto}.nav-toggle{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--text-muted);display:grid;place-items:center;flex-shrink:0}.nav-toggle:hover{color:var(--text);border-color:var(--line-strong)}.brand-row .nav-toggle{background:transparent}.inbox{position:relative;margin:0}.inbox-bell{position:relative;width:32px;height:32px;padding:0;border-radius:8px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--text-muted);display:grid;place-items:center}.inbox-bell:hover{background:var(--bg-card);color:var(--text)}.inbox-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:10px;font-weight:700;display:grid;place-items:center}.inbox-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(360px,70vw);max-height:70vh;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);z-index:40}.inbox-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line-strong)}.inbox-list{overflow:auto}.inbox-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--text-muted)}.inbox-item.unread{color:var(--text);background:var(--accent-dim)}.inbox-title{font-weight:600;font-size:13px}.inbox-body{font-size:12px}.inbox-when{font-size:11px;color:var(--text-faint)}.modal .check{display:flex;align-items:flex-start;gap:10px;margin:8px 0 4px;text-transform:none;letter-spacing:0;font-size:13px;color:var(--text);font-weight:500;line-height:1.35}.audit-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.diff-table tr.is-changed td:last-child{color:var(--accent)}.diff-table .diff-cell{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:28vw}.diff-table tr.is-hunk-cont td{border-top-style:dashed}.diff-table tr.is-hunk-cont td:first-child{border-top-color:transparent}.column-color-board{margin:8px 0 12px}.column-color-row{display:flex;align-items:center;gap:10px;margin:8px 0}.column-color-name{min-width:140px;font-weight:600}.modal input[type=color]{width:36px;height:28px;padding:2px;margin:0;cursor:pointer}.color-presets{display:flex;gap:6px}.color-swatch{width:18px;height:18px;border-radius:99px;border:1px solid var(--line-strong);padding:0}.color-swatch.is-on{box-shadow:0 0 0 2px var(--accent)}@media(max-width:767px){html,body{min-height:100%;min-height:100dvh;overflow-x:hidden}.app.is-mobile{min-height:100dvh}.app.is-mobile .workspace{min-height:100dvh;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.app.is-mobile .chrome{pointer-events:none}.app.is-mobile .chrome>*{pointer-events:auto}.app.is-mobile .inbox-bell,.app.is-mobile .nav-toggle{width:44px;height:44px}.app.is-mobile .topbar,.app-shell.is-mobile.is-nav-hidden .workspace .topbar{padding:6px 12px 10px;min-height:0;flex-wrap:nowrap;gap:8px;justify-content:flex-start}.app.is-mobile .crumbs{flex:1 1 0;min-width:0;margin:0;justify-content:flex-start}.app.is-mobile .crumbs h1{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app.is-mobile .topbar .pill{flex-shrink:0;margin-left:auto}.app.is-mobile .subnav{overflow-x:auto;padding:0 8px;gap:0;-webkit-overflow-scrolling:touch}.app.is-mobile .board-search-bar{padding:8px 12px 0}.app.is-mobile .board-search-bar .search{width:100%}.app.is-mobile .tab{flex-shrink:0;min-height:44px;padding:0 12px}.app.is-mobile .main{padding-bottom:8px}.app.is-mobile .icon-btn{display:none}.login-page{padding:88px 16px 16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));align-items:start}.login-brand{top:12px;left:16px;width:min(220px,70vw)}.login-card{width:100%;padding:22px 16px 18px}.login-card .btn.primary{width:100%;height:44px}.home-grid{grid-template-columns:1fr;padding:16px;gap:12px}.app.is-mobile .list-head{display:none}.app.is-mobile .list-head,.app.is-mobile .row,.app.is-mobile .task-list-head,.app.is-mobile .task-list-row{display:flex;flex-wrap:wrap;grid-template-columns:unset;gap:8px 12px;padding:12px 16px;min-height:56px}.app.is-mobile .handle{display:none}.app.is-mobile .assignee,.app.is-mobile .row .prio,.app.is-mobile .status-pill,.app.is-mobile .row-actions,.app.is-mobile .num{display:flex}.app.is-mobile .row-title{flex:1 1 100%}.app.is-mobile .people-list,.app.is-mobile .people-row{padding-left:16px;padding-right:16px}.app.is-mobile .fields{grid-template-columns:1fr;padding:16px}.app.is-mobile .hours-form{grid-template-columns:1fr;padding:0 16px 20px}.board-col-pills{display:flex;gap:8px;overflow-x:auto;padding:8px 16px 4px;-webkit-overflow-scrolling:touch}.col-pill{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg-card);color:var(--text-muted);font-weight:600;font-size:13px}.col-pill.active{color:var(--col-color, var(--accent));border-color:var(--col-color, var(--accent));background:var(--accent-dim)}.board.is-mobile-pager{display:block;padding:8px 16px 16px;min-height:0;flex:1}.board.is-mobile-pager .column{flex:none;width:100%;min-width:0;min-height:50vh;max-height:none}.app.is-mobile .card{min-height:56px}.app.is-mobile .card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-modal-backdrop.is-sheet,.task-modal.is-sheet{inset:0;width:100%;height:100%;max-height:100dvh;border-radius:0;padding:0}.task-modal-backdrop.is-sheet{display:block;padding:0;z-index:48}.task-modal.is-sheet{width:100%;height:100%;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);overflow:auto}.task-modal.is-sheet .drawer-head{position:sticky;top:0;z-index:3}.task-modal.is-sheet .task-modal-body{grid-template-columns:1fr;gap:8px}.task-modal.is-sheet .task-modal-side{border-top:1px solid var(--line-strong);box-shadow:none}.app.is-mobile .inbox-panel{position:fixed;inset:0;width:100%;max-height:none;border-radius:0;z-index:47;margin:0}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:35;display:grid;grid-template-columns:repeat(4,1fr);height:calc(56px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-elevated);border-top:1px solid var(--line)}.tabbar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;font-size:11px;font-weight:600;color:var(--text-faint)}.tabbar-item.active{color:var(--accent)}.more-sheet{width:min(440px,100%);margin-top:auto;background:var(--bg-elevated);border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px))}.more-sheet-title{margin:0 0 12px;font-weight:600;font-size:16px}.more-link{display:block;width:100%;text-align:left;padding:14px 4px;min-height:44px;border-bottom:1px solid var(--line);color:var(--text);font-weight:500}.more-link.active{color:var(--accent)}.more-link.danger{color:var(--danger);border-bottom:0}.app.is-mobile .btn,.app.is-mobile .btn.sm{min-height:36px}.app.is-mobile .modal{width:min(440px,calc(100% - 24px))}.app.is-mobile .modal.wide{width:min(100%,calc(100% - 16px));max-height:90dvh}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast-stack{position:fixed;right:16px;top:calc(var(--topbar) + 12px);z-index:80;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100vw - 24px))}.toast{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:color-mix(in srgb,var(--bg-elevated) 88%,var(--text));border:1px solid color-mix(in srgb,var(--line-strong) 70%,var(--text));border-left:3px solid var(--accent);border-radius:10px;box-shadow:0 12px 28px #00000059}.toast-text{display:flex;flex-direction:column;gap:2px;min-width:0}.toast-text>span{color:var(--text-muted);font-size:13px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.comment.is-linked{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.char-count{font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums}.inline-create{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0 4px}.inline-create input{flex:1;min-width:0;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:6px 8px;font:inherit}.col-add{width:100%;margin-top:6px;justify-content:center}.col-empty{padding:12px 4px}.task-filters{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;overflow-x:auto}.task-filters .search{margin-left:0;min-width:180px;width:auto;flex:1 1 220px;height:32px}.filter-toggle{height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg-input);color:var(--text-muted);flex-shrink:0}.filter-toggle.is-on{border-color:var(--accent);background:var(--accent-dim);color:var(--nav-active)}.filter-combo-wrap{position:relative;flex-shrink:0}.filter-combo-input{height:32px;width:148px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg-input);color:var(--text);font:inherit;font-size:12px}.filter-combo-input::placeholder{color:var(--text-muted)}.filter-combo-input:focus{outline:none;border-color:var(--accent)}.task-filters .chip{height:32px;padding:0 10px;font-size:12px}.filter-menu{position:fixed;z-index:60;min-width:220px;max-width:min(320px,calc(100vw - 16px));overflow:auto;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);padding:8px}.filter-menu-list{max-height:none}.filter-menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;color:var(--text)}@media(max-width:800px){.filter-menu-item{min-height:44px}.date-cal-day{min-height:40px;height:40px}}.filter-menu-item:hover,.filter-menu-item.is-on{background:var(--accent-dim)}.filter-menu-empty{padding:10px;color:var(--text-faint);font-size:13px}.filter-dot{width:8px;height:8px;border-radius:99px;flex-shrink:0}.modal .filter-combo-wrap,.modal .filter-combo-input{width:100%;max-width:none}.is-sort{cursor:pointer}.due-overdue{color:var(--danger)}.due-today{color:var(--warn)}.comments{padding:12px 18px 20px;border-top:1px solid var(--line-strong)}.comment-list{display:grid;gap:12px}.comment{display:grid;grid-template-columns:28px 1fr;gap:8px}.comment-meta{display:flex;gap:8px;align-items:baseline;font-size:12px}.comment-text{font-size:13px}.comment-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.comment-file{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 8px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg-card);color:var(--accent-2);font-size:12px;text-decoration:none}.comment-file:before{content:"";flex-shrink:0;width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5H4A1.5 1.5 0 0 0 2.5 3v10A1.5 1.5 0 0 0 4 14.5h8a1.5 1.5 0 0 0 1.5-1.5V5.5z'/%3E%3Cpath d='M9.5 1.5v4h4'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 1.5H4A1.5 1.5 0 0 0 2.5 3v10A1.5 1.5 0 0 0 4 14.5h8a1.5 1.5 0 0 0 1.5-1.5V5.5z'/%3E%3Cpath d='M9.5 1.5v4h4'/%3E%3C/svg%3E") center / contain no-repeat}a.comment-file:hover{border-color:var(--accent)}.comment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-file-x{margin-left:2px;padding:0 2px;line-height:1;color:var(--text-muted)}.comment-file-x:hover{color:var(--text)}.comment-compose-actions{justify-content:flex-end}.comment-input-row{display:flex;align-items:flex-end;gap:8px}.comment-input-row textarea{flex:1;min-width:0}.comment-attach{cursor:pointer;flex-shrink:0}.comment-attach.is-busy{opacity:.5;pointer-events:none}.comment-text .mention{color:var(--accent-2);font-weight:600}.comment-actions{display:flex;gap:6px;margin-top:4px}.comment-compose{position:relative;margin-top:12px;display:grid;gap:8px}.comment-compose textarea,.comment textarea{width:100%;min-height:72px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg-input);color:var(--text);padding:8px 10px;font:inherit;resize:vertical}.comment-compose textarea{min-height:104px}.mention-menu{position:absolute;bottom:100%;left:0;background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;z-index:5}.mention-menu button{display:block;width:100%;text-align:left;padding:8px 12px}.mention-menu button:hover,.mention-menu button:first-child{background:var(--bg-card-hover)}.comment-compose-actions{display:flex;justify-content:flex-end;gap:8px}.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding:16px 20px 8px}.work-card{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:14px}.work-card h2{margin:0 0 10px;font-size:14px}.work-item{display:grid;gap:2px;width:100%;text-align:left;padding:8px 10px;margin:0 -10px;border-radius:8px;border-bottom:1px solid var(--line);transition:background .12s ease,border-color .12s ease}.work-item:hover,.work-item:focus-visible{background:var(--accent-dim);border-bottom-color:transparent}.work-item:focus-visible{outline:none;box-shadow:inset 0 0 0 1px var(--accent)}.work-item strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.load-row{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:6px 0;font-size:13px}.feed-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 0}.feed-head h2{margin:0;font-size:15px}.dash-date{font-family:var(--mono);font-size:12px;color:var(--text-faint);font-weight:400;letter-spacing:0}.dash{display:flex;flex-direction:column;gap:14px;padding:16px 22px 24px}.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dash-kpi,.dash-card{background:var(--bg-card);border:1px solid var(--line);border-radius:12px}.dash-kpi{display:flex;flex-direction:column;gap:7px;padding:15px 16px}.dash-kpi-label{font-size:13px;color:var(--text-muted)}.dash-kpi-value{font-family:var(--mono);font-size:30px;font-weight:500;color:var(--text);line-height:1}.dash-kpi-value span{font-size:15px;color:var(--text-faint)}.dash-kpi-value.is-danger{color:var(--danger)}.dash-kpi-meta{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.dash-layout{display:grid;grid-template-columns:minmax(0,1fr) 396px;gap:14px;align-items:start}.dash-col,.dash-rail{display:flex;flex-direction:column;gap:14px;min-width:0}.dash-card{overflow:hidden}.dash-card-head{display:flex;align-items:center;gap:10px;padding:14px 16px}.dash-card-head h2{margin:0;font-size:15px;font-weight:700}.dash-chip{margin-left:auto;font-size:13px;font-weight:600;color:var(--nav-active);background:var(--accent-dim);border-radius:7px;padding:6px 11px}.dash-chip:hover{filter:brightness(1.05)}.dash-card-body{padding:0 16px 14px}.dash-empty{padding:4px 16px 16px}.dash-table-head,.dash-table-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 118px 96px 92px;gap:12px;align-items:center;padding:13px 16px}.dash-table-head{padding:0 16px 10px;font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint)}.dash-table-row{width:100%;text-align:left;border-top:1px solid var(--line)}.dash-table-row:hover,.dash-table-row:focus-visible{background:var(--accent-dim)}.dash-table-row:focus-visible{outline:none}.dash-task-title{display:flex;align-items:center;gap:11px;min-width:0}.dash-col-bar{width:4px;height:26px;flex:none;border-radius:2px}.dash-task-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.dash-cell-muted{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-table-row .status-pill{justify-self:start;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border-radius:5px;padding:3px 8px}.dash-due{font-family:var(--mono);font-size:12px;color:var(--text-muted)}.dash-hours{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-family:var(--mono);font-size:12px;color:var(--text-muted)}.dash-hours .bar{width:100%}.dash-hours.is-over{color:var(--danger)}.dash-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 16px 16px}.dash-project{display:flex;flex-direction:column;gap:10px;background:var(--bg-card-hover);border:1px solid var(--line);border-radius:11px;padding:14px}.dash-project:hover{border-color:var(--accent)}.dash-project-top{display:flex;align-items:center;gap:9px;min-width:0}.dash-project-top strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-project-top .status-pill{flex:none;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-radius:5px;padding:3px 7px;white-space:nowrap}.dash-project-meta{display:flex;align-items:baseline;gap:14px;font-family:var(--mono);font-size:12px;color:var(--text-muted)}.dash-project .bar{width:100%;height:4px}.dash-chart{display:flex;align-items:flex-end;gap:10px;height:120px}.dash-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.dash-chart-val,.dash-chart-day{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.dash-chart-bar{width:100%;border-radius:4px 4px 0 0;background:var(--bar-track)}.dash-chart-bar.is-today{background:var(--accent);box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 28%,transparent)}.dash-hours-sum{display:flex;align-items:baseline;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.dash-hours-total{font-family:var(--mono);font-size:20px;color:var(--text)}.dash-deadline,.dash-event{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 16px;border-top:1px solid var(--line)}.dash-deadline:hover,.dash-deadline:focus-visible{background:var(--accent-dim)}.dash-deadline:focus-visible{outline:none}.dash-deadline .dash-due{min-width:52px}.dash-deadline-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.dash-deadline-main strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-deadline-main span{font-family:var(--mono);font-size:11px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-overdue-pill{flex:none;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);padding:3px 7px;border-radius:5px}.dash-event{flex-direction:column;align-items:stretch;gap:5px}.dash-event-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-family:var(--mono);font-size:11px;color:var(--text-faint)}.dash-dot{color:var(--line-strong)}.dash-event-actor{color:var(--text)}.dash-event-action.is-created,.dash-event-action.is-reopened{color:var(--ok)}.dash-event-action.is-deleted{color:var(--danger)}.dash-event-body{font-size:13px;color:var(--text-muted);line-height:1.4}.dash-entry-hours{flex:none;font-family:var(--mono);font-size:12px;color:var(--text)}@media(max-width:1100px){.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-layout{grid-template-columns:1fr}.dash-projects{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.dash{padding:12px}.dash-kpis{grid-template-columns:1fr 1fr;gap:10px}.dash-table-head,.dash-table-row{grid-template-columns:minmax(0,1fr) 72px 64px}.dash-hide-sm{display:none}.dash-projects{grid-template-columns:1fr}}.pw-wrap{position:relative}.pw-wrap input{width:100%;padding-right:40px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px}.theme-picks{display:flex;flex-wrap:wrap;gap:10px}.theme-pick{display:inline-flex;align-items:center;gap:8px;margin:0;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;color:var(--text);font-size:14px;font-weight:500;line-height:1.2;text-transform:none;letter-spacing:0}.theme-pick.is-on{border-color:var(--accent);background:var(--accent-dim);color:var(--nav-active)}.theme-pick input{appearance:auto;width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--accent)}.hotkey-list{margin:0 0 16px;padding-left:18px}.hotkey-list kbd{font-family:var(--mono);font-size:12px;border:1px solid var(--line-strong);border-radius:4px;padding:1px 6px;margin-right:8px}.archive-tabs{display:flex;gap:8px;padding:12px 20px 0}.drawer-title-wrap .char-count{display:block;text-align:right;margin-top:4px}@media(max-width:767px){.toast-stack{right:12px;left:12px;width:auto}}.app-shell:has(.board-main){height:100dvh;min-height:0;grid-template-rows:minmax(0,1fr);overflow:hidden}.app-shell:has(.board-main) .workspace{height:100%;min-height:0;overflow:hidden}.workspace .board-main{overflow:hidden}.board-main>:not(.board-stack):not(.board):not(.search-layout){flex-shrink:0}.board-main .search-layout{min-height:0;overflow:auto}.board-main .board-layer,.board-main .board-stack.has-cover .board-layer{overflow:hidden}.board-main .board,.board-main .board-stack.has-cover .board{min-height:0;overflow-x:auto;overflow-y:hidden}.board-main .column{overflow:hidden}.board-main .column-head{position:static;flex-shrink:0}.board-main .column-body{overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}.board-main .column-body:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.column-content{display:flex;flex-direction:column;flex:1 0 auto;gap:8px}.board-main .column-body>*,.column-content>*{flex-shrink:0}.board-main .board-col-pills{flex-shrink:0}.board-main .board.is-mobile-pager{display:flex}.board-main .board.is-mobile-pager .column{min-height:0}.tags-settings{padding:24px}.tags-settings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.tags-settings-toolbar h2{font-size:18px;margin:0 0 6px}.tags-settings-toolbar .desc{margin:0;color:var(--text-muted)}.tags-settings-toolbar .search{width:300px;flex-shrink:0}.tags-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg-card)}.tags-table{width:100%;border-collapse:collapse;text-align:left}.tags-table th,.tags-table td{padding:12px 16px;border-bottom:1px solid var(--line)}.tags-table thead th{color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap}.tags-project-row th{background:var(--bg-elevated);font-size:14px}.tags-project-row .id,.tags-project-row .badge{margin-left:12px;font-weight:400}.tags-usage{width:140px;font-variant-numeric:tabular-nums}.tags-actions{width:110px;text-align:right}.tags-table .chip{overflow-wrap:anywhere}.tags-delete-description{margin:16px 0}@media(max-width:700px){.tags-settings{padding:16px}.tags-settings-toolbar{align-items:stretch;flex-direction:column;gap:12px}.tags-settings-toolbar .search{width:100%}.tags-table th,.tags-table td{padding:10px}.tags-usage,.tags-actions{width:auto}}.tags-replacement{border:0;padding:0;margin:16px 0;min-width:0}.tags-replacement legend{margin-bottom:8px;color:var(--text-muted);font-size:12px}.tags-replacement .filter-combo-wrap,.tags-replacement .filter-combo-input{width:100%}.task-no-copy{border:0;padding:0;background:transparent;cursor:pointer}.task-no-copy:hover{color:var(--text);text-decoration:underline}.task-no-copy:focus-visible{outline:2px solid currentColor;outline-offset:3px}
