:root,.wproj{--accent: #0a84ff;--accent-hover: #0070e0;--accent-soft: #e8f1ff;--accent-text: #0a6cff;--bg: #f5f5f7;--surface: #ffffff;--surface-2: #fbfbfd;--sidebar-bg: #fbfbfd;--line: #e7e7ea;--line-strong: #dcdce1;--ink: #1d1d1f;--ink-2: #4b4b50;--ink-3: #86868b;--ink-4: #a9a9af;--st-backlog: #b0b0b8;--st-todo: #6f7280;--st-progress: #f5a623;--st-done: #30b85d;--st-cancel: #e0524c;--pr-urgent: #e0524c;--pr-high: #f5853f;--pr-med: #f5b740;--pr-low: #5b8def;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--row-h: 38px;--pad: 20px;--board-col-w: 252px;--board-gap: 11px;--board-pad-x: 24px;--board-pad-y: 14px;--shadow-card: 0 1px 2px rgba(0,0,0,.04), 0 1px 1px rgba(0,0,0,.03);--shadow-pop: 0 8px 30px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);--shadow-modal: 0 24px 60px rgba(0,0,0,.22), 0 8px 24px rgba(0,0,0,.12);--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", "Inter", system-ui, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Menlo", monospace}.wproj [data-density=compact]{--row-h: 32px;--pad: 14px}.wproj{box-sizing:border-box}html,body{margin:0;height:100%}#root{height:100%;min-height:100vh;min-height:100dvh}.wproj{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;overflow:hidden;height:100%;min-height:100vh;min-height:100dvh}.wproj button{font-family:inherit;cursor:pointer}.wproj ::selection{background:var(--accent-soft)}.wproj ::-webkit-scrollbar{width:9px;height:9px}.wproj ::-webkit-scrollbar-thumb{background:#d2d2d7;border-radius:6px;border:2px solid transparent;background-clip:content-box}.wproj ::-webkit-scrollbar-thumb:hover{background:#b9b9c0;background-clip:content-box}.wproj ::-webkit-scrollbar-track{background:transparent}.wproj .app{display:flex;height:100vh;background:var(--bg)}.wproj .main{flex:1;display:flex;flex-direction:column;min-width:0}.wproj .content{flex:1;overflow-y:auto;min-height:0}.wproj .overview-body{padding:0 28px 48px;max-width:1080px;width:100%;margin:0 auto;box-sizing:border-box}.wproj .sb{width:256px;flex-shrink:0;background:var(--sidebar-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;height:100vh}.wproj .sb-top{padding:14px 14px 8px}.wproj .sb-brand{display:flex;align-items:center;gap:10px;padding:4px 6px;border-radius:var(--r-md)}.wproj .sb-logo{width:30px;height:30px;border-radius:8px;flex-shrink:0;background:#1d1d1f;color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;letter-spacing:-.5px}.wproj .sb-brand-name{font-weight:600;font-size:14px;line-height:1.15}.wproj .sb-brand-sub{font-size:11px;color:var(--ink-3)}.wproj .sb-scroll{flex:1;overflow-y:auto;padding:6px 10px 10px}.wproj .sb-new{margin:8px 4px 4px;display:flex;align-items:center;gap:9px;width:calc(100% - 8px);padding:8px 11px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);font-size:13.5px;font-weight:500;box-shadow:var(--shadow-card);transition:background .12s,border-color .12s}.wproj .sb-new:hover{background:var(--surface-2);border-color:#cfcfd6}.wproj .sb-section{margin-top:16px;padding:0 8px 4px;display:flex;align-items:center;justify-content:space-between}.wproj .sb-section-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.wproj .sb-section-act{color:var(--ink-4);display:flex}.wproj .sb-section-act:hover{color:var(--ink-2)}.wproj .nav-item{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:var(--r-sm);color:var(--ink-2);font-size:13.5px;font-weight:450;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s;position:relative}.wproj .nav-item:hover{background:#0000000a}.wproj .nav-item.active{background:#0a84ff1a;color:var(--accent-text);font-weight:550}.wproj .nav-item.active .nav-ic{color:var(--accent)}.wproj .nav-ic{color:var(--ink-3);display:flex;flex-shrink:0}.wproj .nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .nav-item-more{display:none}.wproj .nav-count{font-size:12px;color:var(--ink-4);font-variant-numeric:tabular-nums}.wproj .nav-emoji{width:18px;text-align:center;font-size:15px;flex-shrink:0}.wproj .proj-row{padding-left:9px}.wproj .proj-children{margin:1px 0 4px}.wproj .proj-children .nav-item{padding-left:34px;font-size:13px}.wproj .caret{transition:transform .15s;color:var(--ink-4);display:flex}.wproj .caret.open{transform:rotate(90deg)}.wproj .sb-bottom{border-top:1px solid var(--line);padding:8px 10px}.wproj .sb-user{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--r-md)}.wproj .sb-user:hover{background:#0000000a}.wproj .sb-trial{margin:6px 4px 2px;padding:8px 11px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:500;display:flex;align-items:center;gap:8px}.wproj .topbar{height:52px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 16px}.wproj .crumb{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink-3)}.wproj .crumb .sep{color:var(--ink-4)}.wproj .crumb .cur{color:var(--ink);font-weight:550}.wproj .crumb-ic{color:var(--ink-3);display:flex}.wproj .search{flex:1;max-width:440px;margin:0 auto;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);padding:7px 12px;color:var(--ink-3);font-size:13.5px}.wproj .search:focus-within{border-color:var(--accent);background:#fff}.wproj .search input{border:none;background:transparent;outline:none;flex:1;font-size:13.5px;color:var(--ink);font-family:inherit}.wproj .kbd{font-size:11px;color:var(--ink-4);border:1px solid var(--line-strong);border-radius:5px;padding:1px 5px;font-family:var(--mono)}.wproj .top-actions{display:flex;align-items:center;gap:8px}.wproj .icon-btn{width:32px;height:32px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center}.wproj .icon-btn:hover{background:#0000000d;color:var(--ink)}.wproj .btn{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--r-sm);font-size:13px;font-weight:500;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);transition:background .12s,border-color .12s,opacity .12s}.wproj .btn:hover{background:var(--surface-2);border-color:#cfcfd6}.wproj .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.wproj .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.wproj .btn-ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.wproj .btn-ghost:hover{background:#0000000d}.wproj .btn-sm{padding:5px 10px;font-size:12.5px}.wproj .pill,.wproj button.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:500;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none}.wproj .pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.wproj .pill .dot{width:7px;height:7px;border-radius:50%}.wproj .seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);padding:3px;gap:2px}.wproj .seg button{border:none;background:transparent;color:var(--ink-2);font-size:13px;font-weight:500;padding:5px 14px;border-radius:7px;display:inline-flex;align-items:center;gap:6px}.wproj .seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.wproj .st-ic{display:inline-flex;flex-shrink:0}.wproj .pr-ic{display:inline-flex;align-items:flex-end;gap:1.5px;height:13px;flex-shrink:0}.wproj .pr-ic i{width:3px;border-radius:1px;background:var(--ink-4);display:block}.wproj .pr-ic i:nth-child(1){height:5px}.wproj .pr-ic i:nth-child(2){height:9px}.wproj .pr-ic i:nth-child(3){height:13px}.wproj .avatar{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:10.5px;font-weight:600;flex-shrink:0}.wproj .avatar.lg{width:64px;height:64px;font-size:26px;border-radius:16px}.wproj .avatar.md{width:30px;height:30px;font-size:13px}.wproj .tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;background:var(--bg);color:var(--ink-2);border:1px solid var(--line)}.wproj .tag .tdot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.wproj .tag-removable{padding-right:4px}.wproj .tag-rm{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:2px;border:none;border-radius:50%;background:transparent;color:var(--ink-4);cursor:pointer;padding:0}.wproj .tag-rm:hover{background:var(--surface-2);color:var(--ink-2)}.wproj .tag-add{padding:2px 6px;color:var(--ink-4);border-style:dashed}.wproj .label-color-picker{display:flex;flex-wrap:wrap;gap:6px}.wproj .label-color-swatch{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;flex-shrink:0}.wproj .label-color-swatch.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--surface)}.wproj .label-row{gap:4px;padding-right:4px}.wproj .label-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:none;background:transparent;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;padding:0;text-align:left}.wproj .label-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wproj .label-row-del{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--ink-4);cursor:pointer;padding:0;flex-shrink:0;opacity:0}.wproj .label-row:hover .label-row-del{opacity:1}.wproj .label-row-del:hover{background:var(--surface-2);color:var(--st-cancel)}.wproj .page-head{padding:16px 28px 14px;display:flex;align-items:center;gap:14px;flex-shrink:0}.wproj .detail-head{padding:14px 24px 12px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0}.wproj .detail-head-top{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.wproj .detail-head-crumb{margin-left:0;min-width:0}.wproj .detail-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.wproj .page-title{font-size:19px;font-weight:650;letter-spacing:-.01em}.wproj .page-sub{color:var(--ink-3);font-size:13px}.wproj .toolbar{display:flex;align-items:center;gap:10px;padding:10px 28px;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap}.wproj .home{max-width:880px;margin:0 auto;padding:40px 28px 80px}.wproj .home-greet{text-align:center;margin-bottom:36px}.wproj .home-greet h1{font-size:30px;font-weight:650;letter-spacing:-.02em;margin:0 0 8px}.wproj .home-greet .date{color:var(--ink-3);font-size:15px;display:inline-flex;align-items:center;gap:8px}.wproj .ai-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:16px;margin-bottom:36px}.wproj .ai-chip{display:inline-flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 10px;font-size:12.5px;font-weight:550}.wproj .ai-input{width:100%;border:none;outline:none;background:transparent;font-family:inherit;font-size:15px;color:var(--ink);padding:14px 4px 18px;resize:none}.wproj .ai-input::placeholder{color:var(--ink-4)}.wproj .ai-foot{display:flex;align-items:center;gap:10px}.wproj .ai-send{margin-left:auto;width:34px;height:34px;border-radius:9px;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center}.wproj .ai-send:hover{background:var(--accent-hover)}.wproj .home-sec-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}.wproj .home-sec-head h2{font-size:16px;font-weight:600;margin:0}.wproj .link-add{color:var(--accent-text);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:5px;background:none;border:none}.wproj .qlinks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:40px}.wproj .qlink{display:flex;gap:11px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;box-shadow:var(--shadow-card);transition:border-color .12s,transform .08s;text-decoration:none;color:var(--ink)}.wproj .qlink *{text-decoration:none}.wproj .qlink:hover{border-color:var(--line-strong);transform:translateY(-1px)}.wproj .qlink-ic{width:34px;height:34px;border-radius:9px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--ink-2);flex-shrink:0}.wproj .qlink-t{font-size:13.5px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .qlink-s{font-size:12px;color:var(--ink-4)}.wproj .recent-row{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:8px;box-shadow:var(--shadow-card)}.wproj .recent-row:hover{border-color:var(--line-strong)}.wproj .board{display:flex;gap:var(--board-gap);padding:var(--board-pad-y) var(--board-pad-x) 32px;overflow-x:auto;height:100%;align-items:flex-start}.wproj .col{width:var(--board-col-w);flex-shrink:0;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);display:flex;flex-direction:column;max-height:100%}.wproj .col-head{display:flex;align-items:center;gap:7px;padding:9px 11px 8px;flex-shrink:0}.wproj .col-head .cdot{width:8px;height:8px;border-radius:50%}.wproj .col-name{font-size:12.5px;font-weight:600}.wproj .col-count{font-size:11.5px;color:var(--ink-4);font-variant-numeric:tabular-nums}.wproj .col-add{margin-left:auto;color:var(--ink-4);display:flex}.wproj .col-add:hover{color:var(--ink-2)}.wproj .col-compose{padding:0 8px 8px;flex-shrink:0}.wproj .kcard-new-input{width:100%;box-sizing:border-box;border:1px solid var(--accent);border-radius:var(--r-md);padding:9px 11px;font-size:13.5px;font-family:inherit;outline:none;background:var(--surface);color:var(--ink)}.wproj .kcard-new-input::placeholder{color:var(--ink-4)}.wproj .kcard-new-input:focus{box-shadow:0 0 0 4px var(--accent-soft)}.wproj .col-body{padding:0 8px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:7px;flex:1;min-height:72px}.wproj .kcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 10px;box-shadow:var(--shadow-card);cursor:grab;transition:border-color .12s,box-shadow .12s,opacity .12s;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.wproj .kcard *{-webkit-user-select:none;user-select:none}.wproj .kcard-foot button{cursor:pointer}body.board-item-dragging,body.board-item-dragging *{user-select:none!important;-webkit-user-select:none!important}body.board-item-dragging ::selection{background:transparent}.wproj .kcard:active{cursor:grabbing}.wproj .kcard-top{display:flex;gap:6px;align-items:flex-start}.wproj .kcard-drag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:20px;margin-top:1px;color:var(--ink-4);border-radius:5px;cursor:grab;border:none;background:transparent;padding:0;font:inherit}.wproj .kcard:not(.kcard--touch) .kcard-drag{pointer-events:auto;touch-action:none;cursor:grab}.wproj .kcard:not(.kcard--touch) .kcard-top,.wproj .kcard:not(.kcard--touch) .kcard-main,.wproj .kcard:not(.kcard--touch) .kcard-title{cursor:grab}.wproj .kcard:not(.kcard--touch):active .kcard-drag,body.board-pointer-dragging .wproj .kcard-drag{cursor:grabbing}body.board-pointer-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}.wproj .kcard--touch .kcard-drag{pointer-events:auto;touch-action:none;cursor:grab}.wproj .kcard:hover .kcard-drag{color:var(--ink-2)}.wproj .kcard-foot{cursor:default}.wproj .kcard-main{flex:1;min-width:0}.wproj .kcard-drop{height:6px;margin:-3px 0;border-radius:4px;transition:height .12s,background .12s,margin .12s;pointer-events:auto}.wproj .kcard-drop--on{height:10px;margin:0;background:transparent;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent);border-radius:6px}.wproj .lrow-drag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;color:var(--ink-4);border-radius:5px;pointer-events:none}.wproj .lrow:hover .lrow-drag{color:var(--ink-2)}.wproj .lrow.dragging{opacity:.45}.wproj .list-group-body{display:flex;flex-direction:column}.wproj .kcard:hover{border-color:var(--line-strong);box-shadow:var(--shadow-pop)}.wproj .kcard.dragging{opacity:.28;pointer-events:none}.wproj .kcard.kcard--pressing{border-color:var(--accent);box-shadow:var(--shadow-pop)}.wproj .kcard-id{font-family:var(--mono);font-size:10.5px;color:var(--ink-4);letter-spacing:.02em}.wproj .kcard-title{font-size:12.5px;font-weight:500;line-height:1.32;margin:3px 0 7px;color:var(--ink)}.wproj .kcard-foot{display:flex;align-items:center;gap:6px}.wproj .kcard-meta{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--ink-3);white-space:nowrap;line-height:1}.wproj .kcard-meta-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;margin-bottom:1px}.wproj .kcard-meta-icons{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px;margin-left:auto;min-width:0}.wproj .kcard-proj{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-3);margin-bottom:3px;min-width:0}.wproj .kcard-proj>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .kcard-parent{display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--ink-3);margin-bottom:3px;min-width:0}.wproj .kcard-parent>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .kcard-foot .avatar{width:20px;height:20px;font-size:9.5px}.wproj .missed-notif-pill{display:inline-flex;align-items:center;gap:4px;background:var(--accent-soft);color:var(--accent-text);font-size:10.5px;font-weight:600;border-radius:999px;padding:2px 8px;white-space:nowrap;line-height:1.2;flex-shrink:0}.wproj .missed-notif-pill--new{background:#ff950024;color:#c93400}.wproj .missed-notif-pill--compact{padding:1px 6px;min-width:18px;justify-content:center;font-variant-numeric:tabular-nums}.wproj .missed-notif-n{font-variant-numeric:tabular-nums}.wproj .kcard--unseen{box-shadow:inset 0 0 0 1.5px #ff950073;background:#ff95000a}.wproj .lrow--unseen{background:#ff95000d;box-shadow:inset 3px 0 #ff9500a6}.wproj .col-drop{outline:2px dashed var(--accent);outline-offset:-4px;border-radius:var(--r-lg)}.wproj .col-newbtn{display:flex;align-items:center;gap:6px;width:100%;padding:7px 8px;color:var(--ink-3);font-size:12px;font-weight:500;border:none;background:transparent;border-radius:var(--r-sm);text-align:left;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.wproj .col-newbtn:hover{background:#0000000a;color:var(--ink)}.wproj .list{padding:0 0 60px}.wproj .lg-head{display:flex;align-items:center;gap:10px;padding:9px 28px;background:var(--surface-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.wproj .lg-head .gdot{width:9px;height:9px;border-radius:50%}.wproj .lg-name{font-size:13px;font-weight:600}.wproj .lg-count{font-size:12px;color:var(--ink-4);background:var(--bg);border-radius:999px;padding:0 8px;line-height:18px}.wproj .lg-add{margin-left:auto;color:var(--ink-4);display:flex}.wproj .lg-add:hover{color:var(--ink-2)}.wproj .lrow{display:flex;align-items:center;gap:12px;padding:0 28px;height:var(--row-h);border-bottom:1px solid var(--line);background:var(--surface);cursor:grab}.wproj .lrow:active{cursor:grabbing}.wproj .lrow-right{cursor:default}.wproj .lrow:hover{background:var(--surface-2)}.wproj .lrow-id{font-family:var(--mono);font-size:11.5px;color:var(--ink-4);width:76px;flex-shrink:0}.wproj .lrow-title{flex:1;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .lrow-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.wproj .lrow-date{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.wproj .detail-wrap{display:flex;height:100%;min-height:0}.wproj .detail-main{flex:1;overflow-y:auto;padding:28px 40px 48px 52px;min-width:0}.wproj .detail-side{width:292px;flex-shrink:0;border-left:1px solid var(--line);background:var(--surface-2);overflow-y:auto;padding:24px 18px 48px}.wproj .detail-id{font-family:var(--mono);font-size:12px;color:var(--ink-3);letter-spacing:.03em}.wproj .detail-title{font-size:28px;font-weight:650;letter-spacing:-.02em;line-height:1.35;margin:8px 0 20px;outline:none}.wproj .detail-head .icon-btn{flex-shrink:0}.wproj .detail-desc{font-size:14.5px;line-height:1.6;color:var(--ink-2)}.wproj .detail-desc p{margin:0 0 12px}.wproj .detail-desc ol{padding-left:20px;color:var(--ink-2)}.wproj .detail-desc li{margin:5px 0}.wproj .detail-actions{display:flex;gap:8px;margin:22px 0;flex-wrap:wrap}.wproj .detail-section{margin:32px 0 20px}.wproj .subtask-title{border-radius:4px;padding:1px 4px}.wproj .subtask-title:focus{background:var(--surface-2);box-shadow:0 0 0 2px var(--accent-soft, rgba(10,132,255,.15))}.wproj .comment-pending-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.wproj .comment-pending-file{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:12px;color:var(--ink-2);max-width:240px}.wproj .comment-pending-file>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wproj .detail-section-h{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.wproj .detail-section-h .sp{margin-left:auto}.wproj .detail-empty{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;width:auto;padding:9px 14px;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:transparent;color:var(--ink-3);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.wproj .detail-empty:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent-text)}.wproj .detail-empty svg{flex-shrink:0;opacity:.75}.wproj .detail-empty--after-panel{margin-top:12px}.wproj .detail-panel{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.wproj .detail-side-meta{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink-2);line-height:1.45}.wproj .detail-side-meta>div{display:flex;align-items:center;gap:9px}.wproj .prop{display:flex;align-items:center;gap:10px;min-height:40px;margin-bottom:4px}.wproj .detail-side .prop{flex-direction:column;align-items:stretch;gap:6px;min-height:0;margin-bottom:16px}.wproj .detail-side .prop-label{width:auto;flex-shrink:0;display:flex;align-items:center;gap:7px;color:var(--ink-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.wproj .prop-label{width:116px;flex-shrink:0;display:flex;align-items:center;gap:8px;color:var(--ink-3);font-size:13px}.wproj .prop-val{flex:1;min-width:0}.wproj .detail-side .prop-val{flex:none;width:100%}.wproj .prop-set{display:inline-flex;align-items:center;gap:7px;padding:4px 9px;border-radius:var(--r-sm);font-size:13px;color:var(--ink);max-width:100%}.wproj .detail-side .prop-set{display:flex;width:100%;padding:7px 10px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);box-sizing:border-box}.wproj .detail-side .prop-set>span:last-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wproj .prop-set:hover{background:#0000000d}.wproj .prop-empty{color:var(--ink-4)}.wproj .side-divider{height:1px;background:var(--line);margin:16px 0}.wproj .side-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin:4px 0 10px}.wproj .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:36px 0 20px}.wproj .tab{padding:10px 14px;font-size:13.5px;color:var(--ink-3);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;border-top:none;border-left:none;border-right:none}.wproj .tab.on{color:var(--ink);border-bottom-color:var(--accent)}.wproj .activity-row{display:flex;gap:12px;padding:12px 0;font-size:13.5px;color:var(--ink-2);line-height:1.45}.wproj .task-comment-row .task-comment-menu{width:28px;height:28px;opacity:.55;transition:opacity .12s;flex-shrink:0}.wproj .task-comment-row:hover .task-comment-menu,.wproj .task-comment-row:focus-within .task-comment-menu{opacity:1}.wproj .task-comment-edit{margin-top:8px;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface-2)}.wproj .activity-ic{width:26px;height:26px;border-radius:7px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink-3)}.wproj .comment-box{margin-top:20px;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;background:var(--surface)}.wproj .comment-box__ta{width:100%;border:none;outline:none;resize:vertical;font-family:inherit;font-size:14px;min-height:56px;line-height:1.5;background:transparent}.wproj .comment-box textarea{width:100%;border:none;outline:none;resize:vertical;font-family:inherit;font-size:14px;min-height:56px;line-height:1.5}.wproj .comment-box__hint{margin-top:6px;font-size:11px;color:var(--ink-4);line-height:1.35}.wproj .task-comment-body{white-space:pre-wrap;word-break:break-word}.wproj .task-comment-token{display:inline;font-weight:600;border-radius:4px;padding:0 2px}.wproj .task-comment-token--user{color:var(--accent-text);background:var(--accent-soft)}.wproj .task-comment-token--article{color:var(--accent-text);background:transparent;border:none;padding:0 2px;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.wproj .task-comment-token--project{color:var(--ink-3);background:var(--surface-2);font-family:var(--f-mono);font-size:.92em}.wproj .task-comment-article{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;margin:4px 6px 4px 0;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer;text-align:left;font:inherit;max-width:100%}.wproj .task-comment-article__code{font-family:var(--f-mono);font-size:12px;font-weight:700;color:var(--accent-text)}.wproj .task-comment-article__name{font-size:11.5px;color:var(--ink-3)}.wproj .task-comment-subtask{display:inline-flex;align-items:center;gap:6px;margin:4px 8px 4px 0;padding:5px 10px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}.wproj .task-comment-subtask__label{font-weight:600;color:var(--ink-3)}.wproj .task-comment-subtask__id{font-family:var(--mono);font-size:11px;color:var(--ink-4)}.wproj .task-comment-subtask__title{color:var(--ink)}.wproj .task-comment-subtask--link{cursor:pointer}.wproj .task-comment-subtask--link:hover{border-color:var(--line-strong);background:var(--surface)}.wproj .comment-subtask-draft{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--line)}.wproj .comment-subtask-draft .task-comment-subtask{margin:0;flex:1;min-width:0}.wproj .comment-article-drafts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.wproj .comment-article-draft{display:inline-flex;align-items:center;gap:4px;max-width:100%}.wproj .comment-article-draft .task-comment-article{margin:0;cursor:default}.wproj .item-time-badge{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink)}.wproj .item-time-badge--live{color:var(--accent-text)}.wproj .item-time-est{font-size:12px;color:var(--ink-4);margin-left:4px}.wproj .item-time-panel{padding:10px;width:100%;box-sizing:border-box}.wproj .item-time-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.wproj .item-time-panel__elapsed{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink);line-height:1.1}.wproj .item-time-panel__sub{font-size:11.5px;color:var(--ink-4);margin-top:2px}.wproj .item-time-panel__bar{height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-bottom:12px}.wproj .item-time-panel__bar-fill{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .3s ease}.wproj .item-time-panel__bar-fill--over{background:var(--st-cancel)}.wproj .item-time-panel__section-label{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.wproj .item-time-panel__presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.wproj .item-time-preset{padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}.wproj .item-time-preset:hover{background:var(--bg)}.wproj .item-time-preset.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text);font-weight:600}.wproj .item-time-panel__custom{display:flex;gap:6px;align-items:center}.wproj .item-time-panel__custom input{flex:1;min-width:0;padding:6px 9px;border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:12.5px;background:var(--surface)}.wproj .kcard-meta--live{color:var(--accent-text);font-weight:600}.wproj .subtask{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}.wproj .profile{display:flex;height:100%}.wproj .prof-main{flex:1;overflow-y:auto;padding:28px 32px 80px;min-width:0}.wproj .prof-side{width:320px;flex-shrink:0;border-left:1px solid var(--line)}.wproj .prof-cover{height:130px;background:linear-gradient(120deg,#2a2a2e,#3c3c42 60%,#1d1d1f);position:relative}.wproj .prof-av{position:absolute;left:24px;bottom:-28px}.wproj .prof-info{padding:40px 24px 20px}.wproj .prof-name{font-size:19px;font-weight:650}.wproj .prof-handle{color:var(--ink-3);font-size:13.5px}.wproj .prof-meta-row{display:flex;justify-content:space-between;padding:9px 0;font-size:13px;border-top:1px solid var(--line)}.wproj .prof-meta-row .k{color:var(--ink-3)}.wproj .ptabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:22px}.wproj .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:30px}.wproj .stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-card)}.wproj .projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.wproj .project-grid-card{cursor:pointer;padding:0;overflow:hidden;position:relative}.wproj .project-grid-menu,.wproj .mobile-project-menu{display:none}.wproj .stat-ic{width:32px;height:32px;border-radius:9px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--ink-2);margin-bottom:12px}.wproj .stat-label{font-size:13px;color:var(--ink-3);margin-bottom:6px}.wproj .stat-num{font-size:26px;font-weight:650;letter-spacing:-.02em}.wproj .work-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:30px}.wproj .work-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;box-shadow:var(--shadow-card)}.wproj .work-card .wl{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-3);margin-bottom:8px}.wproj .work-card .wn{font-size:22px;font-weight:650}.wproj .bars{display:flex;flex-direction:column;gap:12px}.wproj .bar-row{display:flex;align-items:center;gap:12px}.wproj .bar-lab{width:130px;font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:8px}.wproj .bar-track{flex:1;height:8px;background:var(--bg);border-radius:999px;overflow:hidden}.wproj .bar-fill{height:100%;border-radius:999px}.wproj .bar-val{width:30px;text-align:right;font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}.wproj .empty-chart{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink-4);font-size:13px}.wproj .panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-card);margin-bottom:22px}.wproj .panel-h{font-size:15px;font-weight:600;margin:0 0 16px}.wproj .stickies{padding:24px 28px 60px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.wproj .sticky{border-radius:22px;padding:18px 18px 8px;min-height:320px;display:flex;flex-direction:column;box-shadow:0 8px 24px #0000001a,0 1px #ffffff40 inset;position:relative;transition:box-shadow .15s,transform .15s}.wproj .sticky:hover{box-shadow:0 12px 30px #00000024}.wproj .sticky-grip{position:absolute;top:10px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;cursor:grab;color:#00000052;opacity:0;transition:opacity .12s,background .12s,color .12s}.wproj .sticky:hover .sticky-grip{opacity:1}.wproj .sticky-grip:hover{background:#00000014;color:#0009}.wproj .sticky-grip:active{cursor:grabbing}.wproj .sticky-dragging{opacity:.45;transform:scale(.98)}.wproj .sticky-dropzone{outline:2px dashed rgba(0,0,0,.28);outline-offset:3px}.wproj .sticky-title{background:transparent;border:none;outline:none;font-family:inherit;font-size:16px;font-weight:700;color:inherit;width:100%;margin-bottom:8px;padding:0}.wproj .sticky-title::placeholder{color:currentColor;opacity:.45}.wproj .sticky textarea{background:transparent;border:none;outline:none;resize:none;font-family:inherit;font-size:14px;line-height:1.45;flex:1;color:inherit}.wproj .sticky [contenteditable]>div,.wproj .sticky [contenteditable]>p{margin:0 0 7px}.wproj .sticky [contenteditable]>.st-check{margin:0 0 7px}.wproj .sticky-tools{display:flex;align-items:center;gap:4px;padding-top:10px;margin-top:auto;color:#0006;border-top:1px solid rgba(0,0,0,.06)}.wproj .sticky-tools .st-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;cursor:pointer;transition:background .12s,color .12s}.wproj .sticky-tools .st-btn:hover{color:#000000bf;background:#0000000f}.wproj .sticky-tools .del{margin-left:auto}.wproj .sticky-tools .del:hover{color:var(--st-cancel);background:#e0524c1f}.wproj .overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141657;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:5000}@keyframes wproj-fade{0%{opacity:0}to{opacity:1}}.wproj .modal{width:660px;max-width:calc(100vw - 40px);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-modal);overflow:hidden;animation:wproj-pop .18s cubic-bezier(.2,.8,.3,1) both}@keyframes wproj-pop{0%{transform:scale(.96) translateY(8px)}to{transform:none}}.wproj .modal-cover{height:170px;position:relative;background-size:cover;background-position:center}.wproj .modal-cover .x{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:8px;background:#0006;color:#fff;border:none;display:flex;align-items:center;justify-content:center}.wproj .modal-cover .change{position:absolute;right:14px;bottom:14px}.wproj .modal-cover .ptype{position:absolute;top:14px;left:14px;width:32px;height:32px;border-radius:8px;background:#0006;color:#fff;display:flex;align-items:center;justify-content:center;border:none}.wproj .modal-emoji{position:absolute;left:24px;bottom:-22px;width:56px;height:56px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:var(--shadow-card);cursor:pointer}.wproj .modal-body{padding:40px 24px 22px}.wproj .modal-row{display:flex;gap:12px;margin-bottom:14px}.wproj .field-name{flex:1;font-size:19px;font-weight:600;border:none;outline:none;font-family:inherit;padding:6px 2px}.wproj .field-name::placeholder{color:var(--ink-4)}.wproj .field-id{width:120px;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;font-family:var(--mono);font-size:13px;outline:none;text-align:center}.wproj .field-desc{width:100%;border:1px solid var(--line);border-radius:var(--r-md);padding:11px 13px;min-height:90px;resize:none;font-family:inherit;font-size:14px;outline:none}.wproj .field-desc:focus,.wproj .field-id:focus{border-color:var(--accent)}.wproj .modal-foot{display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:1px solid var(--line)}.wproj .modal-foot .spacer{flex:1}.wproj .chip-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);font-size:13px;color:var(--ink-2)}.wproj .chip-btn:hover{background:var(--surface-2)}.wproj .menu{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-pop);padding:5px;min-width:180px;z-index:200}.wproj .menu-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--r-sm);font-size:13.5px;color:var(--ink);cursor:pointer}.wproj .menu-item:hover{background:var(--bg)}.wproj .menu-item .check{margin-left:auto;color:var(--accent)}.wproj .proj-parent-picker{margin-top:10px}.wproj .proj-parent-picker--compact{margin-top:0}.wproj .proj-parent-picker__label{display:block;font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.wproj .proj-parent-picker__btn{display:inline-flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font:inherit;font-size:13.5px;color:var(--ink);cursor:pointer;text-align:left}.wproj .proj-parent-picker__btn:hover{background:var(--bg)}.wproj .proj-parent-picker__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wproj .proj-parent-picker__key{font-family:var(--mono);font-size:11px;color:var(--ink-4)}.wproj .proj-parent-picker__chev{margin-left:auto;color:var(--ink-4);flex-shrink:0}.wproj .proj-parent-picker--compact .proj-parent-picker__btn{width:auto;padding:4px 9px;border-radius:var(--r-sm);border:none;background:transparent}.wproj .proj-parent-picker--compact .proj-parent-picker__btn:hover{background:#0000000d}.wproj .proj-parent-link{display:inline-flex;align-items:center;gap:5px;padding:0;border:none;background:none;font:inherit;font-size:inherit;color:var(--ink-3);cursor:pointer}.wproj .proj-parent-link:hover{color:var(--accent-text)}.wproj .proj-ctx-menu{position:fixed;z-index:400;min-width:224px;pointer-events:auto;background:var(--surface)}.icon-emoji-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9590;background:#1414166b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-tap-highlight-color:transparent}.icon-emoji-picker-popover{display:flex;flex-direction:column;overflow:hidden;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;box-shadow:var(--shadow-modal)!important;padding:8px;max-height:min(384px,calc(100vh - 24px))}.icon-emoji-picker-popover--sheet{max-height:min(72dvh,520px)}.icon-emoji-picker-tabs{margin-bottom:8px;flex-shrink:0}.icon-emoji-picker-tabs button{flex:1}.icon-emoji-picker-cats{display:flex;gap:2px;margin-bottom:6px;overflow-x:auto;flex-shrink:0}.icon-emoji-picker-cats button{border:none;background:transparent;cursor:pointer;font-size:17px;padding:3px 4px;border-radius:6px}.icon-emoji-picker-scroll{overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}.icon-emoji-picker-section{margin-bottom:8px}.icon-emoji-picker-section-title{position:sticky;top:0;z-index:1;background:var(--surface);font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin:6px 2px 4px}.icon-emoji-picker-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px}.icon-emoji-picker-cell{border:none;background:transparent;cursor:pointer;font-size:19px;line-height:1;padding:4px;border-radius:6px;min-height:32px;display:inline-flex;align-items:center;justify-content:center}.icon-emoji-picker-cell:hover{background:var(--surface-2)}.icon-emoji-picker-cell--icon{font-size:inherit}.icon-emoji-picker-search{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 8px;font-size:12.5px;outline:none;margin-bottom:8px;font-family:inherit;flex-shrink:0}.icon-emoji-picker-colors{display:flex;gap:6px;margin-bottom:8px;flex-shrink:0}.icon-emoji-picker-color{width:22px;height:22px;border-radius:50%;cursor:pointer;padding:0;border:1px solid rgba(0,0,0,.1)}.icon-emoji-picker-color.is-active{border:2px solid var(--accent)}.proj-ctx-host{position:fixed;top:0;right:0;bottom:0;left:0;width:0;height:0;overflow:visible;pointer-events:none}.app-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:11050;background:var(--ink);color:#fff;border-radius:12px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:var(--shadow-modal);font-size:14px;animation:app-toast-in .16s ease both;max-width:min(420px,calc(100vw - 32px));pointer-events:auto}.app-toast-text{line-height:1.35}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.app-toast--error{background:#fff;color:var(--ink);border:1px solid rgba(224,82,76,.35)}.app-toast-action{color:#6db1ff;cursor:pointer;font-weight:600;margin-left:6px;white-space:nowrap}.app-toast--error .app-toast-action{color:var(--accent-text)}.app-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:11000;background:#14141657;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.app-dialog{width:min(360px,calc(100vw - 32px));background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-modal);padding:20px;animation:wproj-pop .16s ease both}.app-dialog--alert{width:min(380px,calc(100vw - 32px));padding:22px 22px 18px}.app-dialog-title{font-size:16px;font-weight:700;margin-bottom:6px;line-height:1.3}.app-dialog-message{font-size:13.5px;color:var(--ink-2);line-height:1.5}.app-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.wproj .fade-in{animation:wproj-fade .2s ease both}@media (prefers-reduced-motion: reduce){.wproj .modal,.wproj .fade-in{animation:none}}.wproj .cmd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141657;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:300}.wproj .cmd{width:620px;max-width:calc(100vw - 40px);max-height:70vh;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden;animation:wproj-pop .16s cubic-bezier(.2,.8,.3,1) both}.wproj .cmd-input{display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--line);color:var(--ink-3)}.wproj .cmd-input input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:16px;color:var(--ink)}.wproj .cmd-input input::placeholder{color:var(--ink-4)}.wproj .cmd-list{flex:1;overflow-y:auto;padding:6px}.wproj .cmd-group{margin-bottom:4px}.wproj .cmd-group-h{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);padding:8px 12px 4px}.wproj .cmd-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-sm);cursor:pointer}.wproj .cmd-row.on{background:var(--accent-soft)}.wproj .cmd-ic{width:22px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);flex-shrink:0}.wproj .cmd-row.on .cmd-ic{color:var(--accent)}.wproj .cmd-title{flex:1;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .cmd-meta{font-size:12.5px;color:var(--ink-4);display:inline-flex;align-items:center;gap:5px;flex-shrink:0}.wproj .cmd-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 0;color:var(--ink-4);font-size:13.5px}.wproj .cmd-foot{display:flex;align-items:center;gap:16px;padding:9px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}.wproj .cmd-foot .kbd{margin-right:2px}.wproj .search.as-btn{cursor:pointer;transition:border-color .12s,background .12s}.wproj .search.as-btn:hover{border-color:var(--line-strong);background:#fff}.wproj .search.as-btn .sp{flex:1;color:var(--ink-4)}.wproj .notif-wrap{position:relative;display:inline-flex}.wproj .notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--pr-urgent);color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface);font-variant-numeric:tabular-nums}.wproj .notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:392px;max-height:76vh;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);z-index:250;display:flex;flex-direction:column;overflow:hidden;animation:wproj-pop .16s cubic-bezier(.2,.8,.3,1) both}.wproj .notif-head{display:flex;align-items:center;gap:9px;padding:14px 16px 10px}.wproj .notif-title{font-size:15px;font-weight:650}.wproj .notif-badge2{background:var(--accent-soft);color:var(--accent-text);font-size:11.5px;font-weight:600;border-radius:999px;padding:1px 8px}.wproj .notif-tabs{display:flex;gap:4px;padding:0 16px 8px;border-bottom:1px solid var(--line)}.wproj .notif-tabs button{border:none;background:transparent;font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-3);padding:6px 10px;border-radius:var(--r-sm)}.wproj .notif-tabs button.on{background:var(--bg);color:var(--ink)}.wproj .notif-list{flex:1;overflow-y:auto;padding:4px 8px}.wproj .notif-group-h{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);padding:10px 8px 5px}.wproj .notif-row{display:flex;gap:11px;padding:10px 8px;border-radius:var(--r-md);cursor:pointer;position:relative}.wproj .notif-row:hover{background:var(--bg)}.wproj .notif-row.unread{background:color-mix(in srgb,var(--accent) 5%,#fff)}.wproj .notif-row.unread:hover{background:color-mix(in srgb,var(--accent) 9%,#fff)}.wproj .notif-av{position:relative;flex-shrink:0}.wproj .notif-kic{width:30px;height:30px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--ink-3)}.wproj .notif-kbadge{position:absolute;bottom:-3px;right:-3px;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.wproj .notif-body{flex:1;min-width:0}.wproj .notif-text{font-size:13px;color:var(--ink-2);line-height:1.4}.wproj .notif-text b{color:var(--ink);font-weight:600}.wproj .notif-target{color:var(--ink)}.wproj .notif-snippet{font-size:12.5px;color:var(--ink-3);background:var(--bg);border-radius:var(--r-sm);padding:6px 9px;margin-top:5px;border-left:2px solid var(--line-strong)}.wproj .notif-when{font-size:11.5px;color:var(--ink-4);margin-top:5px}.wproj .notif-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;align-self:center}.wproj .notif-foot{padding:8px;border-top:1px solid var(--line)}.wproj .wiki-tree-h{display:flex;align-items:center;gap:8px;padding:4px 6px 2px}.wproj .wiki-tree-h .t{font-size:16px;font-weight:650;letter-spacing:-.01em}.wproj .wiki-tree-h .sp{margin-left:auto;color:var(--ink-4);display:flex}.wproj .wiki-page-item{display:flex;align-items:center;gap:8px;padding:6px 9px 6px 26px;border-radius:var(--r-sm);color:var(--ink-2);font-size:13px;cursor:pointer}.wproj .wiki-page-item:hover{background:#0000000a}.wproj .wiki-page-item.active{background:#0a84ff1a;color:var(--accent-text);font-weight:550}.wproj .wiki-page-item .pi{font-size:14px;width:16px;text-align:center;flex-shrink:0}.wproj .wiki-page-item .pt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wproj .wiki-empty-note{font-size:12.5px;color:var(--ink-4);text-align:center;padding:12px 8px}.wproj .wiki-home{max-width:880px;margin:0 auto;padding:56px 28px 80px}.wproj .wiki-home .greet{text-align:center;margin-bottom:44px}.wproj .wiki-home .greet h1{font-size:30px;font-weight:650;letter-spacing:-.02em;margin:0 0 8px}.wproj .wiki-home .greet .date{color:var(--ink-3);font-size:15px;display:inline-flex;align-items:center;gap:8px}.wproj .wiki-sec-h{font-size:15px;font-weight:600;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between}.wproj .wiki-recent{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);margin-bottom:8px;box-shadow:var(--shadow-card);cursor:pointer}.wproj .wiki-recent:hover{border-color:var(--line-strong)}.wproj .wiki-recent .ic{font-size:18px;width:26px;text-align:center}.wproj .wiki-editor{display:flex;height:100%;min-height:0}.wproj .we-main{flex:1;overflow-y:auto;min-width:0}.wproj .we-bar{height:48px;display:flex;align-items:center;gap:4px;padding:0 18px;border-bottom:1px solid var(--line);background:var(--surface);overflow-x:auto}.wproj .we-bar .grp{display:flex;align-items:center;gap:2px;padding:0 8px;border-right:1px solid var(--line);height:22px}.wproj .we-bar .grp:last-child{border-right:none}.wproj .we-tool{width:30px;height:30px;border-radius:7px;border:none;background:transparent;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center}.wproj .we-tool:hover{background:#0000000d;color:var(--ink)}.wproj .we-select{border:none;background:transparent;font-family:inherit;font-size:13px;color:var(--ink-2);padding:4px 6px;border-radius:6px}.wproj .we-select:hover{background:#0000000d}.wproj .we-doc{max-width:760px;margin:0 auto;padding:40px 40px 120px}.wproj .we-meta{display:flex;align-items:center;gap:16px;color:var(--ink-3);font-size:13px;margin-bottom:18px}.wproj .we-meta .it{display:inline-flex;align-items:center;gap:7px;padding:4px 7px;border-radius:6px}.wproj .we-meta .it:hover{background:#0000000d}.wproj .we-title{font-size:36px;font-weight:700;letter-spacing:-.025em;line-height:1.15;outline:none;margin:0 0 8px}.wproj .we-title.placeholder{color:var(--ink-4)}.wproj .we-slash{display:flex;align-items:center;gap:10px;color:var(--ink-4);font-size:16px;padding:6px 0}.wproj .we-slash .h{display:flex;gap:4px;color:var(--ink-4)}.wproj .we-doc h2{font-size:22px;font-weight:650;letter-spacing:-.01em;margin:28px 0 10px}.wproj .we-doc p{font-size:16px;line-height:1.65;color:var(--ink-2);margin:0 0 14px}.wproj .we-doc ul,.wproj .we-doc ol{font-size:16px;line-height:1.7;color:var(--ink-2);padding-left:24px;margin:0 0 14px}.wproj .we-doc li{margin:4px 0}.wproj .we-callout{display:flex;gap:12px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,#fff);border-radius:var(--r-md);padding:14px 16px;margin:0 0 18px;font-size:15px;line-height:1.55;color:var(--ink)}.wproj .we-callout .e{font-size:18px}.wproj .we-quote{border-left:3px solid var(--accent);padding:4px 0 4px 16px;margin:0 0 16px;font-size:16.5px;font-style:italic;color:var(--ink-2)}.wproj .we-check{display:flex;align-items:center;gap:10px;font-size:16px;padding:4px 0;color:var(--ink-2)}.wproj .we-check .box{width:18px;height:18px;border-radius:5px;border:1.8px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.wproj .we-check.done .box{background:var(--accent);border-color:var(--accent);color:#fff}.wproj .we-check.done span{color:var(--ink-4);text-decoration:line-through}.wproj .we-table{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin:0 0 18px;width:100%;border-collapse:collapse;font-size:14.5px}.wproj .we-table th{background:var(--surface-2);text-align:left;padding:10px 14px;font-weight:600;border-bottom:1px solid var(--line)}.wproj .we-table td{padding:10px 14px;border-bottom:1px solid var(--line);color:var(--ink-2)}.wproj .we-table tr:last-child td{border-bottom:none}.wproj .we-table td+td,.wproj .we-table th+th{border-left:1px solid var(--line)}.wproj .we-toc{width:232px;flex-shrink:0;border-left:1px solid var(--line);background:var(--surface-2);padding:24px 20px;overflow-y:auto}.wproj .we-toc .h{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-bottom:12px}.wproj .we-toc a{display:block;font-size:13px;color:var(--ink-3);padding:5px 0;cursor:pointer;text-decoration:none;line-height:1.4}.wproj .we-toc a:hover{color:var(--ink)}.wproj [contenteditable][data-placeholder]:empty:before{content:attr(data-placeholder);color:var(--ink-4);pointer-events:none}.wproj .ov-title:hover,.wproj .ov-desc:hover{background:#00000009}.wproj .ov-title:focus,.wproj .ov-desc:focus{background:#0a84ff0d}.wproj .we-edit:empty:before{content:attr(data-placeholder);color:var(--ink-4);pointer-events:none}.wproj .st-check{display:flex;align-items:flex-start;gap:8px;margin:2px 0}.wproj .st-check .st-cbx{width:17px;height:17px;margin-top:2px;border-radius:5px;flex-shrink:0;cursor:pointer;border:1.5px solid rgba(128,128,128,.6);display:inline-flex;align-items:center;justify-content:center}.wproj .st-check[data-done="1"] .st-cbx{background:var(--accent);border-color:var(--accent)}.wproj .st-check[data-done="1"] .st-cbx:after{content:"✓";color:#fff;font-size:12px;line-height:1}.wproj .st-check .st-ctext{flex:1;min-width:0}.wproj .st-check[data-done="1"]{opacity:.5}.wproj .st-check[data-done="1"] .st-ctext{text-decoration:line-through}.wproj .main{position:relative}.wproj .peek-host{position:absolute;top:52px;left:0;right:0;bottom:0;z-index:60}.wproj .peek-host .peek-panel{display:flex;flex-direction:column;background:var(--surface);overflow:hidden}.wproj .peek-side{pointer-events:none}.wproj .peek-side .peek-panel{pointer-events:auto;position:absolute;top:0;right:0;bottom:0;width:min(1120px,78vw);border-left:1px solid var(--line);box-shadow:-12px 0 30px #0000001a;animation:peek-slide .2s cubic-bezier(.2,.8,.3,1) both}.wproj .peek-modal{position:fixed;right:0;bottom:0;left:0;top:0;z-index:4000;background:#00000052;display:flex;align-items:center;justify-content:center;padding:16px 20px}.wproj .peek-modal .peek-backdrop{position:absolute;top:0;right:0;bottom:0;left:0}.wproj .peek-modal .peek-panel{position:relative;display:flex;flex-direction:column;width:min(1180px,calc(100vw - 32px));height:min(900px,calc(100vh - 32px));max-height:calc(100vh - 32px);border-radius:var(--r-xl);box-shadow:var(--shadow-modal);animation:wproj-pop .18s ease both;overflow:hidden;background:var(--surface)}.wproj .peek-modal .detail-wrap,.wproj .peek-modal .detail-main{background:var(--surface)}.wproj .peek-modal .detail-head{background:var(--surface);border-bottom:1px solid var(--line)}.wproj .peek-modal .peek-panel>.content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.wproj .peek-modal .peek-panel .detail-wrap{flex:1;min-height:0}@keyframes peek-slide{0%{transform:translate(28px);opacity:.5}to{transform:none;opacity:1}}.wproj .dp{position:relative;display:inline-block;width:100%}.wproj .dp-trigger{display:inline-flex;align-items:center;gap:6px;width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .12s,box-shadow .12s;font:inherit}.wproj .dp-trigger:hover{border-color:var(--ink-3)}.wproj .dp-trigger:focus,.wproj .dp-trigger.is-open{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.wproj .dp-trigger:disabled{opacity:.55;cursor:default}.wproj .dp-trigger.is-empty .dp-trigger__val{color:var(--ink-4);font-style:italic;font-weight:400}.wproj .dp-trigger__cap{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.wproj .dp-trigger__val{font-family:var(--mono);font-feature-settings:"tnum";font-size:12px;color:var(--ink)}.wproj .dp-trigger--input{height:32px;padding:0 10px;border-radius:var(--r-sm)}.wproj .dp-trigger--input .dp-trigger__val{font-size:12.5px}.wproj .dp-trigger--mini{height:24px;padding:0 9px;border-radius:6px;border-color:var(--line);background:var(--surface-2);width:auto}.wproj .dp-trigger--mini.is-empty{background:transparent;border-style:dashed}.wproj .dp-pop{background:var(--surface);border-radius:10px;box-shadow:0 1px #0000000a,0 4px 14px #0f0f1414,0 12px 32px #0f0f141a;padding:7px 8px 6px;-webkit-user-select:none;user-select:none;color:var(--ink)}.wproj .dp-pop__arrow{position:absolute;top:-5px;width:10px;height:10px;background:var(--surface);transform:rotate(45deg);border-radius:1px;box-shadow:-2px -2px 4px #0f0f1408}.wproj .dp-pop--flip .dp-pop__arrow{top:auto;bottom:-5px;box-shadow:2px 2px 4px #0f0f1408}.wproj .dp__head{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 4px}.wproj .dp__title{font-size:11.5px;font-weight:600;color:var(--accent-text);letter-spacing:-.01em}.wproj .dp__nav{display:inline-flex;align-items:center;gap:1px}.wproj .dp__btn{width:18px;height:18px;border:0;background:transparent;border-radius:4px;color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,transform .08s}.wproj .dp__btn:hover{background:var(--accent-soft)}.wproj .dp__btn:active{transform:scale(.94)}.wproj .dp__btn svg{width:8px;height:8px}.wproj .dp__btn--today{border-radius:50%}.wproj .dp__btn-dot{width:4px;height:4px;border-radius:50%;background:var(--accent)}.wproj .dp__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 0 1px;font-size:8px;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.03em}.wproj .dp__weekdays>div{text-align:center;padding:1px 0}.wproj .dp__weekdays>div.is-we{color:var(--st-cancel);opacity:.85}.wproj .dp__days{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:22px;gap:0;padding:0}.wproj .dp__day{display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:400;color:var(--ink);border:0;background:transparent;border-radius:999px;cursor:pointer;padding:0;transition:background .12s,color .12s}.wproj .dp__day:hover{background:#0000000d}.wproj .dp__day.is-muted{color:var(--ink-4);opacity:.45}.wproj .dp__day.is-weekend{color:var(--st-cancel)}.wproj .dp__day.is-today{color:var(--accent-text);font-weight:600}.wproj .dp__day.is-selected{background:var(--accent)!important;color:#fff!important;font-weight:600}.wproj .dp__foot{display:flex;align-items:center;gap:4px;padding:5px 1px 1px;border-top:1px solid var(--line);margin-top:4px;font-size:10px;color:var(--ink-3)}.wproj .dp__picked{font-size:9px;color:var(--ink-3)}.wproj .dp__picked .mono{font-family:var(--mono);color:var(--ink);font-size:9.5px}.wproj .dp__picked--empty{color:var(--ink-4);font-style:italic}.wproj .dp__cta{border:0;background:var(--accent);color:#fff;font-weight:600;font-size:10px;padding:3px 9px;border-radius:999px;cursor:pointer;transition:filter .12s,transform .08s}.wproj .dp__cta:hover{filter:brightness(.96)}.wproj .dp__cta--ghost{background:transparent;color:var(--accent-text);box-shadow:none;font-weight:500;padding:3px 6px;font-size:9.5px}.wproj .dp__cta--ghost:hover{background:var(--accent-soft);filter:none}.wproj .login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 18px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));background:radial-gradient(1200px 700px at 20% -10%,rgba(10,132,255,.1),transparent 60%),radial-gradient(900px 600px at 90% 0%,rgba(118,75,162,.08),transparent 55%),var(--bg)}.wproj .login-card{width:100%;max-width:420px;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-modal);padding:32px 28px}.wproj .login-logo{display:flex;justify-content:center;margin-bottom:20px}.wproj .login-logo img{height:100px;width:auto;max-width:min(320px,90vw)}.wproj .login-title{text-align:center;font-size:26px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}.wproj .login-sub{text-align:center;color:var(--ink-3);font-size:14px;margin:0 0 24px}.wproj .login-form{display:flex;flex-direction:column;gap:14px}.wproj .login-field{display:flex;flex-direction:column;gap:6px}.wproj .login-field span{font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.wproj .login-field input{border:1px solid var(--line-strong);border-radius:var(--r-md);padding:12px 14px;font-size:16px;font-family:inherit;outline:none;background:var(--surface);width:100%;box-sizing:border-box}.wproj .login-field-input-wrap{position:relative;display:flex;align-items:center}.wproj .login-field-input-wrap input{padding-right:46px}.wproj .login-field-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-sm);padding:0}.wproj .login-field-toggle:active{background:var(--surface-2)}.wproj .login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a84ff1f}.wproj .login-error{color:var(--st-cancel);font-size:13px;text-align:center}.wproj .login-btn{margin-top:6px;padding:12px 16px;border:none;border-radius:var(--r-md);background:var(--accent);color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer}.wproj .login-btn:hover{background:var(--accent-hover)}.wproj .login-btn:disabled{opacity:.6;cursor:not-allowed}.wproj .login-btn-full{width:100%}.wproj .sb-logo-img{height:44px;width:auto;max-width:120px;flex-shrink:0}.wproj .mobile-menu-btn,.wproj .mobile-backdrop,.wproj .mobile-nav,.wproj .mobile-brand{display:none}.wproj .desktop-crumb{display:flex}.wproj .users-mobile-list{display:none}.wproj.pwa-app-shell,.wproj .pwa-app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;height:100%;overflow:hidden}html.requires-pwa-install .pwa-app-shell{display:none!important}.pwa-install-screen{display:none;min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:radial-gradient(1200px 700px at 20% -10%,rgba(10,132,255,.1),transparent 60%),radial-gradient(900px 600px at 90% 0%,rgba(118,75,162,.08),transparent 55%),var(--bg)}html.requires-pwa-install .pwa-install-screen{display:flex}.pwa-install-inner{width:min(400px,100%);display:flex;flex-direction:column;align-items:stretch}.pwa-install-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:4px}.pwa-install-logo{height:88px;width:auto;max-width:min(280px,80vw)}.pwa-install-title{margin:16px 0 0;font-weight:700;letter-spacing:-.02em;font-size:1.35rem}.pwa-install-lead{margin:12px 0 16px;font-size:.95rem;line-height:1.5;color:var(--ink-3);text-align:center}.pwa-install-steps{width:100%;margin:0 0 20px;padding:16px 16px 16px 2.25rem;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);list-style-position:outside;font-size:.9rem;line-height:1.5;color:var(--ink);box-sizing:border-box}.pwa-install-steps li{margin-bottom:12px}.pwa-install-steps li:last-child{margin-bottom:0}.pwa-install-btn{width:100%;justify-content:center}body.board-touch-dragging{user-select:none;-webkit-user-select:none}body.board-touch-dragging .board{overflow-x:auto}.wproj .kcard-touch-ghost{position:fixed;z-index:9999;pointer-events:none;display:inline-flex;align-items:center;gap:8px;max-width:min(280px,72vw);padding:10px 14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--accent);box-shadow:var(--shadow-pop);font-size:13px;font-weight:500;color:var(--ink);transform:rotate(-1deg)}.wproj .kcard--touch .kcard-drag{pointer-events:auto;touch-action:none;-webkit-touch-callout:none;width:36px;height:36px;min-width:36px;margin-top:0;border-radius:10px;background:var(--surface-2);color:var(--ink-3);cursor:grab}.wproj .kcard--touch .kcard-top{-webkit-touch-callout:none}.wproj .kcard--touch:active .kcard-drag,.wproj .kcard--touch.kcard--pressing .kcard-drag{background:var(--accent-soft);color:var(--accent-text)}@media (max-width: 860px){html,body,#root{height:100%;min-height:100dvh;overflow:hidden}.wproj,.wproj *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.wproj input,.wproj textarea,.wproj [contenteditable=true]:focus,.wproj .detail-title:focus,.wproj .detail-desc:focus,.wproj .kcard-new-input,.wproj .col-name{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.wproj .menu,.wproj .menu-item,.wproj .nav-item,.wproj .kcard,.wproj .kcard-title,.wproj .kcard-id,.wproj .mobile-nav,.wproj .sb,.wproj .btn,.wproj .pill,.wproj .tag{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.wproj.pwa-app-shell{flex:1;min-height:0}.wproj .app{flex:1;min-height:0;height:auto;max-height:none;overflow:hidden;display:flex;width:100%}.wproj .main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;width:100%;padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}.wproj .topbar{flex-shrink:0;position:relative;z-index:120;box-sizing:border-box;min-height:52px;height:auto;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top,0px));display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;grid-template-areas:"menu brand proj actions";align-items:center;gap:8px;flex-wrap:nowrap;background:var(--surface);border-bottom:1px solid var(--line)}.wproj .mobile-menu-btn{display:flex;grid-area:menu;flex-shrink:0}.wproj .mobile-brand{grid-area:brand;display:inline-flex;align-items:center;gap:8px;min-width:0;flex:none;justify-content:center;margin:0;padding:7px 14px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);max-width:100%}.wproj .top-actions{grid-area:actions;gap:6px;flex-shrink:0}.wproj .top-actions .btn-primary{padding:8px 10px;font-size:12px}.wproj .content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.wproj .content.overview-body,.wproj .content.list{overflow-y:auto;-webkit-overflow-scrolling:touch;display:block}.wproj .board{flex:1;min-height:0;width:100%;height:100%;max-height:100%;align-items:stretch;padding:8px;gap:10px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}.wproj .board--touch{touch-action:pan-x pan-y}.wproj .col-head{touch-action:pan-x;cursor:grab}.wproj .col{width:min(292px,86vw);max-height:100%;height:100%;min-height:0;flex-shrink:0;display:flex;flex-direction:column}.wproj .col-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.wproj .kcard{touch-action:none}.wproj .kcard-foot button,.wproj .kcard-foot .menu-item{touch-action:manipulation}.wproj .kcard.dragging{opacity:.35;pointer-events:none}.mobile-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:#14141673;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.mobile-sheet{width:100%;max-width:520px;max-height:min(78dvh,560px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-modal);-webkit-overflow-scrolling:touch}.mobile-sheet-head{padding:16px 16px 8px;border-bottom:1px solid var(--line)}.proj-actions-head{display:flex;align-items:center;gap:12px}.mobile-sheet-title{font-size:16px;font-weight:650;color:var(--ink)}.mobile-sheet-sub{margin-top:4px;font-size:13px;color:var(--ink-3);line-height:1.35}.mobile-sheet-body{padding:8px;display:flex;flex-direction:column;gap:6px}.mobile-move-col{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px;font:inherit;color:var(--ink);text-align:left}.mobile-move-col-name{flex:1;font-size:15px;font-weight:550}.mobile-move-col-hint{font-size:11px;color:var(--ink-4)}.mobile-move-col.is-current{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.mobile-sheet-cancel{width:calc(100% - 16px);margin:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px;font:inherit;font-size:15px;font-weight:550;color:var(--ink)}.proj-actions-sheet .menu-item{min-height:44px}.proj-actions-body{padding:6px 8px 10px}.proj-actions-body .menu-item{border-radius:10px;padding:10px 12px;font-size:15px}.wproj .nav-item-more{display:inline-flex}.wproj .nav-item{position:relative;padding-right:34px}.wproj .nav-item-more{position:absolute;right:4px;top:50%;transform:translateY(-50%);align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:8px;background:transparent;color:var(--ink-3);cursor:pointer;touch-action:manipulation}.mobile-project-menu{grid-area:proj;display:inline-flex;flex-shrink:0}.wproj .kcard--touch .kcard-top{touch-action:none;cursor:grab}.wproj .kcard--touch.kcard--pressing .kcard-top,body.board-touch-dragging .wproj .kcard--touch .kcard-top{cursor:grabbing}.wproj .kcard-drop--on{height:12px;margin:2px 0;background:transparent;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}.projects-grid{display:grid;grid-template-columns:1fr;gap:12px}.project-grid-card{position:relative;cursor:pointer;padding:0;overflow:hidden}.project-grid-menu{position:absolute;top:8px;right:8px;z-index:2;background:#ffffffeb;box-shadow:var(--shadow-card)}.wproj .peek-modal{padding:0;align-items:stretch;justify-content:stretch;background:var(--surface);z-index:5000}.wproj .peek-modal .peek-backdrop{display:none}.wproj .peek-modal .peek-panel{width:100%;height:100dvh;max-height:100dvh;min-height:100dvh;border-radius:0;animation:none;box-shadow:none;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.wproj .peek-modal .detail-head{flex-direction:column;align-items:stretch;height:auto;min-height:48px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top,0px));gap:8px;flex-shrink:0}.wproj .detail-head-top{display:flex;align-items:center;gap:8px;min-width:0;width:100%}.wproj .detail-head-crumb{flex:1;min-width:0;margin-left:0!important;font-size:12px;overflow:hidden}.wproj .detail-head-actions{display:flex;align-items:center;gap:8px;width:100%}.wproj .detail-head-actions .btn{flex:1;justify-content:center;min-width:0}.wproj .detail-head-actions .btn-ghost{flex:0 0 auto;width:40px;padding-left:0;padding-right:0}.wproj .peek-modal .detail-head .btn span{display:inline}.wproj .peek-modal .detail-wrap{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex-direction:column}.wproj .peek-modal .detail-main{display:contents}.wproj .peek-modal .detail-body-top{order:1;padding:16px 14px 0}.wproj .peek-modal .detail-side{order:2;width:100%;flex:none;min-height:0;border-left:none;border-top:1px solid var(--line);padding:16px 14px;overflow:visible;background:var(--surface-2)}.wproj .peek-modal .detail-feed{order:3;padding:0 14px calc(20px + env(safe-area-inset-bottom,0px));overflow:visible}.wproj .peek-modal .detail-feed .tabs{margin-top:8px}.wproj .peek-modal .detail-title{font-size:22px;margin:4px 0 14px}.wproj .page-head{padding:12px 14px;flex-wrap:wrap;gap:10px}.wproj .page-head .page-title{font-size:17px}.wproj .page-head .page-sub{font-size:12px}.wproj .page-head+div[style*=padding]{padding:0 14px calc(72px + env(safe-area-inset-bottom,0px))!important}.wproj .users-mobile-list{display:flex;flex-direction:column;gap:10px}.wproj .users-mobile-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;box-shadow:var(--shadow-card)}.wproj .users-mobile-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.wproj .users-mobile-card__name{font-weight:600;font-size:15px}.wproj .users-mobile-card__meta{font-size:12.5px;color:var(--ink-3);display:flex;flex-direction:column;gap:4px}.wproj .users-mobile-card__actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.wproj .panel--desktop-table{display:none}.wproj .overlay.overlay--page{align-items:stretch;padding:0}.wproj .overlay.overlay--page .modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;overflow:hidden}.wproj .overlay.overlay--page .modal-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.wproj .overlay.overlay--page .modal-foot{flex-shrink:0;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}.wproj .modal-emoji,.wproj .modal-emoji--lg{z-index:2;position:relative;bottom:auto;left:auto;margin:0 auto 12px;display:flex}.wproj .modal-cover{height:120px;flex-shrink:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px}.wproj .modal-cover .modal-emoji--lg{position:relative;bottom:auto;left:auto}.icon-emoji-picker-popover{max-height:min(420px,70dvh)!important}.icon-emoji-picker-popover--sheet{max-height:min(72dvh,520px)!important}.wproj .login-page{padding:0;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh}.wproj .login-card,.wproj .login-card-mobile{max-width:none;width:100%;min-height:auto;border-radius:0;border-left:none;border-right:none;box-shadow:none;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:28px 20px;padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom));box-sizing:border-box;background:transparent;border:none}.wproj .login-inner{width:100%;max-width:400px}.wproj .sb{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow-modal)}.wproj .sb.sb--open{transform:translate(0)}.wproj .mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#14141657;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:190}.wproj .search,.wproj .top-actions .seg,.wproj .desktop-crumb{display:none}.wproj .topbar-brand-title{font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.wproj .mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:150;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}.wproj .mobile-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border:none;background:transparent;border-radius:var(--r-md);color:var(--ink-3);font-size:10px;font-weight:600;font-family:inherit;cursor:pointer}.wproj .mobile-nav button.is-active{background:var(--accent-soft);color:var(--accent-text)}html.pwa-standalone .wproj .topbar{background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}html.pwa-standalone .wproj .mobile-nav{background:#fffffff0}.wproj .detail-wrap{flex-direction:column;flex:1;min-height:0;overflow:hidden}.wproj .detail-main{flex:1;min-height:0;padding:16px 14px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}.wproj .overview-body{padding:0 16px 80px}.wproj .lg-head,.wproj .lrow{padding-left:16px;padding-right:16px}.wproj .login-logo{margin-bottom:12px}.wproj .login-logo img{height:260px;max-width:min(420px,92vw)}.wproj .login-title{font-size:22px;font-weight:700;margin:0 0 28px;line-height:1.25}}.wproj .modal-emoji--lg{width:72px;height:72px;font-size:36px;bottom:-28px;left:28px;border-radius:16px}@media (max-width: 640px){.wproj .modal{max-width:calc(100vw - 24px)}.wproj .modal-row{flex-direction:column}.wproj .field-id{width:100%}.wproj .top-actions .btn-primary span{display:none}}
