:root{--bg:#f5f6f8;--surface:#fff;--surface-2:#f0f2f5;--border:#e2e5ea;--text:#1c2330;--muted:#6b7484;--accent:#3b5bdb;--accent-hover:#2f4ac0;--accent-soft:#e8edfd;--danger:#d6363a;--danger-soft:#fdecec;--ok:#2b8a3e;--st-new:#5c6bc0;--st-new-bg:#eceefb;--st-progress:#b26a00;--st-progress-bg:#fff3df;--st-review:#7b3fbf;--st-review-bg:#f3eafc;--st-done:#2b8a3e;--st-done-bg:#e6f4ea;--radius:10px;--shadow:0 1px 2px #1018280d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12151b;--surface:#1a1e26;--surface-2:#222733;--border:#2d3340;--text:#e6e9ef;--muted:#9099a8;--accent:#6d8bff;--accent-hover:#8aa2ff;--accent-soft:#232c4a;--danger:#ff6b6e;--danger-soft:#3a2024;--ok:#5cc277;--st-new:#9aa6ff;--st-new-bg:#262b48;--st-progress:#f2b552;--st-progress-bg:#3a2e18;--st-review:#c89bff;--st-review-bg:#33264a;--st-done:#6fcf86;--st-done-bg:#1f3526;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:24px;line-height:1.25}h2{margin:0 0 12px;font-size:17px}p{margin:0 0 12px}code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:13px}.muted{color:var(--muted)}.small{font-size:13px}.block{display:block}.text-danger{color:var(--danger)}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1120px;margin:0 auto;padding:10px 16px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-sub{color:var(--muted);font-weight:600}.brand-mark{background:var(--accent);color:#fff;border-radius:7px;place-items:center;width:26px;height:26px;font-size:15px;display:inline-grid}.brand-mark-lg{border-radius:12px;width:44px;height:44px;font-size:24px}.nav{align-items:center;gap:4px;display:flex}.nav>a{color:var(--text);border-radius:8px;padding:6px 10px;font-weight:500}.nav>a:hover{background:var(--surface-2);text-decoration:none}.nav-user{align-items:center;gap:8px;display:flex}.page{max-width:1120px;margin:0 auto;padding:24px 16px 64px}.page-auth{max-width:420px;padding-top:8vh}.narrow{max-width:760px;margin:0 auto}.stack{gap:16px;display:grid}.stack>h1{margin-bottom:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.btn{height:38px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex;text-decoration:none!important}.btn:disabled{opacity:.6;cursor:progress}.btn-sm{height:32px;padding:0 12px;font-size:14px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--border)}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;min-height:38px;padding:8px 10px}input[type=file]{background:var(--surface-2);padding:6px}textarea{resize:vertical;min-height:80px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field>span{font-size:14px;font-weight:600}.field-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-msg{border-radius:8px;margin:0;padding:8px 12px;font-size:14px}.form-error{background:var(--danger-soft);color:var(--danger)}.form-ok{background:var(--st-done-bg);color:var(--ok)}.auth{gap:16px;display:grid}.auth-brand{text-align:center;justify-items:center;gap:6px;display:grid}.auth-brand h1{margin-top:6px}.auth-brand p{margin:0}.auth-alt{text-align:center;color:var(--muted)}.toolbar{gap:12px;margin-bottom:16px;display:grid}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{color:var(--text);border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;display:inline-flex}.tab:hover{background:var(--surface);border-color:var(--border);text-decoration:none}.tab-active,.tab-active:hover{background:var(--text);color:var(--bg)}.tab-count{opacity:.65;font-variant-numeric:tabular-nums;font-size:12px}.tab-alert:not(.tab-active) .tab-count{color:var(--danger);opacity:1;font-weight:700}.filters{gap:8px;display:flex}.filters select{max-width:240px}.filters input{max-width:320px}.task-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.task-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow);justify-content:space-between;gap:16px;padding:14px 16px;transition:border-color .12s;display:flex}.task-row:hover{border-color:var(--accent);text-decoration:none}.task-row-overdue{border-left:3px solid var(--danger)}.task-main{gap:6px;min-width:0;display:grid}.task-title{overflow-wrap:anywhere;font-weight:600}.task-id{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.task-meta{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.meta{color:var(--muted)}.task-side{flex-shrink:0;align-items:center;gap:20px;display:flex}.deadline{text-align:right;min-width:120px;font-size:13px;line-height:1.35}.deadline small{color:inherit;opacity:.8}.assignee{align-items:center;gap:8px;width:170px;font-size:14px;display:flex}.assignee-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty{text-align:center;justify-items:center;gap:8px;padding:48px 20px;display:grid}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge-flag{color:var(--danger)}.status-new{background:var(--st-new-bg);color:var(--st-new)}.status-in_progress{background:var(--st-progress-bg);color:var(--st-progress)}.status-review{background:var(--st-review-bg);color:var(--st-review)}.status-done{background:var(--st-done-bg);color:var(--st-done)}.priority{font-size:12px;font-weight:600}.priority-high{color:var(--danger)}.priority-low{color:var(--muted)}.avatar{color:#fff;letter-spacing:.02em;border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.crumbs{margin-bottom:12px;font-size:14px}.task-layout{grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:"main aside""body aside";align-items:start;gap:16px 20px;display:grid}.task-main-card{grid-area:main;min-width:0}.task-body{grid-area:body;gap:16px;min-width:0;display:grid}.task-aside{grid-area:aside}.task-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.task-head h1{overflow-wrap:anywhere}.description{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:12px}.status-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:16px;display:flex}.files{gap:4px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.files a{overflow-wrap:anywhere}.section-title{margin:8px 0 0}.thread{gap:12px;margin:0;padding:0;list-style:none;display:grid}.event{color:var(--muted);align-items:baseline;gap:10px;padding-left:10px;font-size:13px;display:flex}.event b{color:var(--text);font-weight:600}.event time{white-space:nowrap;margin-left:auto}.event-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:8px;height:8px;transform:translateY(-1px)}.comment{align-items:flex-start;gap:10px;display:flex}.comment-bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex:1;min-width:0;padding:10px 14px}.comment-mine .comment-bubble{background:var(--accent-soft);border-color:#0000}.comment-head{justify-content:space-between;gap:12px;margin-bottom:4px;font-size:14px;display:flex}.comment-head time{white-space:nowrap;font-size:12px}.comment-text{white-space:pre-wrap;overflow-wrap:anywhere}.comment-form{padding:14px}.comment-form-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.comment-form-foot input[type=file]{max-width:360px}.task-aside{gap:16px;display:grid;position:sticky;top:72px}.props{grid-template-columns:auto 1fr;gap:10px 12px;margin:0;font-size:14px;display:grid}.props dt{color:var(--muted)}.props dd{margin:0}.person{align-items:center;gap:8px;display:flex}.aside-upload{border-top:1px solid var(--border);gap:8px;padding-top:16px;display:grid}.aside-upload .field>span{font-size:13px}.aside-actions{border-top:1px solid var(--border);gap:8px;padding-top:16px;display:flex}.table-wrap{padding:0;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;font-size:12px;font-weight:600}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.row-off{opacity:.5}.table td:first-child{min-width:220px}.nowrap{white-space:nowrap}.row-actions{justify-content:flex-end;gap:6px;display:flex}@media (max-width:820px){.task-layout{grid-template-columns:1fr;grid-template-areas:"main""aside""body"}.task-aside{position:static}.field-row{grid-template-columns:1fr}}@media (max-width:640px){.page{padding:16px 16px 48px}.nav-user-name,.brand-sub{display:none}.topbar-inner{gap:8px;padding:8px 12px}.nav{gap:0}.nav>a{padding:6px 7px}.nav .btn-sm{padding:0 8px}.page-head{flex-direction:column}.page-head .btn{width:100%}.tabs{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:0 16px 2px;overflow-x:auto}.filters{flex-wrap:wrap}.filters select,.filters input{flex:160px;max-width:none}.task-row{flex-direction:column;gap:10px}.task-side{justify-content:space-between}.deadline{text-align:left;min-width:0}.assignee{width:auto}.comment-form-foot{flex-direction:column;align-items:stretch}.comment-form-foot input[type=file]{max-width:none}.event{flex-wrap:wrap}}
