:root{--brand: #d85a30;--primary: #c24e26;--primary-text: #993c1d;--primary-focus: #d85a30;--primary-tint: rgba(216, 90, 48, .1);--ink: #2c2c2a;--ink-muted-80: #333333;--muted: #6e6e73;--ink-muted-48: #7a7a7a;--hairline: #e0e0e0;--divider-soft: #f0f0f0;--canvas: #ffffff;--parchment: #f5f5f7;--pearl: #fafafc;--chip: #d2d2d7;--on-primary: #ffffff;--danger: #b42318;--danger-tint: #fdecea;--ok-bg: #e3f5e9;--ok-text: #1d7a43;--warn-bg: #fff2d9;--warn-text: #8a5a00;--overdue-mark: #b42318;--neutral-mark: #8e8e93;--cat-1: #2a78d6;--cat-2: #eb6834;--cat-3: #1baf7a;--cat-4: #eda100;--cat-5: #e87ba4;--cat-6: #008300;--prio-low: #86b6ef;--prio-medium: #3987e5;--prio-high: #1c5cab;--sidebar: #c24e26;--hover: rgba(0, 0, 0, .05);--backdrop: rgba(0, 0, 0, .32);--lightbox: rgba(0, 0, 0, .9);--on-lightbox: #ffffff;--frost: rgba(255, 255, 255, .86);color-scheme:light;--rounded-sm: 8px;--rounded-md: 11px;--rounded-lg: 18px;--rounded-pill: 9999px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", system-ui, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", system-ui, sans-serif;font-family:var(--font);font-size:14px;line-height:1.43;letter-spacing:-.224px;color:var(--ink);-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--primary-text: #ef7a4e;--primary-tint: rgba(239, 122, 78, .16);--ink: #f5f5f7;--ink-muted-80: #d1d1d6;--muted: #a1a1a6;--ink-muted-48: #8e8e93;--hairline: #3a3a3c;--divider-soft: #2c2c2e;--canvas: #1d1d1f;--parchment: #272729;--pearl: #2a2a2c;--chip: #5a5a5e;--danger: #ff6b5e;--danger-tint: #3b1f1c;--ok-bg: #1f3326;--ok-text: #6fcf8f;--warn-bg: #3a2e15;--warn-text: #f2c063;--overdue-mark: #ef5350;--neutral-mark: #636366;--cat-1: #3987e5;--cat-2: #d95926;--cat-3: #199e70;--cat-4: #c98500;--cat-5: #d55181;--cat-6: #008300;--sidebar: #a8401c;--hover: rgba(255, 255, 255, .08);--backdrop: rgba(0, 0, 0, .55);--frost: rgba(39, 39, 41, .86);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--canvas)}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button:active:not(:disabled){transform:scale(.95)}:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px}input,select,textarea{border:1px solid var(--hairline);border-radius:var(--rounded-sm);padding:7px 12px;background:var(--canvas)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-focus);outline-offset:-1px;border-color:transparent}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:12px;letter-spacing:-.12px}.overdue{color:var(--danger);font-weight:600}.done{text-decoration:line-through;color:var(--muted)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center{display:grid;place-items:center;height:100%;min-height:60vh}.error{color:var(--danger);background:var(--danger-tint);border-radius:var(--rounded-sm);padding:10px 14px}.error.banner{margin:0 32px 12px;cursor:pointer}.btn{border:none;border-radius:var(--rounded-pill);padding:8px 20px;cursor:pointer;font-weight:400;white-space:nowrap}.btn.primary{background:var(--primary);color:var(--on-primary)}.btn:disabled{opacity:.5;cursor:default}.btn.small{padding:5px 14px}.btn.danger{background:var(--danger-tint);color:var(--danger);font-weight:600}.link-btn{background:none;border:none;color:var(--primary-text);cursor:pointer;padding:4px}.link-btn.danger{color:var(--danger)}.link-btn:disabled{opacity:.4;cursor:not-allowed}.link-btn.light{color:var(--muted)}.icon-btn{background:none;border:none;cursor:pointer;border-radius:var(--rounded-sm);width:30px;height:30px;color:var(--muted);flex-shrink:0}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn.danger:hover{color:var(--danger)}.icon-btn.light{font-size:18px}.auth-page{min-height:100vh;display:grid;place-items:center;background:var(--brand);padding:16px}.auth-card{background:var(--canvas);width:380px;max-width:100%;padding:40px 32px;border-radius:var(--rounded-lg);border:1px solid var(--hairline);display:flex;flex-direction:column;gap:14px}.auth-card h2{font-family:var(--font-display);font-size:34px;font-weight:600;line-height:1.1;letter-spacing:-.374px;margin:0}.auth-card p{margin:0;font-size:17px;line-height:1.47;letter-spacing:-.374px}.auth-card p.muted{font-size:14px;letter-spacing:-.224px}.auth-card input{padding:10px 16px;border-radius:var(--rounded-pill)}.app{display:flex;height:100vh;height:100dvh}.main{flex:1;min-width:0;overflow:hidden;position:relative;background:var(--canvas);display:flex;flex-direction:column}.main-content{flex:1;min-height:0;position:relative}.mobile-bar,.nav-backdrop{display:none}.brand{--brand-size: 20px;display:inline-block;white-space:nowrap;font-family:var(--font-display);font-size:var(--brand-size);font-weight:600;letter-spacing:.2px;line-height:1;color:var(--ink);padding:4px 8px 16px}.brand .ks{color:var(--brand)}.brand.dark{--brand-size: 32px;padding:0;color:var(--primary-text)}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot.lg{width:14px;height:14px}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;font-weight:600;letter-spacing:0}.avatar.small{width:22px;height:22px;font-size:9px}.tag{font-size:12px;letter-spacing:-.12px;padding:2px 10px;border-radius:var(--rounded-pill);font-weight:600;white-space:nowrap}.priority-low{background:var(--ok-bg);color:var(--ok-text)}.priority-medium{background:var(--warn-bg);color:var(--warn-text)}.priority-high{background:var(--danger-tint);color:var(--danger)}.tag.owner{background:var(--primary-tint);color:var(--primary-text)}.tag.readonly{background:var(--parchment);color:var(--muted);margin-left:auto}.status-pending{background:var(--warn-bg);color:var(--warn-text)}.status-active{background:var(--ok-bg);color:var(--ok-text)}.status-disabled{background:var(--parchment);color:var(--muted)}.project{height:100%;display:flex;flex-direction:column}.project-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:28px 32px 12px}.project-header h1{font-family:var(--font-display);font-size:34px;font-weight:600;line-height:1.18;letter-spacing:-.374px;margin:0 4px 0 0}.project-header select{border-radius:var(--rounded-pill);padding:8px 16px}.tabs{display:flex;background:var(--parchment);border-radius:var(--rounded-pill);padding:3px}.tab-groups{display:flex;flex-wrap:wrap;gap:12px}.project-title{display:flex;align-items:center;gap:10px;min-width:0}.project-title h1{min-width:0;overflow-wrap:anywhere}.project-title .team-picker,.project-title .team-tag{flex:0 1000 auto;min-width:56px}.project-title .team-picker>summary,.project-title .team-tag{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto}.tabs button{white-space:nowrap;border:none;background:none;padding:6px 16px;border-radius:var(--rounded-pill);cursor:pointer;color:var(--ink)}.tabs button.active{background:var(--canvas);color:var(--primary-text);font-weight:600;outline:1px solid var(--hairline)}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:4px 32px 16px;border-bottom:1px solid var(--hairline);margin-bottom:16px}.toolbar select{border-radius:var(--rounded-pill);padding:8px 16px;height:36px}.search-box{position:relative;display:inline-block;height:36px;flex-shrink:0}.search-box input[type=search]{display:block;width:24px;height:24px;margin:6px 0;padding:0;border:none;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 3px var(--muted);cursor:pointer;caret-color:var(--primary-text);-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:all .5s linear}.search-box input[type=search]:not(:focus):not(:valid)::placeholder{color:transparent}.search-box input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.search-box input[type=search]:focus,.search-box input[type=search]:valid{width:260px;height:36px;margin:0;padding:8px 16px;cursor:text;border-radius:var(--rounded-pill);background:var(--parchment);box-shadow:none;transition-duration:.25s;transition-delay:.25s}.search-box input[type=search]:focus{animation:search-show-caret 1s steps(1)}.search-box.wide{flex:1}.search-box.wide input[type=search]:focus,.search-box.wide input[type=search]:valid{width:100%}.search-caret{position:absolute;left:10.5px;top:18px;width:3px;height:12px;pointer-events:none;background:var(--muted);border-radius:0 0 1.5px 1.5px;transform-origin:50% 0;transform:rotate(-45deg) translateY(10px);transition:all .5s linear}.search-box input[type=search]:focus+.search-caret,.search-box input[type=search]:valid+.search-caret{animation:search-handle-to-caret 1s linear;background:transparent;width:1px;height:18px;transform:rotate(-180deg) translate(-5.5px,-9px)}@keyframes search-show-caret{0%{caret-color:transparent}to{caret-color:var(--primary-text)}}@keyframes search-handle-to-caret{0%{background:var(--muted);width:3px;height:12px;transform:rotate(-45deg) translateY(10px)}25%{background:var(--muted);width:3px;height:12px;transform:rotate(-180deg) translateY(10px)}50%,62.5%{background:var(--primary-text);width:1px;height:18px;transform:rotate(-180deg) translate(-5.5px,6px)}75%,99%{background:var(--primary-text);width:1px;height:18px;transform:rotate(-180deg) translate(-5.5px,-9px)}87.5%{background:var(--primary-text);width:1px;height:18px;transform:rotate(-180deg) translate(-5.5px,-7px)}to{background:transparent;width:1px;height:18px;transform:rotate(-180deg) translate(-5.5px,-9px)}}@media(prefers-reduced-motion:reduce){.search-box input[type=search],.search-caret{transition:none}.search-box input[type=search]:focus,.search-box input[type=search]:focus+.search-caret{animation:none}}.section-header{display:flex;align-items:center;gap:8px;padding:4px 4px 10px}.section-name{font-size:17px;font-weight:600;letter-spacing:-.374px}.check{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--chip);background:none;font-size:11px;line-height:1;color:transparent;cursor:pointer;flex-shrink:0;padding:0;display:inline-grid;place-items:center}.check:hover{border-color:var(--primary);color:var(--primary-text)}.check.checked{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.check:disabled{cursor:default;opacity:.5}.check:disabled:hover{border-color:var(--chip);color:transparent}.check.checked:disabled:hover{color:var(--on-primary);border-color:var(--primary)}.check.static{cursor:inherit;opacity:.5}.check.static:hover{border-color:var(--chip);color:transparent}.check.checked.static:hover{color:var(--on-primary);border-color:var(--primary)}.add-task{background:none;border:none;color:var(--primary-text);cursor:pointer;padding:8px 10px;text-align:left;width:100%;border-radius:var(--rounded-sm)}.add-task:active{transform:none}.add-task:hover{background:var(--hover)}.add-task-form input{width:100%}.board{flex:1;display:flex;gap:16px;padding:0 32px 32px;overflow-x:auto;align-items:flex-start}.column{width:300px;flex-shrink:0;background:var(--parchment);border-radius:var(--rounded-lg);padding:12px;max-height:100%;display:flex;flex-direction:column;border:2px solid transparent}.column.drag-over{border-color:var(--primary);background:var(--primary-tint)}.cards{display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:8px}.card{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--rounded-md);padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:10px}.card:hover{border-color:var(--chip)}.card.dragging{opacity:.4}.card.done .card-title span{text-decoration:line-through;color:var(--muted)}.card-title{display:flex;gap:10px;align-items:flex-start;word-break:break-word}.task-meta{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:-.12px}.task-meta:empty{display:none}.task-meta>span{white-space:nowrap}.add-column{flex-shrink:0;width:200px;padding:14px;border:1px dashed var(--chip);border-radius:var(--rounded-lg);background:none;cursor:pointer;color:var(--primary-text)}.add-column:hover{border-color:var(--primary)}.list{flex:1;overflow-y:auto;padding:0 32px 32px}.list-row{display:grid;grid-template-columns:minmax(200px,1fr) 180px 120px 110px;align-items:center;gap:12px;padding:10px 12px;min-height:44px;border-bottom:1px solid var(--divider-soft);cursor:pointer}.list-row:hover{background:var(--pearl)}.list-row.personal{grid-template-columns:minmax(200px,1fr) 180px 120px 110px}.list-row.with-assignee{grid-template-columns:minmax(200px,1fr) 160px 160px 110px 100px}.saved-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 32px 8px}.saved-filter{display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:var(--rounded-pill);background:var(--canvas);font-size:13px}.saved-filter.active{border-color:var(--primary);background:var(--primary-tint)}.saved-filter-name{border:none;background:none;padding:4px 4px 4px 12px;color:inherit;cursor:pointer;font:inherit}.saved-filter.active .saved-filter-name{color:var(--primary-text);font-weight:600}.saved-filter-remove{border:none;background:none;padding:4px 10px 4px 4px;color:var(--muted);cursor:pointer;font-size:11px}.saved-filter-remove:hover{color:var(--danger)}.list-row.with-start{grid-template-columns:minmax(200px,1fr) 180px 110px 120px 110px}.list-head{color:var(--muted);font-size:12px;letter-spacing:-.12px;cursor:default;font-weight:600;min-height:0;border-bottom-color:var(--hairline)}.list-head:hover{background:none}.list-section{margin:20px 0 8px}.list-title{display:flex;align-items:center;gap:10px;min-width:0}.cell{display:flex;align-items:center;gap:6px;min-width:0}.list-add{padding:2px 0}.add-section-btn{background:none;border:none;color:var(--primary-text);cursor:pointer;padding:12px 0}.detail{position:absolute;top:0;right:0;bottom:0;width:min(500px,100%);background:var(--canvas);border-left:1px solid var(--hairline);padding:20px 28px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;z-index:10}.detail h3{font-size:14px;font-weight:600;margin:16px 0 0}.detail-top{display:flex;align-items:center;gap:4px}.detail-project{display:flex;align-items:center;gap:8px;color:var(--muted)}.complete-btn{border:1px solid var(--primary);background:none;color:var(--primary-text);border-radius:var(--rounded-pill);padding:6px 16px;cursor:pointer}.complete-btn.on{background:var(--primary);color:var(--on-primary)}.follow-btn{border:1px solid var(--hairline);background:none;color:var(--muted);border-radius:var(--rounded-pill);padding:4px 12px;cursor:pointer;white-space:nowrap}.follow-btn.on{border-color:var(--primary);color:var(--primary-text)}.detail-title{font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1.19;letter-spacing:-.28px;border-color:transparent;padding:6px 8px;margin-left:-8px}.detail-title:hover{border-color:var(--hairline)}.detail-title.static{margin:0 0 0 -8px}.fields{display:grid;grid-template-columns:110px 1fr;gap:10px 12px;align-items:center}.fields>label{color:var(--muted)}.description,.description-static,.comment-body{font-size:17px;line-height:1.47;letter-spacing:-.374px}.description{min-height:100px;resize:vertical}.description-static{margin:0;white-space:pre-wrap}.subtask{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--divider-soft)}.comments{display:flex;flex-direction:column;gap:16px}.comment{display:flex;gap:10px}.comment-meta{font-size:12px;letter-spacing:-.12px;margin-bottom:2px}.comment-body{white-space:pre-wrap;word-break:break-word}.comment-form{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.comment-form textarea{width:100%;min-height:64px;resize:vertical;border-radius:var(--rounded-md)}.crumb{background:none;border:none;padding:0;cursor:pointer;color:var(--primary-text);text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb:active{transform:none}.crumb:hover{text-decoration:underline}.detail-project{min-width:0;flex-wrap:wrap}.task-page{height:100%;overflow-y:auto;padding:20px 32px 40px}.page-top{display:flex;align-items:center;gap:16px;margin:0 0 16px -4px;flex-wrap:wrap}.task-page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:32px;align-items:start;max-width:1200px}.task-page-main{display:flex;flex-direction:column;gap:12px;min-width:0}.task-page-main h3{font-size:14px;font-weight:600;margin:16px 0 0}.task-page-side{position:sticky;top:0;display:flex;flex-direction:column;gap:16px}.task-page-side .fields{grid-template-columns:96px minmax(0,1fr)}.task-page-side .fields select,.task-page-side .fields input{min-width:0;width:100%}@media(max-width:900px){.task-page-grid{grid-template-columns:1fr}.task-page-side{position:static;order:-1}}.requirement-page{max-width:900px}.members-btn{display:flex;align-items:center;gap:8px;margin-right:8px;cursor:pointer;background:none;border:1px solid var(--hairline);border-radius:var(--rounded-pill);padding:4px 14px 4px 6px;color:var(--ink)}.members-btn:hover{border-color:var(--chip)}.avatar-stack{display:flex}.avatar-stack .avatar{border:2px solid var(--canvas);margin-left:-6px}.avatar-stack .avatar:first-child{margin-left:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;z-index:20}.modal{background:var(--canvas);width:min(480px,calc(100% - 32px));max-height:80vh;overflow-y:auto;border-radius:var(--rounded-lg);padding:24px 28px;display:flex;flex-direction:column;gap:14px}.modal-header{display:flex;align-items:center}.modal-header h2{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:.231px;margin:0}.member-form{display:flex;gap:8px}.member-form input{flex:1;border-radius:var(--rounded-pill);padding:8px 16px}.member-list{list-style:none;margin:0;padding:0}.member-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--divider-soft)}.member-list li:last-child{border-bottom:none}.member-role{flex-shrink:0;max-width:180px;border-radius:var(--rounded-pill);padding:4px 10px;font-size:13px}.badge{position:absolute;top:-2px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--rounded-pill);background:var(--primary);color:var(--on-primary);font-size:10px;font-weight:600;line-height:16px;letter-spacing:0}.badge.inline{position:static}.bell-wrap{position:relative}.bell{position:relative;font-size:15px}.click-away{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29}.notif-panel{position:absolute;top:36px;left:0;z-index:30;width:370px;max-height:70vh;overflow-y:auto;color:var(--ink);border:1px solid var(--hairline);border-radius:var(--rounded-lg);background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.notif-head{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--hairline);position:sticky;top:0}.notif-empty{padding:16px;margin:0}.notif{display:flex;gap:10px;width:100%;text-align:left;padding:12px 16px;cursor:pointer;background:none;border:none;border-bottom:1px solid var(--divider-soft)}.notif:active{transform:none}.notif:hover{background:var(--pearl)}.notif.unread{background:var(--primary-tint)}.notif-text{display:flex;flex-direction:column;gap:2px}.notif-icon{width:22px;flex-shrink:0;text-align:center;font-size:16px;line-height:22px}.google-btn{min-height:44px;display:flex;justify-content:center}.dev-login{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px dashed var(--warn-text);border-radius:var(--rounded-md);background:var(--warn-bg)}.dev-label{font-size:12px;letter-spacing:-.12px;color:var(--warn-text);font-weight:600}.stats{gap:20px}.stat{color:var(--muted)}.stat b{color:var(--ink);margin-left:4px;font-weight:600}.overdue-stat b{color:var(--danger)}.checkbox{display:flex;align-items:center;gap:6px;color:var(--ink);cursor:pointer}.checkbox input{accent-color:var(--primary)}.center-text{text-align:center;padding:48px;font-size:17px;letter-spacing:-.374px}.admin{display:flex;flex-direction:column;gap:20px}.admin-card{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--rounded-lg);padding:20px 24px}.admin-card h2{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:.231px;margin:0 0 14px}.admin-card .section-header h2{margin:0}.team-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.team-chip{display:flex;align-items:center;gap:2px;padding:2px 4px 2px 2px;border:1px solid var(--hairline);border-radius:var(--rounded-pill)}.team-chip.active{border-color:var(--primary);background:var(--primary-tint)}.team-chip-toggle{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;cursor:pointer;border:none;background:none;color:var(--ink);border-radius:var(--rounded-pill)}.team-chip-toggle:hover{background:var(--hover)}.team-chip.active .team-chip-toggle b{color:var(--primary-text)}.channel-color{display:grid;place-items:center;width:32px;height:32px;padding:0;cursor:pointer;border:none;background:none;border-radius:50%}.channel-color:hover{background:var(--hover)}.channel-color .dot{width:14px;height:14px}.channel-chip-name{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 2px}.profile{display:flex;flex-direction:column;gap:20px;max-width:760px}.profile-head{display:flex;align-items:center;gap:14px}.profile-head{align-items:flex-start}.profile-head .avatar{width:88px;height:88px;font-size:30px}.avatar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px}.avatar-actions .error{flex-basis:100%}img.avatar{object-fit:cover}.profile-head b{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:.231px}.profile-grid{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px 16px;align-items:center;margin:0}.profile-grid dt,.profile-label,.profile-form>label{color:var(--muted)}.profile-grid dd{margin:0;min-width:0;word-break:break-word}.profile-bio{white-space:pre-wrap}.profile-form input,.profile-form select{width:100%;max-width:420px}.profile-form>label[for=profile-bio]{align-self:start;padding-top:8px}.profile-bio-field{display:flex;flex-direction:column;gap:4px;max-width:560px}.profile-bio-field textarea{width:100%;resize:vertical}.profile-bio-field .small{align-self:flex-end}.profile-actions{display:flex;align-items:center;gap:10px;margin-top:16px}.profile .tabs{justify-self:start}.profile>.admin-card>.small{margin:14px 0 0}@media(max-width:700px){.profile-grid{grid-template-columns:minmax(0,1fr);gap:4px 0}.profile-grid dd,.profile-grid>input,.profile-grid>select,.profile-grid>.profile-bio-field,.profile-grid>.tabs{margin-bottom:10px}}.profile-pop{position:relative;flex-shrink:0}.profile-pop>summary{display:block;list-style:none;cursor:pointer;border-radius:50%}.profile-pop>summary::-webkit-details-marker{display:none}.profile-pop>summary:hover .avatar,.profile-pop[open]>summary .avatar{outline:2px solid var(--primary-focus);outline-offset:1px}.profile-pop-card{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(320px,calc(100vw - 32px));display:flex;flex-direction:column;gap:12px;padding:16px;cursor:default;text-align:left;border:1px solid var(--hairline);border-radius:var(--rounded-md);background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.profile-pop.up .profile-pop-card{top:auto;bottom:calc(100% + 8px)}.profile-pop-head{display:flex;align-items:center;gap:12px;min-width:0}.profile-pop-head .avatar{width:48px;height:48px;font-size:17px}.profile-pop-facts{display:grid;grid-template-columns:104px minmax(0,1fr);gap:6px 10px;margin:0;font-size:14px}.profile-pop-facts dt{color:var(--muted)}.profile-pop-facts dd{margin:0;min-width:0;word-break:break-word}.profile-pop-bio{margin:0;font-size:14px;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.team-modal{width:min(560px,calc(100% - 32px))}.team-modal h3{font-size:14px;font-weight:600;margin:6px 0 0}.team-modal .member-list li{padding:8px 0;gap:10px}.suggest-list{max-height:260px;overflow-y:auto}.invite-form{display:flex;align-items:center;gap:8px;width:100%}.invite-form input{width:170px;border-radius:var(--rounded-pill);padding:6px 12px}.invited-by{display:block;margin-top:2px}.team-card h2{margin-bottom:4px}.team-members{display:flex;flex-direction:column;gap:12px}.team-card .team-members h3{font-size:14px;font-weight:600;margin:6px 0 0}.team-card .member-list li{padding:8px 0;gap:10px}.notice{color:var(--ok-text);background:var(--ok-bg);border-radius:var(--rounded-sm);padding:10px 14px}.admin-row{display:grid;grid-template-columns:minmax(220px,1fr) 130px 130px 160px 160px;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--divider-soft)}.admin-head{color:var(--muted);font-size:12px;letter-spacing:-.12px;font-weight:600;border-bottom-color:var(--hairline)}.admin-actions{display:flex;align-items:center;gap:4px}.admin-row .team-picker>summary{overflow:hidden;text-overflow:ellipsis;max-width:100%}.admin-row .team-picker-menu{left:auto;right:0}.invite-form{display:flex;flex-wrap:wrap;gap:8px}.invite-form input{flex:1 1 200px;min-width:0;border-radius:var(--rounded-pill);padding:8px 16px}.invite-form select{flex:0 0 auto}.invite-form+.error,.invite-form+.notice{margin-top:12px}.perm-table{overflow-x:auto}.perm-grid{display:grid;grid-template-columns:minmax(180px,1fr) repeat(var(--roles),116px);align-items:center;column-gap:12px;min-width:max-content}.perm-grid>*{padding:10px 0;border-bottom:1px solid var(--divider-soft)}.perm-head{color:var(--muted);font-size:12px;letter-spacing:-.12px;font-weight:600;border-bottom-color:var(--hairline)}.perm-label{display:flex;flex-direction:column;gap:2px;max-width:420px}.perm-grid select{width:100%}.perm-grid select.perm-none{color:var(--muted)}.perm-grid .link-btn{justify-self:start;border-bottom:0}.role-row{display:grid;grid-template-columns:minmax(180px,1fr) 72px 140px 140px 80px 60px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--divider-soft)}.role-row .cell{gap:8px;min-width:0}.role-level-input{width:64px}.role-add-title{font-size:14px;font-weight:600;margin:18px 0 10px}.role-level{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:14px}.role-level input{width:64px;flex:none}.dashboard{display:flex;flex-direction:column;gap:20px}.card-sub{margin:-8px 0 14px}.num{text-align:right;font-variant-numeric:tabular-nums}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.stat-tile{background:var(--parchment);border-radius:var(--rounded-lg);padding:16px 20px}.stat-label{color:var(--muted)}.stat-value{font-family:var(--font-display);font-size:34px;font-weight:600;line-height:1.18;letter-spacing:-.374px;margin-top:4px}.legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;letter-spacing:-.12px}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;margin-left:8px}.overdue-seg{background:var(--overdue-mark)}.open-seg{background:var(--neutral-mark)}.workload-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(120px,2fr) repeat(5,72px);align-items:center;gap:12px;width:100%;padding:10px 6px;min-height:44px;background:none;border:none;border-bottom:1px solid var(--divider-soft);text-align:left;cursor:pointer}.workload-row.with-team{grid-template-columns:minmax(150px,1.2fr) 100px minmax(120px,2fr) repeat(5,72px)}.workload-row:active{transform:none}.workload-row:hover{background:var(--pearl)}.workload-head{cursor:default;color:var(--muted);font-size:12px;letter-spacing:-.12px;font-weight:600;min-height:0;border-bottom-color:var(--hairline)}.workload-head:hover{background:none}.workload-row.static{cursor:default}.workload-row.report-grid{grid-template-columns:minmax(160px,1fr) repeat(5,72px)}.overload-tag{flex-shrink:0;color:var(--danger);background:var(--primary-tint)}.report-delta{display:block;margin-top:4px}.report-period{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:0 32px 12px}.report-period .tabs{max-width:100%;overflow-x:auto}.report-step{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.report-step>span{font-weight:600;min-width:0}.report-charts .section-header{flex-wrap:wrap;gap:12px}.report-charts>p{margin:8px 0 16px}.report-pies{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.report-pie{position:relative;min-width:0}.report-pie h3{font-size:14px;font-weight:600;margin:0 0 10px}.report-pie-body{display:flex;flex-direction:column;align-items:center;gap:12px}.report-pie svg{width:160px;height:160px;flex-shrink:0}.report-pie path{stroke:var(--canvas);stroke-width:2;transition:opacity .15s}.report-pie path.dim{opacity:.35}.report-pie-total{font-size:28px;font-weight:600;fill:var(--ink)}.report-pie-unit{font-size:12px;fill:var(--muted)}.report-pie-legend{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:2px;font-size:13px}.report-pie-legend li{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--rounded-sm);min-width:0}.report-pie-legend li.active{background:var(--parchment)}.report-pie-legend .swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.report-pie-legend .num{flex-shrink:0;min-width:32px;text-align:right;font-variant-numeric:tabular-nums}.report-pie-tip{position:absolute;z-index:5;pointer-events:none;width:max-content;max-width:240px;padding:8px 10px;font-size:13px;background:var(--canvas);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--rounded-sm)}@media(prefers-reduced-motion:reduce){.report-pie path{transition:none}}.card-sub.report-sub{margin-top:0}.report-step input[type=date]{padding:6px 10px;border:1px solid var(--hairline);border-radius:var(--rounded-sm);background:var(--canvas)}.report-period select{border-radius:var(--rounded-pill);padding:8px 16px}.report-thresholds{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.report-threshold input{width:120px}.workload-row.static:hover{background:none}.bar-cell{display:flex;align-items:center;min-width:0}.workload-bar{display:flex;gap:2px;height:10px;min-width:6px}.workload-bar .seg{display:block;height:100%;flex-basis:0;min-width:3px}.workload-bar .seg:last-child{border-radius:0 4px 4px 0}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:20px}.trend{display:flex;gap:8px;height:190px}.trend-axis{display:flex;flex-direction:column;justify-content:space-between;padding-bottom:22px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.trend-plot{flex:1;display:flex;gap:2px;border-bottom:1px solid var(--hairline);margin-bottom:22px;position:relative}.trend-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.trend-bar{width:min(24px,70%);min-height:0;background:var(--brand);border-radius:4px 4px 0 0}.trend-col:hover .trend-bar{background:var(--primary-text)}.trend-peak{font-size:12px;font-weight:600;margin-bottom:4px}.trend-day{position:absolute;bottom:-20px;font-size:10px;letter-spacing:-.08px;color:var(--muted);white-space:nowrap}.trend-col:nth-child(odd) .trend-day{visibility:hidden}.trend-col[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);white-space:nowrap;z-index:5;background:var(--ink);color:var(--on-primary);font-size:12px;padding:4px 10px;border-radius:var(--rounded-sm)}.project-progress{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,1.4fr) 56px 80px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--divider-soft)}.project-progress:last-child{border-bottom:none}.meter{height:8px;background:var(--primary-tint);border-radius:var(--rounded-pill);overflow:hidden}.meter span{display:block;height:100%;background:var(--brand);border-radius:var(--rounded-pill)}.team-tag{background:var(--parchment);color:var(--ink)}.readonly-banner{margin:0 32px 12px;padding:10px 14px;border-radius:var(--rounded-sm);background:var(--parchment);color:var(--ink)}.form-field{display:flex;flex-direction:column;gap:6px}.form-field>span:first-child{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:-.12px}.form-field input,.form-field select{border-radius:var(--rounded-pill);padding:8px 16px}.static-value{padding:8px 0}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:4px}.template-pick{display:flex;align-items:center;gap:4px}.template-pick select{flex:1;min-width:0}.template-anchor{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.template-anchor input{flex:1;min-width:150px}.dialog{width:min(420px,calc(100% - 32px))}.dialog-backdrop{z-index:30}.dialog-message{margin:0;line-height:1.47;white-space:pre-wrap;word-break:break-word}.shared-mark{flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:-.08px;padding:1px 6px;border-radius:var(--rounded-pill);border:1px solid currentColor}.team-picker{position:relative}.team-picker>summary{list-style:none;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:-.12px;padding:4px 12px;border-radius:var(--rounded-pill);background:var(--parchment);white-space:nowrap}.team-picker>summary::-webkit-details-marker{display:none}.team-picker-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:15;width:min(420px,80vw);display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--hairline);border-radius:var(--rounded-md);background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.requirements{margin:0;white-space:pre-wrap;word-break:break-word;font-size:17px;line-height:1.47;letter-spacing:-.374px}.requirements-input{width:100%;min-height:260px;resize:vertical;border-radius:var(--rounded-md);font-size:17px;line-height:1.47;letter-spacing:-.374px}.tab-count{display:inline-block;min-width:18px;margin-left:6px;padding:0 5px;border-radius:var(--rounded-pill);background:var(--primary-tint);color:var(--primary-text);font-size:11px;font-weight:600;line-height:18px}.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}.pill-group{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0;min-width:0}.select-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:var(--rounded-pill);border:1px solid var(--chip);background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .2s ease-out,background-color .2s ease-out,border-color .2s ease-out,transform .1s ease-out}.select-pill:hover{background:var(--hover)}.select-pill:active{transform:scale(.95)}.select-pill.checked{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.select-pill.checked:hover{background:var(--primary-text);border-color:var(--primary-text)}.select-pill:has(input:focus-visible){outline:2px solid var(--primary-focus);outline-offset:2px}.pill-check{width:0;overflow:hidden;font-size:12px;transition:width .2s ease-out}.select-pill.checked .pill-check{width:12px}@media(prefers-reduced-motion:reduce){.select-pill,.pill-check{transition:none}}.sidebar,.guide-art{--sb-bg: #1e2027;--sb-raised: #292c35;--sb-hover: #323541;--sb-text: #ffffff;--sb-muted: #a3a8b5}.sidebar{--sb-rail: 52px;position:relative;width:272px;flex-shrink:0;display:flex;flex-direction:column;padding:18px 0 16px;background:var(--sb-bg);color:var(--sb-text)}.sidebar .icon-btn,.sidebar .link-btn{color:var(--sb-muted)}.sidebar .icon-btn:hover{background:var(--sb-hover);color:var(--sb-text)}.sidebar .link-btn:hover{color:var(--sb-text)}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 var(--sb-rail);margin-bottom:20px}.sidebar .brand{color:var(--sb-text);padding:0}.sidebar-brand{display:flex;flex-direction:column;gap:4px;min-width:0}.app-version{color:var(--sb-muted);font-size:11px;letter-spacing:.2px}.sidebar-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 4px;padding:0 12px 0 var(--sb-rail);color:var(--sb-muted);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase}.main-buttons{list-style:none;margin:0;padding:0}.project-groups{flex:1;overflow-y:auto}.main-button{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 16px 0 var(--sb-rail);border:none;background:none;color:var(--sb-text);text-align:left;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}.main-button:active{transform:none}.main-button:hover,.has-flyout:hover>.main-button,.has-flyout.open>.main-button,.main-button.active{background:var(--sb-raised)}.main-button.active:before,.flyout-link.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.rail-icon{position:absolute;left:16px;width:20px;height:20px;fill:none;stroke:var(--sb-muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.main-button:hover .rail-icon,.main-button.active .rail-icon,.has-flyout.open .rail-icon{stroke:var(--sb-text)}.group-count{color:var(--sb-muted);font-size:11px;letter-spacing:0}.sidebar-empty{padding:8px 12px 8px var(--sb-rail);color:var(--sb-muted);font-size:12px}.flyout .sidebar-empty{padding:8px 12px}.flyout{position:absolute;top:8px;right:0;z-index:20;width:0;max-height:calc(100% - 16px);overflow:hidden;display:flex;flex-direction:column;background:var(--sb-raised);border-radius:var(--rounded-sm) 0 0 var(--rounded-sm);transition:width .3s ease}.has-flyout:hover>.flyout,.has-flyout.open>.flyout{width:calc(100% - var(--sb-rail))}.has-flyout.dismissed>.flyout{width:0}.flyout>*{min-width:calc(272px - var(--sb-rail))}.flyout-head{display:flex;align-items:center;gap:8px;padding:10px 8px 6px 20px;color:var(--sb-muted);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase}.flyout ul{list-style:none;margin:0;padding:0 0 8px;overflow-y:auto}.flyout-link{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:13px 16px 13px 20px;border:none;background:none;color:var(--sb-text);text-align:left;cursor:pointer}.flyout-link:active{transform:none}.flyout-link:hover,.flyout-link.active{background:var(--sb-hover)}.flyout-link.active{font-weight:600}.sidebar-footer{display:flex;align-items:center;gap:10px;margin-top:8px;padding:14px 16px 0;border-top:1px solid var(--sb-raised)}.user-info{display:flex;flex-direction:column;min-width:0}.role-line{color:var(--sb-muted);font-size:12px;letter-spacing:-.12px}.profile-link{display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin-left:-8px;padding:6px 8px;border:none;background:none;color:inherit;text-align:left;cursor:pointer;border-radius:var(--rounded-sm)}.profile-link:hover,.profile-link.active{background:var(--sb-raised)}.theme-switch{display:flex;gap:2px;margin:8px 16px 4px;padding:3px;border-radius:var(--rounded-pill);background:var(--sb-raised)}.theme-switch button{flex:1;border:none;background:none;color:var(--sb-muted);cursor:pointer;padding:5px 10px;border-radius:var(--rounded-pill);font-size:12px;letter-spacing:-.12px;white-space:nowrap}.theme-switch button:hover{color:var(--sb-text)}.theme-switch button.active{background:var(--sb-text);color:var(--sb-bg);font-weight:600}.sidebar-guide{border-top:1px solid var(--sb-raised)}.sidebar-switches{display:flex;gap:8px;margin:8px 16px 4px}.sidebar-switches .theme-switch{margin:0}.sidebar-switches .theme-switch:last-child{flex:0 0 auto}.auth-card{position:relative}.lang-switch{position:absolute;top:14px;right:14px;display:flex;gap:2px;padding:3px;border-radius:var(--rounded-pill);background:var(--parchment)}.lang-switch button{border:none;background:none;color:var(--muted);cursor:pointer;padding:4px 10px;border-radius:var(--rounded-pill);font-size:12px;font-weight:600}.lang-switch button.active{background:var(--canvas);color:var(--ink)}@media(prefers-reduced-motion:reduce){.flyout{transition:none}}.req-cards-page{flex:1;overflow-y:auto;padding:16px 32px 32px;border-top:1px solid var(--hairline)}.req-cards-page>.section-header h2{margin:0}.req-card-add{margin:0 0 16px;max-width:520px}.req-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:16px}.req-card{display:flex;flex-direction:column;gap:12px;padding:20px;cursor:pointer;min-width:0;background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--rounded-lg)}.req-card:hover{border-color:var(--primary)}.req-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.req-card-head{display:flex;align-items:flex-start;gap:8px}.req-card-title{flex:1;min-width:0;margin:0;font-size:17px;font-weight:600;line-height:1.3;word-break:break-word}.req-card-details{white-space:nowrap;flex-shrink:0}.req-card-progress{display:flex;align-items:center;gap:10px}.req-card-progress .meter{flex:1}.req-card-meta{display:flex;flex-wrap:wrap;gap:6px 14px}.req-card-meta .overdue{color:var(--danger);font-weight:600}.req-card-empty{margin:0}.req-card-statuses,.req-card-people{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.req-card-statuses b{font-weight:600}.req-card-people li{display:inline-flex;align-items:center;gap:4px}.req-card-count{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.project-focus{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:4px 32px 12px}.project-focus-chip{display:inline-flex;align-items:baseline;gap:8px;min-width:0;max-width:100%;padding:6px 14px;background:var(--primary-tint);color:var(--primary-text);border-radius:var(--rounded-pill);font-size:17px}.project-focus-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.req-progress{display:flex;align-items:center;gap:10px}.req-progress .meter{flex:1;max-width:220px}.req-detail{display:flex;flex-direction:column;gap:12px}.req-detail .section-header h2{margin:0}.req-detail .section-header .link-btn{white-space:nowrap}.req-title{word-break:break-word}.req-tasks-head{margin-top:8px;padding-bottom:0}.req-tasks-head h3{margin:0}.req-task{display:flex;align-items:center;gap:10px;width:100%;padding:8px 4px;text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--divider-soft);background:none;color:var(--ink)}.req-task:active{transform:none}.req-task:hover{background:var(--hover)}.req-tag{align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:-.08px;padding:1px 8px;border-radius:var(--rounded-pill);background:var(--primary-tint);color:var(--primary-text)}.list-title .req-tag{flex-shrink:1;min-width:0}.project-cell{display:flex;flex-direction:column;min-width:0;line-height:1.25}.add-task-form{display:flex;flex-direction:column;gap:6px}.add-task-form select{font-size:12px;padding:5px 10px}.mention-box{position:relative;width:100%}.mention-box textarea{width:100%;min-height:64px;resize:vertical;border-radius:var(--rounded-md)}.mention-menu{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:25;list-style:none;margin:0;padding:4px;max-height:240px;overflow-y:auto;border:1px solid var(--hairline);border-radius:var(--rounded-md);background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.mention-menu li{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--rounded-sm);cursor:pointer}.mention-menu li.active{background:var(--primary-tint)}.mention-menu li .muted{max-width:45%}.mention-empty{padding:10px 12px}.mention{padding:0 4px;border-radius:4px;font-weight:600;background:var(--primary-tint);color:var(--primary-text)}.notif-excerpt{color:var(--muted);font-size:12px;letter-spacing:-.12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.timeline-wrap{flex:1;min-height:420px;display:flex;flex-direction:column;padding:0 32px 32px;gap:12px}.project:has(.timeline-wrap){overflow-y:auto}.timeline-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.timeline-empty{margin:0}.timeline{--tl-label: 240px;--tl-row: 36px;flex:1;min-height:0;overflow:auto;border:1px solid var(--hairline);border-radius:var(--rounded-lg);background:var(--canvas)}.timeline-grid{position:relative;width:calc(var(--tl-label) + var(--days) * var(--px))}.tl-row{display:flex;height:var(--tl-row);border-bottom:1px solid var(--divider-soft)}.tl-label{position:sticky;left:0;z-index:2;flex:0 0 var(--tl-label);width:var(--tl-label);box-sizing:border-box;display:flex;align-items:center;gap:6px;padding:0 12px;background:var(--canvas);border-right:1px solid var(--hairline);min-width:0}.tl-task{border:none;border-right:1px solid var(--hairline);border-radius:0;text-align:left;cursor:pointer;font:inherit;color:inherit}.tl-task:hover{background:var(--pearl)}.tl-task:active{transform:none}.tl-task.done .ellipsis{text-decoration:line-through;color:var(--muted)}.tl-warn{color:var(--danger);flex-shrink:0}.tl-track{position:relative;flex:0 0 calc(var(--days) * var(--px))}.zoom-day .tl-track,.zoom-week .tl-track{background-image:linear-gradient(to right,transparent calc(5 * var(--px)),var(--pearl) calc(5 * var(--px)));background-size:calc(7 * var(--px)) 100%}.tl-track.drawable{cursor:crosshair;touch-action:pan-y}.tl-head{position:sticky;top:0;z-index:3;height:44px;background:var(--canvas);border-bottom-color:var(--hairline)}.tl-head .tl-label{z-index:4;color:var(--muted);font-size:12px;font-weight:600}.tl-head .tl-track{background:var(--canvas)}.tl-month{position:absolute;top:4px;padding-left:6px;border-left:1px solid var(--hairline);font-size:12px;font-weight:600;white-space:nowrap}.tl-tick{position:absolute;bottom:4px;padding-left:4px;font-size:11px;color:var(--muted);white-space:nowrap;box-sizing:border-box}.zoom-day .tl-tick{padding-left:0;text-align:center}.tl-group,.tl-group .tl-label,.tl-group .tl-track{background:var(--pearl)}.tl-today{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--brand);z-index:1;pointer-events:none}.tl-bar{position:absolute;top:9px;height:18px;border-radius:9px;background:var(--brand);cursor:pointer;min-width:6px;box-sizing:border-box;user-select:none;-webkit-user-select:none;touch-action:pan-y}.tl-bar.overdue{background:var(--overdue-mark)}.tl-bar.done{background:var(--neutral-mark)}.tl-bar.editable{cursor:grab}.tl-bar.dragging{cursor:grabbing;outline:2px solid var(--ink);outline-offset:1px}.tl-handle{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize}.tl-handle.start{left:0}.tl-handle.end{right:0}.tl-drag-dates{position:absolute;top:8px;padding:1px 8px;border-radius:var(--rounded-pill);white-space:nowrap;font-size:12px;background:var(--canvas);border:1px solid var(--hairline);pointer-events:none;z-index:1}.calendar{flex:1;overflow-y:auto;padding:0 32px 32px}.calendar-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.calendar-head h2{margin:0;font-size:21px;font-weight:600;letter-spacing:.231px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--rounded-lg);overflow:hidden}.calendar-weekday{background:var(--parchment);padding:8px;text-align:center;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:-.12px}.calendar-day{background:var(--canvas);min-height:112px;max-height:168px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:4px}.calendar-day.other-month{background:var(--pearl)}.calendar-day.other-month .calendar-date{color:var(--ink-muted-48)}.calendar-day.drag-over{background:var(--primary-tint);outline:2px solid var(--primary);outline-offset:-2px}.calendar-date{font-size:12px;letter-spacing:-.12px;font-weight:600;align-self:flex-end;padding:2px 6px}.calendar-day.today .calendar-date{background:var(--primary);color:var(--on-primary);border-radius:var(--rounded-pill)}.calendar-task{display:flex;align-items:center;gap:4px;width:100%;padding:3px 6px;text-align:left;cursor:pointer;font:inherit;font-size:12px;letter-spacing:-.12px;color:var(--ink);background:var(--parchment);border:1px solid transparent;border-radius:var(--rounded-sm)}.calendar-task:hover{border-color:var(--chip)}.calendar-task:active{transform:none}.calendar-task.overdue{color:var(--danger);font-weight:600}.calendar-task.done .grow{text-decoration:line-through;color:var(--muted)}.calendar-task[draggable=true]{cursor:grab}.calendar-task .avatar.small{width:18px;height:18px;font-size:8px;flex-shrink:0}.calendar-note{margin-top:8px}.comment-actions{display:inline-flex;gap:10px;margin-left:8px}.comment-actions .link-btn{font-size:12px;letter-spacing:-.12px;padding:0}.comment-edit-buttons{display:flex;gap:8px}.attachments{border:2px dashed transparent;border-radius:var(--rounded-lg);margin:0 -10px;padding:0 8px 8px}.attachments.drag-over{border-color:var(--primary);background:var(--primary-tint)}.attachments-head{display:flex;align-items:center;gap:12px}.attachment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.attachment{display:flex;align-items:center;gap:6px}.attachment-open{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:none;border:1px solid var(--hairline);border-radius:var(--rounded-sm)}.attachment-open:hover{border-color:var(--chip);background:var(--hover)}.attachment-open:active{transform:none}.attachment-thumb{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;overflow:hidden;background:var(--parchment);border-radius:var(--rounded-sm)}.attachment-thumb img{width:100%;height:100%;object-fit:cover}.attachment-icon{font-size:18px}.attachment-info{min-width:0;display:flex;flex-direction:column;font-size:14px;letter-spacing:-.224px}.comment-form.drag-over textarea{outline:2px dashed var(--primary);outline-offset:-2px;background:var(--primary-tint)}.comment-form-actions{display:flex;align-items:center;gap:8px}.pending-files{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-self:stretch}.pending-file{display:inline-flex;align-items:center;gap:6px;max-width:260px;padding:2px 2px 2px 10px;background:var(--parchment);border-radius:var(--rounded-pill);font-size:12px;letter-spacing:-.12px}.pending-file .link-btn{padding:2px 6px;color:var(--muted)}.attachment-list.compact{margin-top:6px;max-width:420px}.attachment-list.compact .attachment-open{padding:4px;gap:8px}.attachment-list.compact .attachment-thumb{width:32px;height:32px}.task-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}.card .task-tags{align-self:flex-start}.list-title .task-tags{flex-wrap:nowrap;flex-shrink:1;overflow:hidden}.team-label{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:-.08px;padding:0 8px;line-height:18px;border-radius:var(--rounded-pill);background:var(--parchment);color:var(--ink-muted-80);border:1px solid var(--hairline)}.channel-tag{display:inline-flex;align-items:center;gap:5px;max-width:140px;overflow:hidden;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:-.08px;padding:0 8px 0 6px;line-height:18px;border-radius:var(--rounded-pill);background:var(--canvas);color:var(--ink-muted-80);border:1px solid var(--hairline)}.channel-tag .dot{width:8px;height:8px}.recurrence-field{display:flex;flex-direction:column;gap:6px;min-width:0}.repeat-icon{font-weight:600}.recurrence-row{display:flex;align-items:center;gap:8px;min-width:0}.recurrence-row>select{flex:1;min-width:0}.hint{position:relative;flex-shrink:0}.hint-btn{display:grid;place-items:center;width:22px;height:22px;cursor:pointer;list-style:none;border:1px solid var(--hairline);border-radius:50%;color:var(--muted);font-size:12px;font-weight:600}.hint-btn::-webkit-details-marker{display:none}.hint-btn:hover,.hint[open]>.hint-btn{color:var(--primary-text);border-color:var(--primary-text)}.hint-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:15;width:min(340px,calc(100vw - 32px));padding:12px 14px;font-size:14px;line-height:1.43;color:var(--ink);border:1px solid var(--hairline);border-radius:var(--rounded-md);background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.hint-panel ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.dot.empty-dot{border:1px solid var(--chip);background:none}.history{margin-top:8px;border-top:1px solid var(--hairline);padding-top:8px}.history-toggle{padding:6px 0;font-weight:600}.history-list{list-style:none;margin:4px 0 0;padding:0 0 0 12px;border-left:2px solid var(--divider-soft);display:flex;flex-direction:column;gap:10px}.history-item{font-size:14px;letter-spacing:-.224px;line-height:1.43;word-break:break-word}.history-item .link-btn{font-size:12px;margin-left:6px;padding:0 4px}.history-diff{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}.history-diff>div{background:var(--parchment);border-radius:var(--rounded-sm);padding:8px 10px;min-width:0}.history-diff p{margin:2px 0 0;white-space:pre-wrap}@media(max-width:900px){.history-diff{grid-template-columns:1fr}}.guide{display:flex;flex-direction:column;gap:20px;max-width:880px}.guide-role{margin:0}.guide-toc{display:flex;flex-wrap:wrap;gap:8px}.guide-section{scroll-margin-top:16px}.guide-section dl{display:flex;flex-direction:column;gap:20px;margin:0}.guide-item{display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto 1fr;gap:4px 20px}.guide-item .guide-art{grid-row:span 2}.guide-item dt{font-weight:600;padding-top:6px}.guide-item dd{margin:0;line-height:1.47}@media(max-width:700px){.guide-item{grid-template-columns:minmax(0,1fr);grid-template-rows:none}.guide-item .guide-art{grid-row:auto;max-width:320px;margin-bottom:6px}}.guide-art{display:block;width:100%;height:auto;border-radius:var(--rounded-sm);background:var(--parchment)}.guide-art *{transform-box:fill-box}.ga-win{fill:var(--canvas);stroke:var(--hairline)}.ga-line{fill:var(--chip)}.ga-head{fill:var(--ink-muted-48)}.ga-field{fill:var(--parchment);stroke:var(--hairline)}.ga-col{fill:var(--parchment)}.ga-card{fill:var(--canvas);stroke:var(--hairline)}.ga-brand{fill:var(--brand)}.ga-primary{fill:var(--primary)}.ga-primaryline{fill:var(--primary-text)}.ga-tint{fill:var(--primary-tint);stroke:var(--primary)}.ga-tintfill{fill:var(--primary-tint)}.ga-ok{fill:var(--ok-text)}.ga-okbg{fill:var(--ok-bg)}.ga-warn{fill:var(--warn-text)}.ga-danger{fill:var(--danger)}.ga-neutral{fill:var(--neutral-mark)}.ga-chipfill{fill:var(--chip)}.ga-chipdark{fill:var(--ink-muted-48)}.ga-white{fill:var(--on-primary)}.ga-conn{fill:none;stroke:var(--hairline);stroke-width:2}.ga-ring{fill:none;stroke:var(--primary);stroke-width:2.5}.ga-ring-muted{fill:none;stroke:var(--chip);stroke-width:1.5}.ga-tick{fill:none;stroke:var(--canvas);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ga-cursor{fill:var(--ink);stroke:var(--canvas);stroke-width:1.2;stroke-linejoin:round}.ga-pen{fill:var(--brand)}.ga-eye{fill:none;stroke:var(--muted);stroke-width:1.5}.ga-eye circle{fill:var(--muted);stroke:none}.ga-docfold{fill:var(--canvas);stroke:var(--muted);stroke-width:1.5;stroke-linejoin:round}.ga-clip{fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round}.ga-arc{fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linecap:round}.ga-plus{fill:none;stroke:var(--on-primary);stroke-width:2;stroke-linecap:round}.ga-donut-track{fill:none;stroke:var(--chip);stroke-width:10}.ga-donut{fill:none;stroke:var(--brand);stroke-width:10;stroke-dasharray:163.4;stroke-dashoffset:49;transform:rotate(-90deg);transform-origin:center}.ga-own{stroke:var(--primary);stroke-width:2}.ga-sb{fill:var(--sb-bg)}.ga-sbhi{fill:var(--sb-hover)}.ga-sbline{fill:var(--sb-muted)}.ga-sbdim{fill:var(--sb-raised)}.ga-lift{stroke:var(--primary)}.guide-art [class*=ga-a-]{animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.guide-art .ga-slow{animation-duration:8s}.ga-d1{animation-delay:.3s}.ga-d2{animation-delay:.6s}.ga-d3{animation-delay:.9s}.ga-d4{animation-delay:1.2s}.ga-d5{animation-delay:1.5s}.ga-a-seq{animation-name:ga-seq}@keyframes ga-seq{0%{opacity:0;transform:translateY(6px)}12%,82%{opacity:1;transform:none}94%,to{opacity:0}}.ga-a-pop{animation-name:ga-pop;transform-origin:center}@keyframes ga-pop{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.ga-a-type{animation-name:ga-type;transform-origin:left}@keyframes ga-type{0%{transform:scaleX(0)}45%,88%{transform:scaleX(1)}to{transform:scaleX(0)}}.ga-a-sidebar{animation-name:ga-sidebar}@keyframes ga-sidebar{0%,16%{transform:none}25%,41%{transform:translateY(14px)}50%,66%{transform:translateY(64px)}75%,91%{transform:translateY(78px)}to{transform:none}}.ga-a-theme-bg{fill:var(--sb-bg);animation-name:ga-theme-bg}@keyframes ga-theme-bg{0%,35%{fill:var(--canvas)}50%,88%{fill:var(--sb-bg)}to{fill:var(--canvas)}}.ga-a-theme-line{fill:var(--sb-muted);animation-name:ga-theme-line}@keyframes ga-theme-line{0%,35%{fill:var(--chip)}50%,88%{fill:var(--sb-muted)}to{fill:var(--chip)}}.ga-a-knob{animation-name:ga-knob}@keyframes ga-knob{0%,35%{transform:translate(-28px)}50%,88%{transform:none}to{transform:translate(-28px)}}.ga-a-lang{animation-name:ga-lang}@keyframes ga-lang{0%,35%{transform:translate(-23px)}50%,88%{transform:none}to{transform:translate(-23px)}}.ga-a-select{animation-name:ga-select}@keyframes ga-select{0%,12%{opacity:0}22%,70%{opacity:1}80%,to{opacity:0}}.ga-a-fly{opacity:0;animation-name:ga-fly}@keyframes ga-fly{0%,28%{opacity:0;transform:none}34%{opacity:1;transform:none}66%{opacity:1;transform:translate(118px,62px)}74%,to{opacity:0;transform:translate(118px,62px)}}.ga-a-later{animation-name:ga-later}@keyframes ga-later{0%,68%{opacity:0}76%,94%{opacity:1}to{opacity:0}}.ga-a-appearmid{animation-name:ga-appearmid}@keyframes ga-appearmid{0%,45%{opacity:0;transform:translateY(6px)}55%,92%{opacity:1;transform:none}to{opacity:0}}.ga-a-tabs{animation-name:ga-tabs}@keyframes ga-tabs{0%,22%{transform:none}25%,47%{transform:translate(52px)}50%,72%{transform:translate(104px)}75%,97%{transform:translate(156px)}to{transform:none}}.ga-a-quarter{animation-name:ga-quarter}@keyframes ga-quarter{0%{opacity:0}3%,22%{opacity:1}25%,to{opacity:0}}.ga-q2{animation-delay:2s}.ga-q3{animation-delay:4s}.ga-q4{animation-delay:6s}.ga-a-status{animation-name:ga-status}@keyframes ga-status{0%,25%{transform:translate(-54px)}50%,90%{transform:none}to{transform:translate(-54px)}}.ga-a-checkpop{animation-name:ga-checkpop;transform-origin:center}@keyframes ga-checkpop{0%,48%{opacity:0;transform:scale(.3)}56%,90%{opacity:1;transform:none}to{opacity:0}}.ga-a-pulse{animation-name:ga-pulse}@keyframes ga-pulse{0%,to{stroke-opacity:.35}50%{stroke-opacity:1}}.ga-a-hl{animation-name:ga-hl}@keyframes ga-hl{0%,30%{opacity:0}36%,90%{opacity:1}to{opacity:0}}.ga-a-panel{animation-name:ga-panel}@keyframes ga-panel{0%,34%{transform:translate(110px)}52%,90%{transform:none}to{transform:translate(110px)}}.ga-a-opencursor{transform:translate(120px,55px);animation-name:ga-opencursor}@keyframes ga-opencursor{0%{transform:translate(200px,120px);opacity:0}8%{opacity:1}28%{transform:translate(120px,55px)}31%{transform:translate(120px,55px) scale(.85)}34%,60%{transform:translate(120px,55px);opacity:1}70%,to{opacity:0;transform:translate(120px,55px)}}.ga-a-drag{animation-name:ga-drag}@keyframes ga-drag{0%,18%{transform:none}55%,85%{transform:translate(72px)}to{transform:none}}.ga-a-newchip{animation-name:ga-newchip}@keyframes ga-newchip{0%,58%{opacity:0;transform:translate(-24px)}68%,92%{opacity:1;transform:none}to{opacity:0}}.ga-a-spin{animation-name:ga-spin;animation-timing-function:linear;transform-origin:center}@keyframes ga-spin{to{transform:rotate(360deg)}}.ga-a-drop{animation-name:ga-drop}@keyframes ga-drop{0%{opacity:0;transform:translateY(-64px)}12%{opacity:1}40%{opacity:1;transform:none}50%,to{opacity:0;transform:none}}.ga-a-bell{animation-name:ga-bell;transform-origin:50% 0}@keyframes ga-bell{0%,30%,to{transform:none}5%{transform:rotate(14deg)}10%{transform:rotate(-12deg)}15%{transform:rotate(9deg)}20%{transform:rotate(-6deg)}25%{transform:rotate(3deg)}}.ga-a-badge{animation-name:ga-badge;transform-origin:center}@keyframes ga-badge{0%,8%{transform:scale(0)}18%,92%{transform:none}to{transform:scale(0)}}.ga-a-grow{animation-name:ga-grow;transform-origin:bottom}@keyframes ga-grow{0%{transform:scaleY(0)}30%,86%{transform:none}to{transform:scaleY(0)}}.ga-a-donut{animation-name:ga-donut}@keyframes ga-donut{0%{stroke-dashoffset:163.4}40%,86%{stroke-dashoffset:49}to{stroke-dashoffset:163.4}}.ga-a-watch{animation-name:ga-watch}@keyframes ga-watch{0%,28%{transform:none}36%,62%{transform:translate(30px)}70%,94%{transform:translate(60px)}to{transform:none}}.ga-a-press{animation-name:ga-press;transform-origin:center}@keyframes ga-press{0%,18%,30%,to{transform:none}24%{transform:scale(.8)}}.ga-a-modal{animation-name:ga-modal;transform-origin:center}@keyframes ga-modal{0%,26%{opacity:0;transform:scale(.88)}38%,90%{opacity:1;transform:none}to{opacity:0}}.ga-divider{stroke:var(--hairline)}.ga-mute{fill:var(--neutral-mark)}.ga-today{stroke:var(--brand);stroke-width:1.5}.ga-a-slide{animation-name:ga-slide}@keyframes ga-slide{0%,20%{transform:translate(-28px)}60%,90%{transform:none}to{transform:translate(-28px)}}.ga-a-copy{animation-name:ga-copy}@keyframes ga-copy{0%,14%{opacity:0;transform:translate(-112px)}24%{opacity:1}50%,90%{opacity:1;transform:none}to{opacity:0;transform:none}}.ga-a-date{animation-name:ga-date}@keyframes ga-date{0%,55%{opacity:0}66%,90%{opacity:1}to{opacity:0}}.ga-a-join{animation-name:ga-join}@keyframes ga-join{0%,18%{transform:translate(-148px,8px)}55%,90%{transform:none}to{transform:translate(-148px,8px)}}.ga-a-approve{fill:var(--ok-bg);animation-name:ga-approve}@keyframes ga-approve{0%,40%{fill:var(--warn-bg)}52%,90%{fill:var(--ok-bg)}to{fill:var(--warn-bg)}}.ga-a-approve-text{fill:var(--ok-text);animation-name:ga-approve-text}@keyframes ga-approve-text{0%,40%{fill:var(--warn-text)}52%,90%{fill:var(--ok-text)}to{fill:var(--warn-text)}}.ga-fb-status{stroke:var(--hairline)}.ga-a-fbstatus{fill:var(--ok-bg);animation-name:ga-fbstatus}@keyframes ga-fbstatus{0%,20%{fill:var(--canvas)}28%,42%{fill:var(--primary-tint)}50%,64%{fill:var(--warn-bg)}72%,to{fill:var(--ok-bg)}}@media(prefers-reduced-motion:reduce){.guide-art [class*=ga-a-]{animation:none}.guide-art .ga-view:not(.ga-v1),.guide-art .ga-a-fly{opacity:0}}.fb-status.fb-sent{background:var(--canvas);color:var(--muted);border:1px solid var(--hairline);padding:1px 9px}.fb-status.fb-received{background:var(--primary-tint);color:var(--primary-text)}.fb-status.fb-in_progress{background:var(--warn-bg);color:var(--warn-text)}.fb-status.fb-done{background:var(--ok-bg);color:var(--ok-text)}.fb-status.fb-rejected{background:var(--parchment);color:var(--muted)}.fb-type{background:var(--parchment);color:var(--ink-muted-80)}.feedback-list{list-style:none;margin:0;padding:0}.feedback-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 8px;text-align:left;cursor:pointer;background:none;border:none;border-bottom:1px solid var(--divider-soft);border-radius:0}.feedback-row:hover{background:var(--pearl)}.feedback-row:active{transform:none}.feedback-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.feedback-row-title{font-weight:600}.feedback-row.unread{background:var(--primary-tint)}.feedback-new{display:inline-block;margin-right:8px;padding:0 8px;border-radius:var(--rounded-pill);background:var(--primary);color:var(--on-primary);font-size:11px;line-height:18px;vertical-align:1px}.feedback-filters{flex-wrap:wrap}.feedback-filters .tabs{max-width:100%;overflow-x:auto}.feedback-form{display:flex;flex-direction:column;gap:14px}.feedback-form>label{display:flex;flex-direction:column;gap:6px;color:var(--muted)}.feedback-form>label>input,.feedback-form>label>textarea{color:var(--ink)}.feedback-form .tabs{align-self:flex-start}.feedback-form.drag-over{outline:2px dashed var(--primary);outline-offset:6px;border-radius:var(--rounded-sm)}.feedback-files{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.feedback-files .pending-files{flex-basis:100%}.feedback-form-actions{display:flex;justify-content:flex-end;gap:8px}.feedback-detail{display:flex;flex-direction:column;gap:20px;align-items:stretch}.feedback-detail>.link-btn{align-self:flex-start}.feedback-detail h3{margin:0 0 12px}.feedback-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.feedback-head h2{margin:0;min-width:0;overflow-wrap:anywhere}.feedback-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 16px}.feedback-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.feedback-tech{margin-top:16px}.feedback-tech summary{cursor:pointer}.feedback-tech dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:8px 0 0;font-size:13px}.feedback-tech dt{color:var(--muted)}.feedback-tech dd{margin:0;overflow-wrap:anywhere}.feedback-status-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.feedback-status-form>label{display:flex;flex-direction:column;gap:6px;color:var(--muted)}.feedback-status-form>label.grow{flex:1 1 260px}.feedback-status-form textarea,.feedback-status-form select{color:var(--ink)}.feedback-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.root-tabs{align-self:flex-start;margin:0 32px 16px}.root-tabs .badge{margin-left:6px}.chat{flex:1;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr);margin:0 32px 24px;border:1px solid var(--hairline);border-radius:var(--rounded-lg);background:var(--canvas);overflow:hidden}.chat-side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--hairline)}.chat-side-head{display:flex;flex-direction:column;gap:8px;padding:12px;border-bottom:1px solid var(--divider-soft)}.chat-side-head>.btn{align-self:flex-start}.chat-search-scope{display:flex;align-items:center;gap:6px}.chat-side-head .search-box.wide,.chat-dialog .search-box.wide{flex:none;width:100%}.chat-list{list-style:none;margin:0;padding:0;flex:1;min-height:0;overflow-y:auto}.chat-note{padding:12px;margin:0}.chat-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;text-align:left;cursor:pointer;background:none;border:none;border-bottom:1px solid var(--divider-soft);border-radius:0;color:var(--ink)}.chat-row:hover{background:var(--pearl)}.chat-row:active{transform:none}.chat-row.active{background:var(--primary-tint)}.chat-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-row-top,.chat-row-last{display:flex;align-items:center;gap:6px;min-width:0}.chat-row-last{color:var(--muted)}.chat-row.unread .chat-row-name,.chat-row.unread .chat-row-last{font-weight:600;color:var(--ink)}.chat-main{display:flex;flex-direction:column;min-height:0;min-width:0}.chat-empty{margin:auto;padding:32px;text-align:center}.chat-thread,.chat-picker{display:flex;flex-direction:column;flex:1;min-height:0}.chat-thread-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--divider-soft)}.chat-thread-head h2{font-size:17px;font-weight:600;margin:0}.chat-thread-who{min-width:0;display:flex;flex-direction:column}.chat-back{display:none}.chat-picker-search{padding:12px 16px 4px}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:6px}.chat-older{align-self:center}.chat-day{align-self:center;margin:12px 0 4px;color:var(--muted);font-size:12px}.chat-system{align-self:center;max-width:90%;margin:4px 0;text-align:center;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.chat-msg{max-width:min(75%,560px);align-self:flex-start;display:flex;gap:8px}.chat-msg.own{align-self:flex-end}.chat-msg-main{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.chat-msg.own .chat-msg-main{align-items:flex-end}.chat-msg-avatar{flex:none;width:28px}.chat-msg-avatar.named{padding-top:25px}.chat-bubble{padding:8px 12px;border-radius:var(--rounded-lg);background:var(--parchment);color:var(--ink);max-width:100%}.chat-msg.own .chat-bubble{background:var(--primary);color:var(--on-primary)}.chat-msg.own .chat-text a{color:var(--on-primary);text-decoration:underline}.chat-bubble.deleted,.chat-msg.own .chat-bubble.deleted{background:none;color:var(--muted);border:1px dashed var(--hairline);font-style:italic}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.47}.chat-text a{color:var(--primary-text)}.chat-bubble .attachment-list.compact{margin-top:6px}.chat-msg.own .attachment-open,.chat-msg.own .attachment .icon-btn{background:var(--canvas);color:var(--ink)}.chat-msg.own .attachment .icon-btn.danger{color:var(--danger)}.chat-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:2px 6px}.chat-actions{display:inline-flex;gap:2px;visibility:hidden}.chat-msg:hover .chat-actions,.chat-actions:focus-within{visibility:visible}@media(pointer:coarse){.chat-actions{visibility:visible}}.chat-edit{display:flex;flex-direction:column;gap:6px;min-width:min(420px,60vw)}.chat-edit textarea{width:100%;min-height:64px;resize:vertical;border-radius:var(--rounded-md);color:var(--ink)}.chat-edit-buttons{display:flex;justify-content:flex-end;gap:6px}.chat-composer{padding:12px 16px;border-top:1px solid var(--divider-soft)}.chat-closed{padding:12px 16px;margin:0;border-top:1px solid var(--divider-soft)}.chat-room-icon{flex:none;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--parchment);color:var(--ink);font-size:13px;font-weight:600}.chat-room-icon .dot{width:12px;height:12px}.chat-list-label{padding:12px 12px 4px;color:var(--muted);font-size:12px;font-weight:600}.chat-row.static{cursor:default}.chat-row.static:hover{background:none}.chat-check{flex:none;width:18px;height:18px;border:1.5px solid var(--chip);border-radius:5px}.chat-check{display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1}.chat-check.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.chat-check.on:after{content:"✓"}.chat-picker-tabs{align-self:flex-start;margin:12px 16px 0;max-width:calc(100% - 32px);overflow-x:auto}.chat-group-form{display:flex;gap:8px;padding:12px 16px 0;flex-wrap:wrap}.chat-group-form input{flex:1 1 200px;min-width:0;color:var(--ink)}.badge.quiet{background:var(--chip);color:var(--ink)}.chat-sender{font-size:12px;font-weight:600;color:var(--muted);margin:6px 0 2px 6px}.chat-quote{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;max-width:min(360px,100%);margin-bottom:6px;padding:4px 8px;border:none;border-left:3px solid var(--chip);border-radius:4px;background:var(--hover);color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer}.chat-quote:active{transform:none}.chat-quote>*{max-width:100%;min-width:0}.chat-bubble{min-width:0}.chat-msg.own .chat-quote{border-left-color:var(--on-primary);background:none}.chat-msg.flash .chat-bubble{outline:2px solid var(--primary-focus);outline-offset:2px}.chat-text .mention.me{background:var(--primary);color:var(--on-primary)}.chat-msg.own .chat-text .mention{color:var(--on-primary);background:none;text-decoration:underline}.chat-task{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin:2px 0;padding:2px 10px;border:1px solid var(--hairline);border-radius:var(--rounded-pill);background:var(--canvas);color:var(--ink);font:inherit;cursor:pointer;vertical-align:middle}.chat-task:hover{border-color:var(--chip)}.chat-task.done .ellipsis{text-decoration:line-through;color:var(--muted)}.chat-replying{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px;border-left:3px solid var(--primary);border-radius:4px;background:var(--parchment)}.chat-members{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding:8px 0}.chat-members>p{margin:4px 16px 8px}.chat-members-actions{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px}.chat-messages-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.chat-bubble.media-only{padding:0;background:none}.chat-msg.own .chat-bubble.media-only{background:none}.chat-images{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.chat-images.grid{display:grid;grid-template-columns:repeat(2,minmax(0,140px))}.chat-bubble:not(.media-only) .chat-images{margin-top:6px}.chat-image{display:block;width:fit-content;max-width:min(280px,100%);padding:0;border:none;background:var(--parchment);border-radius:var(--rounded-md);overflow:hidden;cursor:zoom-in}.chat-image:active{transform:none}.chat-image img{display:block;max-width:100%;max-height:320px;object-fit:cover}.chat-images.grid .chat-image img{width:140px;height:140px;max-width:100%}.chat-image-wait{display:block;width:180px;height:120px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:var(--lightbox)}.lightbox-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--on-lightbox)}.lightbox-img{max-width:calc(100% - 96px);max-height:calc(100% - 96px);object-fit:contain}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:56px;border:none;border-radius:var(--rounded-sm);background:none;color:var(--on-lightbox);font-size:40px;line-height:1;cursor:pointer}.lightbox-nav.prev{left:8px}.lightbox-nav.next{right:8px}.chat-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.chat-reaction{padding:1px 8px;border:1px solid var(--hairline);border-radius:var(--rounded-pill);background:var(--canvas);color:var(--ink);font:inherit;font-size:12px;cursor:pointer}.chat-reaction.mine{border-color:var(--primary);background:var(--primary-tint);color:var(--primary-text);font-weight:600}.chat-react-picker{display:flex;gap:2px;padding:4px;margin-top:2px;border:1px solid var(--hairline);border-radius:var(--rounded-pill);background:var(--canvas)}.chat-react-picker button{border:none;background:none;font-size:20px;line-height:1;padding:4px;border-radius:50%;cursor:pointer}.chat-react-picker button:hover,.chat-react-picker button.mine{background:var(--primary-tint)}.chat-seen{display:flex;align-items:center;gap:2px;margin-top:2px}.chat-seen .avatar.small{width:16px;height:16px;font-size:7px}.chat-unread-divider{display:flex;align-items:center;gap:8px;margin:8px 0;color:var(--primary-text);font-size:12px;font-weight:600}.chat-unread-divider:before,.chat-unread-divider:after{content:"";flex:1;border-top:1px solid var(--primary)}.chat-to-bottom{position:absolute;right:16px;bottom:12px;padding:6px 14px;border:1px solid var(--hairline);border-radius:var(--rounded-pill);background:var(--canvas);color:var(--primary-text);font:inherit;font-weight:600;cursor:pointer}.chat-pins{border-bottom:1px solid var(--divider-soft);background:var(--pearl)}.chat-pins-top,.chat-pins-row{display:flex;align-items:center;gap:8px;padding:6px 16px}.chat-pins-row{padding-left:40px;border-top:1px solid var(--divider-soft)}.chat-pin{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:2px 0;border:none;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.chat-pin:active{transform:none}.chat-menu{display:flex;flex-direction:column;margin-top:2px;padding:4px;min-width:160px;border:1px solid var(--hairline);border-radius:var(--rounded-sm);background:var(--canvas)}.chat-menu button{padding:6px 10px;border:none;border-radius:6px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.chat-menu button:hover{background:var(--hover)}.chat-menu button.danger{color:var(--danger)}.chat-forwarded{display:block;margin-bottom:2px;font-size:12px;font-style:italic;opacity:.85}.chat-info{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.chat-info>.chat-members{flex:none;overflow:visible}.chat-gallery{padding:12px 16px}.chat-gallery .chat-images.grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.chat-gallery .chat-images.grid .chat-image,.chat-gallery .chat-images.grid .chat-image img{width:100%;height:96px;max-width:none}.chat-links a{color:var(--primary-text)}.chat-dialog{width:min(480px,calc(100vw - 32px));display:flex;flex-direction:column;gap:12px}.chat-dialog-list{max-height:50vh;overflow-y:auto;border:1px solid var(--divider-soft);border-radius:var(--rounded-sm)}.chat-dialog .form-field select,.chat-dialog .form-field input{width:100%;color:var(--ink)}.chat-bubble.poll-bubble,.chat-msg.own .chat-bubble.poll-bubble{width:min(360px,100%);background:var(--canvas);color:var(--ink);border:1px solid var(--hairline)}.poll{display:flex;flex-direction:column;gap:8px}.poll-question{font-weight:600;overflow-wrap:anywhere}.poll-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.poll-option{position:relative;overflow:hidden;display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:1px solid var(--hairline);border-radius:var(--rounded-sm);background:var(--canvas);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.poll-option:active{transform:none}.poll-option:disabled{cursor:default}.poll-option.mine{border-color:var(--primary)}.poll-bar{position:absolute;inset:0 auto 0 0;background:var(--primary-tint)}.poll-option>:not(.poll-bar){position:relative}.poll-text{min-width:0;overflow-wrap:anywhere}.poll-mark{flex:none;width:14px;height:14px;border:1.5px solid var(--chip)}.poll-mark.dot{border-radius:50%}.poll-mark.box{border-radius:4px}.poll-option.mine .poll-mark{border-color:var(--primary);background:var(--primary)}.poll-voters{display:flex}.poll-voters .avatar.small{width:18px;height:18px;font-size:7px;margin-left:-4px;border:1.5px solid var(--canvas)}.poll-count{min-width:1.5em;text-align:right;font-weight:600}.poll-add{display:flex;gap:6px}.poll-add input{flex:1;min-width:0;color:var(--ink)}.poll-facts{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}.poll-edit{display:flex;flex-direction:column;gap:6px}.poll-edit-row{display:flex;gap:6px;align-items:center}.poll-edit-row input{flex:1;min-width:0;color:var(--ink)}.poll-edit>.link-btn{align-self:flex-start}.poll-check{display:flex;align-items:center;gap:8px}.chat-composer-tools{display:flex;gap:8px;margin-bottom:6px}.chat-mute{position:relative}.chat-mute-menu{position:absolute;right:0;top:100%;z-index:5;white-space:nowrap}.emoji-wrap{position:static}.chat-composer .comment-form{position:relative}.emoji-panel{position:absolute;right:0;bottom:calc(100% + 6px);z-index:6;width:min(320px,calc(100vw - 32px));display:flex;flex-direction:column;border:1px solid var(--hairline);border-radius:var(--rounded-md);background:var(--canvas)}.emoji-tabs{display:flex;gap:2px;padding:4px;border-bottom:1px solid var(--divider-soft)}.emoji-tabs button{flex:1;padding:4px 0;border:none;border-radius:var(--rounded-sm);background:none;font-size:18px;cursor:pointer}.emoji-tabs button.active,.emoji-tabs button:hover{background:var(--primary-tint)}.emoji-label{padding:6px 10px 0}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:6px;max-height:220px;overflow-y:auto}.emoji-grid button{aspect-ratio:1;border:none;border-radius:var(--rounded-sm);background:none;font-size:22px;line-height:1;cursor:pointer}.emoji-grid button:hover{background:var(--hover)}.emoji-grid button:active,.emoji-tabs button:active{transform:none}.emoji-empty{padding:12px 10px;margin:0}.chat-bubble.emoji-only,.chat-msg.own .chat-bubble.emoji-only{padding:0;background:none;color:var(--ink)}.chat-bubble.emoji-only .chat-text{font-size:40px;line-height:1.2}@media(max-width:1023px){.chat{margin:0 20px 20px}}@media(max-width:700px){.chat{grid-template-columns:minmax(0,1fr);margin:0 16px 16px}.chat-side{border-right:none}.chat.chat-open .chat-side,.chat:not(.chat-open) .chat-main{display:none}.chat-back{display:inline}.chat-msg{max-width:85%}}@media(max-width:1023px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:19;transform:translate(-100%);visibility:hidden;transition:transform .25s ease,visibility .25s}.sidebar.open{transform:none;visibility:visible}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:18;background:var(--backdrop)}.mobile-bar{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 12px;border-bottom:1px solid var(--hairline)}.mobile-bar .brand{padding:0}.menu-btn{position:relative;font-size:20px;color:var(--ink)}.menu-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--brand)}.project-header{padding:16px 20px 12px}.project-header h1{font-size:28px}.toolbar{padding:4px 20px 12px}.board,.list,.calendar,.timeline-wrap,.saved-filters,.report-period{padding-left:20px;padding-right:20px}.root-tabs{margin-left:20px;margin-right:20px}.req-cards-page{padding:16px 20px 24px}.project-focus{padding-left:20px;padding-right:20px}.task-page{padding:16px 20px 32px}}@media(max-width:1279px){.list-row.personal{grid-template-columns:minmax(140px,1fr) 150px 100px 90px}.list-row.with-assignee{grid-template-columns:minmax(140px,1fr) 130px 130px 96px 84px}.list-row.with-start{grid-template-columns:minmax(140px,1fr) 140px 96px 100px 84px}.admin-card{padding:16px}.workload-row{gap:8px;grid-template-columns:minmax(120px,1.2fr) minmax(80px,2fr) repeat(5,52px)}.workload-row.report-grid{grid-template-columns:minmax(120px,1fr) repeat(5,52px)}.workload-row.with-team{grid-template-columns:minmax(120px,1.2fr) 80px minmax(80px,2fr) repeat(5,52px)}.admin-row{gap:8px;grid-template-columns:minmax(150px,1fr) 100px 110px 120px 130px}.admin-actions{flex-wrap:wrap}}@media(max-width:1023px)and (prefers-reduced-motion:reduce){.sidebar{transition:none}}@media(max-width:900px){.detail{width:100%;border-left:none}}@media(pointer:coarse){input,select,textarea{font-size:16px}.toolbar select{height:40px;padding-top:0;padding-bottom:0}.search-box{height:40px}.search-box input{height:40px;padding-top:0;padding-bottom:0}.icon-btn{width:40px;height:40px}.hint>.hint-btn{width:32px;height:32px}.link-btn{padding:8px}.tabs button{padding:9px 16px}.calendar-task{padding:6px 8px}.check{width:24px;height:24px}.card,.calendar-task{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.touch-ghost{position:fixed;top:0;left:0;z-index:100;pointer-events:none;opacity:.92;outline:2px solid var(--primary);border-radius:var(--rounded-md)}.calendar-task.dragging{opacity:.4}@media(max-width:420px){.brand.dark{--brand-size: 26px}}@media(max-width:480px){.timeline{--tl-label: 128px}.workload-row.report-grid{grid-template-columns:minmax(0,1fr) repeat(5,34px);gap:4px;font-size:12px}.workload-row.report-grid .cell{flex-wrap:wrap}.workload-head.report-grid .num{font-size:10px;line-height:1.15;white-space:normal;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.follow-label{display:none}.follow-btn{padding:4px 8px}.complete-btn{white-space:nowrap;padding:6px 12px}}
