@layer tokens{.tp-app{--paper:#f8f9fa;--surface:#fefeff;--surface-sunken:#f4f6f8;--surface-hover:#eef1f4;--ink:#1d2126;--ink-soft:#4d5158;--ink-muted:#6c7077;--ink-faint:#81858b;--on-ink:#fbfcfd;--rule:#dee0e3;--rule-strong:#cccfd4;--accent:#156cdd;--accent-hover:#0057c0;--accent-active:#004aa7;--on-accent:#fbfcfd;--accent-ink:#0850ab;--accent-wash:#ecf4ff;--accent-edge:#c9e0ff;--accent-wash-strong:#dfecff;--danger:#d43531;--danger-strong:#bc1214;--danger-wash:#ffeae8;--danger-edge:#fdbdb7;--on-danger:#fbfaf7;--positive:#218456;--positive-strong:#036e43;--positive-wash:#e1f8ea;--positive-edge:#acddbf;--caution:#df9918;--caution-ink:#7d4800;--caution-wash:#fff0d5;--caution-edge:#f5d297;--info:#7c43b1;--info-wash:#f4ecff;--info-edge:#dcc9f3;--focus-ring:var(--accent);--chart-1:#156cdd;--chart-2:#d57a16;--chart-3:#7137b6;--chart-4:#009898;--chart-5:#c22826;--chart-6:#2c9956;--chart-7:#d35498;--status-new:#81858b;--status-progress:var(--accent);--status-review:var(--info);--status-done:var(--positive);--status-overdue:var(--danger);--font-sans:var(--font-ui), system-ui, sans-serif;--font-serif:var(--font-display), Georgia, "Times New Roman", serif;--t-2xs:.6875rem;--t-xs:.75rem;--t-sm:.8125rem;--t-base:.875rem;--t-md:1rem;--t-lg:1.25rem;--t-xl:1.625rem;--t-2xl:2.25rem;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--track-label:.08em;--track-tight:-.01em;--track-display:-.015em;--w-normal:400;--w-medium:500;--w-semibold:600;--w-bold:700;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--r-xs:3px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-xl:14px;--r-full:999px;--shadow-pop:0 1px 1px #23201c0d, 0 10px 24px -10px #23201c2e;--shadow-overlay:0 2px 4px #23201c0f, 0 24px 48px -16px #23201c3d;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--dur-fast:.12s;--dur:.18s;--dur-slow:.26s;--icon-sm:14px;--icon:16px;--icon-lg:20px;--icon-slot:18px}@supports (color:lab(0% 0 0)){.tp-app{--paper:lab(97.9068% -.131994 -.745118);--surface:lab(99.7654% -.0662804 -.372744);--surface-sunken:lab(96.7442% -.197113 -1.1171);--surface-hover:lab(94.8827% -.325203 -1.86001);--ink:lab(12.3794% -.620395 -4.38416);--ink-soft:lab(34.4237% -.699744 -4.42058);--ink-muted:lab(47.1881% -.666201 -4.06479);--ink-faint:lab(55.3116% -.617504 -3.70152);--on-ink:lab(98.8348% -.131994 -.74513);--rule:lab(88.9667% -.324786 -1.85977);--rule-strong:lab(83.1611% -.449181 -2.60044);--accent:lab(46.0325% 10.0637 -65.8874);--accent-hover:lab(37.7829% 12.641 -64.0495);--accent-active:lab(31.9924% 13.4189 -60.5559);--on-accent:lab(98.8348% -.131994 -.74513);--accent-ink:lab(34.6737% 9.09345 -55.4567);--accent-wash:lab(95.8651% -1.4706 -9.21594);--accent-edge:lab(88.1785% -2.76712 -21.7865);--accent-wash-strong:lab(92.9089% -2.14812 -14.6487);--danger:lab(48.7587% 61.5671 41.9964);--danger-strong:lab(40.607% 62.2597 47.983);--danger-wash:lab(94.5215% 8.58077 4.62662);--danger-edge:lab(82.4748% 23.1636 12.6413);--on-danger:lab(98.2765% .107378 1.52057);--positive:lab(48.728% -37.7631 16.6204);--positive-strong:lab(40.5373% -36.301 15.968);--positive-wash:lab(95.5345% -9.50617 4.2039);--positive-edge:lab(84.0533% -20.7566 9.16855);--caution:lab(69.0989% 20.3646 69.2702);--caution-ink:lab(36.4211% 20.0943 48.0181);--caution-wash:lab(95.4768% 2.3497 16.2327);--caution-edge:lab(86.2086% 6.96898 34.0053);--info:lab(39.8179% 40.8006 -49.7005);--info-wash:lab(94.4471% 5.62409 -8.59379);--info-edge:lab(83.597% 12.3457 -18.2118);--chart-1:lab(46.0325% 10.0637 -65.8874);--chart-2:lab(60.4937% 31.9157 63.0563);--chart-3:lab(36.3944% 44.9134 -58.5175);--chart-4:lab(56.6052% -39.2822 -11.7383);--chart-5:lab(43.5877% 59.7782 41.6074);--chart-6:lab(55.961% -43.3971 26.0375);--chart-7:lab(54.7204% 55.8231 -10.8211);--status-new:lab(55.3116% -.617504 -3.70152);--shadow-pop:0 1px 1px lab(12.4364% .608534 3.03542/.05), 0 10px 24px -10px lab(12.4364% .608534 3.03542/.18);--shadow-overlay:0 2px 4px lab(12.4364% .608534 3.03542/.06), 0 24px 48px -16px lab(12.4364% .608534 3.03542/.24)}}}@layer base{.tp-app *,.tp-app :before,.tp-app :after{box-sizing:border-box}.tp-app{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--t-base);font-weight:var(--w-normal);line-height:var(--lh-normal);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}.tp-app button,.tp-app input,.tp-app select,.tp-app textarea{font:inherit;font-variant-numeric:inherit;letter-spacing:inherit;color:inherit}.tp-app button{cursor:pointer}.tp-app button:disabled{opacity:.45;cursor:not-allowed!important}.tp-app button:disabled:hover{background:var(--surface)!important;text-decoration:none!important}.tp-app .tp-icon{vertical-align:-.15em;flex:none}.tp-app :focus{outline:none}.tp-app :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-sm)}.tp-app ::selection{background:var(--accent-wash);color:var(--ink)}.tp-app :is(.brand-title,.hero h1,.analytics-title,.activity-title,.messenger-title,.chat-drawer-title,.detail-title,.profile-head-title,.forward-title,.group-info-name,.analytics-fullscreen-head){font-family:var(--font-serif);font-weight:var(--w-medium);letter-spacing:var(--track-display);line-height:var(--lh-tight)}.tp-app :is(.detail-rich,.msg-text,.activity-main-sub){max-width:72ch}@media (prefers-reduced-motion:reduce){.tp-app *,.tp-app :before,.tp-app :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes tp-msg-flash{0%{box-shadow:0 0 0 3px #156cdd8c;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.55)}70%{box-shadow:0 0 0 3px #156cdd52;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.32)}to{box-shadow:0 0 #156cdd00;box-shadow:0 0 lab(46.0325% 10.0637 -65.8874/0)}}}@layer component{.tp-app .avatar{border-radius:var(--r-md);background:var(--ink);width:34px;height:34px;color:var(--on-ink);font-size:var(--t-xs);font-weight:var(--w-semibold);letter-spacing:.02em;flex:none;place-items:center;display:grid}.tp-app .mini-avatar{border-radius:var(--r-sm);background:var(--surface-sunken);width:22px;height:22px;color:var(--ink-soft);font-size:10px;font-weight:var(--w-semibold);border:1px solid var(--rule);flex:none;place-items:center;display:grid}.tp-app .primary{border:1px solid var(--accent);background:var(--accent);height:38px;color:var(--on-accent);border-radius:var(--r-md);padding:0 var(--space-md);font-size:var(--t-sm);font-weight:var(--w-medium);justify-content:center;align-items:center;gap:var(--space-xs);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:inline-flex}.tp-app .primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.tp-app .primary:active:not(:disabled){background:var(--accent-active);border-color:var(--accent-active)}.tp-app .primary:disabled{opacity:.45;cursor:default}.tp-app .primary.danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.tp-app .primary.danger:hover:not(:disabled){background:var(--danger-strong);border-color:var(--danger-strong)}.tp-app .secondary{border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--r-md);height:38px;padding:0 var(--space-md);font-size:var(--t-sm);font-weight:var(--w-medium);color:var(--ink-soft);justify-content:center;align-items:center;gap:var(--space-xs);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:inline-flex}.tp-app .secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--ink-muted);color:var(--ink)}.tp-app .icon-btn{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-md);width:38px;height:38px;color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.tp-app .icon-btn:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .icon-btn.logout-btn:hover{background:var(--danger-wash);border-color:var(--danger-border,var(--rule));color:var(--danger-strong)}.tp-app .dots{color:var(--ink-muted);border-radius:var(--r-sm);width:28px;height:28px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;place-items:center;margin-left:auto;display:grid}.tp-app .dots:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .arrow{color:var(--ink-muted);margin-left:auto;display:inline-flex}.tp-app .drawer-back{border-radius:var(--r-lg);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;margin-left:-4px;display:grid}.tp-app .drawer-back:hover{background:var(--surface-hover);color:var(--ink)}.tp-app :is(.profile-close,.activity-close,.analytics-close,.analytics-fullscreen-close,.messenger-close,.chat-close,.group-info-close,.reply-bar-close){color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.tp-app :is(.profile-close,.activity-close,.analytics-close,.analytics-fullscreen-close,.messenger-close,.chat-close,.group-info-close,.reply-bar-close):hover{color:var(--ink)}.tp-app :is(.profile-edit,.detail-action){align-items:center;gap:var(--space-xs);display:inline-flex}.tp-app :is(.badge,.tag,.level-badge,.detail-chip){white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.tp-app :is(.badge,.tag,.level-badge,.detail-chip)>.tp-icon{vertical-align:0}.tp-app .badge{color:var(--accent-ink);background:var(--accent-wash);border-radius:var(--r-full);padding:6px 10px;font-size:12px}.tp-app .level-badge{color:var(--ink-muted);background:var(--surface-sunken);border-radius:var(--r-full);margin-top:6px;margin-left:29px;padding:4px 8px;font-size:11px}.tp-app .tag-row{flex-wrap:wrap;gap:7px;margin:10px 0 0 29px;display:flex}.tp-app .tag{border-radius:var(--r-full);border:0;padding:5px 8px;font-size:11px}.tp-app .date{background:var(--surface-sunken);color:var(--ink-soft)}.tp-app .major{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .normal{background:var(--positive-wash);color:var(--positive-strong)}.tp-app .high{background:var(--caution-wash);color:var(--caution-ink)}.tp-app .children-flat>.task>.level-badge,.tp-app .children-flat>.task>.tag-row{margin-left:10px}.tp-app .color-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;flex:none;width:16px;height:16px;box-shadow:inset 0 0 0 1px #1d212624;box-shadow:inset 0 0 0 1px lab(12.3794% -.620395 -4.38416/.14)}.tp-app .color-dot:hover{border-color:var(--ink-soft)}.tp-app .my-task-chips .tag.status{background:var(--surface-sunken);color:var(--ink-soft)}.tp-app .my-task-chips .tag.status.done{background:var(--positive-wash);color:var(--positive-strong)}.tp-app .check{border:2px solid var(--rule-strong);background:var(--surface);width:20px;height:20px;color:var(--rule-strong);border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:11px;display:grid}.tp-app .task.done .check{background:var(--positive);border-color:var(--positive);color:var(--on-ink)}.tp-app .input,.tp-app .select{border:1px solid var(--rule-strong);border-radius:var(--r-xl);background:var(--surface);outline:none;width:100%;height:44px;padding:0 13px;font-size:14px}.tp-app .input:focus,.tp-app .select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:10px;display:grid}.tp-app .field-label{font-size:var(--t-2xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);margin:10px 0 6px}.tp-app .field-req{color:var(--danger);font-weight:var(--w-bold)}.tp-app .progress-wrap{align-items:center;gap:8px;margin:10px 0 0 29px;display:flex}.tp-app .progress-text{color:var(--ink-muted);background:0 0;border:0;font-size:12px}.tp-app .children-flat>.task>.progress-wrap{margin-left:10px}.tp-app .hero{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.tp-app .hero h1{letter-spacing:-.04em;margin:0;font-size:24px;font-weight:400}.tp-app .hero p{color:var(--ink-muted);margin:5px 0 0;font-size:14px}.tp-app .empty{text-align:center;color:var(--ink-muted);padding:30px}.tp-app .menu{z-index:50;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);box-shadow:var(--shadow-overlay);min-width:245px;padding:8px;display:none;position:fixed}.tp-app .menu.open{display:block}.tp-app .menu.menu-scroll{max-height:calc(100vh - 24px);overflow-y:auto}.tp-app .menu-item{border-radius:var(--r-lg);height:36px;color:var(--ink);white-space:nowrap;cursor:pointer;align-items:center;gap:10px;padding:0 10px;font-size:14px;display:flex;position:relative}.tp-app .menu-item:hover{background:var(--surface-sunken)}.tp-app .menu-item.danger{color:var(--danger)}.tp-app .menu-ico{flex:none;justify-content:center;align-items:center;width:18px;font-size:14px;line-height:1;display:inline-flex}.tp-app .menu-sep{background:var(--rule);height:1px;margin:8px -8px}.tp-app .menu-title{color:var(--ink-muted);text-transform:uppercase;margin:8px 10px 6px;font-size:10px}.tp-app .submenu{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);box-shadow:var(--shadow-overlay);min-width:210px;padding:8px;display:none;position:absolute;top:0;left:100%}.tp-app .menu-item:hover>.submenu{display:block}.tp-app .share-submenu{min-width:250px;max-width:300px}.tp-app .share-submenu-search{border:1px solid var(--rule-strong);border-radius:var(--r-lg);height:34px;color:var(--ink-muted);align-items:center;gap:6px;margin-bottom:6px;padding:0 8px;display:flex}.tp-app .share-submenu-search:focus-within{border-color:var(--accent);color:var(--accent-ink)}.tp-app .share-submenu-search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:13px}.tp-app .share-submenu-list{flex-direction:column;gap:2px;max-height:260px;display:flex;overflow-y:auto}.tp-app .share-submenu .menu-item{text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;width:100%;height:auto;min-height:32px;padding:6px 10px;line-height:20px;display:block;overflow:hidden}.tp-app .share-submenu-empty{color:var(--ink-muted);text-align:center;padding:12px 10px;font-size:13px}.tp-app .share-submenu-more{border:0;border-top:1px solid var(--rule);width:100%;color:var(--accent);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;margin-top:6px;padding:8px 10px;font-size:13px;display:flex}.tp-app .share-submenu-more:hover{background:var(--surface-sunken)}.tp-app .share-submenu-more-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-left:auto}.tp-app .modal-backdrop{z-index:80;background:#1d212647;background:lab(12.3794% -.620395 -4.38416/.28);justify-content:center;align-items:center;display:none;position:fixed;inset:0}.tp-app .modal-backdrop.open{display:flex}.tp-app .modal{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--rule);width:490px;padding:18px;box-shadow:0 28px 70px #1d212640;box-shadow:0 28px 70px lab(12.3794% -.620395 -4.38416/.25)}.tp-app .modal h3{letter-spacing:-.03em;margin:0 0 6px;font-size:19px;font-weight:400}.tp-app .modal p{color:var(--ink-muted);margin:0 0 14px;font-size:13px}.tp-app .modal-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.tp-app .toast{z-index:300;background:var(--ink);max-width:min(420px,100vw - 48px);color:var(--on-ink);border-radius:var(--r-xl);box-shadow:var(--shadow-overlay);font-size:var(--t-base);font-weight:var(--w-medium);line-height:var(--lh-snug);text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), visibility 0s linear var(--dur);padding:14px 20px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.96)}.tp-app .toast.open{opacity:1;visibility:visible;transition-delay:0s;transform:translate(-50%,-50%)scale(1)}.tp-app .deadline-calendar{border-top:1px solid var(--rule);margin:8px -8px 0;padding:10px 8px 4px}.tp-app .deadline-cal-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.tp-app .deadline-cal-title{color:var(--ink);font-size:13px}.tp-app .deadline-cal-nav{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:28px;height:28px;color:var(--ink-muted)}.tp-app .deadline-cal-nav:hover{background:var(--surface-hover)}.tp-app .deadline-cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.tp-app .deadline-cal-weekday{text-align:center;color:var(--ink-muted);padding:4px 0;font-size:10px}.tp-app .deadline-cal-day{background:var(--surface);border-radius:var(--r-lg);height:30px;color:var(--ink-soft);border:0;font-size:12px}.tp-app .deadline-cal-day:hover{background:var(--accent-wash);color:var(--accent)}.tp-app .deadline-cal-day.out{color:var(--rule-strong)}.tp-app .deadline-cal-day.today{background:var(--accent-wash);color:var(--accent)}.tp-app .deadline-cal-day.selected{background:var(--accent);color:var(--on-ink)}.tp-app .deadline-cal-hint{color:var(--ink-muted);margin:6px 10px 0;font-size:11px;line-height:1.4}.tp-app .deadline-cal-day.in-range{background:var(--accent-wash);color:var(--accent-hover);border-radius:0}.tp-app .mention-menu{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);z-index:130;width:264px;max-height:320px;padding:8px;display:none;position:absolute;bottom:58px;left:92px;overflow:auto;box-shadow:0 18px 42px #1d212629;box-shadow:0 18px 42px lab(12.3794% -.620395 -4.38416/.16)}.tp-app .mention-menu.open{display:block}.tp-app .mention-search{background:var(--surface);border-bottom:1px solid var(--surface-sunken);margin:-8px -8px 6px;padding:8px;position:sticky;top:-8px}.tp-app .mention-search input,.tp-app input.mention-search{border:1px solid var(--rule-strong);border-radius:var(--r-lg);width:100%;height:32px;color:var(--ink-soft);outline:none;padding:0 10px;font-size:13px}.tp-app input.mention-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .mention-empty{text-align:center;color:var(--ink-muted);padding:12px;font-size:13px}.tp-app .mention-item{background:var(--surface);border-radius:var(--r-lg);width:100%;min-height:44px;color:var(--ink-soft);text-align:left;border:0;align-items:center;gap:9px;padding:6px 10px;font-size:13px;display:flex}.tp-app .mention-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.tp-app .mention-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tp-app .mention-handle{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.tp-app .mention-item:hover{background:var(--surface-sunken)}.tp-app .mention-avatar{border-radius:var(--r-lg);background:var(--accent-wash);width:24px;height:24px;color:var(--accent);place-items:center;font-size:10px;display:grid}.tp-app .multi-select{border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--r-xl);flex-wrap:wrap;gap:6px;min-height:44px;padding:8px;display:flex}.tp-app .multi-option{border:1px solid var(--rule);border-radius:var(--r-full);background:var(--surface-sunken);height:30px;color:var(--ink-soft);cursor:pointer;align-items:center;gap:6px;padding:0 9px;font-size:12px;display:inline-flex}.tp-app .multi-option input{accent-color:var(--accent)}.tp-app .multi-option:has(input:checked){background:var(--accent-wash);border-color:var(--accent-edge);color:var(--accent)}.tp-app .assignee-stack{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.tp-app .assignee-avatar{border-radius:var(--r-lg);background:var(--accent-wash);min-width:24px;height:24px;color:var(--accent);border:0;justify-content:center;align-items:center;padding:0 7px;font-size:10px;display:inline-flex}.tp-app .assignee-more{border:1px solid var(--rule);background:var(--surface);height:24px;color:var(--ink-muted);border-radius:var(--r-lg);padding:0 7px;font-size:10px}.tp-app .assignee-name-chip{border:1px solid var(--rule);border-radius:var(--r-full);background:var(--accent-wash);max-width:160px;height:24px;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;padding:0 10px;font-size:11px;line-height:22px;display:inline-block;overflow:hidden}.tp-app .assignee-name-chip.empty{background:var(--surface);border-color:var(--rule);color:var(--ink-muted)}.tp-app .assignee-name-chip.more{background:var(--surface);border-color:var(--rule);color:var(--ink-muted);max-width:none}.tp-app .assignee-empty-note{border:1px dashed var(--rule);border-radius:var(--r-lg);color:var(--ink-muted);background:var(--surface-sunken);padding:10px 12px;font-size:13px}.tp-app .assignee-dropdown-empty{color:var(--ink-muted);text-align:center;padding:12px;font-size:13px}.tp-app .smart-search-caption{color:var(--ink-muted);margin:-4px 0 10px;padding-left:4px;font-size:11px;display:none}.tp-app .assignee-dropdown{width:100%;position:relative}.tp-app .assignee-dropdown-btn{border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--r-xl);width:100%;height:44px;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:10px;padding:0 12px;font-size:14px;display:flex}.tp-app .assignee-dropdown-btn:hover{border-color:var(--accent-edge);background:var(--accent-wash)}.tp-app .assignee-dropdown-value{white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:auto;min-width:0;overflow:hidden}.tp-app .assignee-dropdown-count{border-radius:var(--r-full);background:var(--accent-wash);height:20px;color:var(--accent);flex:none;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.tp-app .assignee-dropdown-arrow{color:var(--ink-muted);flex:none}.tp-app .assignee-dropdown-menu{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);z-index:140;width:100%;max-height:230px;padding:6px;display:none;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 18px 42px #1d212624;box-shadow:0 18px 42px lab(12.3794% -.620395 -4.38416/.14)}.tp-app .assignee-dropdown.open .assignee-dropdown-menu{display:block}.tp-app .assignee-dropdown-search{background:var(--surface);border-bottom:1px solid var(--surface-sunken);z-index:1;margin:-6px -6px 6px;padding:8px 6px;position:sticky;top:-6px}.tp-app .assignee-dropdown-search input{border:1px solid var(--rule-strong);border-radius:var(--r-lg);width:100%;height:34px;color:var(--ink-soft);outline:none;padding:0 10px;font-size:13px}.tp-app .assignee-dropdown-search input::placeholder{color:var(--ink-muted)}.tp-app .assignee-dropdown-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .assignee-dropdown-item{border-radius:var(--r-lg);min-height:36px;color:var(--ink-soft);cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:11px;padding:8px 12px;font-size:13px;line-height:1.35;display:flex}.tp-app .assignee-dropdown-item:hover{background:var(--surface-sunken)}.tp-app .assignee-dropdown-item input{accent-color:var(--accent);flex:none;margin:0}.tp-app .assignee-dropdown-more{border:0;border-top:1px solid var(--rule);width:100%;min-height:36px;color:var(--accent-ink);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out);background:0 0;border-radius:0;align-items:center;gap:11px;margin-top:4px;padding:8px 12px;font-size:13px;display:flex}.tp-app .assignee-dropdown-more:hover{background:var(--accent-wash)}.tp-app .assignee-dropdown-more>.tp-icon{color:var(--accent);flex:none}.tp-app .assignee-dropdown-more-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.tp-app .assignee-dropdown-footer{border-top:1px solid var(--rule);justify-content:flex-end;gap:6px;margin:6px -6px -6px;padding:8px 6px;display:flex}.tp-app .assignee-dropdown-footer button{border:1px solid var(--rule);background:var(--surface);height:30px;color:var(--ink-soft);border-radius:var(--r-lg);padding:0 10px;font-size:12px}.tp-app .assignee-dropdown-footer button:hover{background:var(--surface-hover)}.tp-app .assignee-check{width:16px;height:16px;accent-color:var(--accent);flex:none;margin:0}.tp-app .assignee-avatar:hover{background:var(--accent);color:var(--on-ink);transform:translateY(-1px)}.tp-app .chat-task-btn{border:1px solid var(--positive-edge);background:var(--surface);border-radius:var(--r-lg);min-width:28px;height:28px;color:var(--positive);flex:none;justify-content:center;align-items:center;gap:3px;margin-left:auto;padding:0 7px;font-size:13px;display:inline-flex}.tp-app .chat-task-btn:hover{background:var(--positive-wash);color:var(--positive);border-color:var(--positive-edge)}.tp-app .chat-task-btn.has-messages{color:var(--positive);background:var(--positive-wash);border-color:var(--positive-edge)}.tp-app .chat-count{border-radius:var(--r-full);background:var(--surface);min-width:18px;height:18px;color:var(--positive);border:1px solid var(--positive-edge);place-items:center;padding:0 5px;font-size:10px;display:inline-grid}.tp-app .chat-backdrop{z-index:94;background:#1d21261f;background:lab(12.3794% -.620395 -4.38416/.12);display:none;position:fixed;inset:0}.tp-app .chat-backdrop.open{display:block}.tp-app .chat-drawer{background:var(--surface);border-left:1px solid var(--rule);z-index:95;flex-direction:column;width:430px;height:100vh;transition:all .22s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-24px 0 60px #1d21262e;box-shadow:-24px 0 60px lab(12.3794% -.620395 -4.38416/.18)}.tp-app .chat-drawer.open{transform:translate(0)}.tp-app .chat-drawer-head{border-bottom:1px solid var(--rule);align-items:flex-start;gap:12px;padding:18px;display:flex}.tp-app .chat-drawer-title{margin-bottom:6px;font-size:17px;line-height:1.25}.tp-app .chat-drawer-sub{color:var(--ink-muted);font-size:12px;line-height:1.35}.tp-app .chat-close{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:34px;height:34px;color:var(--ink-muted);margin-left:auto}.tp-app .chat-close:hover{background:var(--surface-hover)}.tp-app .chat-back{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:34px;height:34px;color:var(--ink-muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.tp-app .chat-back:hover{background:var(--surface-hover)}.tp-app .chat-meta{border-bottom:1px solid var(--rule);background:var(--surface-sunken);flex-wrap:wrap;gap:8px;padding:12px 18px;display:flex}.tp-app .chat-meta span{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-full);color:var(--ink-soft);white-space:nowrap;align-items:center;gap:5px;padding:5px 8px;font-size:11px;display:inline-flex}.tp-app .chat-body{background:var(--surface-sunken);flex-direction:column;flex:1;gap:10px;padding:18px;display:flex;overflow:auto}.tp-app .chat-empty{color:var(--ink-muted);text-align:center;margin:auto;font-size:14px;line-height:1.45}.tp-app .message{align-items:flex-end;gap:7px;max-width:80%;display:flex}.tp-app .message.me{flex-direction:row-reverse;align-self:flex-end}.tp-app .msg-avatar{border-radius:var(--r-lg);border:1px solid var(--rule);background:var(--surface-sunken);width:26px;height:26px;color:var(--ink-soft);font-size:10px;font-weight:var(--w-semibold);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;flex:none;place-items:center;display:grid}.tp-app .message.me .msg-avatar{border-color:var(--accent-edge);background:var(--accent-wash);color:var(--accent)}.tp-app .msg-bubble{background:var(--surface);border-radius:var(--r-xl);padding:6px 10px;position:relative;box-shadow:0 1px 2px #1d212617;box-shadow:0 1px 2px lab(12.3794% -.620395 -4.38416/.09)}.tp-app .message.me .msg-bubble{background:var(--accent-wash-strong)}.tp-app .message:not(.me) .msg-bubble{border-bottom-left-radius:6px}.tp-app .message:not(.me) .msg-bubble:before{content:"";z-index:-1;background:var(--surface);border-bottom-right-radius:15px;width:18px;height:18px;position:absolute;bottom:-1px;left:-7px}.tp-app .message:not(.me) .msg-bubble:after{content:"";z-index:-1;background:var(--surface-sunken);border-bottom-right-radius:10px;width:18px;height:18px;position:absolute;bottom:-1px;left:-18px}.tp-app .message.me .msg-bubble{border-bottom-right-radius:6px}.tp-app .message.me .msg-bubble:before{content:"";z-index:-1;background:var(--accent-wash-strong);border-bottom-left-radius:15px;width:18px;height:18px;position:absolute;bottom:-1px;right:-7px}.tp-app .message.me .msg-bubble:after{content:"";z-index:-1;background:var(--surface-sunken);border-bottom-left-radius:10px;width:18px;height:18px;position:absolute;bottom:-1px;right:-18px}.tp-app .msg-top{align-items:center;gap:7px;margin-bottom:1px;display:flex}.tp-app .msg-author{color:var(--ink);font-size:11px;font-weight:600}.tp-app .msg-time{color:var(--ink-muted);font-size:10px}.tp-app .msg-text{color:var(--ink-soft);white-space:pre-wrap;font-size:13px;line-height:1.35}.tp-app .chat-compose{border-top:1px solid var(--rule);background:var(--surface);padding:14px}.tp-app .chat-compose-row{align-items:flex-end;gap:8px;display:flex}.tp-app .chat-input{resize:none;border:1px solid var(--rule-strong);border-radius:var(--r-xl);outline:none;flex:1;height:42px;min-height:42px;max-height:110px;padding:10px 12px;font-size:14px;line-height:20px}.tp-app .chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .chat-send{border-radius:var(--r-xl);background:var(--accent);width:42px;height:42px;color:var(--on-ink);cursor:pointer;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.tp-app .chat-send:hover{background:var(--accent-hover)}.tp-app .chat-send:disabled{opacity:.6;cursor:default}.tp-app .chat-tools{gap:8px;margin-top:9px;display:flex}.tp-app .chat-tool{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);height:30px;color:var(--ink-muted);align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.tp-app .chat-tool:hover{background:var(--surface-hover)}.tp-app .chat-compose{position:relative}.tp-app .chat-attachments{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.tp-app .attachment-chip{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-lg);height:30px;color:var(--ink-soft);align-items:center;gap:7px;padding:0 9px;font-size:12px;display:flex}.tp-app .attachment-chip button{color:var(--ink-muted);background:0 0;border:0;padding:0;line-height:1}.tp-app .msg-attachments{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tp-app .msg-attachment{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-lg);color:var(--ink-soft);padding:6px 8px;font-size:12px}.tp-app .msg-text a{color:var(--accent);text-decoration:none}.tp-app .msg-text a:hover{text-decoration:underline}.tp-app .chat-tool.active{background:var(--accent-wash);color:var(--accent);border-color:var(--accent-edge)}.tp-app .chat-list{flex-direction:column;gap:6px;padding:8px 10px 16px;display:flex;overflow:auto}.tp-app .chat-list-row{align-items:stretch;display:flex;position:relative}.tp-app .chat-list-item{background:var(--surface);border-radius:var(--r-xl);text-align:left;cursor:pointer;border:0;align-items:flex-start;gap:10px;width:100%;padding:11px;display:flex}.tp-app .chat-list-item:hover{background:var(--surface-hover)}.tp-app .chat-list-row .chat-list-item{flex:1;min-width:0}.tp-app .chat-list-avatar{border-radius:var(--r-lg);background:var(--accent-wash);width:34px;height:34px;color:var(--accent);flex:none;place-items:center;display:grid}.tp-app .chat-saved-row{border-bottom:1px solid var(--rule);border-radius:0;margin-bottom:4px}.tp-app .chat-dm-avatar{border-radius:inherit;width:100%;height:100%;color:var(--on-ink);font-size:var(--t-xs);font-weight:var(--w-semibold);place-items:center;line-height:1;display:grid;position:relative}.tp-app .chat-dm-avatar.online:after{content:"";border-radius:var(--r-full);background:var(--positive);width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);position:absolute;bottom:-2px;right:-2px}.tp-app .chat-list-main{flex:1;min-width:0}.tp-app .chat-list-toprow{align-items:center;gap:6px;display:flex}.tp-app .chat-list-toprow .chat-list-title{flex:0 auto;min-width:0}.tp-app .chat-list-meta{flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.tp-app .chat-title-star{border-radius:var(--r-sm);width:20px;height:20px;color:var(--ink-muted);opacity:0;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.tp-app .chat-list-row:hover .chat-title-star,.tp-app .chat-title-star:focus-visible,.tp-app .chat-title-star.active{opacity:1}.tp-app .chat-title-star:hover{background:var(--surface-sunken);color:var(--ink)}.tp-app .chat-title-star.active{color:var(--accent)}.tp-app .chat-list-time{font-size:var(--t-2xs);color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.tp-app .chat-list-subrow{align-items:center;gap:8px;display:flex}.tp-app .chat-list-subrow .chat-list-sub{flex:1;min-width:0}.tp-app .chat-list-subrow .chat-list-count{flex:none}.tp-app .chat-list-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.tp-app .chat-list-sub{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12px;overflow:hidden}.tp-app .chat-list-author.unread{color:var(--ink-soft);font-weight:600}.tp-app .chat-list-count{border-radius:var(--r-full);background:var(--accent-wash);min-width:22px;height:22px;color:var(--accent);place-items:center;font-size:11px;display:grid}.tp-app .msg-menu-backdrop{z-index:200;position:fixed;inset:0}.tp-app .msg-menu{z-index:201;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);min-width:198px;padding:6px;position:fixed;box-shadow:0 18px 46px #1d212633;box-shadow:0 18px 46px lab(12.3794% -.620395 -4.38416/.2)}.tp-app .msg-menu-reactions{border-bottom:1px solid var(--surface-sunken);gap:2px;margin-bottom:4px;padding:2px 2px 6px;display:flex}.tp-app .msg-menu-emoji{border-radius:var(--r-lg);cursor:pointer;background:0 0;border:0;flex:1;padding:4px 0;font-size:18px;line-height:1}.tp-app .msg-menu-emoji:hover{background:var(--surface-sunken);transform:scale(1.15)}.tp-app .msg-menu-item{background:var(--surface);border-radius:var(--r-lg);width:100%;color:var(--ink-soft);text-align:left;cursor:pointer;border:0;align-items:center;gap:10px;padding:9px 10px;font-size:14px;display:flex}.tp-app .msg-menu-item:hover{background:var(--surface-hover)}.tp-app .msg-menu-item.danger{color:var(--danger-strong)}.tp-app .msg-menu-item.danger:hover{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .msg-menu-ic{text-align:center;flex:none;width:18px}.tp-app .reply-bar{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--accent-wash);border:1px solid var(--accent-edge);border-radius:var(--r-md);display:flex}.tp-app .reply-bar>.tp-icon{color:var(--accent-ink);flex:none}.tp-app .reply-bar-body{flex:1;min-width:0}.tp-app .reply-bar-author{font-size:var(--t-xs);font-weight:var(--w-semibold);color:var(--accent-ink)}.tp-app .reply-bar-text{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.tp-app .reply-bar-close{border-radius:var(--r-md);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:18px}.tp-app .reply-bar-close:hover{background:var(--accent-wash);color:var(--ink-soft)}.tp-app .msg-reply-quote{margin-bottom:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--r-sm);background:#1d21260d;background:lab(12.3794% -.620395 -4.38416/.05);border:1px solid #1d21261a;border:1px solid lab(12.3794% -.620395 -4.38416/.1);flex-direction:column;gap:1px;display:flex}.tp-app .msg-reply-author{font-size:var(--t-xs);font-weight:var(--w-semibold);color:var(--ink-soft)}.tp-app .msg-reply-text{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;max-width:240px;font-size:12px;overflow:hidden}.tp-app .msg-forwarded{color:var(--ink-muted);align-items:center;gap:6px;margin-bottom:4px;font-size:12px;font-style:italic;display:flex}.tp-app .msg-pin-ic{font-size:11px;line-height:1}.tp-app .pinned-bar{border-bottom:1px solid var(--rule);background:var(--accent-wash);align-items:center;gap:10px;padding:8px 14px;display:flex}.tp-app .pinned-ic{color:var(--accent-ink);flex:none;display:inline-flex}.tp-app .pinned-body{min-width:0;padding:var(--space-3xs) 0;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;flex:1;margin:-2px 0}.tp-app .pinned-body:hover{background:var(--accent-wash)}.tp-app .pinned-label{color:var(--accent);font-size:12px;font-weight:600}.tp-app .pinned-text{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.tp-app .pinned-unpin{border-radius:var(--r-md);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:18px}.tp-app .pinned-unpin:hover{background:var(--accent-wash);color:var(--ink-soft)}.tp-app .forward-modal{z-index:201;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);flex-direction:column;width:min(380px,100vw - 32px);max-height:70vh;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 60px #1d21263d;box-shadow:0 24px 60px lab(12.3794% -.620395 -4.38416/.24)}.tp-app .forward-head{border-bottom:1px solid var(--rule);align-items:center;gap:10px;padding:14px 16px;display:flex}.tp-app .forward-title{color:var(--ink);font-size:16px}.tp-app .forward-list{flex-direction:column;gap:6px;padding:8px 10px 14px;display:flex;overflow:auto}.tp-app .group-head-menu-wrap{flex:none;margin-left:auto;position:relative}.tp-app .chat-head-more{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:34px;height:34px;color:var(--ink-muted);cursor:pointer;place-items:center;font-size:18px;line-height:1;display:grid}.tp-app .chat-head-more:hover{background:var(--surface-hover)}.tp-app .group-head-menu{z-index:201;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);min-width:192px;padding:6px;position:absolute;top:42px;right:0;box-shadow:0 18px 46px #1d212633;box-shadow:0 18px 46px lab(12.3794% -.620395 -4.38416/.2)}.tp-app .chat-head-info{min-width:0}.tp-app .chat-head-info.clickable{cursor:pointer;border-radius:var(--r-lg);margin:-4px -6px;padding:4px 6px;transition:background .15s}.tp-app .chat-head-info.clickable:hover{background:var(--surface-hover)}.tp-app .chat-head-info.clickable .chat-drawer-sub{color:var(--accent)}.tp-app .chat-meta-action{cursor:pointer;background:var(--accent-wash)!important;border-color:var(--accent-edge)!important;color:var(--accent)!important}.tp-app .chat-meta-action:hover{background:var(--accent-edge)!important}.tp-app .message.msg-flash .msg-bubble{animation:1.6s tp-msg-flash}.tp-app .group-info-modal{z-index:201;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);flex-direction:column;width:min(380px,100vw - 32px);max-height:80vh;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 60px #1d21263d;box-shadow:0 24px 60px lab(12.3794% -.620395 -4.38416/.24)}.tp-app .group-info-head{border-bottom:1px solid var(--rule);background:var(--accent-wash);flex-direction:column;align-items:center;gap:6px;padding:26px 16px 18px;display:flex;position:relative}.tp-app .group-info-close{position:absolute;top:12px;right:12px}.tp-app .group-info-avatar{border:1px solid var(--accent-edge);background:var(--accent-wash);width:72px;height:72px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.tp-app .group-info-name{color:var(--ink);text-align:center;font-size:18px;font-weight:600}.tp-app .group-info-count{color:var(--accent);font-size:13px}.tp-app .group-info-body{padding:8px 8px 14px;overflow:auto}.tp-app .group-info-section{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);padding:10px 10px 6px;font-size:11px;font-weight:700}.tp-app .group-info-empty{color:var(--ink-muted);padding:12px 12px 16px;font-size:13px}.tp-app .group-info-member{border-radius:var(--r-lg);align-items:center;gap:10px;padding:8px 10px;display:flex}.tp-app .group-info-member:hover{background:var(--surface-hover)}@media (max-width:700px){.tp-app .chat-drawer{width:100%}}.tp-app .chat-mic{border:1px solid var(--rule-strong);border-radius:var(--r-xl);background:var(--surface);width:42px;height:42px;color:var(--ink-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex:none;justify-content:center;align-items:center;display:inline-flex}.tp-app .chat-mic:hover:not(:disabled){background:var(--accent-wash);color:var(--accent);border-color:var(--accent-edge)}.tp-app .chat-mic:disabled{opacity:.5;cursor:default}.tp-app .voice-recording{border:1px solid var(--accent-edge);border-radius:var(--r-xl);background:var(--accent-wash);flex:1;align-items:center;gap:10px;height:42px;padding:0 8px 0 6px;display:flex}.tp-app .voice-rec-cancel{border-radius:var(--r-lg);width:32px;height:32px;color:var(--danger-strong);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.tp-app .voice-rec-cancel:hover{background:var(--danger-wash)}.tp-app .voice-rec-dot{border-radius:var(--r-full);background:var(--danger);width:10px;height:10px;animation:tp-voice-pulse 1.2s var(--ease-out) infinite;flex:none}.tp-app .voice-rec-time{font-size:13px;font-weight:var(--w-semibold);color:var(--ink);font-variant-numeric:tabular-nums;min-width:38px}.tp-app .voice-rec-hint{min-width:0;color:var(--accent-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.tp-app .voice-rec-send{border-radius:var(--r-lg);background:var(--accent);width:34px;height:34px;color:var(--on-ink);cursor:pointer;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.tp-app .voice-rec-send:hover{background:var(--accent-hover)}@keyframes tp-voice-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.82)}}.tp-app .voice-player{align-items:center;gap:10px;min-width:208px;max-width:260px;margin-top:4px;display:flex}.tp-app .voice-play{border-radius:var(--r-full);background:var(--accent);width:36px;height:36px;color:var(--on-ink);cursor:pointer;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.tp-app .voice-play:hover:not(:disabled){background:var(--accent-hover)}.tp-app .voice-play:disabled{opacity:.6;cursor:default}.tp-app .voice-track{border-radius:var(--r-full);background:var(--accent-edge);cursor:pointer;flex:1;height:4px;position:relative}.tp-app .voice-track-fill{border-radius:var(--r-full);background:var(--accent);height:100%;position:absolute;top:0;left:0}.tp-app .voice-track-thumb{border-radius:var(--r-full);background:var(--accent);width:10px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #1d212640;box-shadow:0 1px 3px lab(12.3794% -.620395 -4.38416/.25)}.tp-app .voice-track.voice-track--wave{background:0 0;height:26px}.tp-app .voice-wave{align-items:center;gap:2px;width:100%;height:100%;display:flex}.tp-app .voice-wave-bar{border-radius:var(--r-full);background:var(--accent-edge);min-width:2px;min-height:3px;transition:background var(--dur-fast) var(--ease-out);flex:1 1 0}.tp-app .voice-wave-bar.played{background:var(--accent)}.tp-app .message.me .voice-track.voice-track--wave{background:0 0}.tp-app .message.me .voice-wave-bar{background:#94b9f1;background:lab(74.0696% -2.72021 -32.22)}.tp-app .message.me .voice-wave-bar.played{background:var(--accent)}.tp-app .voice-time{color:var(--ink-muted);font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:30px;font-size:11px}.tp-app .message.me .voice-track{background:#94b9f1;background:lab(74.0696% -2.72021 -32.22)}.tp-app .voice-player-error{color:var(--ink-muted);gap:6px;min-width:0;font-size:12px}.tp-app .messenger-backdrop{z-index:92;background:#1d21261f;background:lab(12.3794% -.620395 -4.38416/.12);display:none;position:fixed;inset:0}.tp-app .messenger-backdrop.open{display:block}.tp-app .messenger-drawer{background:var(--surface);border-left:1px solid var(--rule);z-index:93;flex-direction:column;width:420px;height:100vh;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-24px 0 60px #1d212629;box-shadow:-24px 0 60px lab(12.3794% -.620395 -4.38416/.16)}.tp-app .messenger-drawer.open{transform:translate(0)}.tp-app .messenger-head{border-bottom:1px solid var(--rule);align-items:center;gap:10px;height:64px;padding:0 16px;display:flex}.tp-app .messenger-title{color:var(--ink);font-size:17px}.tp-app .messenger-close{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:34px;height:34px;color:var(--ink-muted);margin-left:auto}.tp-app .messenger-close:hover{background:var(--surface-hover)}.tp-app .messenger-search{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-xl);height:40px;color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-items:center;gap:8px;margin:12px 14px 8px;padding:0 12px;display:flex}.tp-app .messenger-search:focus-within{background:var(--surface);border-color:var(--accent);color:var(--accent-ink)}.tp-app .messenger-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none}.tp-app .messenger-filters{flex-wrap:wrap;gap:6px;margin:0 14px 8px;display:flex}.tp-app .messenger-filter{border:1px solid var(--rule);background:var(--surface);height:30px;color:var(--ink-soft);border-radius:var(--r-full);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:6px;padding:0 10px;font-size:13px;display:inline-flex}.tp-app .messenger-filter:hover:not(:disabled){background:var(--surface-hover);border-color:var(--rule-strong);color:var(--ink)}.tp-app .messenger-filter.active{background:var(--accent-wash);border-color:var(--accent-edge);color:var(--accent-ink);font-weight:500}.tp-app .messenger-filter:disabled{opacity:.5;cursor:default}.tp-app .messenger-filter-count{font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:11px}.tp-app .messenger-filter.active .messenger-filter-count{color:var(--accent)}.tp-app .messenger-new-chat{border:1px solid var(--accent-edge);background:var(--accent-wash);height:34px;color:var(--accent);border-radius:var(--r-lg);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.tp-app .messenger-new-chat:hover{background:var(--accent-edge)}.tp-app .messenger-new-chat+.messenger-close{margin-left:8px}.tp-app .forward-head .messenger-close{margin-left:auto}@media (max-width:700px){.tp-app .messenger-drawer{width:100%}}.tp-app .notif-btn{position:relative}.tp-app .notif-badge{border-radius:var(--r-full);background:var(--danger);min-width:18px;height:18px;color:var(--on-ink);text-align:center;box-shadow:0 0 0 2px var(--surface);padding:0 5px;font-size:11px;font-weight:600;line-height:18px;position:absolute;top:-6px;right:-6px}.tp-app .notif-anchor{display:inline-flex;position:relative}.tp-app .notif-btn.active{background:var(--accent-wash);border-color:var(--accent-edge);color:var(--accent-ink)}.tp-app .notif-pop{top:calc(100% + var(--space-xs));z-index:60;width:360px;max-width:calc(100vw - 2 * var(--space-md));background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);transform-origin:100% 0;animation:notif-pop-in var(--dur) var(--ease-out);flex-direction:column;display:flex;position:absolute;right:0;overflow:hidden}@keyframes notif-pop-in{0%{opacity:0;transform:translateY(-4px)scale(.985)}}.tp-app .notif-pop-head{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md) var(--space-xs);display:flex}.tp-app .notif-pop-title{font-family:var(--font-sans);font-size:var(--t-base);font-weight:var(--w-semibold);color:var(--ink)}.tp-app .notif-pop-count{padding:2px var(--space-xs);border-radius:var(--r-full);background:var(--danger-wash);color:var(--danger-strong);font-size:var(--t-2xs);font-weight:var(--w-medium);font-variant-numeric:tabular-nums;flex:none}.tp-app .notif-pop-list{max-height:380px;padding-bottom:var(--space-2xs);flex-direction:column;display:flex;overflow:auto}.tp-app .notif-pop-empty{padding:var(--space-lg) var(--space-md);color:var(--ink-muted);font-size:var(--t-sm);text-align:center}.tp-app .notif-pop-item{align-items:flex-start;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-md);text-align:left;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:0;display:flex}.tp-app .notif-pop-item:hover{background:var(--surface-hover)}.tp-app .notif-pop-dot{border-radius:var(--r-full);flex:none;width:8px;height:8px;margin-top:7px}.tp-app .notif-pop-main{flex-direction:column;flex:1;min-width:0;display:flex}.tp-app .notif-pop-text{-webkit-line-clamp:2;line-clamp:2;color:var(--ink);font-size:var(--t-sm);-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.tp-app .notif-pop-item.unread .notif-pop-text{font-weight:var(--w-medium)}.tp-app .notif-pop-body{margin-top:var(--space-3xs);white-space:nowrap;text-overflow:ellipsis;color:var(--ink-soft);font-size:var(--t-xs);overflow:hidden}.tp-app .notif-pop-time{margin-top:var(--space-2xs);color:var(--ink-muted);font-size:var(--t-2xs);font-variant-numeric:tabular-nums}.tp-app .notif-pop-all{width:100%;padding:var(--space-sm);border:0;border-top:1px solid var(--rule);background:var(--surface);color:var(--accent);font-size:var(--t-sm);font-weight:var(--w-medium);text-align:center;transition:background var(--dur-fast) var(--ease-out)}.tp-app .notif-pop-all:hover{background:var(--accent-wash)}.tp-app .notif-drawer{background:var(--surface);border-left:1px solid var(--rule);z-index:94;flex-direction:column;width:420px;max-width:92vw;height:100vh;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-24px 0 60px #1d212629;box-shadow:-24px 0 60px lab(12.3794% -.620395 -4.38416/.16)}.tp-app .notif-drawer.open{transform:translate(0)}.tp-app .notif-list{flex-direction:column;gap:6px;padding:8px 10px 16px;display:flex;overflow:auto}.tp-app .notif-item{background:var(--surface);border-radius:var(--r-xl);text-align:left;border:0;align-items:flex-start;gap:10px;width:100%;padding:11px;display:flex}.tp-app .notif-item:hover{background:var(--surface-hover)}.tp-app .notif-item.unread,.tp-app .notif-item.unread:hover{background:var(--accent-wash)}.tp-app .notif-icon{border-radius:var(--r-lg);background:var(--accent-wash);width:34px;height:34px;color:var(--accent);flex:none;place-items:center;font-size:14px;font-weight:600;display:grid}.tp-app .notif-main{flex:1;min-width:0}.tp-app .notif-title{color:var(--ink);font-size:14px;font-weight:500}.tp-app .notif-body{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.tp-app .notif-time{color:var(--ink-muted);margin-top:4px;font-size:11px}.tp-app .notif-dot{border-radius:var(--r-full);background:var(--accent);flex:none;width:8px;height:8px;margin-top:6px}.tp-app .notif-popups{z-index:250;pointer-events:none;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed;top:82px;right:16px}.tp-app .notif-popup{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);pointer-events:auto;animation:notif-popup-in var(--dur) var(--ease-out);align-items:flex-start;gap:4px;padding:12px 10px 12px 14px;display:flex}@keyframes notif-popup-in{0%{opacity:0;transform:translate(12px)}}.tp-app .notif-popup-open{text-align:left;background:0 0;border:0;flex:1;align-items:flex-start;gap:10px;min-width:0;padding:0;display:flex}.tp-app .notif-popup-icon{border-radius:var(--r-lg);background:var(--accent-wash);width:34px;height:34px;color:var(--accent);flex:none;place-items:center;display:grid}.tp-app .notif-popup-main{flex-direction:column;flex:1;min-width:0;padding-top:1px;display:flex}.tp-app .notif-popup-title{color:var(--ink);font-size:var(--t-sm);font-weight:var(--w-medium);line-height:1.4}.tp-app .notif-popup-body{-webkit-line-clamp:2;line-clamp:2;color:var(--ink-soft);font-size:var(--t-xs);-webkit-box-orient:vertical;margin-top:2px;line-height:1.45;display:-webkit-box;overflow:hidden}.tp-app .notif-popup-close{border-radius:var(--r-md);width:26px;height:26px;color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.tp-app .notif-popup-close:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .feed-list{flex-direction:column;gap:12px;display:flex}.tp-app .feed-item{background:var(--surface-sunken);border:1px solid var(--rule);border-radius:var(--r-xl);align-items:flex-start;gap:12px;padding:14px;display:flex}.tp-app .feed-dot{border-radius:var(--r-xl);background:var(--accent-wash);width:34px;height:34px;color:var(--accent);flex:none;place-items:center;display:grid}.tp-app .feed-content{flex:1}.tp-app .feed-title{color:var(--ink);font-size:14px;line-height:1.35}.tp-app .feed-sub{color:var(--ink-muted);margin-top:5px;font-size:12px}.tp-app .feed-actions{gap:8px;margin-top:10px;display:flex}.tp-app .feed-actions button{border:1px solid var(--rule);background:var(--surface);height:30px;color:var(--ink-soft);border-radius:var(--r-lg);padding:0 10px;font-size:12px}.tp-app .feed-actions button:hover{background:var(--surface-hover)}.tp-app .feed-item{cursor:pointer}.tp-app .activity-backdrop{z-index:112;background:#1d21261f;background:lab(12.3794% -.620395 -4.38416/.12);display:none;position:fixed;inset:0}.tp-app .activity-backdrop.open{display:block}.tp-app .activity-drawer{background:var(--paper);border-left:1px solid var(--rule);z-index:113;flex-direction:column;width:min(760px,100vw - 28px);height:100vh;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-28px 0 70px #1d21262e;box-shadow:-28px 0 70px lab(12.3794% -.620395 -4.38416/.18)}.tp-app .activity-drawer.open{transform:translate(0)}.tp-app .activity-head{background:var(--surface);border-bottom:1px solid var(--rule);align-items:center;gap:12px;height:66px;padding:0 18px;display:flex}.tp-app .activity-title{color:var(--ink);font-size:18px}.tp-app .activity-sub{color:var(--ink-muted);margin-top:2px;font-size:12px}.tp-app .activity-close{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:36px;height:36px;color:var(--ink-muted);margin-left:auto}.tp-app .activity-close:hover{background:var(--surface-hover)}.tp-app .activity-content{flex:1;padding:16px;overflow:auto}.tp-app .activity-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.tp-app .activity-summary-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);padding:14px}.tp-app .activity-summary-value{color:var(--ink);letter-spacing:-.04em;font-size:24px}.tp-app .activity-summary-label{color:var(--ink-muted);margin-top:4px;font-size:12px}.tp-app .activity-filter-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tp-app .activity-filter-btn{border:1px solid var(--rule);background:var(--surface);height:34px;color:var(--ink-soft);border-radius:var(--r-lg);padding:0 12px;font-size:13px}.tp-app .activity-filter-btn.active,.tp-app .activity-filter-btn:hover{background:var(--accent-wash);border-color:var(--accent-edge);color:var(--accent)}.tp-app .activity-timeline{flex-direction:column;gap:10px;display:flex;position:relative}.tp-app .activity-item{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);grid-template-columns:38px 1fr auto;align-items:flex-start;gap:12px;padding:13px;display:grid}.tp-app .activity-icon{border-radius:var(--r-xl);background:var(--accent-wash);width:38px;height:38px;color:var(--accent);place-items:center;display:grid}.tp-app .activity-icon.green{background:var(--positive-wash);color:var(--positive-strong)}.tp-app .activity-icon.orange{background:var(--caution-wash);color:var(--caution-ink)}.tp-app .activity-icon.red{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .activity-icon.purple{background:var(--info-wash);color:var(--info)}.tp-app .activity-main-title{color:var(--ink);font-size:14px;line-height:1.35}.tp-app .activity-main-sub{color:var(--ink-muted);margin-top:5px;font-size:12px}.tp-app .activity-time{color:var(--ink-muted);white-space:nowrap;font-size:12px}.tp-app .activity-open{border:1px solid var(--rule);background:var(--surface-sunken);height:30px;color:var(--ink-soft);border-radius:var(--r-lg);margin-top:8px;padding:0 10px;font-size:12px}.tp-app .activity-open:hover{background:var(--accent-wash);color:var(--accent);border-color:var(--accent-edge)}@media (max-width:760px){.tp-app .activity-summary{grid-template-columns:repeat(2,1fr)}.tp-app .activity-item{grid-template-columns:34px 1fr}.tp-app .activity-time{grid-column:2}}.tp-app .bar{background:var(--rule);border-radius:var(--r-full);flex:1;height:7px;overflow:hidden}.tp-app .bar span{background:var(--accent);border-radius:var(--r-full);height:100%;display:block}.tp-app .palette{flex-wrap:nowrap;gap:6px;width:220px;padding:0 10px 8px;display:flex}.tp-app .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.tp-app .gallery-card{background:var(--surface-sunken);border:1px solid var(--rule);border-radius:var(--r-xl);flex-direction:column;gap:10px;min-height:180px;padding:14px;display:flex}.tp-app .gallery-cover{border-radius:var(--r-xl);background:linear-gradient(135deg, var(--accent-wash), var(--surface-sunken));border:1px solid var(--rule);height:74px;color:var(--accent);justify-content:center;align-items:center;font-size:24px;display:flex}.tp-app .gallery-title{color:var(--ink);font-size:14px;line-height:1.35}.tp-app .gallery-meta{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.tp-app .gallery-pill{background:var(--surface);border:1px solid var(--rule);color:var(--ink-muted);border-radius:var(--r-full);padding:5px 8px;font-size:11px}.tp-app .gallery-card{cursor:pointer}.tp-app .analytics-backdrop{z-index:112;background:#1d21261f;background:lab(12.3794% -.620395 -4.38416/.12);display:none;position:fixed;inset:0}.tp-app .analytics-backdrop.open{display:block}.tp-app .analytics-drawer{background:var(--surface);border-left:1px solid var(--rule);z-index:113;flex-direction:column;width:min(920px,100vw - 28px);height:100vh;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-28px 0 70px #1d21262e;box-shadow:-28px 0 70px lab(12.3794% -.620395 -4.38416/.18)}.tp-app .analytics-drawer.open{transform:translate(0)}.tp-app .analytics-head{border-bottom:1px solid var(--rule);align-items:center;gap:12px;height:66px;padding:0 20px;display:flex}.tp-app .analytics-title{color:var(--ink);font-size:18px}.tp-app .analytics-sub{color:var(--ink-muted);font-size:12px}.tp-app .analytics-close{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:36px;height:36px;color:var(--ink-muted);margin-left:auto}.tp-app .analytics-close:hover{background:var(--surface-hover)}.tp-app .analytics-content{background:var(--surface-sunken);background:var(--paper);flex:1;padding:18px;overflow:auto}.tp-app .analytics-dashboard{flex-direction:column;gap:14px;display:flex}.tp-app .analytics-top-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.tp-app .analytics-kpi-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);padding:16px}.tp-app .analytics-kpi-card .num{color:var(--ink);letter-spacing:-.04em;font-size:28px}.tp-app .analytics-kpi-card .label{color:var(--ink-muted);margin-top:4px;font-size:12px}.tp-app .analytics-kpi-card .hint{color:var(--ink-muted);margin-top:8px;font-size:11px}.tp-app .analytics-main-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.tp-app .analytics-card2{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);overflow:hidden}.tp-app .analytics-card2.wide,.tp-app .analytics-card2.full-wide{grid-column:1/-1}.tp-app .analytics-card-head2{border-bottom:1px solid var(--rule);align-items:center;height:58px;padding:0 16px;display:flex}.tp-app .analytics-card-head2 h3{color:var(--ink);margin:0;font-size:15px;font-weight:400}.tp-app .analytics-card-head2 .sub{color:var(--ink-muted);margin-left:8px;font-size:12px}.tp-app .analytics-card-head2 button{border:1px solid var(--rule);background:var(--surface);width:30px;height:30px;color:var(--ink-muted);border-radius:var(--r-lg);margin-left:auto}.tp-app .analytics-card-body2{padding:16px}.tp-app .analytics-fullscreen-icon{border:1px solid var(--rule);background:var(--surface);width:32px;height:32px;color:var(--ink-muted);border-radius:var(--r-lg);place-items:center;margin-left:auto;font-size:16px;line-height:1;display:grid}.tp-app .analytics-fullscreen-icon:hover{background:var(--surface-hover);color:var(--accent);border-color:var(--accent-edge)}.tp-app .status-bars{grid-template-columns:repeat(5,1fr);align-items:end;gap:12px;min-height:240px;padding-top:16px;display:grid}.tp-app .status-bar-item{flex-direction:column;align-items:center;gap:9px;display:flex}.tp-app .status-bar-track{background:var(--surface-sunken);border-radius:var(--r-xl);align-items:flex-end;width:100%;max-width:64px;height:180px;padding:5px;display:flex}.tp-app .status-bar-fill{border-radius:var(--r-xl);width:100%;min-height:8px}.tp-app .status-bar-count{color:var(--ink);letter-spacing:-.03em;font-size:18px}.tp-app .status-bar-label{color:var(--ink-muted);text-align:center;font-size:12px}.tp-app .hbar-row{grid-template-columns:160px 1fr 62px;align-items:center;gap:12px;margin-bottom:14px;display:grid}.tp-app .hbar-name{color:var(--ink-soft);min-width:0;font-size:13px}.tp-app .hbar-track{background:var(--surface-sunken);border-radius:var(--r-full);height:14px;overflow:hidden}.tp-app .hbar-fill{border-radius:var(--r-full);height:100%}.tp-app .hbar-value{color:var(--ink-muted);text-align:right;font-size:12px}.tp-app .analytics-fullscreen-backdrop{z-index:200;background:#1d21265c;background:lab(12.3794% -.620395 -4.38416/.36);justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.tp-app .analytics-fullscreen-backdrop.open{display:flex}.tp-app .analytics-fullscreen-modal{background:var(--surface);border:1px solid var(--rule);z-index:201;border-radius:22px;flex-direction:column;width:min(1180px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 30px 90px #1d21264d;box-shadow:0 30px 90px lab(12.3794% -.620395 -4.38416/.3)}.tp-app .analytics-fullscreen-head{border-bottom:1px solid var(--rule);align-items:center;gap:12px;height:62px;padding:0 18px;display:flex}.tp-app .analytics-fullscreen-head h3{color:var(--ink);margin:0;font-size:17px;font-weight:400}.tp-app .analytics-fullscreen-close{border:1px solid var(--rule);background:var(--surface);width:36px;height:36px;color:var(--ink-muted);border-radius:var(--r-lg);margin-left:auto}.tp-app .analytics-fullscreen-close:hover{background:var(--surface-hover)}.tp-app .analytics-fullscreen-body{background:var(--surface-sunken);padding:22px;overflow:auto}.tp-app .analytics-fullscreen-body .analytics-card-head2{display:none}.tp-app .analytics-fullscreen-body .analytics-card2{box-shadow:none;border-radius:var(--r-xl)}.tp-app .analytics-fullscreen-body .analytics-card-body2{padding:22px}.tp-app .analytics-fullscreen-body .status-bar-track{height:300px}@media (max-width:1100px){.tp-app .analytics-top-grid{grid-template-columns:repeat(2,1fr)}.tp-app .analytics-main-grid{grid-template-columns:1fr}.tp-app .analytics-card2.wide{grid-column:auto}}@media (max-width:700px){.tp-app .analytics-top-grid{grid-template-columns:1fr}.tp-app .status-bars{grid-template-columns:1fr;align-items:stretch}.tp-app .status-bar-item{grid-template-columns:110px 1fr 44px;align-items:center;display:grid}.tp-app .status-bar-track{width:100%;max-width:none;height:14px;padding:0}.tp-app .hbar-row{grid-template-columns:1fr}}.tp-app .profile-backdrop{z-index:105;background:#1d21261f;background:lab(12.3794% -.620395 -4.38416/.12);display:none;position:fixed;inset:0}.tp-app .profile-backdrop.open{display:block}.tp-app .profile-drawer{background:var(--paper);border-left:1px solid var(--rule);z-index:106;flex-direction:column;width:min(1040px,100vw - 28px);height:100vh;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-28px 0 70px #1d21262e;box-shadow:-28px 0 70px lab(12.3794% -.620395 -4.38416/.18)}.tp-app .profile-drawer.open{transform:translate(0)}.tp-app .profile-head{background:var(--surface);border-bottom:1px solid var(--rule);align-items:center;gap:12px;height:64px;padding:0 18px;display:flex}.tp-app .profile-head-title{color:var(--ink);font-size:18px}.tp-app .profile-head-sub{color:var(--ink-muted);font-size:12px}.tp-app .profile-close{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:36px;height:36px;color:var(--ink-muted);margin-left:auto}.tp-app .profile-close:hover{background:var(--surface-hover)}.tp-app .profile-content{padding:16px;overflow:auto}.tp-app .profile-main-card,.tp-app .profile-account-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);margin-bottom:14px}.tp-app .profile-main-card{padding:18px}.tp-app .profile-user-row{align-items:center;gap:14px;display:flex}.tp-app .profile-photo{border-radius:var(--r-xl);background:linear-gradient(135deg, var(--accent-edge), var(--surface-sunken));width:66px;height:66px;color:var(--accent);place-items:center;font-size:22px;display:grid;position:relative;overflow:hidden}.tp-app .profile-photo img{object-fit:cover;width:100%;height:100%}.tp-app .profile-status-dot{border:2px solid var(--surface);border-radius:var(--r-full);background:var(--positive);width:13px;height:13px;position:absolute;bottom:4px;right:4px}.tp-app .profile-status-dot.offline{background:var(--rule-strong)}.tp-app .profile-name{color:var(--ink);letter-spacing:-.03em;font-size:20px}.tp-app .profile-role-pill{border:1px solid var(--accent-edge);background:var(--accent-wash);height:28px;color:var(--accent);border-radius:var(--r-full);align-items:center;margin-top:8px;padding:0 12px;font-size:12px;display:inline-flex}.tp-app .profile-edit{background:var(--accent);height:40px;color:var(--on-ink);border-radius:var(--r-lg);border:0;margin-left:auto;padding:0 14px;font-size:13px}.tp-app .profile-edit:hover{filter:brightness(.97)}.tp-app .profile-info-grid{border-top:1px solid var(--rule);grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px;padding-top:15px;display:grid}.tp-app .profile-info-item{align-items:flex-start;gap:10px;display:flex}.tp-app .profile-info-icon{border-radius:var(--r-lg);background:var(--surface-sunken);width:28px;height:28px;color:var(--ink-muted);flex:none;place-items:center;display:grid}.tp-app .profile-info-label{color:var(--ink-muted);font-size:11px}.tp-app .profile-info-value{color:var(--ink);margin-top:2px;font-size:12px}.tp-app .profile-section-title{border-bottom:1px solid var(--rule);height:56px;color:var(--ink);align-items:center;gap:10px;padding:0 16px;font-size:15px;display:flex}.tp-app .profile-account-grid{grid-template-columns:repeat(4,1fr);gap:14px;padding:16px;display:grid}.tp-app .profile-nav-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);margin-bottom:14px}.tp-app .profile-nav-list{flex-direction:column;gap:4px;padding:8px;display:flex}.tp-app .profile-nav-btn{border-radius:var(--r-md);text-align:left;cursor:pointer;width:100%;color:var(--ink);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:12px;padding:10px 12px;display:flex}.tp-app .profile-nav-btn:hover{background:var(--surface-hover)}.tp-app .profile-nav-btn-icon{border-radius:var(--r-md);background:var(--accent-wash);width:36px;height:36px;color:var(--accent-ink);flex:none;place-items:center;display:grid}.tp-app .profile-nav-btn-text{flex-direction:column;gap:2px;min-width:0;display:flex}.tp-app .profile-nav-btn-title{font-size:var(--t-sm);font-weight:var(--w-medium);color:var(--ink)}.tp-app .profile-nav-btn-sub{font-size:var(--t-xs);color:var(--ink-muted)}.tp-app .profile-nav-btn-count{background:var(--accent-wash);min-width:20px;height:20px;color:var(--accent-ink);font-size:var(--t-xs);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;display:inline-flex}.tp-app .profile-nav-btn>.tp-icon{color:var(--ink-faint);flex:none;margin-left:auto}.tp-app .profile-nav-btn-count+.tp-icon{margin-left:0}.tp-app .profile-kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px;display:grid}.tp-app .profile-kpi{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);align-items:center;gap:13px;min-height:92px;padding:16px;display:flex}.tp-app .profile-kpi-icon{border-radius:var(--r-xl);background:var(--accent-wash);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:grid}.tp-app .profile-kpi-icon.green{background:var(--positive-wash);color:var(--positive-strong)}.tp-app .profile-kpi-icon.purple{background:var(--info-wash);color:var(--info)}.tp-app .profile-kpi-icon.orange{background:var(--caution-wash);color:var(--caution-ink)}.tp-app .profile-kpi-icon.red{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .profile-kpi-value{color:var(--ink);letter-spacing:-.04em;font-size:22px}.tp-app .profile-kpi-label{color:var(--ink-muted);margin-top:2px;font-size:12px}.tp-app .profile-kpi-more{color:var(--accent);align-self:flex-end;margin-left:auto;font-size:12px}.tp-app .profile-details-grid{grid-template-columns:1.2fr .8fr;gap:14px;display:grid}.tp-app .profile-panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);padding:16px}.tp-app .profile-panel h3{color:var(--ink);margin:0 0 12px;font-size:16px;font-weight:400}.tp-app .profile-soon{text-align:center;color:var(--ink-muted);flex-direction:column;align-items:center;gap:10px;padding:26px 16px;display:flex}.tp-app .profile-soon-badge{border-radius:var(--r-full);background:var(--accent-wash);color:var(--accent-ink);font-size:var(--t-sm);align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.tp-app .profile-soon-text{max-width:240px;font-size:13px}.tp-app .profile-progress-row{margin-bottom:12px}.tp-app .profile-progress-head{color:var(--ink-soft);justify-content:space-between;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.tp-app .profile-progress{background:var(--rule);border-radius:var(--r-full);height:10px;overflow:hidden}.tp-app .profile-progress span{background:var(--accent);border-radius:var(--r-full);height:100%;display:block}.tp-app .profile-task-list{flex-direction:column;gap:8px;display:flex}.tp-app .profile-task-item{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-xl);color:var(--ink-soft);justify-content:space-between;gap:10px;padding:10px;font-size:13px;display:flex}.tp-app .profile-task-item span{color:var(--ink-muted);white-space:nowrap}.tp-app .profile-mini-status{border-radius:var(--r-full);background:var(--positive-wash);height:24px;color:var(--positive-strong);align-items:center;margin-left:8px;padding:0 9px;font-size:11px;display:inline-flex}.tp-app .profile-mini-status.offline{background:var(--surface-sunken);color:var(--ink-muted)}.tp-app .gim-avatar{border:1px solid var(--rule);background:var(--surface-sunken);width:40px;height:40px;color:var(--ink-soft);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.tp-app .gim-main{flex:1;min-width:0}.tp-app .gim-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.tp-app .gim-status{color:var(--ink-muted);font-size:12px}.tp-app .gim-role{color:var(--accent);background:var(--accent-wash);border-radius:var(--r-full);flex:none;padding:3px 9px;font-size:11px;font-weight:600}@media (max-width:900px){.tp-app .profile-info-grid,.tp-app .profile-account-grid,.tp-app .profile-kpi-grid,.tp-app .profile-details-grid{grid-template-columns:1fr}.tp-app .profile-user-row{flex-wrap:wrap;align-items:flex-start}.tp-app .profile-edit{margin-left:0}}.tp-app .task-detail-backdrop{z-index:88;background:#1d21261a;background:lab(12.3794% -.620395 -4.38416/.1);display:none;position:fixed;inset:0}.tp-app .task-detail-backdrop.open{display:block}.tp-app .task-detail-drawer{background:var(--surface);border-left:1px solid var(--rule);z-index:89;flex-direction:column;width:min(760px,100vw - 32px);height:100vh;transition:transform .26s;display:flex;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-28px 0 70px #1d21262e;box-shadow:-28px 0 70px lab(12.3794% -.620395 -4.38416/.18)}.tp-app .task-detail-drawer.open{transform:translate(0)}.tp-app .detail-toolbar{border-bottom:1px solid var(--rule);background:var(--surface);height:48px;color:var(--ink-muted);align-items:center;gap:8px;padding:0 16px;display:flex}.tp-app .detail-toolbar button{background:var(--surface);border-radius:var(--r-lg);width:32px;height:32px;color:var(--ink-muted);border:1px solid #0000}.tp-app .detail-toolbar button:hover{background:var(--surface-hover);border-color:var(--rule)}.tp-app .detail-toolbar-spacer{flex:1}.tp-app .detail-content{flex:1;padding:24px 34px 40px;overflow:auto}.tp-app .detail-footer{border-top:1px solid var(--rule);background:var(--surface);flex:none;padding:12px 34px}.tp-app .detail-save-btn{border:1px solid var(--accent);border-radius:var(--r-md);background:var(--accent);width:100%;height:42px;color:var(--on-accent);font-size:var(--t-base);font-weight:var(--w-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out)}.tp-app .detail-save-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.tp-app .detail-save-btn:active{filter:brightness(.9)}.tp-app .detail-title{letter-spacing:-.04em;color:var(--ink);resize:none;background:0 0;border:0;outline:none;width:100%;min-height:68px;margin:6px 0 22px;font-size:28px;line-height:1.18}.tp-app .detail-title:focus{background:var(--surface-sunken);border-radius:var(--r-xl);box-shadow:0 0 0 8px var(--surface-sunken)}.tp-app .detail-props{grid-template-columns:150px 1fr;gap:10px 16px;max-width:680px;margin-bottom:24px;display:grid}.tp-app .detail-prop-label{color:var(--ink-muted);font-size:var(--t-2xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;align-items:center;gap:8px;min-height:34px;display:flex}.tp-app .detail-prop-value{min-height:34px;color:var(--ink-soft);align-items:center;gap:8px;font-size:14px;display:flex}.tp-app .detail-empty-note{color:var(--ink-muted);font-style:italic}.tp-app .detail-meta-value{color:var(--ink-muted)}.tp-app .detail-input,.tp-app .detail-select,.tp-app .detail-textarea{border-radius:var(--r-lg);width:100%;color:var(--ink-soft);background:0 0;border:1px solid #0000;outline:none;padding:7px 9px;font-size:14px}.tp-app .detail-input:hover,.tp-app .detail-select:hover,.tp-app .detail-textarea:hover{background:var(--surface-sunken);border-color:var(--rule)}.tp-app .detail-input:focus,.tp-app .detail-select:focus,.tp-app .detail-textarea:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .detail-textarea{resize:vertical;min-height:82px;line-height:1.45}.tp-app .detail-tag-row{flex-wrap:wrap;gap:7px;display:flex}.tp-app .detail-chip{border:1px solid var(--rule);background:var(--surface-sunken);color:var(--ink-soft);border-radius:var(--r-full);padding:5px 8px;font-size:12px}.tp-app .detail-chip.major{background:var(--danger-wash);color:var(--danger-strong);border-color:var(--danger-edge)}.tp-app .detail-chip.high{background:var(--caution-wash);color:var(--caution-ink);border-color:var(--caution-edge)}.tp-app .detail-chip.normal{background:var(--positive-wash);color:var(--positive-strong);border-color:var(--positive-edge)}.tp-app .detail-section{border-top:1px solid var(--rule);margin-top:18px;padding-top:20px}.tp-app .detail-section h3{color:var(--ink);margin:0 0 12px;font-size:18px;font-weight:400}.tp-app .detail-rich{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-xl);width:100%;min-height:120px;color:var(--ink-soft);resize:vertical;outline:none;padding:14px;font-size:14px;line-height:1.55}.tp-app .detail-rich:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .detail-subtasks{flex-direction:column;gap:8px;display:flex}.tp-app .detail-subtask{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-xl);align-items:center;gap:10px;min-height:40px;padding:8px 10px;display:flex}.tp-app .detail-subtask button{border-radius:var(--r-full);border:2px solid var(--rule-strong);background:var(--surface);width:22px;height:22px;color:var(--rule-strong)}.tp-app .detail-subtask.done button{background:var(--positive);border-color:var(--positive);color:var(--on-ink)}.tp-app .detail-subtask.done .detail-subtask-title{color:var(--ink-muted);text-decoration:line-through}.tp-app .detail-subtask-title{color:var(--ink-soft);flex:1;font-size:14px}.tp-app .detail-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.tp-app .detail-action{border:1px solid var(--rule);background:var(--surface);height:36px;color:var(--ink-soft);border-radius:var(--r-lg);padding:0 12px;font-size:13px}.tp-app .detail-action:hover{background:var(--surface-hover)}.tp-app .detail-action.primary-mini{background:var(--accent);border-color:var(--accent);color:var(--on-ink)}.tp-app .detail-doc-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.tp-app .detail-doc-list{flex-direction:column;gap:8px;display:flex}.tp-app .detail-doc-item{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-xl);align-items:center;gap:10px;padding:10px 12px;display:flex}.tp-app .detail-doc-icon{border-radius:var(--r-lg);background:var(--accent-wash);width:34px;height:34px;color:var(--accent);flex:none;place-items:center;display:grid}.tp-app .detail-doc-main{flex:1;min-width:0}.tp-app .detail-doc-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.tp-app .detail-doc-meta{color:var(--ink-muted);margin-top:3px;font-size:12px}.tp-app .detail-doc-actions{flex:none;gap:6px;display:flex}.tp-app .detail-doc-actions button{border:1px solid var(--rule);background:var(--surface);height:30px;color:var(--ink-soft);border-radius:var(--r-lg);padding:0 9px;font-size:12px}.tp-app .detail-doc-actions button:hover{background:var(--surface-hover)}.tp-app .detail-description-hint{color:var(--ink-muted);margin-top:8px;font-size:12px}.tp-app .detail-assignee-picker{flex-wrap:wrap;gap:7px;width:100%;display:flex}.tp-app .detail-assignee-option{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-full);height:32px;color:var(--ink-soft);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.tp-app .detail-assignee-option input{accent-color:var(--accent)}.tp-app .detail-assignee-option:has(input:checked){background:var(--accent-wash);border-color:var(--accent-edge);color:var(--accent)}.tp-app .detail-assignee-dropdown{max-width:420px}@media (max-width:800px){.tp-app .task-detail-drawer{width:100vw}.tp-app .detail-content{padding:20px 18px 34px}.tp-app .detail-footer{padding:12px 18px}.tp-app .detail-props{grid-template-columns:1fr}.tp-app .detail-prop-label{min-height:auto}}.tp-app .project-modal-backdrop{z-index:150;background:#1d212642;background:lab(12.3794% -.620395 -4.38416/.26);justify-content:center;align-items:center;display:none;position:fixed;inset:0}.tp-app .project-modal-backdrop.open{display:flex}.tp-app .project-modal{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);width:420px;padding:18px;box-shadow:0 28px 70px #1d212640;box-shadow:0 28px 70px lab(12.3794% -.620395 -4.38416/.25)}.tp-app .project-modal h3{color:var(--ink);margin:0 0 6px;font-size:19px;font-weight:400}.tp-app .project-modal p{color:var(--ink-muted);margin:0 0 14px;font-size:13px}.tp-app .project-modal input:not([type=checkbox]):not([type=radio]){border:1px solid var(--rule-strong);border-radius:var(--r-xl);width:100%;height:44px;color:var(--ink-soft);outline:none;padding:0 13px;font-size:14px}.tp-app .project-modal input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .project-modal-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.tp-app .project-modal-actions button{border-radius:var(--r-lg);height:40px;padding:0 14px}.tp-app .project-cancel{border:1px solid var(--rule);background:var(--surface);color:var(--ink-soft)}.tp-app .project-save{background:var(--accent);color:var(--on-ink);border:0}.tp-app .participant-row{border-bottom:1px solid var(--surface-sunken);grid-template-columns:34px 1fr 72px;align-items:center;gap:10px;padding:10px 0;display:grid}.tp-app .participant-row:last-child{border-bottom:0}.tp-app .participant-avatar{border-radius:var(--r-xl);background:var(--accent-wash);width:34px;height:34px;color:var(--accent);place-items:center;font-size:11px;display:grid}.tp-app .participant-name{color:var(--ink);margin-bottom:5px;font-size:13px}.tp-app .participant-meta{color:var(--ink-muted);font-size:11px}.tp-app .participant-mini-bar{background:var(--surface-sunken);border-radius:var(--r-full);height:8px;margin-top:7px;overflow:hidden}.tp-app .participant-mini-bar span{border-radius:var(--r-full);background:var(--accent);height:100%;display:block}.tp-app .participant-count{text-align:right;color:var(--ink-muted);font-size:12px}.tp-app .analytics-fullscreen-body .participant-row{padding:14px 0}.tp-app .project-modal{width:min(820px,100vw - 32px);max-height:86vh;padding:0;overflow:auto}.tp-app .project-modal-header{border-bottom:1px solid var(--rule);padding:18px 20px 12px}.tp-app .project-modal-header h3{color:var(--ink);margin:0 0 6px;font-size:20px;font-weight:400}.tp-app .project-modal-header p{color:var(--ink-muted);margin:0;font-size:13px}.tp-app .project-modal-body{padding:18px 20px}.tp-app .project-form-row{grid-template-columns:1fr;gap:14px;margin-bottom:14px;display:grid}.tp-app .project-field>label,.tp-app .project-participants-head label{color:var(--ink);margin-bottom:8px;font-size:14px;display:block}.tp-app .project-field input:not([type=checkbox]):not([type=radio]){border:1px solid var(--rule-strong);border-radius:var(--r-xl);width:100%;height:44px;color:var(--ink-soft);outline:none;padding:0 13px;font-size:14px}.tp-app .project-field input:not([type=checkbox]):not([type=radio]):focus,.tp-app .project-participants-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .project-chat-toggle{color:var(--ink-soft);align-items:center;gap:8px;margin:6px 0 18px;font-size:14px;display:flex}.tp-app .project-chat-toggle input{width:16px;height:16px;accent-color:var(--accent)}.tp-app .project-participants-top{align-items:center;gap:12px;margin-bottom:10px;display:flex}.tp-app .project-participants-search{border:1px solid var(--rule-strong);border-radius:var(--r-xl);height:44px;color:var(--ink-muted);align-items:center;gap:8px;margin-bottom:10px;padding:0 12px;display:flex}.tp-app .project-participants-search input:not([type=checkbox]):not([type=radio]){width:auto;min-width:0;height:38px;color:var(--ink-soft);background:0 0;border:0;border-radius:0;outline:none;flex:1;padding:0;font-size:14px}.tp-app .project-participants-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .project-participants-search input:not([type=checkbox]):not([type=radio]):focus{box-shadow:none}.tp-app .project-members-table{border:1px solid var(--rule);border-radius:var(--r-xl);background:var(--surface);overflow:hidden}.tp-app .project-members-head,.tp-app .project-member-row{grid-template-columns:42px 1.3fr 1fr 1fr 190px;align-items:center;gap:10px;display:grid}.tp-app .project-members-head{background:var(--surface-sunken);min-height:38px;color:var(--ink-muted);border-bottom:1px solid var(--rule);padding:0 12px;font-size:12px}.tp-app .project-member-row{border-bottom:1px solid var(--surface-sunken);min-height:44px;color:var(--ink-soft);padding:0 12px;font-size:13px}.tp-app .project-member-row:last-child{border-bottom:0}.tp-app .project-member-row:hover{background:var(--accent-wash)}.tp-app .project-member-check{width:16px;height:16px;accent-color:var(--accent)}.tp-app .project-member-name{align-items:center;gap:8px;min-width:0;display:flex}.tp-app .project-member-avatar{border-radius:var(--r-lg);background:var(--accent-wash);width:24px;height:24px;color:var(--accent);flex:none;place-items:center;font-size:10px;display:grid}.tp-app .project-member-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tp-app .project-role-select{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:100%;height:32px;color:var(--ink-soft);padding:0 8px;font-size:12px}.tp-app .project-role-select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.tp-app .project-modal-body+.project-modal-actions,.tp-app .project-modal .project-modal-actions{border-top:1px solid var(--rule);margin-top:0;padding:14px 20px}.tp-app .project-modal.duplicate-modal{width:min(460px,100vw - 32px)}.tp-app .duplicate-project-select{border:1px solid var(--rule-strong);border-radius:var(--r-xl);background:var(--surface);width:100%;height:44px;color:var(--ink);outline:none;padding:0 13px;font-size:14px}.tp-app .duplicate-project-select:focus{border-color:var(--accent)}.tp-app .project-modal.group-chat-modal{width:min(460px,100vw - 32px);overflow:visible}.tp-app .group-chat-modal .project-field+.project-field{margin-top:16px}.tp-app .project-modal.chat-manage-modal{width:min(440px,100vw - 32px)}.tp-app .members-modal{width:min(560px,100vw - 32px)}.tp-app .members-section-title{font-size:var(--t-xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);margin:var(--space-sm) 0 var(--space-2xs)}.tp-app .members-list{flex-direction:column;gap:2px;max-height:260px;display:flex;overflow-y:auto}.tp-app .members-add-list{max-height:200px}.tp-app .members-row{align-items:center;gap:var(--space-sm);padding:6px var(--space-2xs);border-radius:var(--r-sm);grid-template-columns:28px 1fr auto auto;display:grid}.tp-app .members-row:hover{background:var(--surface-hover)}.tp-app .members-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:var(--t-sm);overflow:hidden}.tp-app .members-role-label{color:var(--ink-muted);font-size:var(--t-xs);white-space:nowrap}.tp-app .members-remove{width:26px;height:26px;color:var(--ink-muted);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.tp-app .members-remove:hover{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .members-add-controls{gap:var(--space-sm);align-items:center;margin-bottom:12px;display:flex}.tp-app .members-add-controls .project-participants-search{flex:auto;min-width:0;margin-bottom:0}.tp-app .members-add-controls .project-role-select{border-radius:var(--r-xl);flex:none;width:auto;min-width:150px;height:44px;font-size:14px}.tp-app .members-add-btn{align-items:center;gap:var(--space-3xs);border:1px solid var(--rule-strong);color:var(--ink-soft);border-radius:var(--r-sm);padding:4px var(--space-2xs);font-size:var(--t-xs);cursor:pointer;white-space:nowrap;background:0 0;display:inline-flex}.tp-app .members-add-btn:hover{background:var(--surface-sunken);color:var(--accent);border-color:var(--accent-edge)}@media (max-width:760px){.tp-app .project-members-head{display:none}.tp-app .project-member-row{grid-template-columns:32px 1fr;gap:8px;padding:10px 12px}.tp-app .project-member-row>div:nth-child(3),.tp-app .project-member-row>div:nth-child(4),.tp-app .project-member-row>div:nth-child(5){grid-column:2}}}@layer view{.tp-app .board{align-items:flex-start;gap:16px;height:100%;padding-bottom:4px;display:flex;overflow:auto}.tp-app .column{border:1px solid var(--rule);border-radius:var(--r-lg);width:340px;min-width:340px;padding:var(--space-sm);flex-direction:column;display:flex;position:relative}.tp-app .column.col-dragging{opacity:.45}.tp-app .column.col-drop-before:after,.tp-app .column.col-drop-after:after{content:"";border-radius:var(--r-full);background:var(--accent);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.tp-app .column.col-drop-before:after{left:-9px}.tp-app .column.col-drop-after:after{right:-9px}.tp-app .column-header{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);-webkit-user-select:none;user-select:none;cursor:default;display:flex}.tp-app .column-header[draggable=true]{cursor:grab}.tp-app .column-header[draggable=true]:active{cursor:grabbing}.tp-app .column-grip{color:var(--ink-faint);opacity:0;transition:opacity var(--dur) var(--ease-out);margin-left:-2px}.tp-app .column:hover .column-grip,.tp-app .column:focus-within .column-grip{opacity:1}@media (hover:none){.tp-app .column-grip{opacity:1}}.tp-app .column-title{font-size:var(--t-sm);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft)}.tp-app .column-count{font-size:var(--t-xs);color:var(--ink-muted);background:var(--surface-sunken);border:1px solid var(--rule);padding:2px var(--space-xs);border-radius:var(--r-full);font-variant-numeric:tabular-nums}.tp-app .add-task{border:1px dashed var(--rule-strong);border-radius:var(--r-md);width:100%;height:34px;color:var(--ink-muted);font-size:var(--t-sm);margin-bottom:var(--space-sm);justify-content:center;align-items:center;gap:var(--space-xs);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);background:0 0;flex:none;display:flex}.tp-app .add-task:disabled{opacity:.45}.tp-app .add-task:hover:not(:disabled){background:var(--surface);border-color:var(--ink-muted);color:var(--ink);border-style:solid}.tp-app .tasks{flex-direction:column;gap:10px;display:flex}.tp-app .task{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--space-sm);transition:border-color var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none;position:relative}.tp-app .task.done .task-title{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-muted);-webkit-text-decoration-color:var(--ink-muted);-webkit-text-decoration-color:var(--ink-muted);text-decoration-color:var(--ink-muted);color:var(--ink-muted)}.tp-app .task-head{align-items:flex-start;gap:9px;display:flex}.tp-app .task-title{text-align:left;overflow-wrap:anywhere;word-break:break-word;background:0 0;border:0;flex:auto;min-width:0;padding:0;font-size:14px;line-height:1.25}.tp-app .task-footer{color:var(--ink-muted);align-items:center;gap:6px;margin:10px 0 0 29px;font-size:12px;display:flex}.tp-app .create-sub{color:var(--accent);background:0 0;border:0;align-items:center;gap:6px;margin:8px 0 0 27px;padding:6px 2px;font-size:13px;display:inline-flex}.tp-app .create-sub>.tp-icon{vertical-align:0}.tp-app .create-sub:hover{text-decoration:underline}.tp-app .children{flex-direction:column;gap:10px;margin-top:10px;margin-left:18px;padding-left:14px;display:flex}.tp-app .children:not(.children-flat)>.task:before{content:"";background:var(--rule-strong);pointer-events:none;width:1px;position:absolute;top:-10px;bottom:0;left:-14px}.tp-app .children:not(.children-flat)>.task:first-child:before{top:0}.tp-app .children:not(.children-flat)>.task:last-child:before{bottom:calc(100% - 22px)}.tp-app .children:not(.children-flat)>.task:after{content:"";background:var(--rule-strong);pointer-events:none;width:14px;height:1px;position:absolute;top:20px;left:-14px}.tp-app .children .task{box-shadow:none}.tp-app .children-flat{flex-direction:column;gap:10px;margin-top:10px;margin-left:0;padding-left:12px;display:flex}.tp-app .children-flat>.task{box-shadow:none;padding:10px}.tp-app .children-flat>.task:before{content:"";background:var(--rule-strong);pointer-events:none;width:1px;position:absolute;top:-10px;bottom:0;left:-12px}.tp-app .children-flat>.task[data-depth="1"]:before{left:-20px}.tp-app .children-flat>.task[data-depth="2"]:before{left:-28px}.tp-app .children-flat>.task[data-depth="3"]:before{left:-36px}.tp-app .children-flat>.task[data-depth="4"]:before{left:-44px}.tp-app .children-flat>.task:first-child:before{top:0}.tp-app .children-flat>.task:last-child:before{bottom:calc(100% - 21px)}.tp-app .children-flat>.task:after{content:"";background:var(--rule-strong);pointer-events:none;width:12px;height:1px;position:absolute;top:20px;left:-12px}.tp-app .children-flat>.task[data-depth="1"]:after{width:20px;left:-20px}.tp-app .children-flat>.task[data-depth="2"]:after{width:28px;left:-28px}.tp-app .children-flat>.task[data-depth="3"]:after{width:36px;left:-36px}.tp-app .children-flat>.task[data-depth="4"]:after{width:44px;left:-44px}.tp-app .children-flat>.task[data-depth="1"]{margin-left:8px}.tp-app .children-flat>.task[data-depth="2"]{margin-left:16px}.tp-app .children-flat>.task[data-depth="3"]{margin-left:24px}.tp-app .children-flat>.task[data-depth="4"]{margin-left:32px}.tp-app .children-flat>.task>.task-footer,.tp-app .children-flat>.task>.create-sub{margin-left:10px}.tp-app .create-column{border:1px dashed var(--rule-strong);background:var(--surface);border-radius:var(--r-xl);width:250px;min-width:250px;height:52px;color:var(--accent);justify-content:center;align-self:flex-start;align-items:center;gap:6px;display:flex}.tp-app .create-column:hover{background:var(--accent-wash)}.tp-app .task[draggable=true]{cursor:grab}.tp-app .task[draggable=true]:active{cursor:grabbing}.tp-app .column.drop-allowed{outline:2px dashed var(--accent);outline-offset:3px}.tp-app .column.drop-denied{outline:2px dashed var(--danger);outline-offset:3px}.tp-app .task:hover{border-color:var(--accent-edge)}.tp-app .task .task-head{cursor:pointer}.tp-app .column-search{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);height:34px;color:var(--ink-muted);align-items:center;gap:7px;margin:0 0 12px;padding:0 10px;display:flex}.tp-app .column-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none;font-size:12px}.tp-app .column-search:focus-within{border-color:var(--accent);color:var(--accent-ink)}.tp-app .column-search.active{border-color:var(--accent-edge);background:var(--accent-wash)}.tp-app .create-column-form{width:260px;padding:8px}.tp-app .create-column-form label{color:var(--ink-muted);margin:0 0 7px;font-size:12px;display:block}.tp-app .create-column-form input{border:1px solid var(--rule-strong);border-radius:var(--r-lg);width:100%;height:40px;color:var(--ink-soft);outline:none;padding:0 12px}.tp-app .create-column-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .create-column-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.tp-app .create-column-actions button{border-radius:var(--r-lg);height:34px;padding:0 11px;font-size:12px}.tp-app .create-column-actions .cancel{border:1px solid var(--rule);background:var(--surface);color:var(--ink-soft)}.tp-app .create-column-actions .save{background:var(--accent);color:var(--on-ink);border:0}@media (max-width:600px){.tp-app .board{scroll-snap-type:x mandatory}.tp-app .column{scroll-snap-align:start;width:85vw;min-width:85vw;max-width:320px}.tp-app .create-column{width:85vw;min-width:85vw}}.tp-app .list-table-scroll{overflow-x:auto}.tp-app .list-table{border-collapse:separate;border-spacing:0 10px;width:100%;min-width:860px}.tp-app .list-table th{text-align:left;color:var(--ink-muted);padding:0 12px;font-size:12px;font-weight:400}.tp-app .list-table td{background:var(--surface-sunken);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:13px 12px;font-size:14px}.tp-app .list-table td:first-child{border-left:1px solid var(--rule);border-radius:var(--r-xl) 0 0 var(--r-xl)}.tp-app .list-table td:last-child{border-right:1px solid var(--rule);border-radius:0 var(--r-xl) var(--r-xl) 0}.tp-app .table-board{overflow:auto}.tp-app .data-table{border-collapse:separate;border-spacing:0 10px;width:100%;min-width:980px}.tp-app .data-table th{text-align:left;color:var(--ink-muted);padding:0 12px;font-size:12px;font-weight:400}.tp-app .data-table td{background:var(--surface-sunken);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);vertical-align:middle;padding:12px;font-size:13px}.tp-app .data-table td:first-child{border-left:1px solid var(--rule);border-radius:var(--r-xl) 0 0 var(--r-xl)}.tp-app .data-table td:last-child{border-right:1px solid var(--rule);border-radius:0 var(--r-xl) var(--r-xl) 0}.tp-app .table-input{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);width:100%;min-width:150px;height:34px;color:var(--ink-soft);outline:none;padding:0 10px}.tp-app .table-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #156cdd4d;box-shadow:0 0 0 3px lab(46.0325% 10.0637 -65.8874/.3)}.tp-app .table-select{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-lg);height:34px;color:var(--ink-soft);outline:none;padding:0 10px}.tp-app .calendar-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.tp-app .calendar-title{font-size:20px}.tp-app .calendar-grid{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.tp-app .weekday{text-align:center;color:var(--ink-muted);padding:4px;font-size:12px}.tp-app .day{border:1px solid var(--rule);border-radius:var(--r-xl);background:var(--surface-sunken);min-height:132px;padding:9px;overflow:hidden}.tp-app .day.out{opacity:.45}.tp-app .day.today{border-color:var(--accent);background:var(--accent-wash)}.tp-app .day-num{color:var(--ink-muted);margin-bottom:7px;font-size:12px}.tp-app .cal-task{text-align:left;border:1px solid var(--rule);border-radius:var(--r-sm);width:100%;margin-bottom:var(--space-2xs);font-size:var(--t-2xs);background:var(--surface);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);padding:5px 7px 5px 18px;display:block;position:relative;overflow:hidden}.tp-app .cal-task:hover{background:var(--surface-hover);border-color:var(--rule-strong)}.tp-app .cal-task:before{content:"";border-radius:var(--r-full);background:var(--ink-faint);width:5px;height:5px;position:absolute;top:50%;left:7px;translate:0 -50%}.tp-app .cal-task.major:before{background:var(--danger)}.tp-app .cal-task.high:before{background:var(--caution)}.tp-app .cal-task.normal:before{background:var(--positive)}@media (max-width:900px){.tp-app .calendar-grid{grid-template-columns:1fr}.tp-app .weekday{display:none}}.tp-app .gantt-wrap{overscroll-behavior-x:contain;border:1px solid var(--rule);border-radius:var(--r-xl);max-height:min(68vh,680px);overflow:auto}.tp-app .gantt{width:max-content;min-width:100%}.tp-app .gantt-row{border-bottom:1px solid var(--rule);grid-template-columns:260px max-content;min-height:48px;display:grid}.tp-app .gantt-row:last-child{border-bottom:0}.tp-app .gantt-head{z-index:2;background:var(--surface);position:sticky;top:0}.tp-app .gantt-task-name{z-index:1;background:var(--surface-sunken);border-right:1px solid var(--rule);align-items:center;gap:8px;padding:12px;font-size:13px;display:flex;position:sticky;left:0}.tp-app .gantt-head .gantt-task-name{z-index:3}.tp-app .gantt-scale{grid-template-columns:repeat(var(--days), var(--day-w));align-content:start;display:grid;position:relative}.tp-app .gantt-months{grid-column:1/-1;grid-template-columns:repeat(var(--days), var(--day-w));border-bottom:1px solid var(--rule);display:grid}.tp-app .gantt-month{color:var(--ink-muted);white-space:nowrap;padding:6px 8px;font-size:11px;font-weight:600;position:sticky;left:268px;overflow:hidden}.tp-app .gantt-month+.gantt-month{border-left:1px solid var(--rule)}.tp-app .gantt-day{border-right:1px solid var(--surface-sunken);color:var(--ink-muted);text-align:center;padding:8px 4px;font-size:11px}.tp-app .gantt-day:last-child{border-right:0}.tp-app .gantt-day.weekend{background:var(--surface-sunken)}.tp-app .gantt-day.today{background:var(--accent-wash);color:var(--accent)}.tp-app .gantt-period{color:var(--ink-muted);font-size:12px}.tp-app .view-head-title{align-items:baseline;gap:10px;min-width:0;display:flex}.tp-app .gantt-note{color:var(--ink-muted);margin:10px 0 0;font-size:12px}.tp-app .gantt-bar{border-radius:var(--r-full);background:var(--accent);height:24px;color:var(--on-ink);white-space:nowrap;align-items:center;padding:0 10px;font-size:11px;display:flex;position:absolute;top:12px;overflow:hidden}.tp-app .gantt-bar.major{background:var(--danger)}.tp-app .gantt-bar.high{background:var(--caution);color:var(--ink)}.tp-app .gantt-bar.normal{background:var(--positive)}.tp-app .gantt-bar{cursor:pointer;gap:4px;min-width:0}.tp-app .gantt-bar-label{text-overflow:ellipsis;overflow:hidden}.tp-app .gantt-bar.clipped-start{border-top-left-radius:2px;border-bottom-left-radius:2px}.tp-app .gantt-bar.clipped-end{border-top-right-radius:2px;border-bottom-right-radius:2px}.tp-app .my-tasks-view{height:100%;padding:18px 22px 40px;overflow:auto}.tp-app .my-tasks-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.tp-app .my-tasks-head h2{letter-spacing:-.03em;color:var(--ink);margin:0;font-size:22px}.tp-app .my-tasks-count{background:var(--accent-wash);color:var(--accent);border-radius:var(--r-full);padding:2px 10px;font-size:13px;font-weight:600}.tp-app .my-tasks-create{height:34px;margin-left:auto}.tp-app .my-tasks-head p{width:100%;color:var(--ink-muted);margin:0;font-size:13px}.tp-app .my-tasks-group{margin-bottom:20px}.tp-app .my-tasks-group-title{align-items:center;gap:var(--space-xs);width:100%;color:var(--ink-soft);border-radius:var(--r-sm);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;margin-bottom:8px;margin-left:-8px;padding:6px 8px;font-size:14px;font-weight:600;display:flex}.tp-app .my-tasks-group-title:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .my-tasks-group-title>.tp-icon{color:var(--ink-muted);flex:none}.tp-app .my-tasks-group-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:500}.tp-app .my-tasks-group-board{color:var(--ink-muted);font-weight:400}.tp-app .my-tasks-list{flex-direction:column;gap:8px;display:flex}.tp-app .my-task-row{text-align:left;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);cursor:pointer;width:100%;transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);grid-template-columns:1.4fr 2fr 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.tp-app .my-task-row:hover{border-color:var(--rule-strong);background:var(--surface-hover)}.tp-app .my-task-row.done .my-task-title{color:var(--ink-muted);text-decoration:line-through}.tp-app .my-task-title{color:var(--ink);min-width:0;font-size:14px}.tp-app .my-task-chips{flex-wrap:wrap;gap:6px;display:flex}.tp-app .my-task-assignees{color:var(--ink-muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}@media (max-width:760px){.tp-app .my-task-row{grid-template-columns:1fr;gap:8px}.tp-app .my-task-assignees{text-align:left}}}@layer layout{.tp-app .app{height:100vh;min-height:100vh;display:flex;overflow:hidden}.tp-app .main{flex-direction:column;flex:1;min-width:0;display:flex}.tp-app .content{flex-direction:column;height:calc(100vh - 70px);min-height:0;padding:14px 22px 28px;display:flex;overflow:hidden}.tp-app .panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);min-height:610px;padding:18px}@media (max-width:600px){.tp-app .content{padding:12px 12px 16px}}.tp-app .sidebar{background:var(--surface);border-right:1px solid var(--rule);overscroll-behavior:contain;flex-direction:column;flex:none;gap:16px;width:270px;max-height:100vh;padding:18px 14px;display:flex;overflow-y:auto}.tp-app .brand{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-xs) var(--space-md);border-bottom:1px solid var(--rule);display:flex}.tp-app .brand-title{font-size:var(--t-md)}.tp-app .brand-sub{font-size:var(--t-xs);color:var(--ink-muted);margin-top:var(--space-3xs);line-height:var(--lh-snug)}.tp-app .nav-title{padding:0 var(--space-sm);font-size:var(--t-2xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted)}.tp-app .nav-title.nav-group-title{padding:0}.tp-app .nav-group-toggle{align-items:center;gap:var(--space-3xs);width:100%;height:26px;padding:0 var(--space-sm);cursor:pointer;border-radius:var(--r-sm);font-size:var(--t-2xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;display:flex}.tp-app .nav-group-toggle:hover{background:var(--surface-hover);color:var(--ink-soft)}.tp-app .nav-group-toggle>.tp-icon{color:var(--ink-faint);flex:none}.tp-app .nav-group-toggle:hover>.tp-icon{color:var(--ink-soft)}.tp-app .nav-group-label{white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:1;min-width:0;overflow:hidden}.tp-app .nav-group-count{color:var(--ink-faint);font-variant-numeric:tabular-nums;margin-left:auto}.tp-app .nav{gap:var(--space-3xs);flex-direction:column;display:flex}.tp-app .spacer{flex:1}.tp-app .nav-item{align-items:center;gap:var(--space-sm);height:36px;padding:0 var(--space-sm);border-radius:var(--r-sm);color:var(--ink-soft);font-size:var(--t-sm);text-align:left;width:100%;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;display:flex;position:relative}.tp-app .nav-item>.tp-icon{width:var(--icon-slot);flex:0 0 var(--icon-slot);color:var(--ink-muted);transition:color var(--dur-fast) var(--ease-out)}.tp-app .nav-item .count{color:var(--ink-muted);font-size:var(--t-xs);font-variant-numeric:tabular-nums;margin-left:auto}.tp-app .nav-item.my-tasks-link{font-size:var(--t-2xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase}.tp-app .nav-item:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .nav-item:hover>.tp-icon{color:var(--ink-soft)}.tp-app .nav-item.active{background:var(--accent-wash);color:var(--ink);font-weight:var(--w-medium)}.tp-app .nav-item.active>.tp-icon,.tp-app .nav-item.active .count{color:var(--accent-ink)}.tp-app .nav-item.logout{color:var(--ink-muted)}.tp-app .nav-item.logout:hover{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .nav-item.logout:hover>.tp-icon{color:var(--danger-strong)}.tp-app .chat-nav-row{align-items:center;gap:2px;display:flex}.tp-app .chat-nav-row .nav-item{flex:1;width:auto;min-width:0}.tp-app .chat-nav-toggle{border-radius:var(--r-sm);width:26px;height:26px;color:var(--ink-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;display:grid}.tp-app .chat-nav-toggle:hover{background:var(--surface-hover);color:var(--ink-soft)}.tp-app .sidebar-chats{gap:var(--space-3xs);margin-left:var(--space-sm);padding-left:var(--space-sm);padding-block:var(--space-3xs);border-left:1px solid var(--rule);flex-direction:column;display:flex}.tp-app .sidebar-chats-more{color:var(--ink-muted);padding-left:calc(var(--icon-slot) + var(--space-xs))}.tp-app .sidebar-chats-more:hover{color:var(--accent-ink)}.tp-app .sidebar-chats-more .sidebar-chat-count{color:var(--ink-muted);font-weight:var(--w-medium);background:0 0}.tp-app .sidebar{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}.tp-app .sidebar::-webkit-scrollbar{width:8px}.tp-app .sidebar::-webkit-scrollbar-track{background:0 0}.tp-app .sidebar::-webkit-scrollbar-thumb{background:var(--rule-strong);border-radius:var(--r-full);background-clip:content-box;border:2px solid #0000}.tp-app .sidebar-chat{align-items:center;gap:var(--space-xs);width:100%;height:32px;padding:0 var(--space-xs);border-radius:var(--r-sm);color:var(--ink-soft);font-size:var(--t-sm);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;display:flex}.tp-app .sidebar-chat>.tp-icon{color:var(--ink-muted);transition:color var(--dur-fast) var(--ease-out);flex:none}.tp-app .sidebar-chat:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .sidebar-chat:hover>.tp-icon{color:var(--ink-soft)}.tp-app .sidebar-chat:has(.sidebar-chat-count){color:var(--ink);font-weight:var(--w-medium)}.tp-app .sidebar-chat:has(.sidebar-chat-count)>.tp-icon{color:var(--accent)}.tp-app .sidebar-chat-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tp-app .sidebar-chat-count{border-radius:var(--r-full);background:var(--accent-wash);min-width:18px;height:18px;color:var(--accent);font-size:10px;font-weight:var(--w-semibold);font-variant-numeric:tabular-nums;flex:none;place-items:center;padding:0 5px;display:grid}.tp-app .nav-item.project-link{overflow-wrap:anywhere;align-items:flex-start;height:auto;min-height:38px;padding-top:8px;padding-bottom:8px;line-height:1.35}.tp-app .project-row{flex-direction:column;display:flex;position:relative}.tp-app .project-row-main{align-items:flex-start;gap:2px;display:flex}.tp-app .project-row .project-link{flex:1;width:auto;min-width:0}.tp-app .board-strip{gap:var(--space-3xs);margin-left:var(--space-sm);padding-left:var(--space-sm);padding-block:var(--space-3xs);border-left:1px solid var(--rule);flex-direction:column;display:flex}.tp-app .board-tab{align-items:center;gap:var(--space-3xs);min-height:30px;padding:0 var(--space-2xs);border-radius:var(--r-sm);color:var(--ink-soft);font-size:var(--t-sm);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;display:flex}.tp-app .board-tab:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .board-tab.active{background:var(--accent-wash);color:var(--ink);font-weight:var(--w-medium)}.tp-app .board-tab--drop{background:var(--accent-wash);box-shadow:inset 0 0 0 1px var(--accent-edge);color:var(--ink)}.tp-app .board-tab--dragging{opacity:.45}.tp-app .board-tab--reorder-over{box-shadow:inset 2px 0 0 0 var(--accent)}.tp-app .board-tab[draggable=true]{cursor:grab}.tp-app .board-tab--dragging{cursor:grabbing}.tp-app .board-tab-label{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;padding:6px 0;overflow:hidden}.tp-app .project-boards-toggle{width:26px;height:38px;color:var(--ink-muted);border-radius:var(--r-lg);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.tp-app .project-boards-toggle:hover{background:var(--rule);color:var(--ink-soft)}.tp-app .project-menu-btn{width:30px;height:38px;color:var(--ink-muted);border-radius:var(--r-lg);cursor:pointer;opacity:1;background:0 0;border:0;flex:none;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background .12s,color .12s;display:flex}.tp-app .project-menu-btn:hover{background:var(--rule);color:var(--ink-soft)}.tp-app .project-link.project-shared{padding-left:var(--space-sm)}.tp-app .project-shared-main{align-items:flex-start;gap:8px;min-width:0;display:flex}.tp-app .project-owner-avatar{border-radius:var(--r-md);background:var(--ink-faint);width:20px;height:20px;color:var(--on-ink);text-transform:uppercase;flex:none;justify-content:center;align-items:center;margin-top:1px;font-size:9px;font-weight:600;line-height:1;display:flex}.tp-app .project-owner-avatar--empty{background:var(--rule-strong);font-size:13px}.tp-app .project-shared-text{flex-direction:column;min-width:0;display:flex}.tp-app .project-shared-name{overflow-wrap:anywhere}.tp-app .project-owner{color:var(--ink-muted);overflow-wrap:anywhere;margin-top:1px;font-size:11px}.tp-app .project-title{letter-spacing:-.03em;font-size:18px}.tp-app .brand-logo{border-radius:var(--r-lg);flex:none;width:34px;height:34px}.tp-app .project-target{justify-content:space-between;align-items:center;gap:8px;display:flex}.tp-app .project-target span{color:var(--ink-muted);font-size:12px}.tp-app .add-project-btn{border:1px dashed var(--rule-strong);color:var(--ink-muted);justify-content:center;margin-top:4px}.tp-app .add-project-btn:hover{background:var(--surface-sunken);color:var(--accent);border-color:var(--accent-edge)}@media (max-width:900px){.tp-app .sidebar{display:none}}.tp-app .topbar{background:var(--surface);border-bottom:1px solid var(--rule);flex:none;align-items:center;gap:14px;height:70px;padding:0 22px;display:flex}.tp-app .project-title-edit{border-radius:var(--r-md);width:30px;height:30px;color:var(--ink-faint);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;display:grid}.tp-app .project-title-edit:hover{background:var(--surface-hover);color:var(--accent-ink)}.tp-app .top-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.tp-app .profile-chip{align-items:center;gap:var(--space-xs);max-width:260px;height:38px;padding:0 var(--space-sm) 0 var(--space-2xs);border:1px solid var(--rule);border-radius:var(--r-full);background:var(--surface);color:var(--ink-soft);font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);display:inline-flex}.tp-app .profile-chip:hover{background:var(--surface-hover);border-color:var(--rule-strong);color:var(--ink)}.tp-app .profile-chip-icon{border-radius:var(--r-full);background:var(--surface-sunken);width:28px;height:28px;color:var(--ink-muted);flex:none;place-items:center;display:grid}.tp-app .profile-chip:hover .profile-chip-icon{background:var(--accent-wash);color:var(--accent-ink)}.tp-app .profile-chip-name{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--w-medium);overflow:hidden}.tp-app .search{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-md);width:300px;height:38px;padding:0 var(--space-sm);color:var(--ink-muted);align-items:center;gap:var(--space-xs);font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:flex}.tp-app .search:focus-within{background:var(--surface);border-color:var(--accent);color:var(--accent-ink)}.tp-app .search input{width:100%;color:var(--ink);font-size:var(--t-sm);background:0 0;border:0;outline:none}.tp-app .search input::placeholder{color:var(--ink-muted)}.tp-app .search input:focus-visible{outline:none}@media (max-width:900px){.tp-app .search{display:none}}@media (max-width:700px){.tp-app .profile-chip{border-radius:var(--r-full);justify-content:center;width:38px;padding:0}.tp-app .profile-chip-name{display:none}}.tp-app .tabs-filters{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tp-app .tabs{gap:var(--space-2xs);background:var(--surface-sunken);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--space-2xs);display:flex}.tp-app .tab{align-items:center;gap:var(--space-xs);height:32px;padding:0 var(--space-sm);border-radius:var(--r-sm);color:var(--ink-muted);font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;display:flex}.tp-app .tab>.tp-icon{color:var(--ink-muted)}.tp-app .tab:hover{background:var(--surface-hover);color:var(--ink)}.tp-app .tab.active,.tp-app .tab.active:hover{background:var(--accent-wash);color:var(--ink);font-weight:var(--w-medium)}.tp-app .tab.active>.tp-icon{color:var(--accent-ink)}.tp-app .filters{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tp-app .filter{border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-md);height:36px;padding:0 var(--space-sm);color:var(--ink-soft);font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-items:center;gap:7px;display:flex}.tp-app .filter:hover{background:var(--surface-hover);border-color:var(--rule-strong);color:var(--ink)}.tp-app .filter.active{background:var(--accent-wash);color:var(--accent-ink);border-color:var(--accent-edge);font-weight:var(--w-medium)}.tp-app .filter-reset{width:36px;color:var(--ink-muted);justify-content:center;padding:0}.tp-app .filter-badges{flex-wrap:wrap;flex:none;gap:8px;margin:0 0 16px;display:flex}.tp-app .filter-badge{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-full);color:var(--ink-soft);align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.tp-app .filter-badge button{color:var(--ink-muted);background:0 0;border:0}.tp-app .view-panel{display:none}.tp-app .view-panel.active{flex:auto;min-height:0;display:block;overflow:auto}.tp-app .view-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.tp-app .view-head h2{margin:0;font-size:21px;font-weight:400}.tp-app .view-actions{align-items:center;gap:8px;display:flex}@media (max-width:900px){.tp-app .tabs-filters{flex-direction:column;align-items:flex-start}}}@layer state{.tp-app .tag.date.overdue,.tp-app .tag.date.due-overdue,.tp-app .tag.date.due-today{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .tag.date.due-soon{background:var(--caution-wash);color:var(--caution-ink)}.tp-app .tag.overdue-badge{background:var(--danger-wash);color:var(--danger-strong);border:1px solid var(--danger-edge);font-weight:var(--w-semibold);cursor:default}.tp-app .tag.overdue-badge>.tp-icon{color:var(--danger)}.tp-app .tag.overdue-badge.due-soon{background:var(--caution-wash);color:var(--caution-ink);border-color:var(--caution-edge)}.tp-app .tag.overdue-badge.due-soon>.tp-icon{color:var(--caution)}.tp-app .list-table td.overdue,.tp-app .list-table td.due-overdue,.tp-app .list-table td.due-today{color:var(--danger-strong);font-weight:var(--w-semibold)}.tp-app .list-table td.due-soon{color:var(--caution-ink);font-weight:var(--w-semibold)}.tp-app .cal-task.overdue,.tp-app .cal-task.due-overdue,.tp-app .cal-task.due-today{border-color:var(--danger-edge);background:var(--danger-wash);color:var(--danger-strong)}.tp-app .cal-task.overdue:before,.tp-app .cal-task.due-overdue:before,.tp-app .cal-task.due-today:before{background:var(--danger)}.tp-app .cal-task.due-soon{border-color:var(--caution-edge);background:var(--caution-wash);color:var(--caution-ink)}.tp-app .cal-task.due-soon:before{background:var(--caution)}.tp-app .gantt-bar.overdue,.tp-app .gantt-bar.due-overdue,.tp-app .gantt-bar.due-today{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--danger)}.tp-app .gantt-bar.due-soon{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--caution)}.tp-app .detail-chip.overdue,.tp-app .detail-chip.due-overdue,.tp-app .detail-chip.due-today{background:var(--danger-wash);color:var(--danger-strong);border-color:var(--danger-edge)}.tp-app .detail-chip.due-soon{background:var(--caution-wash);color:var(--caution-ink);border-color:var(--caution-edge)}.tp-app .my-task-chips .tag.status.overdue,.tp-app .my-task-chips .tag.status.due-overdue,.tp-app .my-task-chips .tag.status.due-today{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .my-task-chips .tag.status.due-soon{background:var(--caution-wash);color:var(--caution-ink)}.tp-app .task-drop-line{border-radius:var(--r-full);background:var(--accent);height:2px;margin:-1px 0}.tp-app .task.dragging{opacity:.9;border-color:var(--accent);box-shadow:var(--shadow-pop);transform:rotate(.4deg)scale(1.01)}.tp-app .drag-lock{color:var(--danger);background:var(--danger-wash);border-radius:var(--r-full);margin-top:8px;margin-left:29px;padding:4px 8px;font-size:11px;display:inline-flex}.tp-app .move-hint{z-index:120;background:var(--ink);color:var(--on-ink);border-radius:var(--r-xl);padding:12px 16px;font-size:13px;display:none;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 16px 34px #1d21262e;box-shadow:0 16px 34px lab(12.3794% -.620395 -4.38416/.18)}.tp-app .move-hint.open{display:block}.tp-app .permission-note{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);color:var(--ink-muted);align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:12px;display:flex}.tp-app .permission-note span{color:var(--accent)}.tp-app .locked-action{opacity:.45;pointer-events:auto;cursor:not-allowed!important}.tp-app .locked-action:hover{background:var(--surface)!important}.tp-app .action-lock-note{border-radius:var(--r-lg);background:var(--caution-wash);color:var(--caution-ink);border:1px solid var(--caution-edge);margin:6px 8px 8px;padding:9px 10px;font-size:12px;line-height:1.35}.tp-app .delegation-hint{width:100%;color:var(--ink-muted);margin-top:4px;font-size:12px}.tp-app .nav-item.disabled-module{color:var(--rule-strong);cursor:not-allowed;opacity:.78}.tp-app .nav-item.disabled-module:hover{background:0 0}.tp-app .nav-item.disabled-module .count{color:var(--rule-strong)}.tp-app .input-error,.tp-app .input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #d4353124;box-shadow:0 0 0 3px lab(48.7587% 61.5671 41.9964/.14)}.tp-app .field-error{color:var(--danger-strong);font-size:var(--t-xs);margin-top:var(--space-2xs)}.tp-app .tp-stale-banner{z-index:95;background:var(--caution-wash);border:1px solid var(--caution-edge);color:var(--caution-ink);border-radius:var(--r-lg);box-shadow:var(--shadow-overlay);align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.tp-app .tp-stale-banner button{border:1px solid var(--caution-edge);background:var(--surface);color:var(--caution-ink);border-radius:var(--r-lg);cursor:pointer;padding:5px 12px;font-size:13px;font-weight:600}}@layer utility;
