@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_beddda0c-module__XXgp5q__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_beddda0c-module__XXgp5q__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6fa;--surface:#fff;--surface-subtle:#fdfdff;--surface-muted:#fafbfd;--surface-hover:#f4f5fb;--border:#ebedf4;--border-soft:#f1f2f8;--border-input:#e4e7f1;--scrollbar:#d8dbe8;--overlay:#181c2d73;--text:#2b3040;--text-strong:#3a4056;--text-body:#5a6076;--text-muted:#6b7185;--text-subtle:#8b90a5;--text-faint:#9aa0b4;--text-ghost:#a3a8bd;--primary:#5d5fef;--primary-hover:#4547d6;--primary-soft:#eef0fe;--on-primary:#fff;--success:#0aa06b;--success-soft:#e6f7f1;--warning:#e08a12;--warning-soft:#fff2e2;--danger:#e0405c;--danger-soft:#fdeaee;--danger-hover:#c9304a;--teal:#22c3a6;--amber:#f7a12c;--track:#eef0f6;--brand-from:#5d5fef;--brand-to:#8b6cf0;--pal-1-bg:#e7e9fb;--pal-1-fg:#5d5fef;--pal-2-bg:#e6f7f1;--pal-2-fg:#0aa06b;--pal-3-bg:#fff2e2;--pal-3-fg:#e08a12;--pal-4-bg:#eaf4ff;--pal-4-fg:#2b8fe0;--pal-5-bg:#f0ebfd;--pal-5-fg:#7c3aed;--pal-6-bg:#fdeaee;--pal-6-fg:#e0405c;--font-sans:var(--font-jakarta), system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:22px;--fs-2xl:28px;--lh-tight:1.25;--lh-normal:1.5;--r-sm:8px;--r-md:9px;--r-lg:11px;--r-xl:14px;--r-2xl:16px;--r-pill:99px;--gap:18px;--gap-sm:12px;--pad-page:22px 24px 40px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #10182812, 0 1px 2px -1px #1018280d;--shadow-md:0 4px 12px -2px #10182817, 0 2px 4px -2px #1018280d;--shadow-lg:0 12px 24px -6px #1018281c, 0 4px 8px -4px #10182812;--shadow-card:var(--shadow-sm);--shadow-primary:0 6px 14px #5d5fef47;--shadow-modal:0 24px 60px -12px #1018284d, 0 8px 16px -8px #10182824;--border-elevated:var(--border);--ease:cubic-bezier(.2, 0, 0, 1);--dur-fast:.12s;--dur:.18s;--focus-ring:2px solid var(--primary);--focus-offset:2px;--header-h:66px;--sidebar-w:264px;--sidebar-w-collapsed:74px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1116;--surface:#171a22;--surface-subtle:#1a1d26;--surface-muted:#1e222c;--surface-hover:#232735;--border:#272b37;--border-soft:#222632;--border-input:#2e3344;--scrollbar:#363b4c;--overlay:#06080ea6;--text:#e6e8f0;--text-strong:#f3f4f9;--text-body:#c3c7d5;--text-muted:#a5aabb;--text-subtle:#8f95a8;--text-faint:#797f92;--text-ghost:#6a7083;--primary:#7477f5;--primary-hover:#8b8df8;--primary-soft:#232748;--success:#24bd88;--success-soft:#10322a;--warning:#eda63f;--warning-soft:#3a2c14;--danger:#f2596f;--danger-soft:#3b1d26;--danger-hover:#f97286;--teal:#2fd3b6;--amber:#f7a12c;--track:#262a38;--brand-from:#6d6ff2;--brand-to:#9a7cf5;--pal-1-bg:#23264d;--pal-1-fg:#9fa1f8;--pal-2-bg:#10322a;--pal-2-fg:#3ecf9a;--pal-3-bg:#3a2c14;--pal-3-fg:#f0ad4e;--pal-4-bg:#14293f;--pal-4-fg:#58aef0;--pal-5-bg:#2a2148;--pal-5-fg:#a985f5;--pal-6-bg:#3b1d26;--pal-6-fg:#f2798c;--border-elevated:#313747;--shadow-xs:0 1px 2px #00000059;--shadow-sm:0 1px 3px #0006, 0 1px 2px -1px #0000004d;--shadow-md:0 4px 12px -2px #00000080, 0 2px 4px -2px #00000059;--shadow-lg:0 12px 24px -6px #0000008c, 0 4px 8px -4px #0006;--shadow-card:var(--shadow-sm);--shadow-primary:0 6px 14px #7477f54d;--shadow-modal:0 24px 60px -12px #000000a8, 0 8px 16px -8px #00000073}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}input,select,textarea,button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:8px}:where(a,button,[role=button],[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:inherit}:where(input,select,textarea):focus-visible{outline:var(--focus-ring);outline-offset:-1px}.card{background:var(--surface);border:1px solid var(--border-elevated);border-radius:var(--r-xl);box-shadow:var(--shadow-card)}.card-head{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.card-title{font-size:var(--fs-md);font-weight:700}.card-body{padding:18px}.card-foot{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.page{padding:var(--pad-page);gap:var(--gap);flex-direction:column;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-title{font-size:var(--fs-xl);letter-spacing:-.5px;font-weight:800;line-height:var(--lh-tight);margin:0}.crumbs{font-size:var(--fs-xs);color:var(--text-faint);align-items:center;gap:8px;margin-top:6px;display:flex}.crumbs .current{color:var(--primary);font-weight:600}.grid-kpi{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.grid-2{gap:var(--gap);grid-template-columns:1fr 1fr;align-items:start;display:grid}.grid-3{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-split{gap:var(--gap);grid-template-columns:minmax(0,3fr) minmax(330px,2fr);align-items:start;display:grid}.btn{border-radius:var(--r-md);height:36px;font-size:var(--fs-sm);cursor:pointer;border:1px solid var(--border-input);background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-xs);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-hover);border-color:var(--border-elevated)}.btn:active{box-shadow:none}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-primary);border:0}.btn-primary:hover{background:var(--primary-hover)}.btn:disabled{opacity:.6;cursor:progress}.icon-btn{border:1px solid var(--border-input);border-radius:var(--r-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--primary-soft);color:var(--primary)}.icon-btn[data-variant=danger]:hover{background:var(--danger-soft);color:var(--danger)}.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--on-primary)}.btn-danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.modal-foot,.confirm-actions{border-top:1px solid var(--border-soft);flex:none;justify-content:flex-end;gap:8px;padding:16px 22px;display:flex}.task-select{border:1px solid var(--border-input);border-radius:var(--r-sm);height:30px;font-size:var(--fs-2xs);color:var(--text-body);background:var(--surface);cursor:pointer;flex:none;padding:0 6px;font-family:inherit;font-weight:600}.input{border:1px solid var(--border-input);border-radius:var(--r-md);height:36px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);min-width:0;transition:border-color var(--dur-fast) var(--ease);padding:0 12px;font-family:inherit}.input:hover{border-color:var(--border-elevated)}select.input{cursor:pointer}.input-sm{height:34px;font-size:var(--fs-xs);border-radius:var(--r-sm);padding:0 8px;font-weight:600}.field{font-size:var(--fs-xs);color:var(--text-body);flex-direction:column;gap:6px;font-weight:700;display:flex}.field input,.field select{border:1px solid var(--border-input);border-radius:var(--r-md);height:38px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);padding:0 12px}.field textarea{border:1px solid var(--border-input);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text);background:var(--surface);resize:vertical;min-height:84px;padding:10px 12px;font-family:inherit;font-weight:400}.field-full{grid-column:1/-1}.field-hint{font-size:var(--fs-2xs);color:var(--text-faint);margin:-4px 0 0;line-height:1.5}.form-error{font-size:var(--fs-xs);color:var(--danger);background:var(--surface);grid-column:1/-1;margin:0;padding:10px 0 2px;font-weight:600;position:sticky;bottom:0}.badge{font-size:var(--fs-2xs);border-radius:var(--r-pill);white-space:nowrap;padding:4px 10px;font-weight:700}.badge-icon{align-items:center;gap:4px;display:inline-flex}.badge-tint{background:color-mix(in oklab, var(--tint) 16%, var(--surface));color:color-mix(in oklab, var(--tint) 86%, #000)}:root[data-theme=dark] .badge-tint{background:color-mix(in oklab, var(--tint) 24%, var(--surface));color:color-mix(in oklab, var(--tint) 68%, #fff)}.bar{background:var(--track);border-radius:var(--r-pill);height:5px;overflow:hidden}.bar>span{border-radius:var(--r-pill);height:100%;display:block}.table{border-collapse:collapse;width:100%}.table th{text-align:left;font-size:var(--fs-2xs);color:var(--text-subtle);border-bottom:1px solid var(--border-soft);background:var(--surface-muted);padding:11px 12px;font-weight:700}.table th:first-child,.table td:first-child{padding-left:18px}.table th:last-child,.table td:last-child{padding-right:18px}.table td{font-size:var(--fs-sm);border-bottom:1px solid var(--border-soft);padding:13px 12px}.table tbody tr{transition:background var(--dur-fast) var(--ease)}.table tbody tr:hover{background:var(--surface-muted)}.muted{color:var(--text-faint);font-size:var(--fs-xs)}.truncate{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.empty{padding:var(--sp-10) var(--sp-6);text-align:center;align-items:center;gap:var(--sp-2);color:var(--text-faint);font-size:var(--fs-sm);flex-direction:column;display:flex}.empty p{margin:0}.empty-icon{border-radius:var(--r-pill);background:var(--primary-soft);width:44px;height:44px;color:var(--primary);margin-bottom:var(--sp-1);justify-content:center;align-items:center;display:flex}.empty-title{font-size:var(--fs-md);color:var(--text-strong);font-weight:700}.empty-desc{font-size:var(--fs-sm);color:var(--text-muted);max-width:42ch;line-height:var(--lh-normal)}.empty-action{margin-top:var(--sp-2)}.empty-drop{border:1px dashed var(--border-input);border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-3);text-align:center;font-size:var(--fs-xs);color:var(--text-ghost);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg, var(--track) 25%, var(--surface-hover) 50%, var(--track) 75%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.4s linear infinite skeleton-shimmer}.is-pending{opacity:.55}[data-busy=true]{opacity:.7}.app-shell{min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:60;flex-direction:column;flex:none;height:100vh;transition:width .18s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-brand{height:var(--header-h);border-bottom:1px solid var(--border-soft);flex:none;align-items:center;gap:10px;padding:0 20px;display:flex;overflow:hidden}.sidebar-mark{background:linear-gradient(140deg, var(--brand-from), var(--brand-to));width:32px;height:32px;color:var(--on-primary);border-radius:9px;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.sidebar-word{letter-spacing:-.4px;white-space:nowrap;font-size:18px;font-weight:800}.sidebar-body{flex:1;padding:16px 12px 24px;overflow:hidden auto}.sidebar-section{letter-spacing:1.2px;color:var(--text-ghost);white-space:nowrap;padding:0 10px 8px;font-size:10px;font-weight:700}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-link{border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-body);white-space:nowrap;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:12px;padding:10px 12px;font-weight:500;display:flex;position:relative}.nav-link:hover{background:var(--surface-muted);color:var(--text-strong)}.nav-link[data-active=true]{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-link[data-active=true]:before{content:"";border-radius:0 var(--r-pill) var(--r-pill) 0;background:var(--primary);width:3px;height:18px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.app-sidebar[data-collapsed=true] .nav-link[data-active=true]:before{display:none}.recent-link{border-radius:var(--r-md);color:var(--text-body);font-size:var(--fs-xs);white-space:nowrap;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:10px;padding:8px 12px;font-weight:600;display:flex}.recent-link:hover{background:var(--surface-muted);color:var(--text-strong)}@media (min-width:801px){.app-sidebar[data-collapsed=true]{width:var(--sidebar-w-collapsed)}.app-sidebar[data-collapsed=true] .sidebar-brand{justify-content:center;padding:0}.app-sidebar[data-collapsed=true] .sidebar-body{padding:16px 10px 24px}.app-sidebar[data-collapsed=true] .sidebar-word,.app-sidebar[data-collapsed=true] .sidebar-section,.app-sidebar[data-collapsed=true] .sidebar-recent,.app-sidebar[data-collapsed=true] .nav-link>span{display:none}.app-sidebar[data-collapsed=true] .nav-link{justify-content:center;gap:0;padding:10px 0}}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-scrim{background:var(--overlay);z-index:55;position:fixed;inset:0}.topbar{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:var(--sp-4);padding:0 var(--sp-6);z-index:20;flex:none;display:flex;position:sticky;top:0}.topbar-search{align-items:center;gap:var(--sp-2);max-width:420px;height:38px;padding:0 var(--sp-3);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-subtle);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);flex:auto;display:flex}.topbar-search:focus-within{background:var(--surface);border-color:var(--primary);color:var(--primary)}.topbar-search input{min-width:0;font-size:var(--fs-sm);color:var(--text);background:0 0;border:0;outline:none;flex:auto}.topbar-search input::placeholder{color:var(--text-ghost)}.topbar-profile{align-items:center;gap:var(--sp-2);border-radius:var(--r-pill);color:var(--text-strong);transition:background var(--dur-fast) var(--ease);padding:4px 12px 4px 4px;display:flex}.topbar-profile:hover{background:var(--surface-hover);color:var(--text-strong)}.topbar-profile-name{font-size:var(--fs-xs);font-weight:700;line-height:1.2}.topbar-profile-role{color:var(--text-faint);font-size:10.5px;font-weight:500;line-height:1.2}.topbar-spacer{flex:auto}.task-group{padding:0 18px 12px}.task-group-head{background:var(--track);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);align-items:center;gap:8px;margin:0 -18px 10px;padding:9px 18px;display:flex}.task-group:first-child .task-group-head{border-top:0}.task-row{border:1px solid var(--border);background:var(--surface-subtle);border-radius:var(--r-lg);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);align-items:center;gap:12px;padding:9px 14px;display:flex}.task-row:hover{border-color:var(--border-elevated)}.task-slot:nth-of-type(odd) .task-row{background:var(--surface)}.task-slot:nth-of-type(2n) .task-row{background:var(--bg)}.task-grip{color:var(--text-ghost);cursor:grab;flex:none;grid-area:grip;display:flex}.task-order{width:22px;font-size:var(--fs-2xs);color:var(--text-ghost);flex:none;grid-area:order;font-weight:800}.task-check{cursor:pointer;width:19px;height:19px;color:var(--on-primary);border-radius:6px;flex:none;grid-area:check;justify-content:center;align-items:center;display:flex}.task-main{flex:auto;grid-area:main;min-width:0}.task-title-line{align-items:center;gap:8px;min-width:0;min-height:22px;display:flex}.task-title-line .badge{flex:none}.task-title{text-align:left;cursor:pointer;min-width:0;color:var(--text);font-family:inherit;font-size:var(--fs-sm);transition:color var(--dur-fast) var(--ease);background:0 0;border:0;flex:0 auto;padding:0;font-weight:700;display:block}.task-title:hover{color:var(--primary)}.task-meta,.task-desc{font-size:var(--fs-2xs);margin-top:3px}.task-meta{color:var(--text-faint)}.task-desc{color:var(--text-ghost)}.task-actions{flex:none;grid-area:act;align-items:center;gap:8px;display:flex}.seg{background:var(--track);border-radius:var(--r-md);gap:4px;padding:3px;display:flex}.seg-item{font-size:var(--fs-xs);cursor:pointer;color:var(--text-muted);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:0;border-radius:7px;align-items:center;padding:7px 12px;font-weight:600;display:inline-flex}.seg-item:hover{color:var(--text-strong)}.seg-item[data-active=true]{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-xs)}.agenda-row{border-top:1px solid var(--border-soft);transition:background var(--dur-fast) var(--ease);align-items:center;gap:12px;padding:12px 18px;display:flex}.agenda-row:first-child{border-top:0}.agenda-row:hover{background:var(--surface-muted)}.agenda-main{flex:auto;min-width:0}.agenda-title-line{align-items:center;gap:8px;min-width:0;min-height:22px;display:flex}.agenda-title-line .badge{flex:none}.agenda-title{min-width:0;font-size:var(--fs-sm);color:var(--text);transition:color var(--dur-fast) var(--ease);flex:0 auto;font-weight:700}a.agenda-title:hover{color:var(--primary)}.agenda-meta{font-size:var(--fs-2xs);color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;display:flex}.agenda-actions{flex:none;align-items:center;gap:8px;display:flex}.chip-project{font-size:var(--fs-2xs);color:var(--text-muted);align-items:center;gap:5px;max-width:190px;font-weight:700;display:inline-flex}.chip-project:hover{color:var(--primary)}.chip-dot{border-radius:99px;flex:none;width:7px;height:7px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 18px;display:flex}.filter-bar select,.filter-bar input{border:1px solid var(--border-input);border-radius:var(--r-sm);height:34px;font-size:var(--fs-xs);color:var(--text-body);background:var(--surface);transition:border-color var(--dur-fast) var(--ease);padding:0 8px;font-family:inherit;font-weight:600}.filter-bar select:hover,.filter-bar input:hover{border-color:var(--border-elevated)}.filter-bar select{cursor:pointer}.filter-bar input{flex:190px;min-width:190px;max-width:320px;font-weight:500}.bell-dot{border-radius:var(--r-pill);background:var(--danger);min-width:17px;height:17px;color:var(--on-primary);justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:800;display:flex;position:absolute;top:-5px;right:-5px}.subtask-row{align-items:center;gap:12px;padding:8px 18px;display:flex}.subtask-row:hover{background:var(--surface-muted)}.subtask-form{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:8px;padding:12px 18px 16px;display:flex}.subtask-form input{border:1px solid var(--border-input);border-radius:var(--r-md);min-width:0;height:36px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);flex:200px;padding:0 12px}.comment{border-top:1px solid var(--border-soft);gap:12px;padding:12px 0;display:flex}.comment:first-child{border-top:0}.comment-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px;display:flex}.comment-head .icon-btn{width:24px;height:24px}.comment-form{border-top:1px solid var(--border-soft);gap:10px;padding:14px 18px 16px;display:grid}.comment-form textarea{border:1px solid var(--border-input);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text);background:var(--surface);resize:vertical;padding:10px 12px;font-family:inherit}.timeline{gap:14px;margin:0;padding:14px 18px 18px;list-style:none;display:grid}.timeline-item{align-items:flex-start;gap:10px;display:flex}.timeline-dot{border-radius:99px;flex:none;width:8px;height:8px;margin-top:5px}.tag-chip{font-size:var(--fs-xs);border-radius:var(--r-pill);align-items:center;gap:6px;padding:6px 6px 6px 12px;font-weight:700;display:inline-flex}.tag-chip-remove{border-radius:var(--r-pill);background:var(--surface);width:24px;height:24px;color:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease);border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.tag-chip-remove:hover{background:var(--danger-soft);color:var(--danger)}.date-presets{flex-wrap:wrap;gap:6px;display:flex}.date-preset{border:1px solid var(--border-soft);background:var(--surface);color:var(--text-muted);font-size:var(--fs-2xs);border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);padding:5px 10px;font-weight:700}.date-preset:hover{border-color:var(--primary);color:var(--primary)}.date-preset[data-active=true]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.date-preset[data-variant=clear]:hover{border-color:var(--danger);color:var(--danger)}.tag-picker{flex-wrap:wrap;gap:8px;display:flex}.tag-check{cursor:pointer;align-items:center;gap:6px;font-weight:400;display:inline-flex}.tag-check input{accent-color:var(--primary);cursor:pointer}.task-key{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-faint);letter-spacing:.2px;white-space:nowrap;font-weight:700}.dep-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dep-list li{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:8px;min-width:0;display:flex}.dep-list .icon-btn{flex:none;width:26px;height:26px}.subtask-form select{border:1px solid var(--border-input);border-radius:var(--r-md);height:36px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);cursor:pointer;min-width:0;padding:0 8px;font-family:inherit}.cal-grid{border-top:1px solid var(--border-soft);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-weekday{font-size:var(--fs-2xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.6px;background:var(--surface-muted);border-bottom:1px solid var(--border-soft);padding:8px 10px;font-weight:700}.cal-day{border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);flex-direction:column;gap:3px;min-width:0;min-height:104px;padding:6px;display:flex}.cal-day:nth-child(7n+7){border-right:0}.cal-day[data-out=true]{background:var(--surface-muted)}.cal-day[data-out=true] .cal-daynum{color:var(--text-ghost)}.cal-daynum{font-size:var(--fs-2xs);color:var(--text-muted);font-weight:700}.cal-day[data-today=true] .cal-daynum{background:var(--primary);color:var(--on-primary);border-radius:var(--r-pill);justify-content:center;align-items:center;width:20px;height:20px;display:flex}.cal-task{font-size:var(--fs-2xs);transition:filter var(--dur-fast) var(--ease);border-radius:6px;padding:3px 6px;font-weight:600;display:block}.cal-task:hover{filter:brightness(.94)}.timeline-chart{gap:6px;padding:14px 18px 18px;display:grid;position:relative}.timeline-row{align-items:center;gap:12px;min-width:0;display:flex}.timeline-label{font-size:var(--fs-xs);flex:0 0 178px;min-width:0;font-weight:600}.timeline-track{background:var(--surface-muted);border-radius:6px;flex:auto;min-width:0;height:22px;position:relative}.timeline-bar{border-radius:5px;height:16px;position:absolute;top:3px}.timeline-today{background:var(--danger);opacity:.5;z-index:0;width:2px;position:absolute;top:8px;bottom:14px}.task-card{border:1px solid var(--border-elevated);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);flex-direction:column;gap:8px;padding:11px 12px;display:flex}.task-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.task-card[data-dragging=true]{border-color:var(--primary);opacity:.55;box-shadow:none;transform:none}.grouped-card{border:1px solid var(--border-elevated);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-xs);min-width:0;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);flex-direction:column;gap:6px;margin-bottom:8px;padding:11px 12px;display:flex}.grouped-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.grouped-card-meta{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.md{font-size:var(--fs-sm);color:var(--text-body);line-height:1.6}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 10px}.md h3,.md h4,.md h5,.md h6{color:var(--text-strong);margin:16px 0 8px;line-height:1.3}.md h3{font-size:var(--fs-lg)}.md h4{font-size:var(--fs-md)}.md h5,.md h6{font-size:var(--fs-sm)}.md ul,.md ol{margin:0 0 10px;padding-left:20px}.md li{margin:3px 0}.md-tasks{padding-left:2px;list-style:none}.md-tasks li{align-items:flex-start;gap:8px;display:flex}.md-tasks input{accent-color:var(--success);margin-top:3px}.md-code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--track);color:var(--text-strong);border-radius:5px;padding:2px 5px}.md-pre{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:var(--r-md);margin:0 0 10px;padding:12px 14px;overflow-x:auto}.md-pre code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-strong);white-space:pre;line-height:1.55}.md-quote{border-left:3px solid var(--border-input);color:var(--text-muted);margin:0 0 10px;padding:4px 0 4px 12px}.md-hr{border:0;border-top:1px solid var(--border-soft);margin:14px 0}.board{scroll-snap-type:x proximity;align-items:flex-start;gap:14px;padding:14px 18px 18px;display:flex;overflow-x:auto}.board-col{border:1px solid var(--border-soft);border-radius:var(--r-xl);background:var(--surface-muted);scroll-snap-align:start;flex-direction:column;flex:0 0 292px;padding:12px;display:flex}.board-col-drop{flex-direction:column;min-height:60px;display:flex}.col-head{align-items:center;gap:8px;padding:2px 2px 8px;display:flex}.col-dot{border-radius:var(--r-pill);flex:none;width:9px;height:9px;display:block}.col-label{font-size:var(--fs-sm);color:var(--text-strong);flex:auto;font-weight:800}@media (max-width:1180px){.grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-3,.grid-split{grid-template-columns:1fr}}@media (max-width:800px){:root{--pad-page:16px 14px 32px;--gap:12px}.grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-3,.grid-split{grid-template-columns:1fr}.hide-mobile{display:none!important}.btn,.icon-btn{min-height:44px}.icon-btn{width:44px}.reorder-btn{width:34px;height:30px}.input{height:44px}.input-sm{height:40px}.task-select{height:36px}.task-row .icon-btn,.board-col .icon-btn{width:36px;height:36px;min-height:36px}.modal-foot,.confirm-actions{flex-direction:column-reverse}.modal-foot .btn,.confirm-actions .btn{justify-content:center;width:100%}.task-row{grid-template-columns:auto auto auto minmax(0,1fr);grid-template-areas:"grip order check main""act act act act";align-items:start;gap:10px;padding:10px 12px;display:grid}.task-actions{justify-content:flex-start}.task-actions .task-select{flex:auto;min-width:0}.board{scroll-snap-type:x mandatory;padding:12px 14px 16px}.board-col{flex:0 0 min(84vw,292px)}.agenda-row{flex-wrap:wrap;align-items:flex-start;row-gap:10px;padding:12px 14px}.agenda-actions{flex:100%}.filter-bar{padding:12px 14px}.cal-grid{grid-template-columns:1fr}.cal-weekday{display:none}.cal-day{border-right:0;flex-flow:wrap;align-items:flex-start;gap:10px;min-height:0}.cal-day[data-out=true]{display:none}.cal-daynum{flex:none}.cal-task{flex:100%}.timeline-label{flex:0 0 110px}.filter-bar select,.filter-bar input{height:40px}.filter-bar input{max-width:none}.app-sidebar{height:100dvh;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.app-sidebar[data-open=true]{box-shadow:var(--shadow-modal);transform:translate(0)}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s}.app-sidebar{transition:none}.skeleton{animation:none}.grouped-card:hover{transform:none}.nf-frame,.nf-line{animation:none}.nf-lens{animation:none;transform:translate(99px,72px)}}@media (min-width:801px){.only-mobile{display:none!important}}.nf{text-align:center;align-items:center;gap:var(--sp-3);padding:clamp(32px, 8vh, 72px) var(--sp-6);flex-direction:column;display:flex}.nf-art{width:100%;max-width:260px;height:auto}.nf-title{margin:var(--sp-2) 0 0;font-size:var(--fs-xl);letter-spacing:-.5px;font-weight:800}.nf-desc{max-width:46ch;color:var(--text-subtle);font-size:var(--fs-sm);margin:0;line-height:1.6}.nf-actions{margin-top:var(--sp-2);flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.nf-glow-in{stop-color:var(--primary);stop-opacity:.32}.nf-glow-out{stop-color:var(--primary);stop-opacity:0}.nf-frame{fill:none;stroke:var(--text-ghost);stroke-width:2px;stroke-dasharray:10 8;animation:2.4s linear infinite nf-march}.nf-line{fill:var(--text-ghost);opacity:.45;animation:2.4s ease-in-out infinite nf-pulse}.nf-line:nth-of-type(2){animation-delay:.15s}.nf-line:nth-of-type(3){animation-delay:.3s}.nf-lens{fill:none;stroke:var(--primary);stroke-width:3px;stroke-linecap:round;transform-box:view-box;transform-origin:0 0;animation:5s ease-in-out infinite nf-sweep}@keyframes nf-march{to{stroke-dashoffset:-36px}}@keyframes nf-pulse{0%,to{opacity:.45}50%{opacity:.18}}@keyframes nf-sweep{0%,to{transform:translate(62px,56px)}50%{transform:translate(136px,88px)}}.settings-row{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-subtle);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:11px 14px;display:flex}.settings-row:hover{border-color:var(--border-elevated);background:var(--surface-hover)}.reorder-btn{border:1px solid var(--border-input);background:var(--surface);width:24px;height:20px;color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border-radius:5px;justify-content:center;align-items:center;padding:0;display:flex}.reorder-btn:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}.reorder-btn:disabled{opacity:.35;cursor:default}.settings-edit{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.settings-edit input[type=text],.settings-edit input:not([type]),.settings-edit input[type=number]{border:1px solid var(--border-input);border-radius:var(--r-md);height:36px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);flex:140px;min-width:0;padding:0 10px;font-family:inherit}.settings-edit input[type=color]{border:1px solid var(--border-input);border-radius:var(--r-md);background:var(--surface);cursor:pointer;flex:none;width:40px;height:36px;padding:2px}.settings-edit .form-error{flex:100%}
