@layer tokens{.tp-app{--paper:#f8f9fa;--surface:#fefeff;--surface-sunken:#f5f6f8;--surface-inset:#f5f6f8;--surface-hover:#eff0f4;--ink:#1d2126;--ink-soft:#4e5158;--ink-muted:#6d7077;--ink-faint:#81858b;--on-ink:#fbfcfd;--rule:#dee0e3;--rule-strong:#cdcfd4;--accent:#3268de;--accent-hover:#2053c4;--accent-active:#1645ae;--on-accent:#fbfcfd;--accent-ink:#224dac;--accent-wash:#edf4ff;--accent-edge:#ccdfff;--accent-wash-strong:#e1ecff;--danger:#d3324b;--danger-strong:#bb0a37;--danger-wash:#ffeaea;--danger-edge:#fdbcbd;--on-danger:#fbfaf7;--positive:#218456;--positive-strong:#036e43;--positive-wash:#e1f8ea;--positive-edge:#acddbf;--caution:#e79429;--caution-ink:#7b4900;--caution-wash:#ffeedc;--caution-edge:#fecd9b;--rose:#b74898;--rose-ink:#8b3473;--rose-wash:#fdebf6;--rose-edge:#f8c9e7;--sky:#0d93ca;--sky-ink:#15739e;--sky-wash:#e5f4fe;--sky-edge:#b7e0f9;--info:#7446b6;--info-wash:#f2edff;--info-edge:#d8cbf5;--app-tasker:var(--accent);--app-tasker-ink:var(--accent-ink);--app-tasker-wash:var(--accent-wash);--app-message:var(--positive);--app-message-ink:var(--positive);--app-message-wash:var(--positive-wash);--app-docs:var(--info);--app-docs-ink:var(--info);--app-docs-wash:var(--info-wash);--app-wiki:var(--rose);--app-wiki-ink:var(--rose-ink);--app-wiki-wash:var(--rose-wash);--app-graph:var(--sky);--app-graph-ink:var(--sky-ink);--app-graph-wash:var(--sky-wash);--focus-ring:var(--accent);--chart-1:#3268de;--chart-2:#ce7f09;--chart-3:#6f38b7;--chart-4:#009898;--chart-5:#c12440;--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;--tint-white:#fff;--tint-gray:#f1f5f9;--tint-pink:#fff0f6;--tint-beige:#f6f0e8;--tint-yellow:#fff8de;--tint-green:#eef8f1;--tint-mint:#ecfdf5;--tint-blue:#eef6ff;--tint-violet:#f3efff;--column-card-white:var(--surface);--column-card-gray:var(--surface);--column-card-pink:var(--surface);--column-card-beige:var(--surface);--column-card-yellow:var(--surface);--column-card-green:var(--surface);--column-card-mint:var(--surface);--column-card-blue:var(--surface);--column-card-violet:var(--surface);--scrim:#1d21261f;--scrim-strong:#1d212647;--scrim-deep:#1d21265c;--focus-glow:#3268de4d;--focus-glow-strong:#3268de8c;--focus-glow-out:#3268de00;--danger-glow:#d3324b24;--shadow-hair:#1d212617;--shadow-soft:#1d212629;--shadow-mid:#1d212633;--shadow-deep:#1d212640;--inset-hairline:#1d212624;--quote-fill:#1d21260d;--quote-edge:#1d21261a;--wave-track:#99b8f2;--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;--wiki-text-blue-bold:#1558bc;--wiki-text-teal-bold:#206a83;--wiki-text-green-bold:#216e4e;--wiki-text-orange-bold:#e06c00;--wiki-text-red-bold:#ae2e24;--wiki-text-purple-bold:#803fa5;--wiki-text-grey:#7d818a;--wiki-text-blue:#357de8;--wiki-text-teal:#2898bd;--wiki-text-green:#22a06b;--wiki-text-yellow:#fca700;--wiki-text-red:#c9372c;--wiki-text-purple:#af59e1;--wiki-text-white:#fff;--wiki-text-blue-subtle:#cfe1fd;--wiki-text-teal-subtle:#c6edfb;--wiki-text-green-subtle:#baf3db;--wiki-text-yellow-subtle:#f5e989;--wiki-text-red-subtle:#ffd5d2;--wiki-text-purple-subtle:#eed7fc;--wiki-mark-grey:#dddee1;--wiki-mark-purple:#eed7fc;--wiki-mark-magenta:#fdd0ec;--wiki-mark-orange:#fce4a6;--wiki-mark-yellow:#f5e989;--wiki-mark-lime:#d3f1a7;--wiki-mark-teal:#c6edfb}@supports (color:lab(0% 0 0)){.tp-app{--paper:lab(97.9045% -.0737309 -.755477);--surface:lab(99.7643% -.0371337 -.377941);--surface-sunken:lab(96.7407% -.109524 -1.13271);--surface-inset:lab(96.7407% -.109524 -1.13271);--surface-hover:lab(94.8769% -.17935 -1.88594);--ink:lab(12.3652% -.270434 -4.44543);--ink-soft:lab(34.4096% -.349537 -4.48228);--ink-muted:lab(47.1752% -.3452 -4.12148);--ink-faint:lab(55.3% -.32565 -3.75317);--on-ink:lab(98.8325% -.0736713 -.755525);--rule:lab(88.9609% -.178903 -1.88568);--rule-strong:lab(83.153% -.244945 -2.63672);--accent:lab(45.7626% 15.2463 -66.8704);--accent-hover:lab(37.5118% 17.6072 -65.0174);--accent-active:lab(31.7313% 18.0749 -61.4778);--on-accent:lab(98.8325% -.0736713 -.755525);--accent-ink:lab(34.4447% 13.4406 -56.2867);--accent-wash:lab(95.8358% -.741065 -9.34452);--accent-edge:lab(88.1069% -1.01888 -22.0916);--accent-wash-strong:lab(92.8617% -.981241 -14.8533);--danger:lab(48.5748% 63.1442 26.9242);--danger-strong:lab(40.4174% 63.8052 28.1027);--danger-wash:lab(94.4901% 8.98618 3.40502);--danger-edge:lab(82.3964% 24.097 9.27122);--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(68.8529% 26.5206 65.0126);--caution-ink:lab(36.4619% 19.1041 49.2273);--caution-wash:lab(95.3327% 5.89585 15.1132);--caution-edge:lab(85.9642% 13.0448 31.7593);--rose:lab(48.2649% 52.2081 -21.0454);--rose-ink:lab(36.5138% 42.9852 -17.329);--rose-wash:lab(94.7999% 7.63336 -3.04153);--rose-edge:lab(85.7644% 20.5183 -8.19496);--sky:lab(56.5421% -17.6199 -38.468);--sky-ink:lab(44.945% -14.4871 -31.1129);--sky-wash:lab(95.4149% -3.90464 -6.52643);--sky-edge:lab(86.778% -9.68862 -16.8491);--info:lab(39.8427% 37.9903 -52.9881);--info-wash:lab(94.4687% 4.8199 -9.17969);--info-edge:lab(83.6394% 10.715 -19.4375);--chart-1:lab(45.7626% 15.2463 -66.8704);--chart-2:lab(60.7224% 26.031 65.1794);--chart-3:lab(36.3968% 44.4418 -59.0878);--chart-4:lab(56.6052% -39.2822 -11.7383);--chart-5:lab(43.4146% 61.2172 26.3782);--chart-6:lab(55.961% -43.3971 26.0375);--chart-7:lab(54.7204% 55.8231 -10.8211);--status-new:lab(55.3% -.32565 -3.75317);--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);--scrim:lab(12.3652% -.270434 -4.44543/.12);--scrim-strong:lab(12.3652% -.270434 -4.44543/.28);--scrim-deep:lab(12.3652% -.270434 -4.44543/.36);--focus-glow:lab(45.7626% 15.2463 -66.8704/.3);--focus-glow-strong:lab(45.7626% 15.2463 -66.8704/.55);--focus-glow-out:lab(45.7626% 15.2463 -66.8704/0);--danger-glow:lab(48.5748% 63.1442 26.9242/.14);--shadow-hair:lab(12.3652% -.270434 -4.44543/.09);--shadow-soft:lab(12.3652% -.270434 -4.44543/.16);--shadow-mid:lab(12.3652% -.270434 -4.44543/.2);--shadow-deep:lab(12.3652% -.270434 -4.44543/.25);--inset-hairline:lab(12.3652% -.270434 -4.44543/.14);--quote-fill:lab(12.3652% -.270434 -4.44543/.05);--quote-edge:lab(12.3652% -.270434 -4.44543/.1);--wave-track:lab(73.9594% -.109732 -32.6745)}}[data-theme=dark] .tp-app{--paper:#181818;--surface:#2b2b2b;--surface-sunken:#090909;--surface-inset:#242424;--surface-hover:#393939;--ink:#fafafa;--ink-soft:#e2e2e2;--ink-muted:#c8c8c8;--ink-faint:#ababab;--on-ink:#181818;--rule:#484848;--rule-strong:#636363;--accent:#6e9dfc;--accent-hover:#83adff;--accent-active:#a2c1fc;--on-accent:#09101e;--accent-ink:#8bb0fa;--accent-wash:#24324f;--accent-edge:#314a7c;--accent-wash-strong:#24375c;--danger:#f86c77;--danger-strong:#f98d91;--danger-wash:#57272a;--danger-edge:#7e2f36;--on-danger:#1a0c0c;--positive:#3fbf81;--positive-strong:#71d69f;--positive-wash:#153a27;--positive-edge:#1e5a3c;--caution:#f6a74c;--caution-ink:#ffbd76;--caution-wash:#492d0b;--caution-edge:#724c21;--rose:#e17cc2;--rose-ink:#f19fd6;--rose-wash:#48273e;--rose-edge:#6f4361;--sky:#81cffc;--sky-ink:#9ddafe;--sky-wash:#17384a;--sky-edge:#275a75;--info:#b68ffb;--info-wash:#3c2e55;--info-edge:#58427e;--app-tasker:var(--accent);--app-tasker-ink:var(--accent-ink);--app-tasker-wash:var(--accent-wash);--app-message:var(--positive);--app-message-ink:var(--positive);--app-message-wash:var(--positive-wash);--app-docs:var(--info);--app-docs-ink:var(--info);--app-docs-wash:var(--info-wash);--app-wiki:var(--rose);--app-wiki-ink:var(--rose-ink);--app-wiki-wash:var(--rose-wash);--app-graph:var(--sky);--app-graph-ink:var(--sky-ink);--app-graph-wash:var(--sky-wash);--focus-ring:var(--accent);--chart-1:#6e9dfc;--chart-2:#f1a54f;--chart-3:#966add;--chart-4:#4fc6c6;--chart-5:#e75e6a;--chart-6:#62c581;--chart-7:#e274ab;--status-new:#828282;--status-progress:var(--accent);--status-review:var(--info);--status-done:var(--positive);--status-overdue:var(--danger);--shadow-pop:0 1px 1px #00010166, 0 10px 24px -10px #0001019e;--shadow-overlay:0 2px 4px #00010173, 0 24px 48px -16px #000101b3;--tint-white:#202020;--tint-gray:#1e2124;--tint-pink:#390d25;--tint-beige:#2e1c07;--tint-yellow:#262009;--tint-green:#0c2713;--tint-mint:#0c261e;--tint-blue:#0a2139;--tint-violet:#271048;--column-card-white:#2c2c2c;--column-card-gray:#262d34;--column-card-pink:#4d0f32;--column-card-beige:#3e2608;--column-card-yellow:#332b0b;--column-card-green:#0e3519;--column-card-mint:#0e3328;--column-card-blue:#0c2d4d;--column-card-violet:#351462;--scrim:#00010180;--scrim-strong:#000101a8;--scrim-deep:#000101c2;--focus-glow:#6b9af85c;--focus-glow-strong:#6b9af899;--focus-glow-out:#6b9af800;--danger-glow:#f86c774d;--shadow-hair:#00010159;--shadow-soft:#0001018c;--shadow-mid:#0001019e;--shadow-deep:#000101b8;--inset-hairline:#eff0f329;--quote-fill:#eff0f30f;--quote-edge:#eff0f321;--wave-track:#3f4d69;--wiki-text-blue-bold:#85b8ff;--wiki-text-teal-bold:#9dd9ee;--wiki-text-green-bold:#7ee2b8;--wiki-text-orange-bold:#fec57b;--wiki-text-red-bold:#fd9891;--wiki-text-purple-bold:#dfd8fd;--wiki-text-grey:#9fadbc;--wiki-text-blue:#579dff;--wiki-text-teal:#6cc3e0;--wiki-text-green:#4bce97;--wiki-text-yellow:#f5cd47;--wiki-text-red:#f87168;--wiki-text-purple:#b8acf6;--wiki-text-white:#1d2125;--wiki-text-blue-subtle:#09326c;--wiki-text-teal-subtle:#164555;--wiki-text-green-subtle:#164b35;--wiki-text-yellow-subtle:#533f04;--wiki-text-red-subtle:#5d1f1a;--wiki-text-purple-subtle:#352c63;--wiki-mark-grey:#454f59;--wiki-mark-purple:#352c63;--wiki-mark-magenta:#50253f;--wiki-mark-orange:#5f3811;--wiki-mark-yellow:#533f04;--wiki-mark-lime:#37471f;--wiki-mark-teal:#164555}@supports (color:lab(0% 0 0)){[data-theme=dark] .tp-app{--paper:lab(8.244% 0 -.00000298023);--surface:lab(17.64% -.0000149012 0);--surface-sunken:lab(2.5864% 0 0);--surface-inset:lab(14.16% 0 0);--surface-hover:lab(24.02% 0 0);--ink:lab(98.26% 0 0);--ink-soft:lab(89.792% 0 0);--ink-muted:lab(80.512% 0 0);--ink-faint:lab(69.84% 0 0);--on-ink:lab(8.244% 0 -.00000298023);--rule:lab(30.4% -.0000149012 0);--rule-strong:lab(42% 0 0);--accent:lab(64.6455% 4.59808 -52.7494);--accent-hover:lab(70.1218% 2.22883 -45.9169);--accent-active:lab(77.4467% -.236511 -32.7101);--on-accent:lab(4.69501% .37396 -9.72354);--accent-ink:lab(71.4245% 1.18119 -41.0607);--accent-wash:lab(20.7413% .980526 -19.7256);--accent-edge:lab(31.437% 3.01626 -32.0456);--accent-wash-strong:lab(22.9093% 2.07523 -24.9639);--danger:lab(63.9409% 55.3727 22.4983);--danger-strong:lab(70.7631% 42.4638 16.7875);--danger-wash:lab(22.6957% 22.527 9.01213);--danger-edge:lab(31.5407% 35.4184 14.5047);--on-danger:lab(4.65512% 6.14099 1.99861);--positive:lab(69.4246% -47.5072 20.9145);--positive-strong:lab(78.4551% -40.5474 17.8724);--positive-wash:lab(21.2659% -17.9115 7.89106);--positive-edge:lab(33.7728% -26.1455 11.5136);--caution:lab(75.3056% 23.9922 57.5417);--caution-ink:lab(81.786% 19.6628 46.9276);--caution-wash:lab(21.5417% 10.797 25.9355);--caution-edge:lab(36.0174% 13.3042 31.8553);--rose:lab(65.4049% 46.5074 -18.6849);--rose-ink:lab(75.125% 37.4764 -15.02);--rose-wash:lab(20.8575% 18.6561 -7.48807);--rose-edge:lab(34.5698% 23.367 -9.3726);--sky:lab(79.2622% -16.0483 -30.1184);--sky-ink:lab(83.9021% -13.4589 -24.2797);--sky-wash:lab(21.7512% -7.57805 -14.9488);--sky-edge:lab(35.6886% -10.54 -20.9129);--info:lab(66.5286% 31.3382 -48.8503);--info-wash:lab(21.8923% 14.113 -22.0711);--info-edge:lab(32.458% 20.5596 -31.4386);--chart-1:lab(64.6455% 4.59808 -52.7494);--chart-2:lab(74.1644% 23.0193 55.1114);--chart-3:lab(53.3792% 36.156 -53.2207);--chart-4:lab(73.2737% -34.3296 -10.3737);--chart-5:lab(58.7387% 54.7355 22.372);--chart-6:lab(72.1609% -41.507 24.7166);--chart-7:lab(63.1845% 48.2802 -9.30743);--status-new:lab(54.18% 0 0);--shadow-pop:0 1px 1px lab(.191019% .0031516 -.302702/.4), 0 10px 24px -10px lab(.191019% .0031516 -.302702/.62);--shadow-overlay:0 2px 4px lab(.191019% .0031516 -.302702/.45), 0 24px 48px -16px lab(.191019% .0031516 -.302702/.7);--tint-white:lab(12.42% -.00000745058 .00000298023);--tint-gray:lab(12.4145% -.911392 -2.79306);--tint-pink:lab(11.4002% 24.2044 -4.20134);--tint-beige:lab(12.3182% 7.35383 15.3252);--tint-yellow:lab(12.5697% .246026 14.7365);--tint-green:lab(13.0535% -15.0548 9.84667);--tint-mint:lab(12.895% -12.4353 2.28719);--tint-blue:lab(12.1699% -1.8802 -18.3284);--tint-violet:lab(10.7221% 22.4984 -31.0348);--column-card-white:lab(17.872% 0 0);--column-card-gray:lab(17.8556% -1.71815 -5.54035);--column-card-pink:lab(16.5418% 31.4134 -5.46446);--column-card-beige:lab(17.7283% 9.76357 22.5609);--column-card-yellow:lab(18.0561% .46365 21.1012);--column-card-green:lab(18.7026% -19.9313 13.1454);--column-card-mint:lab(18.4918% -16.2948 2.98923);--column-card-blue:lab(17.5223% -1.94599 -23.6961);--column-card-violet:lab(15.5456% 30.3355 -40.5176);--scrim:lab(.191019% .0031516 -.302702/.5);--scrim-strong:lab(.191019% .0031516 -.302702/.66);--scrim-deep:lab(.191019% .0031516 -.302702/.76);--focus-glow:lab(63.4762% 4.7555 -52.7264/.36);--focus-glow-strong:lab(63.4762% 4.7555 -52.7264/.6);--focus-glow-out:lab(63.4762% 4.7555 -52.7264/0);--danger-glow:lab(63.9409% 55.3727 22.4983/.3);--shadow-hair:lab(.191019% .0031516 -.302702/.35);--shadow-soft:lab(.191019% .0031516 -.302702/.55);--shadow-mid:lab(.191019% .0031516 -.302702/.62);--shadow-deep:lab(.191019% .0031516 -.302702/.72);--inset-hairline:lab(94.7648% -.14466 -1.50949/.16);--quote-fill:lab(94.7648% -.14466 -1.50949/.06);--quote-edge:lab(94.7648% -.14466 -1.50949/.13);--wave-track:lab(32.4273% -.000402331 -18.1359)}}}@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,.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 var(--focus-glow-strong)}70%{box-shadow:0 0 0 3px var(--focus-glow)}to{box-shadow:0 0 0 0 var(--focus-glow-out)}}}@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 .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,.messenger-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,.messenger-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{width:16px;height:16px;box-shadow:inset 0 0 0 1px var(--inset-hairline);cursor:pointer;border:2px solid #0000;border-radius:50%;flex:none}.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 var(--focus-glow)}.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 .input-dictate{position:relative}.tp-app .input-dictate .input{padding-right:46px}.tp-app .dictate-btn{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), border-color var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:6px;translate:0 -50%}.tp-app .dictate-btn:hover{background:var(--accent-wash);color:var(--accent)}.tp-app .dictate-btn.listening{background:var(--danger-wash);border-color:var(--danger);color:var(--danger-strong)}.tp-app .dictate-btn.listening svg{animation:1.1s ease-in-out infinite tp-dictate-pulse}@keyframes tp-dictate-pulse{0%,to{opacity:1}50%{opacity:.4}}.tp-app .progress-wrap{align-items:center;gap:8px;margin:10px 0 0 29px;display:flex}.tp-app .progress-wrap:has(>.subtasks-toggle){margin-left:8px}.tp-app .children-flat>.task>.progress-wrap:has(>.subtasks-toggle){margin-left:0}.tp-app .subtasks-toggle{width:21px;height:21px;color:var(--ink-muted);background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tp-app .subtasks-toggle:hover{background:var(--surface-hover);color:var(--ink)}.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 .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{width:100%;height:36px;font:inherit;text-align:left;border-radius:var(--r-lg);color:var(--ink);white-space:nowrap;cursor:pointer;background:0 0;border:0;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:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;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,.tp-app .menu-item:focus-within>.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{background:var(--scrim-strong);z-index:80;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);width:490px;box-shadow:0 28px 70px var(--shadow-deep);border:1px solid var(--rule);padding:18px}.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);width:264px;max-height:320px;box-shadow:0 18px 42px var(--shadow-soft);z-index:130;padding:8px;display:none;position:absolute;bottom:58px;left:92px;overflow:auto}.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 var(--focus-glow)}.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 .assignee-stack{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.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 .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);width:100%;max-height:230px;box-shadow:0 18px 42px var(--shadow-soft);z-index:140;padding:6px;display:none;position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.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 var(--focus-glow)}.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 .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-pane{background:var(--surface);flex-direction:column;height:100%;min-height:0;display:flex}.tp-app .chat-dock{border-right:1px solid var(--rule);flex:0 0 400px;width:400px}.tp-app .chat-dock .chat-drawer-head{box-sizing:border-box;align-items:center;height:70px;padding:0 16px}.tp-app .chat-dock .chat-head-info{flex:1}.tp-app .chat-dock .chat-drawer-title,.tp-app .chat-dock .chat-drawer-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tp-app .chat-dock-close{flex:none;margin-left:auto}.tp-app .group-head-menu-wrap+.chat-dock-close{margin-left:0}.tp-app .chat-dock-rail{border:0;border-right:1px solid var(--rule);background:var(--surface);cursor:pointer;flex-direction:column;flex:0 0 56px;align-items:center;gap:14px;padding:0;display:flex}.tp-app .chat-dock-rail-head{box-sizing:border-box;border-bottom:1px solid var(--rule);flex:none;justify-content:center;align-items:center;width:100%;height:70px;display:flex}.tp-app .chat-dock-rail:hover .chat-back{background:var(--surface-hover);color:var(--ink)}.tp-app .chat-dock-rail-chat{display:grid;position:relative}.tp-app .chat-dock-rail-count{border-radius:var(--r-full);background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);font-size:11px;font-weight:var(--w-semibold);place-items:center;padding:0 5px;line-height:1;display:grid;position:absolute;top:-6px;right:-8px}.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-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);box-shadow:0 1px 2px var(--shadow-hair);padding:6px 10px;position:relative}.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 var(--focus-glow)}.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-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-list-section{font-size:var(--t-xs);font-weight:var(--w-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);padding:10px 11px 2px}.tp-app .chat-person-row{align-items:center}.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;box-shadow:0 18px 46px var(--shadow-mid);padding:6px;position:fixed}.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);background:var(--quote-fill);border:1px solid var(--quote-edge);border-radius:var(--r-sm);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);width:min(380px,100vw - 32px);max-height:70vh;box-shadow:0 24px 60px var(--shadow-deep);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.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;box-shadow:0 18px 46px var(--shadow-mid);padding:6px;position:absolute;top:42px;right:0}.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);width:min(380px,100vw - 32px);max-height:80vh;box-shadow:0 24px 60px var(--shadow-deep);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.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:900px){.tp-app .chat-dock{z-index:95;width:min(400px,100vw);box-shadow:24px 0 60px var(--shadow-mid);position:fixed;inset:0 auto 0 0}}.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;box-shadow:0 1px 3px var(--shadow-deep);position:absolute;top:50%;transform:translate(-50%,-50%)}.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:var(--wave-track)}.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:var(--wave-track)}.tp-app .voice-player-error{color:var(--ink-muted);gap:6px;min-width:0;font-size:12px}.tp-app .messenger-page{gap:var(--space-md);grid-template-columns:340px minmax(0,1fr);height:100%;min-height:0;display:grid}.tp-app .messenger-list-pane,.tp-app .messenger-thread-pane{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);flex-direction:column;min-height:0;display:flex;overflow:hidden}.tp-app .messenger-thread-empty{padding:var(--space-lg);color:var(--ink-muted);font-size:var(--t-sm);text-align:center;margin:auto}@media (max-width:900px){.tp-app .messenger-page{grid-template-columns:minmax(0,1fr)}.tp-app .messenger-page:has(.chat-pane) .messenger-list-pane{display:none}}.tp-app .messenger-head{border-bottom:1px solid var(--rule);flex:none;align-items:center;gap:10px;height:76px;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);flex:none;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:none;grid-template-columns:1fr 1fr;gap:6px;margin:0 14px 8px;display:grid}.tp-app .messenger-filter:first-child{grid-column:1/-1}.tp-app .messenger-filter{border:1px solid var(--rule);background:var(--surface);min-width:0;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);justify-content:center;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);width:420px;max-width:92vw;height:100vh;box-shadow:-24px 0 60px var(--shadow-soft);z-index:94;flex-direction:column;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%)}.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 .activity-backdrop{background:var(--scrim);z-index:112;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);width:min(760px,100vw - 28px);height:100vh;box-shadow:-28px 0 70px var(--shadow-mid);z-index:113;flex-direction:column;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%)}.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 .analytics-backdrop{background:var(--scrim);z-index:112;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);width:min(920px,100vw - 28px);height:100vh;box-shadow:-28px 0 70px var(--shadow-mid);z-index:113;flex-direction:column;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%)}.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{background:var(--scrim-deep);z-index:200;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);width:min(1180px,96vw);max-height:92vh;box-shadow:0 30px 90px var(--shadow-deep);z-index:201;border-radius:22px;flex-direction:column;display:flex;overflow:hidden}.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-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{background:var(--scrim);z-index:105;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);width:min(1040px,100vw - 28px);height:100vh;box-shadow:-28px 0 70px var(--shadow-mid);z-index:106;flex-direction:column;transition:all .24s;display:flex;position:fixed;top:0;right:0;transform:translate(105%)}.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-name-edit{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tp-app .profile-name-input{letter-spacing:-.03em;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-md);min-width:240px;max-width:100%;padding:4px 10px;font-size:20px}.tp-app .profile-name-input:focus{border-color:var(--accent);outline:none}.tp-app .profile-name-save,.tp-app .profile-name-cancel{border-radius:var(--r-lg);border:1px solid var(--rule);background:var(--surface);height:34px;color:var(--ink);padding:0 12px;font-size:13px}.tp-app .profile-name-save{background:var(--accent);color:var(--on-ink);border-color:#0000}.tp-app :is(.profile-name-save,.profile-name-cancel):disabled{opacity:.6}.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-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-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{background:var(--scrim);z-index:88;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);width:min(760px,100vw - 32px);height:100vh;box-shadow:-28px 0 70px var(--shadow-mid);z-index:89;flex-direction:column;transition:transform .26s;display:flex;position:fixed;top:0;right:0;transform:translate(105%)}.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{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{background:var(--surface-sunken);border-color:var(--rule)}.tp-app .detail-input:focus,.tp-app .detail-select:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-glow)}.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 var(--focus-glow)}.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-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{background:var(--scrim-strong);z-index:150;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;box-shadow:0 28px 70px var(--shadow-deep);padding:18px}.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]),.tp-app .project-modal textarea.grow-input{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,.tp-app .project-modal textarea.grow-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-glow)}.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]),.tp-app .project-field textarea.grow-input{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-field textarea.grow-input:focus,.tp-app .project-participants-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-glow)}.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 var(--focus-glow)}.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}}.tp-app .review-table th,.tp-app .review-table td{border:1px solid var(--rule-strong);vertical-align:top;text-align:left;padding:6px 10px}.tp-app .review-table th{font-weight:var(--w-semibold);background:var(--surface-sunken)}.tp-app .review-table th[scope=row]{white-space:nowrap;width:160px}.tp-app .col-filter{display:inline-block;position:relative}.tp-app .col-filter>summary::-webkit-details-marker{display:none}.tp-app .col-filter-pop{z-index:20;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--surface);min-width:200px;max-width:280px;max-height:320px;box-shadow:var(--shadow-pop);padding:6px;position:absolute;top:calc(100% + 4px);left:0;overflow:auto}.tp-app .wiki-body{color:var(--ink);overflow-wrap:anywhere;font-size:16px;line-height:1.714}.tp-app .wiki-body>*+*,.tp-app .wiki-body [data-layout-column]>*+*,.tp-app .wiki-body [data-expand-content]>*+*,.tp-app .wiki-body .wiki-expand-body>*+*,.tp-app .wiki-body [data-panel]>*+*,.tp-app .wiki-body td>*+*,.tp-app .wiki-body th>*+*{margin-top:.75rem}.tp-app .wiki-body p{margin:0}.tp-app .wiki-body p[data-size=small]{font-size:14px;line-height:1.6}.tp-app .wiki-body [data-align=center]{text-align:center}.tp-app .wiki-body [data-align=right]{text-align:right}.tp-app .wiki-body [data-indent="1"]{padding-left:30px}.tp-app .wiki-body [data-indent="2"]{padding-left:60px}.tp-app .wiki-body [data-indent="3"]{padding-left:90px}.tp-app .wiki-body [data-indent="4"]{padding-left:120px}.tp-app .wiki-body [data-indent="5"]{padding-left:150px}.tp-app .wiki-body [data-indent="6"]{padding-left:180px}.tp-app .wiki-body h1,.tp-app .wiki-body h2,.tp-app .wiki-body h3,.tp-app .wiki-body h4,.tp-app .wiki-body h5,.tp-app .wiki-body h6{font-weight:var(--w-semibold);color:var(--ink);scroll-margin-top:72px;position:relative}.tp-app .wiki-body h1{margin-top:2rem;font-size:1.714em;line-height:1.166}.tp-app .wiki-body h2{margin-top:1.8rem;font-size:1.429em;line-height:1.2}.tp-app .wiki-body h3{margin-top:1.6rem;font-size:1.143em;line-height:1.25}.tp-app .wiki-body h4{margin-top:1.4rem;font-size:1em;line-height:1.25}.tp-app .wiki-body h5{margin-top:1.2rem;font-size:.857em;line-height:1.33}.tp-app .wiki-body h6{color:var(--ink-soft);text-transform:uppercase;letter-spacing:var(--track-label);margin-top:1.2rem;font-size:.786em;line-height:1.33}.tp-app .wiki-body>:first-child{margin-top:0}.tp-app .wiki-body .wiki-heading-anchor{opacity:0;vertical-align:middle;transition:opacity var(--dur-fast) var(--ease-out);margin-left:8px;font-size:.6em}.tp-app .wiki-body h1:hover .wiki-heading-anchor,.tp-app .wiki-body h2:hover .wiki-heading-anchor,.tp-app .wiki-body h3:hover .wiki-heading-anchor,.tp-app .wiki-body h4:hover .wiki-heading-anchor,.tp-app .wiki-body h5:hover .wiki-heading-anchor,.tp-app .wiki-body h6:hover .wiki-heading-anchor,.tp-app .wiki-body .wiki-heading-anchor:focus-visible{opacity:.7}.tp-app .wiki-body ul,.tp-app .wiki-body ol{padding-left:24px}.tp-app .wiki-body ul{list-style:outside}.tp-app .wiki-body ul ul{list-style:circle}.tp-app .wiki-body ul ul ul{list-style:square}.tp-app .wiki-body ol{list-style:decimal}.tp-app .wiki-body ol ol{list-style:lower-alpha}.tp-app .wiki-body ol ol ol{list-style:lower-roman}.tp-app .wiki-body li+li{margin-top:4px}.tp-app .wiki-body li>p{margin:0}.tp-app .wiki-body ul[data-type=taskList]{padding-left:0;list-style:none}.tp-app .wiki-body li[data-type=taskItem]{align-items:flex-start;gap:8px;display:flex}.tp-app .wiki-body li[data-type=taskItem]>div,.tp-app .wiki-body li[data-type=taskItem]>p{flex:1;min-width:0}.tp-app .wiki-body li[data-type=taskItem]>label{flex-shrink:0;margin-top:4px}.tp-app .wiki-body li[data-type=taskItem]>label input{width:16px;height:16px;accent-color:var(--accent)}.tp-app .wiki-body .wiki-task-box{border:2px solid var(--ink-muted);border-radius:var(--r-xs);background:var(--surface);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:5px;position:relative}.tp-app .wiki-body .wiki-task-box[aria-disabled=true]{cursor:default}.tp-app .wiki-body li[data-type=taskItem][data-checked=true]>.wiki-task-box{background:var(--accent);border-color:var(--accent)}.tp-app .wiki-body li[data-type=taskItem][data-checked=true]>.wiki-task-box:after{content:"";border:solid var(--on-accent);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:.5px;left:3.5px;transform:rotate(45deg)}.tp-app .wiki-body li[data-type=taskItem][data-checked=true]>p,.tp-app .wiki-body li[data-type=taskItem][data-checked=true]>div{color:var(--ink-muted);text-decoration:line-through}.tp-app .wiki-body ul[data-type=decisionList]{padding-left:0;list-style:none}.tp-app .wiki-body li[data-type=decisionItem]{border-radius:var(--r-sm);background:var(--surface-inset);padding:8px 12px 8px 40px;position:relative}.tp-app .wiki-body li[data-type=decisionItem]:before{content:"";background:var(--positive);width:16px;height:16px;-webkit-mask:var(--wiki-icon-decision) center / contain no-repeat;-webkit-mask:var(--wiki-icon-decision) center / contain no-repeat;-webkit-mask:var(--wiki-icon-decision) center / contain no-repeat;-webkit-mask:var(--wiki-icon-decision) center / contain no-repeat;mask:var(--wiki-icon-decision) center / contain no-repeat;position:absolute;top:12px;left:12px}.tp-app .wiki-body a{color:var(--accent-ink);text-decoration:none}.tp-app .wiki-body a:hover{text-underline-offset:2px;text-decoration:underline}.tp-app .wiki-body code{background:var(--surface-inset);border-radius:var(--r-xs);padding:2px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em}.tp-app .wiki-body sub,.tp-app .wiki-body sup{font-size:.75em}.tp-app .wiki-body mark{color:inherit;border-radius:2px;padding:0 1px}.tp-app .wiki-body blockquote{border-left:2px solid var(--rule-strong);color:var(--ink-soft);padding-left:16px}.tp-app .wiki-body hr{border:0;border-top:2px solid var(--rule);margin:1.5rem 0}.tp-app .wiki-body span[data-status]{border-radius:var(--r-xs);font-size:11px;line-height:16px;font-weight:var(--w-bold);text-transform:uppercase;vertical-align:1px;text-overflow:ellipsis;white-space:nowrap;cursor:default;max-width:220px;padding:0 4px;display:inline-block;overflow:hidden}.tp-app .wiki-body span[data-status=neutral],.tp-app .wiki-status-swatch[data-status-color=neutral]{background:var(--surface-hover);color:var(--ink-soft)}.tp-app .wiki-body span[data-status=blue],.tp-app .wiki-status-swatch[data-status-color=blue]{background:var(--accent-wash);color:var(--accent-ink)}.tp-app .wiki-body span[data-status=green],.tp-app .wiki-status-swatch[data-status-color=green]{background:var(--positive-wash);color:var(--positive-strong)}.tp-app .wiki-body span[data-status=yellow],.tp-app .wiki-status-swatch[data-status-color=yellow]{background:var(--caution-wash);color:var(--caution-ink)}.tp-app .wiki-body span[data-status=red],.tp-app .wiki-status-swatch[data-status-color=red]{background:var(--danger-wash);color:var(--danger-strong)}.tp-app .wiki-body span[data-status=purple],.tp-app .wiki-status-swatch[data-status-color=purple]{background:var(--info-wash);color:var(--info)}.tp-app .wiki-body time{border-radius:var(--r-sm);background:var(--quote-fill);white-space:nowrap;padding:0 4px;display:inline-block}.tp-app .wiki-body span[data-mention-id]{border-radius:var(--r-full);background:var(--surface-hover);color:var(--ink-soft);white-space:nowrap;padding:0 6px;display:inline-block}.tp-app .wiki-body [data-color=blue-bold],.tp-app .wiki-swatch[data-color=blue-bold]{--c:var(--wiki-text-blue-bold)}.tp-app .wiki-body [data-color=teal-bold],.tp-app .wiki-swatch[data-color=teal-bold]{--c:var(--wiki-text-teal-bold)}.tp-app .wiki-body [data-color=green-bold],.tp-app .wiki-swatch[data-color=green-bold]{--c:var(--wiki-text-green-bold)}.tp-app .wiki-body [data-color=orange-bold],.tp-app .wiki-swatch[data-color=orange-bold]{--c:var(--wiki-text-orange-bold)}.tp-app .wiki-body [data-color=red-bold],.tp-app .wiki-swatch[data-color=red-bold]{--c:var(--wiki-text-red-bold)}.tp-app .wiki-body [data-color=purple-bold],.tp-app .wiki-swatch[data-color=purple-bold]{--c:var(--wiki-text-purple-bold)}.tp-app .wiki-body [data-color=grey],.tp-app .wiki-swatch[data-color=grey]{--c:var(--wiki-text-grey)}.tp-app .wiki-body [data-color=blue],.tp-app .wiki-swatch[data-color=blue]{--c:var(--wiki-text-blue)}.tp-app .wiki-body [data-color=teal],.tp-app .wiki-swatch[data-color=teal]{--c:var(--wiki-text-teal)}.tp-app .wiki-body [data-color=green],.tp-app .wiki-swatch[data-color=green]{--c:var(--wiki-text-green)}.tp-app .wiki-body [data-color=yellow],.tp-app .wiki-swatch[data-color=yellow]{--c:var(--wiki-text-yellow)}.tp-app .wiki-body [data-color=red],.tp-app .wiki-swatch[data-color=red]{--c:var(--wiki-text-red)}.tp-app .wiki-body [data-color=purple],.tp-app .wiki-swatch[data-color=purple]{--c:var(--wiki-text-purple)}.tp-app .wiki-body [data-color=white],.tp-app .wiki-swatch[data-color=white]{--c:var(--wiki-text-white)}.tp-app .wiki-body [data-color=blue-subtle],.tp-app .wiki-swatch[data-color=blue-subtle]{--c:var(--wiki-text-blue-subtle)}.tp-app .wiki-body [data-color=teal-subtle],.tp-app .wiki-swatch[data-color=teal-subtle]{--c:var(--wiki-text-teal-subtle)}.tp-app .wiki-body [data-color=green-subtle],.tp-app .wiki-swatch[data-color=green-subtle]{--c:var(--wiki-text-green-subtle)}.tp-app .wiki-body [data-color=yellow-subtle],.tp-app .wiki-swatch[data-color=yellow-subtle]{--c:var(--wiki-text-yellow-subtle)}.tp-app .wiki-body [data-color=red-subtle],.tp-app .wiki-swatch[data-color=red-subtle]{--c:var(--wiki-text-red-subtle)}.tp-app .wiki-body [data-color=purple-subtle],.tp-app .wiki-swatch[data-color=purple-subtle]{--c:var(--wiki-text-purple-subtle)}.tp-app .wiki-body span[data-color]{color:var(--c)}.tp-app .wiki-swatch{background:var(--c,var(--ink))}.tp-app .wiki-body [data-bg=grey],.tp-app .wiki-mark-swatch[data-bg=grey]{--m:var(--wiki-mark-grey)}.tp-app .wiki-body [data-bg=purple],.tp-app .wiki-mark-swatch[data-bg=purple]{--m:var(--wiki-mark-purple)}.tp-app .wiki-body [data-bg=magenta],.tp-app .wiki-mark-swatch[data-bg=magenta]{--m:var(--wiki-mark-magenta)}.tp-app .wiki-body [data-bg=orange],.tp-app .wiki-mark-swatch[data-bg=orange]{--m:var(--wiki-mark-orange)}.tp-app .wiki-body [data-bg=yellow],.tp-app .wiki-mark-swatch[data-bg=yellow]{--m:var(--wiki-mark-yellow)}.tp-app .wiki-body [data-bg=lime],.tp-app .wiki-mark-swatch[data-bg=lime]{--m:var(--wiki-mark-lime)}.tp-app .wiki-body [data-bg=teal],.tp-app .wiki-mark-swatch[data-bg=teal]{--m:var(--wiki-mark-teal)}.tp-app .wiki-body mark[data-bg],.tp-app .wiki-body td[data-bg],.tp-app .wiki-body th[data-bg],.tp-app .wiki-mark-swatch{background:var(--m)}.tp-app .wiki-body [data-panel]{border-radius:var(--r-sm);--panel-bg:var(--accent-wash);--panel-ic:var(--accent);--panel-mask:var(--wiki-icon-info);background:var(--panel-bg);padding:8px 16px 8px 44px;position:relative}.tp-app .wiki-body [data-panel]:before{content:"";background:var(--panel-ic);width:20px;height:20px;-webkit-mask:var(--panel-mask) center / contain no-repeat;-webkit-mask:var(--panel-mask) center / contain no-repeat;-webkit-mask:var(--panel-mask) center / contain no-repeat;-webkit-mask:var(--panel-mask) center / contain no-repeat;mask:var(--panel-mask) center / contain no-repeat;position:absolute;top:12px;left:12px}.tp-app .wiki-body [data-panel=note]{--panel-bg:var(--info-wash);--panel-ic:var(--info);--panel-mask:var(--wiki-icon-note)}.tp-app .wiki-body [data-panel=success]{--panel-bg:var(--positive-wash);--panel-ic:var(--positive);--panel-mask:var(--wiki-icon-success)}.tp-app .wiki-body [data-panel=warning]{--panel-bg:var(--caution-wash);--panel-ic:var(--caution-ink);--panel-mask:var(--wiki-icon-warning)}.tp-app .wiki-body [data-panel=error]{--panel-bg:var(--danger-wash);--panel-ic:var(--danger);--panel-mask:var(--wiki-icon-error)}.tp-app .wiki-body [data-panel=custom]{--panel-bg:var(--m,var(--wiki-mark-grey))}.tp-app .wiki-body [data-panel=custom]:before{content:attr(data-panel-emoji);background:0 0;font-size:18px;line-height:20px;-webkit-mask:none;mask:none}.tp-app .wiki-body [data-panel=custom][data-panel-color=grey]{--m:var(--wiki-mark-grey)}.tp-app .wiki-body [data-panel=custom][data-panel-color=purple]{--m:var(--wiki-mark-purple)}.tp-app .wiki-body [data-panel=custom][data-panel-color=magenta]{--m:var(--wiki-mark-magenta)}.tp-app .wiki-body [data-panel=custom][data-panel-color=orange]{--m:var(--wiki-mark-orange)}.tp-app .wiki-body [data-panel=custom][data-panel-color=yellow]{--m:var(--wiki-mark-yellow)}.tp-app .wiki-body [data-panel=custom][data-panel-color=lime]{--m:var(--wiki-mark-lime)}.tp-app .wiki-body [data-panel=custom][data-panel-color=teal]{--m:var(--wiki-mark-teal)}.tp-app .wiki-body pre{background:var(--surface-inset);border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:24px;display:flex;position:relative;overflow-x:auto}.tp-app .wiki-body pre code{font-size:inherit;white-space:pre;background:0 0;border-radius:0;flex:1;padding:8px 16px;display:block}.tp-app .wiki-body .wiki-code-gutter{background:var(--surface-hover);color:var(--ink-muted);text-align:right;white-space:pre;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:8px 8px 8px 12px}.tp-app .wiki-body .wiki-code-copy{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--rule-strong);height:26px;color:var(--ink-soft);font-family:var(--font-sans);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);padding:0 8px;font-size:12px;position:absolute;top:6px;right:6px}.tp-app .wiki-body pre:hover .wiki-code-copy,.tp-app .wiki-body .wiki-code-copy:focus-visible{opacity:1}.tp-app .wiki-body .wiki-code-lang{z-index:1;border-radius:var(--r-sm);border:1px solid var(--rule-strong);background:var(--surface);height:26px;color:var(--ink-soft);font-family:var(--font-sans);font-size:12px;position:absolute;top:6px;right:6px}.tp-app .wiki-body table{border-collapse:collapse;table-layout:auto;width:100%;margin-top:.75rem}.tp-app .wiki-body th,.tp-app .wiki-body td{border:1px solid var(--rule-strong);vertical-align:top;text-align:left;min-width:48px;padding:8px;position:relative}.tp-app .wiki-body th{background:var(--surface-inset);font-weight:var(--w-semibold)}.tp-app .wiki-body th[data-bg]{font-weight:var(--w-semibold)}.tp-app .wiki-body th>p,.tp-app .wiki-body td>p{margin:0}.tp-app .wiki-body .tableWrapper{overflow-x:auto}.tp-app .wiki-body details{border-radius:var(--r-sm)}.tp-app .wiki-body details>summary{cursor:pointer;border-radius:var(--r-sm);color:var(--ink);align-items:center;gap:8px;padding:4px;list-style:none;display:flex}.tp-app .wiki-body details>summary::-webkit-details-marker{display:none}.tp-app .wiki-body details>summary:before{content:"";background:var(--ink-soft);width:12px;height:12px;-webkit-mask:var(--wiki-icon-chevron) center / contain no-repeat;-webkit-mask:var(--wiki-icon-chevron) center / contain no-repeat;-webkit-mask:var(--wiki-icon-chevron) center / contain no-repeat;-webkit-mask:var(--wiki-icon-chevron) center / contain no-repeat;mask:var(--wiki-icon-chevron) center / contain no-repeat;transition:transform var(--dur-fast) var(--ease-out);flex-shrink:0}.tp-app .wiki-body details[open]>summary:before{transform:rotate(90deg)}.tp-app .wiki-body details>summary:empty:after{content:"Нажмите здесь, чтобы развернуть…";color:var(--ink-soft)}.tp-app .wiki-body details>summary:hover{background:var(--surface-hover)}.tp-app .wiki-body details>[data-expand-content]{padding:4px 8px 8px 28px}.tp-app .wiki-body .wiki-expand{border:1px solid var(--rule-strong);border-radius:var(--r-sm);padding:4px 8px 8px}.tp-app .wiki-body .wiki-expand-head{align-items:center;gap:6px;display:flex}.tp-app .wiki-body .wiki-expand-toggle{width:20px;color:var(--ink-soft);transition:transform var(--dur-fast) var(--ease-out)}.tp-app .wiki-body .wiki-expand.is-collapsed .wiki-expand-toggle{transform:rotate(-90deg)}.tp-app .wiki-body .wiki-expand.is-collapsed .wiki-expand-body{display:none}.tp-app .wiki-body .wiki-expand-title{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:14px}.tp-app .wiki-body .wiki-expand-title::placeholder{color:var(--ink-muted)}.tp-app .wiki-body .wiki-expand-body{padding:4px 4px 0 26px}.tp-app .wiki-body [data-layout]{gap:24px;display:grid}.tp-app .wiki-body [data-layout=two_equal]{grid-template-columns:1fr 1fr}.tp-app .wiki-body [data-layout=three_equal]{grid-template-columns:repeat(3,1fr)}.tp-app .wiki-body [data-layout=four_equal]{grid-template-columns:repeat(4,1fr)}.tp-app .wiki-body [data-layout=five_equal]{grid-template-columns:repeat(5,1fr)}.tp-app .wiki-body [data-layout=two_left_sidebar]{grid-template-columns:1fr 2fr}.tp-app .wiki-body [data-layout=two_right_sidebar]{grid-template-columns:2fr 1fr}.tp-app .wiki-body [data-layout=three_with_sidebars]{grid-template-columns:1fr 2fr 1fr}.tp-app .wiki-body [data-layout-column]{min-width:0}.tp-app .wiki-editor [data-layout-column]{border:1px dashed var(--rule-strong);border-radius:var(--r-sm);padding:8px}@media (max-width:720px){.tp-app .wiki-body [data-layout]{grid-template-columns:1fr}}.tp-app .wiki-body .wiki-toc,.tp-app .wiki-body .wiki-children{padding-left:0;list-style:none}.tp-app .wiki-body .wiki-toc li[data-level="2"]{padding-left:16px}.tp-app .wiki-body .wiki-toc li[data-level="3"]{padding-left:32px}.tp-app .wiki-body .wiki-toc li+li,.tp-app .wiki-body .wiki-children li+li{margin-top:2px}.tp-app .wiki-body .wiki-macro-empty{color:var(--ink-muted);font-size:14px}.tp-app .wiki-body .wiki-macro{border:1px dashed var(--rule-strong);border-radius:var(--r-sm);background:var(--surface-inset);color:var(--ink-soft);padding:10px 12px;font-size:14px}.tp-app .wiki-body .wiki-macro.ProseMirror-selectednode{outline:2px solid var(--accent)}.tp-app .wiki-body img[data-file-id],.tp-app .wiki-body .wiki-image-node{border-radius:var(--r-sm);max-width:100%;margin-left:auto;margin-right:auto;display:block}.tp-app .wiki-body .wiki-image-node{text-align:center}.tp-app .wiki-body img[data-align=left],.tp-app .wiki-body .wiki-image-node[data-align=left]{text-align:left;margin-left:0}.tp-app .wiki-body img[data-align=right],.tp-app .wiki-body .wiki-image-node[data-align=right]{text-align:right;margin-right:0}.tp-app .wiki-body img[data-align=wide],.tp-app .wiki-body img[data-align=full]{width:100%}.tp-app .wiki-body .wiki-image-missing{border-radius:var(--r-sm);background:var(--surface-inset);color:var(--ink-muted);text-align:center;padding:24px;font-size:14px}.tp-app .wiki-body .wiki-inline-mark{background:var(--caution-wash);border-bottom:2px solid var(--caution);color:inherit;cursor:pointer;border-radius:0;padding:0}.tp-app .wiki-body .wiki-inline-mark[data-active=true]{background:var(--caution-edge)}.tp-app .wiki-body .wiki-diff-ins{background:var(--positive-wash);text-decoration:underline;-webkit-text-decoration-color:var(--positive);-webkit-text-decoration-color:var(--positive);-webkit-text-decoration-color:var(--positive);text-decoration-color:var(--positive);text-underline-offset:3px}.tp-app .wiki-body .wiki-diff-del{background:var(--danger-wash);color:var(--danger-strong);text-decoration:line-through}.tp-app .wiki-body [data-diff=added]{box-shadow:-8px 0 0 -5px var(--positive);background:var(--positive-wash)}.tp-app .wiki-body [data-diff=removed]{box-shadow:-8px 0 0 -5px var(--danger);background:var(--danger-wash);color:var(--danger-strong);text-decoration:line-through}.tp-app .wiki-comment-body{font-size:inherit;line-height:1.6}.tp-app .wiki-comment-body>*+*{margin-top:.5rem}.tp-app .wiki-editor{outline:none;min-height:320px;padding-bottom:40px}.tp-app .wiki-mini-editor{min-height:56px;padding-bottom:0;font-size:14px}.tp-app .wiki-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--ink-muted);float:left;pointer-events:none;height:0}.tp-app .wiki-editor .selectedCell:after{content:"";background:var(--accent-wash);opacity:.6;pointer-events:none;position:absolute;inset:0}.tp-app .wiki-editor .column-resize-handle{background:var(--accent);pointer-events:none;width:4px;position:absolute;top:0;bottom:-2px;right:-2px}.tp-app .wiki-editor.resize-cursor{cursor:col-resize}.tp-app .wiki-editor .ProseMirror-gapcursor:after{border-top:1px solid var(--ink)}.tp-app .wiki-editor .ProseMirror-selectednode{outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--r-xs)}.tp-app{--wiki-icon-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20zm0 8a1 1 0 0 0-1 1v6a1 1 0 1 0 2 0v-6a1 1 0 0 0-1-1zm0-4a1.25 1.25 0 1 0 0 2.5A1.25 1.25 0 0 0 12 6z'/%3E%3C/svg%3E");--wiki-icon-note:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm2 9v2h8v-2H8zm0 4v2h6v-2H8z'/%3E%3C/svg%3E");--wiki-icon-success:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20zm4.3 6.3-5.8 5.8-2.8-2.8-1.4 1.4 4.2 4.2 7.2-7.2-1.4-1.4z'/%3E%3C/svg%3E");--wiki-icon-warning:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.3 3.3a2 2 0 0 1 3.4 0l8.3 14.3A2 2 0 0 1 20.3 21H3.7A2 2 0 0 1 2 17.6zM12 9a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0v-4a1 1 0 0 0-1-1zm0 7.5a1.2 1.2 0 1 0 0 2.4 1.2 1.2 0 0 0 0-2.4z'/%3E%3C/svg%3E");--wiki-icon-error:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20zm3.5 5.1L12 10.6 8.5 7.1 7.1 8.5l3.5 3.5-3.5 3.5 1.4 1.4 3.5-3.5 3.5 3.5 1.4-1.4-3.5-3.5 3.5-3.5z'/%3E%3C/svg%3E");--wiki-icon-decision:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3h5v5M8 3H3v5M12 22v-8.3a4 4 0 0 0-1.2-2.9L3 3M15 9l6-6'/%3E%3C/svg%3E");--wiki-icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.tp-app .grow-input{resize:none;white-space:pre-wrap;overflow-wrap:anywhere;height:auto;line-height:20px;display:block;overflow:hidden}.tp-app .input.grow-input,.tp-app .project-modal textarea.grow-input,.tp-app .project-field textarea.grow-input{height:auto;min-height:44px;padding-top:11px;padding-bottom:11px}.tp-app .create-column-form textarea.grow-input{height:auto;min-height:40px;padding-top:9px;padding-bottom:9px}.tp-app .profile-name-input.grow-input{line-height:1.25}}@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,.tp-app .create-column-form textarea.grow-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,.tp-app .create-column-form textarea.grow-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-glow)}.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 .no-boards{justify-content:center;align-items:center;gap:var(--space-xs);height:100%;padding:var(--space-2xl) var(--space-lg);text-align:center;flex-direction:column;display:flex}.tp-app .no-boards-icon{color:var(--ink-faint)}.tp-app .no-boards-title{font-size:var(--t-md);font-weight:var(--w-semibold);color:var(--ink)}.tp-app .no-boards-text{max-width:42ch;font-size:var(--t-sm);color:var(--ink-muted);line-height:var(--lh-normal)}.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 .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:0 var(--space-xs);border-bottom:1px solid var(--rule);box-sizing:border-box;flex:none;height:52px;display:flex}.tp-app .brand>div{flex:auto;min-width:0}.tp-app .brand .sidebar-toggle{margin-left:auto}.tp-app .brand-title{font-size:var(--t-lg);font-weight:var(--w-bold);line-height:var(--lh-tight);letter-spacing:-.01em;color:var(--ink)}.tp-app .nav-title{padding:0 var(--space-sm);font-size:var(--t-xs);font-weight:var(--w-semibold);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-muted)}.tp-app .nav-title.module-title{font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--ink)}.tp-app .nav-title.module-title-ruled{margin-top:var(--space-2xs);padding-top:var(--space-md);border-top:1px solid var(--rule)}.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-xs);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-group-count--new{border-radius:var(--r-full);background:var(--app-wash,var(--accent-wash));min-width:18px;color:var(--app-ink,var(--accent-ink));font-weight:var(--w-semibold);text-align:center;padding:0 6px;line-height:18px}.tp-app .nav-item.project-link.project-unseen{font-weight:var(--w-semibold);color:var(--ink)}.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);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;font-size:15px;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-sm);font-variant-numeric:tabular-nums;margin-left:auto}.tp-app .nav-item.nav-item--duty{font-weight:var(--w-semibold);color:var(--ink)}.tp-app .nav-item.my-tasks-link{font-size:var(--t-xs);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(--app-wash,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(--app-ink,var(--accent-ink))}.tp-app .sidebar .app-group{display:contents}.tp-app .app-group[data-app=tasker]{--app:var(--app-tasker);--app-ink:var(--app-tasker-ink);--app-wash:var(--app-tasker-wash)}.tp-app .app-group[data-app=message]{--app:var(--app-message);--app-ink:var(--app-message-ink);--app-wash:var(--app-message-wash)}.tp-app .app-group[data-app=docs]{--app:var(--app-docs);--app-ink:var(--app-docs-ink);--app-wash:var(--app-docs-wash)}.tp-app .app-group[data-app=wiki]{--app:var(--app-wiki);--app-ink:var(--app-wiki-ink);--app-wash:var(--app-wiki-wash)}.tp-app .app-group[data-app=graph]{--app:var(--app-graph);--app-ink:var(--app-graph-ink);--app-wash:var(--app-graph-wash)}.tp-app .app-group[data-app=soon]{--app:var(--ink-faint);--app-ink:var(--ink-muted);--app-wash:var(--surface-sunken)}.tp-app .app-group[data-app=soon] .nav-title.module-title{color:var(--ink-soft)}.tp-app .app-group[data-app=soon] .app-mark{color:var(--ink-faint)}.tp-app .nav-title.module-title{align-items:center;gap:var(--space-xs);color:var(--app-ink,var(--ink));display:flex}.tp-app .app-group .nav-item>.tp-icon,.tp-app .app-group .nav-item:hover>.tp-icon{color:var(--app-ink)}.tp-app .nav-title.module-title>.app-mark{width:var(--icon-slot);flex:0 0 var(--icon-slot)}.tp-app .module-toggle{align-items:center;gap:var(--space-3xs);cursor:pointer;min-width:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;text-align:left;background:0 0;border:0;flex:1;padding:0;display:flex}.tp-app .module-toggle>.module-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.tp-app .module-toggle>.tp-icon{color:var(--ink-faint);transition:color var(--dur-fast) var(--ease-out);flex:none}.tp-app .module-toggle>.soon-badge{margin-right:var(--space-3xs);flex:none}.tp-app .module-toggle:hover>.tp-icon{color:var(--ink-soft)}.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 .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:2px 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);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;font-size:15px;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:12px}.tp-app .project-title{letter-spacing:-.03em;font-size:18px}.tp-app .brand-logo{object-fit:contain;flex:none;width:auto;max-width:96px;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)}.tp-app .sidebar.sidebar--rail{scrollbar-width:none;gap:12px;width:80px;padding-inline:10px}.tp-app .sidebar.sidebar--rail::-webkit-scrollbar{display:none}.tp-app .sidebar--rail .brand{gap:0;padding:0}.tp-app .sidebar--rail .brand>div{display:none}.tp-app .sidebar--rail .brand-logo{max-width:30px;height:30px}.tp-app .sidebar--rail .nav-title{height:0;margin:0;padding:0;font-size:0;overflow:hidden}.tp-app .sidebar--rail .nav-title.module-title{flex:none;justify-content:center;height:auto;padding-top:0}.tp-app .sidebar--rail .nav-title.module-title>:not(.app-mark,.module-home){display:none}.tp-app .sidebar--rail .module-home{border-radius:var(--r-sm);cursor:pointer;width:100%;height:32px;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.tp-app .sidebar--rail .module-home:hover{background:var(--surface-hover)}.tp-app .sidebar--rail .nav-title.module-title>.app-mark{flex:none;width:auto}.tp-app .sidebar--rail .nav-title.module-title-ruled{margin-top:var(--space-3xs);padding-top:var(--space-sm)}.tp-app .sidebar--rail .nav-title.nav-group-title{display:none}.tp-app .sidebar--rail .nav-item{justify-content:center;gap:0;height:40px;padding:0}.tp-app .sidebar--rail .nav-item>span:not(.count,.nav-item-mark),.tp-app .sidebar--rail .project-shared-text,.tp-app .sidebar--rail .project-menu-btn,.tp-app .sidebar--rail .project-boards-toggle,.tp-app .sidebar--rail .board-strip{display:none}.tp-app .sidebar--rail .nav-item>.project-shared-main{display:flex}.tp-app .sidebar--rail .nav-item.project-link{align-items:center;height:40px;min-height:40px;padding:0}.tp-app .sidebar--rail .project-owner-avatar{margin-top:0}.tp-app .sidebar--rail .nav-item .count{background:var(--app-wash,var(--accent-wash));min-width:16px;height:16px;color:var(--app-ink,var(--accent-ink));font-size:10px;font-weight:var(--w-semibold);border-radius:8px;place-items:center;margin:0;padding:0 4px;line-height:1;display:grid;position:absolute;top:3px;right:5px}.tp-app .sidebar--rail .add-project-btn{margin-top:0}@media (max-width:900px){.tp-app .sidebar{display:none}}.tp-app .brand-logo--dark,[data-theme=dark] .tp-app .brand-logo--light{display:none}[data-theme=dark] .tp-app .brand-logo--dark{display:block}.tp-app .login-logo--dark,[data-theme=dark] .tp-app .login-logo--light{display:none}[data-theme=dark] .tp-app .login-logo--dark{display:block}.tp-app .topbar{background:var(--surface);border-bottom:1px solid var(--rule);flex:none;align-items:center;gap:14px;height:70px;padding:18px 22px 0;display:flex}.tp-app .sidebar-toggle{border-radius:var(--r-sm);width:28px;height:28px;color:var(--ink-faint);flex:none;place-items:center;display:grid}.tp-app .sidebar-toggle:hover{color:var(--ink);background:var(--surface-hover)}.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;min-width:0;margin-left:auto;display:flex}.tp-app .top-actions>.icon-btn,.tp-app .top-actions>.notif-anchor{flex-shrink:0}.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 .topbar .project-title{min-width:0}.tp-app .topbar .project-title>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tp-app .search{border:1px solid var(--rule);background:var(--surface-sunken);border-radius:var(--r-md);width:300px;min-width:0;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);flex-shrink:1;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 .move-hint{z-index:120;background:var(--ink);color:var(--on-ink);border-radius:var(--r-xl);box-shadow:0 16px 34px var(--shadow-mid);padding:12px 16px;font-size:13px;display:none;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.tp-app .move-hint.open{display:block}.tp-app .locked-action{opacity:.45;pointer-events:auto;cursor:not-allowed!important}.tp-app .locked-action:hover{background:var(--surface)!important}.tp-app .delegation-hint{width:100%;color:var(--ink-muted);margin-top:4px;font-size:12px}.tp-app .input-error,.tp-app .input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-glow)}.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;.tp-app .group-chat-limit{font-weight:var(--w-regular);color:var(--ink-muted);font-variant-numeric:tabular-nums}.tp-app .group-chat-limit.over{color:var(--danger-strong);font-weight:var(--w-semibold)}
