@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.p.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_1089a178-module__VaJgxa__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_1089a178-module__VaJgxa__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--bg:#f7f7fb;--panel:#fff;--border:#e5e4f1;--line:#f0eff8;--hover:#faf9ff;--text:#201c3d;--text-dim:#716f92;--accent:#6355ff;--accent-2:#ff6b9d;--accent-soft:#eeecff;--red:#e5484d;--red-soft:#fdeced;--green:#1a9d6c;--green-soft:#e7f8f1;--yellow:#c8850f;--yellow-soft:#fdf3e0;--orange:#d46108;--orange-soft:#fff0df;--priority-low-text:#08704a;--priority-low-bg:var(--green-soft);--priority-normal-text:#6f4500;--priority-normal-bg:#fff3b0;--priority-high-text:#8a3b00;--priority-high-bg:#ffd6ad;--priority-urgent-text:#a51d24;--priority-urgent-bg:var(--red-soft);--purple:#9065f0;--purple-soft:#f2edfe;--blue:#2f7ff0;--blue-soft:#eaf2fe;--gray-soft:#f2f1f9;--sidebar-bg:#fbfaff;--radius:12px;--radius-lg:20px;--shadow:0 1px 2px #201c3d0a, 0 8px 24px #201c3d0f;--shadow-lift:0 4px 10px #201c3d0f, 0 16px 36px #201c3d1a;--glass-bg:#ffffffb8;--glass-border:#fff9}[data-theme=dark]{--bg:#15131f;--panel:#1d1a2b;--border:#322d47;--line:#292440;--hover:#241f36;--text:#eeecfa;--text-dim:#9c98b8;--accent:#8b7dff;--accent-2:#ff85b3;--accent-soft:#2a2350;--red:#ff6b70;--red-soft:#3a2233;--green:#3fd18e;--green-soft:#16302a;--yellow:#e3ad4e;--yellow-soft:#362b18;--orange:#ff9f43;--orange-soft:#3b2818;--priority-low-text:var(--green);--priority-low-bg:var(--green-soft);--priority-normal-text:var(--yellow);--priority-normal-bg:#493712;--priority-high-text:var(--orange);--priority-high-bg:#55301c;--priority-urgent-text:var(--red);--priority-urgent-bg:var(--red-soft);--purple:#b09bff;--purple-soft:#2c2650;--blue:#6faaff;--blue-soft:#1c2a48;--gray-soft:#262138;--sidebar-bg:#1a1728;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000059;--shadow-lift:0 4px 10px #00000059, 0 20px 40px #00000073;--glass-bg:#1d1a2bb8;--glass-border:#ffffff14}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{overflow-x:hidden}body{font-family:var(--font-inter), -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;transition:background .15s,color .15s}input,select,textarea,button{color:inherit;font-family:inherit}h1{letter-spacing:-.015em;font-size:22px;font-weight:700;line-height:1.2}h2{letter-spacing:-.005em;font-size:15px;font-weight:650;line-height:1.3}h3{font-size:13px;font-weight:650;line-height:1.35}.muted,.chip{letter-spacing:.005em}.app{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;height:100vh;padding:16px 10px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-head{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar>nav{flex:1;min-height:0;overflow-y:auto}.sidebar-close{display:none}.logo{padding:6px 10px 18px;font-size:16px;font-weight:700}.workspace-switch{background:var(--gray-soft);border-radius:10px;flex-shrink:0;gap:3px;margin:0 10px 14px;padding:3px;display:flex}.workspace-btn{text-align:center;color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;flex:1;padding:7px 4px;font-size:12px;font-weight:600;text-decoration:none;position:relative;overflow:hidden}.workspace-btn:hover,.workspace-btn.active{color:var(--text)}.workspace-btn-bg{background:var(--panel);box-shadow:var(--shadow);z-index:0;border-radius:8px;position:absolute;inset:0}.workspace-btn-label{z-index:1;position:relative}.tab-switch{background:var(--gray-soft);border-radius:11px;gap:3px;padding:3px;display:inline-flex}.tab-switch-btn{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:color .15s;position:relative}.tab-switch-btn:hover,.tab-switch-btn.active{color:var(--text)}.tab-switch-btn-bg{background:var(--panel);box-shadow:var(--shadow);z-index:0;border-radius:8px;position:absolute;inset:0}.tab-switch-btn-label{z-index:1;position:relative}.tab-switch.compact{border-radius:9px;max-width:100%;padding:2px}.tab-switch.compact .tab-switch-btn{border-radius:7px;padding:5px 10px;font-size:12.5px}.tab-switch.compact .tab-switch-btn-bg{border-radius:7px}.nav-btn{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;margin-bottom:2px;padding:8px 10px;font-size:14px;text-decoration:none;display:block;position:relative}.nav-btn:hover{background:var(--gray-soft)}.nav-btn.active{font-weight:600}.nav-btn-bg{background:var(--gray-soft);z-index:0;border-radius:8px;position:absolute;inset:0}.nav-btn-label{z-index:1;position:relative}.sidebar-footer{flex-direction:column;flex-shrink:0;gap:6px;margin-top:auto;display:flex}.ghost-btn{border:1px solid var(--border);background:var(--panel);color:var(--text-dim);cursor:pointer;text-align:left;border-radius:6px;padding:7px 10px;font-size:13px}.ghost-btn:hover{background:var(--gray-soft)}.project-switch{flex-shrink:0;padding:0 10px 14px;display:block}.project-switch>span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;display:block}.project-switch select,.project-single{border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font-size:13.5px;font-weight:600}.project-single{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-switch select{cursor:pointer}.project-card{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px}.project-card-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.project-card-head .inline-input{font-weight:600}.project-members{flex-wrap:wrap;gap:6px 16px;display:flex}.member-check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.member-check input{cursor:pointer}.profile-badge{background:var(--gray-soft);border-radius:10px;align-items:center;gap:9px;margin-bottom:6px;padding:7px 8px;font-size:12.5px;display:flex}.profile-badge .avatar{width:28px;height:28px;color:var(--accent);background:var(--accent-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.profile-badge .avatar.role-admin{color:var(--purple);background:var(--purple-soft)}.profile-badge .avatar.role-tester{color:var(--green);background:var(--green-soft)}.profile-badge .avatar.role-developer{color:var(--blue);background:var(--blue-soft)}.profile-badge .avatar.role-project_manager{color:var(--yellow);background:var(--yellow-soft)}.profile-badge .avatar.role-business_analyst,.profile-badge .avatar.role-director{color:var(--purple);background:var(--purple-soft)}.profile-badge .avatar.role-technical_writer{color:var(--blue);background:var(--blue-soft)}.profile-badge .avatar.role-viewer{color:var(--text-dim);background:var(--gray-soft)}.profile-badge-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.profile-badge .role{color:var(--text-dim);font-size:11.5px}.notif-bell-wrap{position:relative}.notif-bell{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:18px;line-height:1;position:relative}.notif-bell:hover{background:var(--gray-soft)}.notif-badge{background:var(--red);color:#fff;min-width:15px;height:15px;animation:badge-pop .38s var(--ease-spring);border-radius:8px;justify-content:center;align-items:center;padding:0 3px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-2px;right:-2px}@keyframes badge-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.notif-badge{animation:none}}.notif-backdrop{z-index:90;background:0 0;position:fixed;inset:0}.notif-panel{z-index:91;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:320px;max-width:88vw;max-height:420px;box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);transform-origin:100% 0;position:fixed;overflow-y:auto}@keyframes notif-in{0%{opacity:0;transform:scale(.94)translateY(-6px)}to{opacity:1;transform:none}}@keyframes notif-out{to{opacity:0;transform:scale(.96)translateY(-4px)}}.notif-panel.placed{animation:notif-in .2s var(--ease-out)}.notif-panel.closing{animation:notif-out .12s var(--ease-in) forwards;pointer-events:none}@media (prefers-reduced-motion:reduce){.notif-panel.placed,.notif-panel.closing{animation:none}}@media (prefers-reduced-transparency:reduce){.notif-panel{background:var(--panel);-webkit-backdrop-filter:none;backdrop-filter:none}}.notif-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.notif-list{flex-direction:column;display:flex}.notif-item{border:none;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:flex-start;gap:8px;width:100%;padding:10px 12px;font-family:inherit;display:flex}.notif-item:last-child{border-bottom:none}.notif-item{transition:background-color .15s var(--ease-out)}.notif-item:hover,.notif-item:active{background:var(--gray-soft)}.notif-dot{background:0 0;border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:5px}.notif-item.unread .notif-dot{background:var(--accent)}.notif-item-body{flex-direction:column;gap:2px;min-width:0;display:flex}.notif-item-text{color:var(--text);font-size:13px}.notif-item.unread .notif-item-text{font-weight:600}.mobile-topbar{z-index:40;background:var(--sidebar-bg);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 14px;display:none;position:sticky;top:0}.hamburger-btn{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:20px;line-height:1}.hamburger-btn:hover{background:var(--gray-soft)}.mobile-topbar-logo{font-size:15px;font-weight:700}.sidebar-overlay{display:none}@media (max-width:860px){.app{flex-direction:column}.mobile-topbar{display:flex}.sidebar{z-index:60;max-width:82vw;height:100vh;transition:transform .34s var(--ease-sheet);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:15px;display:inline-block}.sidebar-close:hover{background:var(--gray-soft)}.sidebar-overlay{z-index:55;opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out);background:#0006;display:block;position:fixed;inset:0}.sidebar-overlay.open{opacity:1;pointer-events:auto}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}.sidebar-overlay{transition:opacity .15s linear}}main.content{width:100%;padding:18px 18px 60px}}@media (max-width:480px){.page-header h1{font-size:20px}main.content{padding:14px 12px 50px}.prop-row{flex-direction:column;align-items:stretch;gap:3px}.prop-label{width:auto;padding-top:0}.prop-value input[type=text],.prop-value input[type=date],.prop-value select{max-width:100%}.filters input[type=search]{flex:100%;min-width:0}.detail-back{flex-wrap:wrap;gap:8px}.detail-back-right{flex-wrap:wrap;gap:6px 10px}}main.content{flex:1;min-width:0;max-width:1250px;margin:0 auto;padding:28px 40px 80px}@media (min-width:1600px){main.content{max-width:1800px;padding-left:56px;padding-right:56px}}@media (min-width:1900px){html{zoom:1.15}}@media (min-width:2400px){html{zoom:1.3}}@media (min-width:3200px){html{zoom:1.5}}@media (min-width:1900px){.sidebar{height:86.9565vh}.app{min-height:86.9565vh}}@media (min-width:2400px){.sidebar{height:76.9231vh}.app{min-height:76.9231vh}}@media (min-width:3200px){.sidebar{height:66.6667vh}.app{min-height:66.6667vh}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.page-header h1{font-size:24px}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}:root{--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-sheet:cubic-bezier(.32, .72, 0, 1)}.primary-btn{background:var(--accent);color:#fff;cursor:pointer;transition:filter .15s, transform .15s var(--ease-spring), box-shadow .15s, opacity .2s var(--ease-out);border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:500}.primary-btn:hover{filter:brightness(1.08);box-shadow:var(--shadow-lift)}.primary-btn:active{transform:scale(.97)}.secondary-btn{background:var(--panel);color:var(--text);border:1px solid var(--border);cursor:pointer;transition:background .15s, transform .15s var(--ease-spring), opacity .2s var(--ease-out), border-color .15s, color .15s;border-radius:8px;padding:7px 12px;font-size:13px;text-decoration:none;display:inline-block}.secondary-btn:hover{background:var(--gray-soft)}.secondary-btn:active{transform:scale(.97)}.secondary-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.danger-btn{background:var(--panel);color:var(--red);border:1px solid var(--border);cursor:pointer;transition:background .15s, transform .15s var(--ease-spring), opacity .2s var(--ease-out);border-radius:8px;padding:7px 12px;font-size:13px}.danger-btn:hover{background:var(--red-soft)}.danger-btn:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.primary-btn,.secondary-btn,.danger-btn{transition:background .1s,filter .1s}.primary-btn:active,.secondary-btn:active,.danger-btn:active{transform:none}}.readonly-note{background:var(--yellow-soft);color:var(--yellow);border-radius:6px;margin-bottom:14px;padding:8px 12px;font-size:13px}.success-note{background:var(--green-soft);color:var(--green);border-radius:6px;margin-bottom:14px;padding:8px 12px;font-size:13px}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters input[type=search],.filters select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:7px 10px;font-size:13px}.filters input[type=search]{min-width:220px}.custom-select{display:inline-block;position:relative}.custom-select-trigger{background:var(--panel);width:100%;color:var(--text);border:1px solid var(--border);cursor:pointer;transition:border-color .15s var(--ease-out), background .15s var(--ease-out);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;font-family:inherit;font-size:13px;display:flex}.custom-select-trigger:hover{background:var(--gray-soft)}.custom-select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.custom-select-value{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.custom-select-chevron{color:var(--text-dim);transition:transform .15s var(--ease-spring);flex-shrink:0;font-size:11px}.custom-select-chevron.open{transform:rotate(180deg)}.custom-select-menu{z-index:20;background:var(--panel);border:1px solid var(--border);min-width:180px;max-height:280px;box-shadow:var(--shadow-lift);animation:fade-up .16s var(--ease-out) backwards;border-radius:10px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.custom-select-option{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:7px 10px;font-size:13px;overflow:hidden}.custom-select-option.active{background:var(--gray-soft)}.custom-select-option.selected{color:var(--accent);font-weight:500}.custom-select-option.selected.active{background:var(--accent-soft)}@media (prefers-reduced-motion:reduce){.custom-select-menu{animation:none}.custom-select-chevron{transition:none}}.table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow-x:auto}.table-wrap::-webkit-scrollbar{width:9px;height:9px}.chip-cell-scroll::-webkit-scrollbar{width:9px;height:9px}.dash-panel-body::-webkit-scrollbar{width:9px;height:9px}.modal-body::-webkit-scrollbar{width:9px;height:9px}.chip-cell-scroll::-webkit-scrollbar{width:6px}.table-wrap::-webkit-scrollbar-track{background:0 0}.chip-cell-scroll::-webkit-scrollbar-track{background:0 0}.dash-panel-body::-webkit-scrollbar-track{background:0 0}.modal-body::-webkit-scrollbar-track{background:0 0}.table-wrap::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:5px}.chip-cell-scroll::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:5px}.dash-panel-body::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:5px}.modal-body::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:5px}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--text-dim);background-clip:content-box}.chip-cell-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-dim);background-clip:content-box}.dash-panel-body::-webkit-scrollbar-thumb:hover{background:var(--text-dim);background-clip:content-box}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-dim);background-clip:content-box}table.list{border-collapse:collapse;table-layout:fixed;width:100%;min-width:920px}table.list.checklist-table{min-width:790px}table.list.checklist-table th.col-title-md{width:220px}table.list th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:12px;font-weight:500}table.list td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}table.list tbody tr{cursor:pointer;transition:background .12s var(--ease-out);animation:fade-up .25s var(--ease-out) both}table.list tbody tr:first-child{animation-delay:10ms}table.list tbody tr:nth-child(2){animation-delay:30ms}table.list tbody tr:nth-child(3){animation-delay:50ms}table.list tbody tr:nth-child(4){animation-delay:70ms}table.list tbody tr:nth-child(5){animation-delay:90ms}table.list tbody tr:nth-child(6){animation-delay:.11s}table.list tbody tr:nth-child(7){animation-delay:.13s}table.list tbody tr:nth-child(8){animation-delay:.15s}@media (prefers-reduced-motion:reduce){table.list tbody tr{animation:none}}table.list tbody tr:hover{background:var(--hover)}table.list tbody tr:active{background:var(--gray-soft)}table.list tbody tr:last-child td{border-bottom:none}.row-title{font-weight:600}tr.group-row{background:var(--gray-soft)}tr.group-row:hover{background:var(--border)}tr.group-row td{padding:10px 14px}.group-row-inner{align-items:center;gap:10px;display:flex}.group-arrow{color:var(--text-dim);transition:transform .12s var(--ease-out);font-size:12px;display:inline-block}.group-arrow.open{transform:rotate(90deg)}.group-label{font-weight:600}.group-count{color:var(--text-dim);font-size:13px}.group-mini{align-items:center;gap:8px;margin-left:auto;display:flex}.group-mini .progress-bar{min-width:90px}.group-mini .muted{white-space:nowrap;font-size:12px}@media (prefers-reduced-motion:reduce){.group-arrow{transition:none}}table.list th.col-title{width:32%}table.list th.col-title-md{width:26%}table.list td.row-title{overflow-wrap:break-word}table.list th.col-chips,table.list td.col-chips{width:14%}table.list th.col-chips-sm{width:90px}table.list th.col-source{width:200px}table.list th.col-checked{width:150px}table.list th.col-area{width:120px}table.list th.col-features{width:130px}table.list th.col-date{width:140px}table.list th.col-id{width:80px}.th-sort{font:inherit;color:inherit;cursor:pointer;transition:color .15s var(--ease-out), transform .15s var(--ease-spring);background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;margin:0;padding:0;display:inline-flex}.th-sort:hover{color:var(--text)}.th-sort:active{transform:scale(.96)}.th-sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.th-sort-arrow{transition:transform .22s var(--ease-out);font-size:11px;display:inline-block}.th-sort-arrow.asc{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.th-sort,.th-sort-arrow{transition:none}.th-sort:active{transform:none}}table.list th.col-severity{width:90px}table.list th.col-status{width:110px}table.list th.col-progress{width:150px}table.list th.col-automation{width:110px}table.list th.col-priority{width:90px}table.list th.col-assignee,table.list td.col-assignee{width:140px}table.list th.col-status,table.list td.col-status{width:172px}table.list td .chip:not(.code):not([class*=sev-]):not([class*=st-]):not([class*=prio-]){white-space:normal;overflow-wrap:break-word;max-width:100%}.chip-cell-scroll{flex-direction:column;gap:3px;max-height:54px;display:flex;overflow:hidden auto}.chip-cell-scroll .chip{white-space:normal;overflow-wrap:break-word;max-width:100%;margin:0}.muted{color:var(--text-dim);font-size:12.5px}.empty-state{text-align:center;color:var(--text-dim);padding:40px}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.pagination-controls{align-items:center;gap:10px;display:flex}.pagination-page{color:var(--text-dim);white-space:nowrap;font-size:13px}.chip{white-space:nowrap;background:var(--gray-soft);color:var(--text);border-radius:4px;margin:1px 2px 1px 0;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.chip.sev-Blocker,.chip.sev-Critical{background:var(--red-soft);color:var(--red)}.chip.sev-Major{background:var(--yellow-soft);color:var(--yellow)}.chip.sev-Minor{background:var(--blue-soft);color:var(--blue)}.chip.sev-Trivial,.chip.sc-gray{background:var(--gray-soft);color:var(--text-dim)}.chip.sc-red{background:var(--red-soft);color:var(--red)}.chip.sc-yellow{background:var(--yellow-soft);color:var(--yellow)}.chip.sc-green{background:var(--green-soft);color:var(--green)}.chip.sc-blue{background:var(--blue-soft);color:var(--blue)}.chip.sc-purple{background:var(--purple-soft);color:var(--purple)}.chip.sc-draft{font-style:italic}.chip.prio-Low{background:var(--priority-low-bg);color:var(--priority-low-text)}.chip.prio-Normal{background:var(--priority-normal-bg);color:var(--priority-normal-text)}.chip.prio-High{background:var(--priority-high-bg);color:var(--priority-high-text)}.chip.prio-Urgent{background:var(--priority-urgent-bg);color:var(--priority-urgent-text)}.chip.link{cursor:pointer;background:var(--accent-soft);color:var(--accent);font:inherit;border:none;font-size:12px}.chip.link:hover{text-decoration:underline}.chip.code{background:var(--gray-soft);color:var(--text-dim);font-family:ui-monospace,monospace;font-size:11.5px}.chip.role-admin{background:var(--purple-soft);color:var(--purple)}.chip.role-tester{background:var(--green-soft);color:var(--green)}.chip.role-developer{background:var(--blue-soft);color:var(--blue)}.chip.role-project_manager{background:var(--yellow-soft);color:var(--yellow)}.chip.role-business_analyst,.chip.role-director{background:var(--purple-soft);color:var(--purple)}.chip.role-technical_writer{background:var(--blue-soft);color:var(--blue)}.chip.role-viewer{background:var(--gray-soft);color:var(--text-dim)}.detail-back{justify-content:space-between;margin-bottom:14px;display:flex}.detail-title{width:100%;color:var(--text);background:0 0;border:none;border-bottom:2px solid #0000;outline:none;margin-bottom:16px;padding:4px 0;font-size:26px;font-weight:700}.detail-title:focus{border-bottom-color:var(--accent)}.detail-title:disabled{opacity:1}.props{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:22px;padding:6px 16px}.prop-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:7px 0;display:flex}.prop-row:last-child{border-bottom:none}.prop-label{width:150px;color:var(--text-dim);flex-shrink:0;padding-top:5px;font-size:13px}.prop-value{flex:1;min-width:0}.prop-value input[type=text],.prop-value input[type=date],.prop-value select{width:100%;max-width:340px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 8px;font-size:13.5px}.prop-value input:hover:not(:disabled),.prop-value select:hover:not(:disabled){background:var(--gray-soft)}.prop-value input:focus,.prop-value select:focus{border-color:var(--accent);background:var(--panel);outline:none}.prop-value input:disabled,.prop-value select:disabled{opacity:.9}.prop-static{padding:5px 0;font-size:13.5px}.prop-value select option{background:var(--panel)}.ms-box{flex-wrap:wrap;align-items:center;gap:4px;padding:3px 0;display:flex}.ms-chip{align-items:center;gap:4px;max-width:100%;display:inline-flex}.ms-chip>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-ratio{align-items:center;gap:8px;min-height:28px;display:flex}.task-ratio-track{background:var(--gray-soft);border-radius:3px;flex:1;max-width:160px;height:6px;overflow:hidden}.task-ratio-track i{background:var(--green);border-radius:3px;height:100%;transition:width .3s;display:block}.task-ratio-num{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.task-bug{flex-wrap:wrap;row-gap:2px}.task-bug>.chip{padding:1px 6px;font-size:11px}.bug-fixed-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-size:12px;display:inline-flex}.bug-fixed-toggle input{cursor:pointer;margin:0}.bug-fixed-toggle input:disabled{cursor:not-allowed}.ms-chip button{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;margin:-4px -4px -4px 0;padding:4px 6px;font-size:11px}.ms-chip button:hover{opacity:1}.ms-chip input[type=checkbox]{flex-shrink:0;margin:0}.chip.resolved{background:var(--green-soft);color:var(--green)}.chip.resolved>span{opacity:.8;text-decoration:line-through}.ms-add{border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:12px}.ms-add:hover{background:var(--gray-soft)}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.table-wrap{animation:fade-up .3s var(--ease-out) both}@media (prefers-reduced-motion:reduce){.table-wrap{animation:none}}.section{margin-bottom:26px}.section h2{margin-bottom:8px;font-size:16px}.section textarea{border:1px solid var(--border);border-radius:var(--radius);resize:vertical;background:var(--panel);width:100%;min-height:90px;color:var(--text);padding:10px 12px;font-family:inherit;font-size:13.5px;line-height:1.55}.section textarea:focus{border-color:var(--accent);outline:none}.section-hint{color:var(--text-dim);margin-bottom:6px;font-size:12px}.section-head-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.section-head-row h2{margin-bottom:0}.optional-fields-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.table-block{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}.table-block-footer{border-top:1px solid var(--border);background:var(--sidebar-bg);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.rich-wrap.is-table-block{border:none;border-radius:0}.steps-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}table.steps{border-collapse:collapse;width:100%;min-width:1120px}table.steps th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);border-right:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:500}table.steps td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;padding:0}table.steps th:last-child,table.steps td:last-child{border-right:none}.steps-section-head{flex-wrap:wrap;margin-bottom:8px}.steps-visibility-btn{white-space:nowrap}.step-drag-column{width:38px}.step-drag-cell{text-align:center;width:38px;vertical-align:middle!important;padding:0!important}.step-drag-handle{width:100%;min-height:60px;color:var(--text-dim);cursor:grab;letter-spacing:-4px;background:0 0;border:0;padding:8px 10px 8px 6px;font-size:17px;transition-property:color,background-color,scale;transition-duration:.12s}.step-drag-handle:hover,.step-drag-handle:focus-visible{color:var(--accent);background:var(--accent-soft);outline:none}.step-drag-handle:active{cursor:grabbing;scale:.96}table.steps tr.step-drag-over>td{box-shadow:inset 0 2px 0 var(--accent)}.step-priority-column,.step-priority-cell{min-width:54px;max-width:54px;text-align:center!important;width:54px!important}.step-priority-cell{vertical-align:middle!important;padding:7px!important}.step-priority-compact{outline-offset:2px;border-radius:999px;outline:2px solid #0000;place-items:center;width:30px;height:30px;font-size:12px;font-weight:750;transition-property:scale,outline-color;transition-duration:.12s;display:inline-grid;position:relative}.step-priority-compact:focus-within{outline-color:var(--accent)}.step-priority-compact:active{scale:.96}.step-priority-compact select{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;inset:0}.step-priority-compact select:disabled{cursor:default}.step-priority-compact.prio-Low{background:var(--priority-low-bg);color:var(--priority-low-text)}.step-priority-compact.prio-Normal{background:var(--priority-normal-bg);color:var(--priority-normal-text)}.step-priority-compact.prio-High{background:var(--priority-high-bg);color:var(--priority-high-text)}.step-priority-compact.prio-Urgent{background:var(--priority-urgent-bg);color:var(--priority-urgent-text)}.steps-empty{text-align:center;color:var(--text-dim);padding:22px 12px!important}table.steps textarea{resize:none;width:100%;min-height:60px;color:var(--text);background:0 0;border:none;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.5;display:block;overflow:hidden}table.steps textarea:focus{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.step-status-btn{cursor:pointer;width:100%;color:var(--text-dim);background:0 0;border:none;padding:10px 6px;font-size:16px;font-weight:700}.step-status-btn:hover:not(:disabled){background:var(--gray-soft)}.step-status-btn:disabled{cursor:default}.step-status-btn.status-pass{color:var(--green)}.step-status-btn.status-fail{color:var(--red)}.step-cell-actions{text-align:center;padding:6px!important}.step-del{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:14px}.step-del:hover{background:var(--red-soft);color:var(--red)}.steps-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 2px;display:flex}.steps-footer-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.run-summary{color:var(--text-dim);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.run-summary b{color:var(--text)}.progress-bar{background:var(--gray-soft);border-radius:3px;min-width:160px;height:6px;margin-top:4px;display:flex;overflow:hidden}.progress-bar .p{background:var(--green)}.progress-bar .f{background:var(--red)}.row-remove-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;padding:4px 6px;font-size:13px}.row-remove-btn:hover{background:var(--red-soft);color:var(--red)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:26px;display:grid}.stats-grid>*{min-width:0}.stat-card-link{color:inherit;border-radius:var(--radius);text-decoration:none;display:block}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;color:var(--text);padding:18px;transition:box-shadow .2s,border-color .2s}.stat-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lift)}.stat-icon{background:var(--gray-soft);border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:12px;font-size:16px;display:flex}.stat-card.tint-blue .stat-icon{background:var(--blue-soft)}.stat-card.tint-green .stat-icon{background:var(--green-soft)}.stat-card.tint-purple .stat-icon{background:var(--purple-soft)}.stat-card.tint-red .stat-icon{background:var(--red-soft)}.stat-card.tint-yellow .stat-icon{background:var(--yellow-soft)}.stat-card.tint-gray .stat-icon{background:var(--gray-soft)}.stat-card.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.stat-card-btn{all:unset;cursor:pointer;width:100%;display:block}.stat-num{letter-spacing:-.01em;font-size:28px;font-weight:700}.stat-label{color:var(--text-dim);margin-top:2px;font-size:13px}.dash-cols{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.dash-cols:last-child{margin-bottom:0}.dash-cols>*{min-width:0}@media (max-width:900px){.dash-cols{grid-template-columns:1fr}}.dash-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;height:min(320px,max(160px,50vh - 185px));padding:18px;display:flex}.dash-panel h3{flex-shrink:0;margin-bottom:10px;font-size:14px}.dash-panel-body{flex:1;min-height:0;overflow-y:auto}.dash-progress-body{flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.donut-frame{aspect-ratio:1;width:100%;max-width:100%;margin:0 auto;display:block}.donut{width:100%;height:100%;display:block}.donut-pct{fill:var(--text);font-size:24px;font-weight:700}.donut-pct-label{fill:var(--text-dim);font-size:10.5px}.dash-progress-legend{grid-template-columns:repeat(2,minmax(0,auto));gap:8px 28px;width:fit-content;max-width:100%;display:grid}.dash-progress-legend.row{flex-wrap:wrap;justify-content:center;gap:8px 24px;width:auto;display:flex}.legend-row{color:var(--text);align-items:center;gap:14px;min-width:0;font-size:13.5px;display:flex}.legend-row-label{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.legend-row b{font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;min-width:2.2ch;font-size:15px}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-dot-outline{background:var(--gray-soft);border:1px solid var(--border)}@media (max-width:420px){.dash-progress-body{gap:14px}}.dash-row{border-bottom:1px solid var(--line);cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:8px;padding:7px 0;text-decoration:none;display:flex}.dash-row:last-child{border-bottom:none}.dash-row:hover .row-title{color:var(--accent)}.dash-row>:first-child{flex:1;min-width:0}.dash-row>:last-child{flex-shrink:0}.dash-row .row-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dash-row.area-row:hover{background:var(--hover)}.dash-row.area-row:hover span:first-child{color:var(--accent);text-decoration:underline}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:none}}@keyframes modal-overlay-out{to{opacity:0}}@keyframes modal-out{to{opacity:0;transform:scale(.97)translateY(4px)}}.modal-overlay{z-index:100;animation:modal-overlay-in .18s var(--ease-out);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14102370;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.closing{animation:modal-overlay-out .14s var(--ease-in) forwards;pointer-events:none}.modal-overlay.closing>.modal,.modal-overlay.closing>.lightbox-img{animation:modal-out .14s var(--ease-in) forwards}@media (prefers-reduced-transparency:reduce){.modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}}.modal{background:var(--panel);border-radius:var(--radius-lg);width:460px;max-width:92vw;max-height:82vh;box-shadow:var(--shadow-lift);border:1px solid var(--border);animation:modal-in .22s var(--ease-out);transition:scale .22s var(--ease-spring);padding:20px;overflow-y:auto}.modal.nudge{scale:1.018}@media (prefers-reduced-motion:reduce){.modal{transition:none}}@media (min-width:1900px){.modal{max-height:71.3044vh}}@media (min-width:2400px){.modal{max-height:63.0769vh}}@media (min-width:3200px){.modal{max-height:54.6667vh}}.modal h3{margin-bottom:12px;font-size:15px}.modal-tabs-row{margin-bottom:12px}.modal-search{border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:8px;margin-bottom:10px;padding:8px 10px;font-family:inherit;font-size:13.5px}.modal-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.modal-list{flex-direction:column;gap:4px;max-height:320px;margin-bottom:14px;display:flex;overflow-y:auto}.modal-list .pick-item{cursor:pointer;text-align:left;width:100%;color:var(--text);transition:background .12s var(--ease-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:7px 8px;font-size:13.5px;display:flex}.modal-list .pick-item:hover{background:var(--gray-soft)}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal input[type=text],.modal select,.modal textarea{border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13.5px}.modal input[type=text]:focus,.modal select:focus,.modal textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal,.modal-overlay.closing,.modal-overlay.closing>.modal,.modal-overlay.closing>.lightbox-img,.lightbox-img{animation:none}}.settings-section{margin-bottom:18px}.settings-section h4{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:13px;font-weight:600}.theme-toggle{gap:6px;display:flex}.theme-toggle button{border:1px solid var(--border);background:var(--panel);cursor:pointer;color:var(--text);border-radius:6px;flex:1;padding:8px;font-size:13px}.theme-toggle button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.weekday-picker{flex-wrap:wrap;gap:8px;display:flex}.weekday-btn{border:1px solid var(--border);background:var(--panel);width:44px;height:44px;color:var(--text-dim);cursor:pointer;border-radius:50%;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .12s}.weekday-btn:hover{border-color:var(--accent)}.weekday-btn:active{transform:scale(.94)}.weekday-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.weekday-btn:disabled{opacity:.6;cursor:default}.profile-row{border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;margin-bottom:6px;padding:8px;display:flex}.profile-row.active-profile{border-color:var(--accent);background:var(--accent-soft)}.profile-row .p-name{text-overflow:ellipsis;flex:1;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden}.profile-row .icon-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:13px}.profile-row .icon-btn:hover{background:var(--gray-soft);color:var(--text)}.profile-row .icon-btn.danger:hover{background:var(--red-soft);color:var(--red)}.add-profile-form{flex-wrap:wrap;gap:6px;display:flex}.add-profile-form input{flex:2;min-width:130px}.add-profile-form select{flex:1;min-width:120px}.role-hint{color:var(--text-dim);margin-top:6px;font-size:12px;line-height:1.5}.toast{background:var(--text);color:var(--bg);z-index:200;border-radius:8px;padding:10px 16px;font-size:13.5px;animation:2.4s forwards fade;position:fixed;bottom:24px;right:24px}@keyframes fade{0%{opacity:0;transform:translateY(8px)}10%{opacity:1;transform:none}85%{opacity:1}to{opacity:0}}.loading{text-align:center;color:var(--text-dim);padding:60px}.login-page{background:radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 55%), radial-gradient(circle at 85% 90%, color-mix(in srgb, var(--accent-2) 12%, transparent), transparent 55%), var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:380px;max-width:100%;box-shadow:var(--shadow-lift);animation:modal-in .25s var(--ease-out);padding:30px}.login-logo{margin-bottom:4px}.login-logo-img{width:auto;height:26px;display:block}.login-logo-img-dark,[data-theme=dark] .login-logo-img-light{display:none}[data-theme=dark] .login-logo-img-dark{display:block}.login-sub{color:var(--text-dim);margin-bottom:20px;font-size:13.5px}.login-btn{width:100%;margin-top:6px}.login-error,.form-error{background:var(--red-soft);color:var(--red);border-radius:6px;margin-bottom:10px;padding:8px 12px;font-size:13px}.form-ok{background:var(--green-soft);color:var(--green);border-radius:6px;margin-bottom:10px;padding:8px 12px;font-size:13px}.field{margin-bottom:14px;display:block}.field>span{color:var(--text-dim);margin-bottom:4px;font-size:12.5px;display:block}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-hint{margin-top:3px;font-size:11.5px;display:block}.create-modal-fields{margin-top:4px}.table-size-fields{gap:12px;display:flex}.table-size-fields .field{flex:1;margin-bottom:10px}.table-size-header-toggle{cursor:pointer;align-items:center;gap:8px;margin-bottom:16px;font-size:13.5px;display:flex}.rich-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.rich-wrap:focus-within{border-color:var(--accent)}.rich-wrap.is-readonly{background:0 0;border-style:dashed}.rich-toolbar{border-bottom:1px solid var(--border);background:var(--sidebar-bg);flex-wrap:wrap;align-items:center;gap:2px;padding:5px 6px;display:flex}.rich-toolbar button{cursor:pointer;min-width:28px;height:26px;color:var(--text-dim);background:0 0;border:none;border-radius:5px;padding:0 7px;font-size:12.5px}.rich-toolbar button:hover{background:var(--gray-soft);color:var(--text)}.rich-toolbar button.active{background:var(--accent-soft);color:var(--accent)}.rich-sep{background:var(--border);width:1px;height:16px;margin:0 4px}.rich-input{outline:none;min-height:90px;padding:12px 14px;font-size:14px;line-height:1.6}.rich-input:focus{outline:none}.rich-input p{margin:0 0 8px}.rich-input p:last-child{margin-bottom:0}.rich-input h1{margin:14px 0 6px;font-size:22px}.rich-input h2{margin:12px 0 6px;font-size:18px}.rich-input h3{margin:10px 0 4px;font-size:15.5px}.rich-input ul,.rich-input ol{margin:0 0 8px;padding-left:22px}.rich-input li{margin-bottom:3px}.rich-input li>p{margin:0}.rich-input blockquote{border-left:3px solid var(--border);color:var(--text-dim);margin:8px 0;padding-left:12px}.rich-input code{background:var(--gray-soft);border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:12.5px}.rich-input pre{background:var(--gray-soft);border-radius:6px;margin:8px 0;padding:10px 12px;overflow-x:auto}.rich-input pre code{background:0 0;padding:0}.rich-input hr{border:none;border-top:1px solid var(--border);margin:12px 0}.rich-input p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;pointer-events:none;height:0;color:var(--text-dim)}.rich-input table,.rich-view table{border-collapse:collapse;table-layout:fixed;width:100%;margin:8px 0}.rich-input td,.rich-input th,.rich-view td,.rich-view th{border:1px solid var(--border);vertical-align:top;text-align:left;min-width:60px;padding:6px 9px}.rich-input th,.rich-view th{background:var(--gray-soft);font-weight:600}.rich-input td>p,.rich-input th>p,.rich-view td>p,.rich-view th>p{margin:0}.rich-input .selectedCell{background:var(--accent-soft)}.rich-input .tableWrapper,.rich-view .tableWrapper{overflow-x:auto}.rich-view{font-size:14px;line-height:1.6}.rich-view p{margin:0 0 8px}.rich-view p:last-child{margin-bottom:0}.rich-view h1{margin:14px 0 6px;font-size:22px}.rich-view h2{margin:12px 0 6px;font-size:18px}.rich-view h3{margin:10px 0 4px;font-size:15.5px}.rich-view ul,.rich-view ol{margin:0 0 8px;padding-left:22px}.rich-view blockquote{border-left:3px solid var(--border);color:var(--text-dim);margin:8px 0;padding-left:12px}.rich-view code{background:var(--gray-soft);border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:12.5px}.rich-view pre{background:var(--gray-soft);border-radius:6px;padding:10px 12px;overflow-x:auto}.rich-view a{color:var(--accent)}.rich-wrap.is-readonly .rich-view{padding:12px 14px}.detail-back-right{align-items:center;gap:10px;display:flex}.save-float{z-index:85;pointer-events:none;background:var(--panel);border:1px solid var(--border);max-width:min(360px,100vw - 32px);box-shadow:var(--shadow-lift);animation:save-float-in .22s var(--ease-out);transition:color .2s var(--ease-out);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;line-height:1.3;position:fixed;top:68px;right:20px}.save-float.dirty{color:var(--yellow)}.save-float.saving{color:var(--accent)}.save-float.saved{color:var(--green)}.save-float.error{color:var(--red);border-radius:12px}@keyframes save-float-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.save-float.leaving{animation:save-float-out .16s var(--ease-in) forwards}@keyframes save-float-out{to{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.save-float,.save-float.leaving{animation:none}}.upload-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.attach-dropzone-active{outline:2px dashed var(--accent);outline-offset:4px;border-radius:var(--radius);background:var(--accent-soft)}.attach-dropzone-hint{text-align:center;color:var(--accent);padding:10px;font-size:13px;font-weight:600}.attach-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.attach-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.attach-card img,.attach-card video{object-fit:cover;background:var(--gray-soft);width:100%;height:150px;display:block}.attach-file-icon{background:var(--gray-soft);height:220px;color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex}.attach-file-icon span{font-size:44px}.attach-file-icon b{overflow-wrap:anywhere;max-width:100%;font-size:13px}.attach-card video{object-fit:contain;background:#000;height:220px}.attach-card img{cursor:zoom-in}.attach-card figcaption{flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;display:flex}.attach-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.attach-actions{gap:6px;margin-top:4px;display:flex}.attach-actions .chip.link{cursor:pointer;border:none;font-family:inherit;text-decoration:none}.chip.link.danger{background:var(--red-soft);color:var(--red)}.lightbox-img{object-fit:contain;max-width:92vw;max-height:92vh;animation:modal-in .24s var(--ease-out);border-radius:8px}.comments{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.comment{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:10px 14px}.comment-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.comment-actions{gap:3px;margin-left:auto;display:inline-flex}.comment-del,.comment-edit{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:12px}.comment-del:hover{background:var(--red-soft);color:var(--red)}.comment-edit:hover{background:var(--accent-soft);color:var(--accent)}.comment-form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.comment-dropzone{border-radius:var(--radius)}.comment-dropzone:focus-within{outline:2px solid var(--accent-soft);outline-offset:3px}.comment-screenshot-picker{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.comment-pending-files{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.comment-screenshots{flex-wrap:wrap;gap:8px;margin-top:9px;display:flex}.comment-screenshots img{object-fit:cover;cursor:zoom-in;border-radius:7px;outline:1px solid #0000001a;outline:1px solid lab(0% 0 0/.1);width:132px;height:88px}[data-theme=dark] .comment-screenshots img{outline-color:#ffffff1a;outline-color:lab(100% 0 0/.1)}.history{flex-direction:column;display:flex}.history-row{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px;padding:8px 0;font-size:13px;display:flex}.history-row:last-child{border-bottom:none}.history-row>.muted{min-width:190px}.user-form{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:12px;padding:16px;display:grid}.user-form .field{margin-bottom:0}.user-form .primary-btn{height:37px}.inline-input{width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 8px;font-size:13.5px}.inline-input:hover{background:var(--gray-soft)}.inline-input:focus{border-color:var(--accent);background:var(--panel);outline:none}table.list select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:5px;padding:5px 8px;font-size:13px}.account-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.password-form{flex-direction:column;gap:8px;display:flex}.password-form input{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:8px 10px;font-size:13.5px}.password-form input:focus{border-color:var(--accent);outline:none}.profile-badge .p-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.modal-wide{flex-direction:column;width:760px;max-width:92vw;padding:0;display:flex}.modal-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:2px;padding:10px 12px 0;display:flex}.modal-tab{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-1px;padding:8px 12px;font-size:13.5px}.modal-tab:hover{background:var(--gray-soft);color:var(--text)}.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.modal-close{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:6px;margin-left:auto;padding:6px 10px;font-size:15px}.modal-close:hover{background:var(--gray-soft);color:var(--text)}.modal-body{padding:18px 20px 22px;overflow-y:auto}.modal-body .table-wrap{box-shadow:none}.modal-body table.list{min-width:0}.modal-body .user-form{box-shadow:none}.collapse-head{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:6px 0;display:flex}.collapse-head:hover h2{color:var(--accent)}.collapse-head h2{margin-bottom:0}.collapse-arrow{color:var(--text-dim);transition:transform .22s var(--ease-out);display:inline-block}.collapse-arrow.open{transform:rotate(90deg)}.collapse-panel{opacity:0;visibility:hidden;transition:grid-template-rows .3s var(--ease-out), opacity .2s var(--ease-out), visibility 0s .3s;grid-template-rows:0fr;display:grid}.collapse-panel.open{opacity:1;visibility:visible;grid-template-rows:1fr;transition-delay:0s}.collapse-panel>.collapse-body{min-height:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.collapse-panel,.collapse-panel.open{transition:opacity .15s linear}}.collapse-body{padding-top:10px}.link-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:8px 0 0;font-size:13px;text-decoration:underline}.rich-wrap.is-compact{background:0 0;border:none;border-radius:0}.rich-wrap.is-compact:focus-within{border:none}.rich-wrap.is-compact .rich-toolbar{border-bottom:1px solid var(--line);background:0 0;gap:1px;padding:3px 4px}.rich-wrap.is-compact .rich-toolbar button{min-width:22px;height:20px;padding:0 5px;font-size:11px}.rich-wrap.is-compact .rich-input{min-height:46px;padding:6px 10px;font-size:13px}.rich-wrap.is-compact .rich-input ul,.rich-wrap.is-compact .rich-input ol{margin-bottom:4px;padding-left:18px}.rich-wrap.is-compact .rich-input p{margin-bottom:4px}.rich-wrap.is-compact.is-readonly{border:none}.rich-wrap.is-compact.is-readonly .rich-view{padding:8px 10px;font-size:13px}.rich-wrap.is-compact .rich-view ul,.rich-wrap.is-compact .rich-view ol{padding-left:18px}td.step-rich{vertical-align:top;padding:0!important}.ai-fab{z-index:80;background:var(--accent);color:#fff;cursor:pointer;width:54px;height:54px;box-shadow:var(--shadow-lift);transition:filter .15s, transform .15s var(--ease-spring);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:21px;display:flex;position:fixed;bottom:26px;right:26px}.ai-fab:hover{filter:brightness(1.08)}.ai-fab:active{transform:scale(.94)}@media (prefers-reduced-motion:reduce){.ai-fab:active{transform:none}}.ai-panel-backdrop{z-index:149;background:0 0;position:fixed;inset:0}@keyframes ai-panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}.ai-panel{z-index:150;background:var(--glass-bg);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);border-left:1px solid var(--glass-border);width:420px;max-width:92vw;box-shadow:var(--shadow-lift);animation:ai-panel-in .28s var(--ease-sheet);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes ai-panel-out{to{transform:translate(100%)}}.ai-panel.closing{animation:ai-panel-out .18s var(--ease-in) forwards}@media (prefers-reduced-motion:reduce){.ai-panel,.ai-panel.closing{animation:none}}.ai-panel-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.ai-panel-head b{font-size:14.5px}.ai-panel-body{flex-direction:column;flex:1;gap:14px;padding:16px 18px;display:flex;overflow-y:auto}.ai-panel-prompt{resize:vertical;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;min-height:110px;color:var(--text);padding:10px 12px;font-family:inherit;font-size:13.5px;line-height:1.45}.ai-panel-prompt:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ai-log{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:2px;padding:6px;display:flex}.ai-log-item{border-radius:8px;align-items:flex-start;gap:9px;padding:7px 8px;font-size:13px;display:flex}.ai-log-item.status-running{color:var(--text)}.ai-log-item.status-done{color:var(--text-dim)}.ai-log-item.status-error{color:var(--red)}.ai-log-icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-top:1px;font-size:11px;display:flex}.ai-log-item.status-done .ai-log-icon{color:var(--green)}.ai-log-item.status-error .ai-log-icon{color:var(--red)}.ai-log-text{flex-direction:column;gap:1px;min-width:0;display:flex}.ai-log-label{font-weight:500}.ai-log-detail{color:var(--text-dim);font-size:12px}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-spinner{border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite ai-spin}@media (prefers-reduced-motion:reduce){.ai-spinner{animation:1.4s linear infinite ai-spin}}.ai-panel-error{background:var(--red-soft);color:var(--red);border-radius:8px;padding:9px 12px;font-size:13px;line-height:1.4}.ai-panel-success{background:var(--green-soft);color:var(--green);border-radius:8px;padding:10px 12px;font-size:13.5px;font-weight:500;line-height:1.4}.ai-panel-actions{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.wf-scroll{overflow-x:auto}.wf-table{border-collapse:collapse;width:100%;font-size:13px}.wf-table th{text-align:left;color:var(--text-dim);white-space:nowrap;padding:4px 6px 6px;font-size:11.5px;font-weight:600}.wf-table td{border-top:1px solid var(--line);vertical-align:middle;padding:4px 6px}.wf-table input[type=text],.wf-table select{width:100%}.wf-order{white-space:nowrap}.wf-count{text-align:center;color:var(--text-dim);font-variant-numeric:tabular-nums}.wf-color{align-items:center;gap:6px;display:flex}.wf-color select{flex:1;min-width:0}.wf-icon-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:6px;width:24px;height:24px;font-size:11px;line-height:1}.wf-icon-btn:hover:not(:disabled){background:var(--gray-soft);color:var(--text)}.wf-icon-btn:disabled{opacity:.3;cursor:not-allowed}.wf-icon-btn.wf-danger:hover:not(:disabled){background:var(--red-soft);color:var(--red)}.wf-matrix{min-width:max-content}.wf-matrix .wf-corner{min-width:120px}.wf-matrix .wf-col-head{text-align:center;max-width:92px}.wf-matrix .wf-col-head .chip,.wf-matrix .wf-row-head .chip{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:96px;display:inline-block;overflow:hidden}.wf-matrix .wf-row-head{border-top:1px solid var(--line);padding:4px 6px}.wf-matrix .wf-cell{text-align:center}.wf-matrix .wf-cell input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.page-transition{animation:fade-in .22s var(--ease-out) backwards}.loading{animation:fade-in .3s var(--ease-out) .2s both}:where(input,select,textarea){transition:border-color .15s var(--ease-out), box-shadow .15s var(--ease-out), background-color .15s var(--ease-out)}.chip{transition:background-color .22s var(--ease-out), color .22s var(--ease-out), transform .15s var(--ease-spring)}.chip.link:active{transform:scale(.96)}.ms-chip button{transition:opacity .15s var(--ease-out)}:where(.hamburger-btn,.notif-bell,.sidebar-close,.modal-close,.ms-add,.step-status-btn,.step-del,.wf-icon-btn,.link-btn){transition:transform .15s var(--ease-spring), background-color .15s var(--ease-out), color .15s var(--ease-out), opacity .15s var(--ease-out)}:where(.hamburger-btn,.notif-bell,.sidebar-close,.modal-close,.ms-add,.step-status-btn,.step-del,.wf-icon-btn):not(:disabled):active{transform:scale(.92)}.modal-list .pick-item:active{background:var(--gray-soft)}table.steps tbody tr{animation:fade-up .22s var(--ease-out) backwards}table.steps td{transition:box-shadow .12s var(--ease-out)}.readonly-note,.success-note,.form-error,.form-ok,.login-error{animation:fade-up .25s var(--ease-out) both}@keyframes reveal-x{0%{clip-path:inset(0 100% 0 0 round 3px)}to{clip-path:inset(0 round 3px)}}.progress-bar{animation:reveal-x .7s var(--ease-out) 50ms backwards}.progress-bar>*{transition:width .45s var(--ease-out)}@keyframes donut-arc-in{0%{stroke-dasharray:0 var(--circ)}}.donut-arc{animation:donut-arc-in .9s var(--ease-out) backwards;transition:stroke-dasharray .6s var(--ease-out)}.mobile-topbar{background:color-mix(in srgb, var(--sidebar-bg) 80%, transparent);-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%)}@media (prefers-reduced-transparency:reduce){.mobile-topbar{background:var(--sidebar-bg);-webkit-backdrop-filter:none;backdrop-filter:none}}html.theme-anim,html.theme-anim *,html.theme-anim :before,html.theme-anim :after{transition:background-color .3s var(--ease-out), color .3s var(--ease-out), border-color .3s var(--ease-out), fill .3s var(--ease-out), stroke .3s var(--ease-out), box-shadow .3s var(--ease-out)!important}@media (prefers-reduced-motion:reduce){.page-transition,.loading{animation:none}.chip.link:active,:where(.hamburger-btn,.notif-bell,.sidebar-close,.modal-close,.ms-add,.step-status-btn,.step-del,.wf-icon-btn):not(:disabled):active{transform:none}.readonly-note,.success-note,.form-error,.form-ok,.login-error,table.steps tbody tr,.progress-bar,.donut-arc{animation:none}.progress-bar>*,.donut-arc{transition:none}html.theme-anim,html.theme-anim *,html.theme-anim :before,html.theme-anim :after{transition:none!important}}.redmine-chip a{color:inherit;text-decoration:none}.redmine-chip:hover a{text-decoration:underline}.redmine-toggle{cursor:pointer;align-items:center;gap:8px;width:fit-content;font-size:13.5px;display:flex}.redmine-toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.redmine-hint{padding:0 2px 8px;font-size:12.5px}.redmine-issue{align-items:flex-start!important}.redmine-issue:disabled{opacity:.5;cursor:default}.redmine-issue-num{font-variant-numeric:tabular-nums;color:var(--accent);flex-shrink:0;min-width:52px;font-weight:600}.redmine-issue-main{flex-direction:column;gap:1px;min-width:0;display:flex}.redmine-issue-subject{overflow-wrap:anywhere}.redmine-issue-meta{font-size:12px}table.list th.col-redmine,table.list td.col-redmine{width:96px}table.list.has-redmine{min-width:1010px}a.redmine-chip{text-decoration:none}a.redmine-chip:hover{text-decoration:underline}table.list.bugs-table{min-width:1180px}table.list.bugs-table.has-redmine{min-width:1276px}table.list.bugs-table th.col-id{width:76px}table.list.bugs-table th.col-title{width:auto}table.list.bugs-table th.col-severity{width:116px}table.list.bugs-table th.col-priority{width:112px}table.list.bugs-table th.col-status{width:132px}table.list.bugs-table th.col-assignee{width:140px}table.list.bugs-table th.col-area{width:116px}table.list.bugs-table th.col-chips{width:180px}table.list.bugs-table th.col-date{width:148px}.project-members{grid-template-columns:1fr;gap:4px;display:grid}.project-members .member-row{justify-content:space-between;align-items:center;gap:10px;min-height:32px;display:flex}.member-role,.modal .member-role{border-radius:6px;flex-shrink:0;width:auto;max-width:250px;padding:4px 8px;font-size:12.5px}@media (max-width:520px){.project-members .member-row{flex-wrap:wrap}}.stat-card.static{cursor:default}.stat-card.static:hover{border-color:var(--border);box-shadow:var(--shadow)}.stat-sub{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-top:4px;font-size:12px}.analytics-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.analytics-controls select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 10px;font-size:13.5px}.analytics-body{transition:opacity .15s}.analytics-body.is-loading{opacity:.55;pointer-events:none}.analytics-week{margin-bottom:26px}.analytics-week h2{align-items:center;gap:8px;margin-bottom:10px;font-size:16px;display:flex}.analytics-current{background:var(--accent-soft);color:var(--accent)}table.analytics-table{table-layout:fixed;min-width:840px}table.analytics-table th.col-person,table.analytics-table td.col-person{text-align:left;width:150px}table.analytics-table th.col-day,table.analytics-table td.col-day{text-align:center}table.analytics-table th.col-day span{line-height:1.25;display:block}table.analytics-table th.col-total,table.analytics-table td.col-total{text-align:center;width:90px}table.analytics-table th.today,table.analytics-table td.today{background:var(--accent-soft)}table.analytics-table td{vertical-align:middle;font-variant-numeric:tabular-nums}.analytics-zero{color:var(--text-dim);opacity:.55}.analytics-count{background:var(--blue-soft);min-width:34px;color:var(--blue);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;padding:3px 10px;font-weight:700;transition:transform .12s,background .15s,border-color .15s}.analytics-count:hover{border-color:var(--blue)}.analytics-count:active{transform:scale(.96)}.analytics-count.active{background:var(--blue);color:var(--panel)}.analytics-events-row td{background:var(--gray-soft);padding:0}.analytics-events{padding:12px 16px}.analytics-events-head{color:var(--text-dim);margin-bottom:8px;font-size:12.5px;font-weight:600}.analytics-events ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.analytics-events li{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.analytics-time{font-variant-numeric:tabular-nums;min-width:40px}.analytics-link{color:var(--accent);font-weight:600;text-decoration:none}.analytics-link:hover{text-decoration:underline}.analytics-title{overflow-wrap:anywhere}.analytics-kind.ev-created{background:var(--blue-soft);color:var(--blue)}.analytics-kind.ev-status{background:var(--yellow-soft);color:var(--yellow)}.analytics-kind.ev-pass{background:var(--green-soft);color:var(--green)}.analytics-kind.ev-fail{background:var(--red-soft);color:var(--red)}.analytics-note{max-width:70ch;line-height:1.5}.person-activity-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.person-activity-head .custom-select{width:220px;max-width:320px}.person-redmine{margin:22px 0 26px}.person-redmine h2{margin-bottom:10px;font-size:16px}.person-redmine h3{color:var(--text-dim);margin-bottom:8px;font-size:13.5px;font-weight:600}.person-redmine-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.redmine-issue-list{gap:6px;max-height:280px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.redmine-issue-list li{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.analytics-link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:none}.analytics-link-btn:hover{text-decoration:underline}.redmine-detail-modal{width:560px}.redmine-detail h4{text-wrap:balance;margin-bottom:8px;font-size:15px}.redmine-detail-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.redmine-detail-fields{grid-template-columns:auto 1fr;gap:4px 12px;margin-bottom:14px;font-size:13.5px;display:grid}.redmine-detail-fields dt{color:var(--text-dim)}.redmine-detail-fields dd{margin:0}.redmine-detail-desc{background:var(--gray-soft);border-radius:var(--radius);max-height:260px;padding:12px;font-size:13.5px;line-height:1.55;overflow-y:auto}.redmine-detail-desc p,.redmine-detail-desc ul,.redmine-detail-desc ol{margin:0 0 8px}.redmine-detail-desc p:last-child,.redmine-detail-desc ul:last-child,.redmine-detail-desc ol:last-child{margin-bottom:0}.redmine-detail-desc ul,.redmine-detail-desc ol{padding-left:20px}.redmine-detail-desc h1,.redmine-detail-desc h2,.redmine-detail-desc h3{margin:10px 0 6px;font-size:14px}.redmine-detail-desc h1:first-child,.redmine-detail-desc h2:first-child,.redmine-detail-desc h3:first-child{margin-top:0}.redmine-detail-desc code{background:var(--panel);border-radius:4px;padding:1px 4px;font-size:12.5px}.redmine-detail-desc a{color:var(--accent)}.redmine-detail-images{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.redmine-detail-images img{border:1px solid var(--border);cursor:zoom-in;object-fit:cover;background:var(--panel);border-radius:8px;width:120px;height:90px}.redmine-comments{margin-top:16px}.redmine-comments h3{color:var(--text-dim);margin-bottom:8px;font-size:13.5px;font-weight:600}.redmine-comment{border-top:1px solid var(--border);padding:10px 0}.redmine-comment:first-of-type{border-top:none;padding-top:0}.redmine-comment-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;font-size:12.5px;display:flex}.redmine-comment-body{font-size:13.5px;line-height:1.5}.redmine-comment-body p{margin:0 0 6px}.redmine-comment-body p:last-child{margin-bottom:0}.redmine-detail-modal .modal-actions{margin-top:20px}.project-block{flex-shrink:0}.project-card-link{font:inherit;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;margin:-6px 10px 14px;padding:6px 10px;font-size:12.5px;font-weight:600;text-decoration:none;display:flex}.project-card-link:hover{background:var(--gray-soft);color:var(--text)}.project-card-link.active{background:var(--accent-soft);color:var(--accent)}.chip.stage-current{background:var(--green-soft);color:var(--green);text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}.project-title{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.project-title h1,.project-title .detail-title{margin:0}.project-stats{flex-wrap:wrap;gap:12px;margin-bottom:22px;display:flex}.project-stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:120px;color:var(--text);box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:12px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.project-stat:hover{border-color:var(--accent);box-shadow:var(--shadow-lift)}.project-stat-num{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.stage-list{gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.stage-item{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px 10px 38px;display:flex;position:relative}.stage-item.stage-active{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.stage-item.stage-done .stage-name{color:var(--text-dim)}.stage-dot{border:2px solid var(--border);background:var(--panel);border-radius:50%;width:12px;height:12px;margin-top:-6px;position:absolute;top:50%;left:14px}.stage-active .stage-dot{border-color:var(--green);background:var(--green)}.stage-done .stage-dot{border-color:var(--green);background:var(--green-soft)}.stage-main{flex:240px;align-items:center;gap:8px;min-width:0;display:flex}.stage-name{flex:1;min-width:0;font-weight:600}.chip.stage-status-planned{background:var(--gray-soft);color:var(--text-dim)}.chip.stage-status-active{background:var(--green-soft);color:var(--green)}.chip.stage-status-done{background:var(--blue-soft);color:var(--blue)}.stage-dates{align-items:center;gap:6px;display:flex}.stage-dates input[type=date]{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:4px 6px;font-size:12.5px}.stage-actions{align-items:center;gap:4px;display:flex}.stage-actions .row-remove-btn:disabled{opacity:.35;cursor:default}.stage-add{max-width:520px}.team-table td,.team-table th{vertical-align:middle}@media (max-width:720px){.stage-item{padding-right:10px}}@media (prefers-reduced-motion:reduce){.analytics-count{transition:none}}.workspace-switch.three .workspace-btn:not(.active){flex:none;padding-left:14px;padding-right:14px}.workspace-switch.three .workspace-btn:not(.active) .ws-text{display:none}.workspace-switch.three .workspace-btn.active{flex:auto}.analytics-body .stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.stage-add input,.team-add select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13.5px}.stage-add input{flex:220px;min-width:0}.team-add{max-width:640px;margin-top:10px}.team-add select{flex:200px;min-width:0}.stage-add input:focus,.team-add select:focus,.project-desc:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.project-desc:disabled{background:var(--gray-soft);color:var(--text-dim);opacity:1}.team-table .member-role{max-width:260px}.rm-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}table.list.rm-table{min-width:1100px}table.list.rm-table th.col-id{width:84px}table.list.rm-table th.col-title{width:auto}table.list.rm-table th.col-tracker{width:110px}table.list.rm-table th.col-priority{width:120px}table.list.rm-table th.col-status{width:140px}table.list.rm-table th.col-assignee{width:150px}table.list.rm-table th.col-date{width:112px}.rm-subject{overflow-wrap:anywhere;font-weight:600}.rm-project{margin-top:2px;font-size:12px}.rm-heading{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.rm-textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.5}.rm-textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.rm-changes{margin:0 0 6px;padding-left:18px;font-size:13px}.rm-priority-row{grid-template-columns:minmax(120px,1fr) minmax(160px,220px);align-items:center;gap:12px;margin-bottom:6px;display:grid}.rm-priority-row>span{overflow-wrap:anywhere}.detail-title.grow{box-sizing:border-box;resize:none;width:100%;font-family:inherit;line-height:1.25;display:block;overflow:hidden}.rich-view .rm-img-link{max-width:100%;margin:4px 0;display:inline-block}.rich-view .rm-img{border:1px solid var(--border);background:var(--gray-soft);border-radius:8px;max-width:100%;height:auto;display:block}.rich-view a.rm-ref{font-weight:500}.rm-thumbs{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.rm-thumb{object-fit:cover;border:1px solid var(--border);background:var(--gray-soft);max-width:200px;height:96px;transition:transform .15s var(--ease-spring), box-shadow .15s;border-radius:8px;display:block}.rm-thumb:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.rm-date-value{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.rm-feed{margin-top:14px}.rm-composer{margin-bottom:14px}.rm-history{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.rm-history>li{border-left:2px solid var(--border);padding-left:14px}.rm-history-head{margin-bottom:2px;font-size:13px}.rm-tracker{align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.rm-tracker select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:3px 6px;font-size:12px}.rm-hint{margin-top:4px;font-size:12px}.rm-level-row{border-bottom:1px solid var(--border);grid-template-columns:130px 1fr;align-items:start;gap:12px;padding:8px 0;display:grid}.rm-level-row:last-child{border-bottom:none}.rm-level-name{padding-top:3px}.rm-level-chips{flex-wrap:wrap;gap:6px;display:flex}.rm-toggle-chip{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;transition:background .12s var(--ease-out), border-color .12s var(--ease-out), transform .12s var(--ease-spring);border-radius:999px;padding:3px 11px;font-size:12.5px}.rm-toggle-chip:hover{border-color:var(--accent)}.rm-toggle-chip:active{transform:scale(.96)}.rm-toggle-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.rm-toggle-chip.elsewhere{opacity:.45}@media (max-width:640px){.rm-level-row{grid-template-columns:1fr}}
