:root{--bg:#0f172a;--panel:#1e293b;--panel-2:#273449;--text:#e2e8f0;--muted:#94a3b8;--accent:#6366f1;--line:#334155}:root[data-theme=light]{--bg:#f8fafc;--panel:#fff;--panel-2:#f1f5f9;--text:#1e293b;--muted:#64748b;--accent:#6366f1;--line:#e2e8f0}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.topbar{border-bottom:1px solid var(--line);align-items:baseline;gap:1rem;padding:1rem 1.5rem;display:flex}.topbar h1{margin:0;font-size:1.4rem}.tagline{color:var(--muted);font-size:.85rem}.app-version{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.05rem .45rem;font-size:.72rem}.brand-logo{flex-shrink:0;width:auto;height:1.8rem}.error{color:#fee2e2;background:#7f1d1d;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1.5rem;display:flex}.error-close{color:#fee2e2;cursor:pointer;background:0 0;border:none;font-size:1.2rem;line-height:1}.layout{min-height:calc(100vh - 60px);display:flex}.layout.nav-collapsed .sidebar{display:none}.nav-toggle{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;margin-right:.3rem;padding:.25rem .4rem;display:inline-flex}.nav-toggle:hover{background:var(--panel-2)}.sidebar{border-right:1px solid var(--line);width:240px;padding:1rem}.sidebar h2{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:.8rem}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;margin-bottom:.25rem;padding:.5rem .6rem}.sidebar button:hover{background:var(--panel)}.sidebar button.active{background:var(--panel-2);border-color:var(--accent)}.key{background:var(--accent);color:#fff;border-radius:4px;margin-right:.3rem;padding:.1rem .35rem;font-size:.7rem}.sidenav{border-top:1px solid var(--line);flex-direction:column;gap:.1rem;margin-top:.6rem;padding-top:.6rem;display:flex}.sidenav a{color:var(--muted);border:1px solid #0000;border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.9rem;text-decoration:none;display:flex}.sidenav a:hover{background:var(--panel);color:var(--text)}.sidenav a.active{background:var(--panel-2);color:var(--text);border-color:var(--accent)}.nav-icon{justify-content:center;align-items:center;width:1.2rem;display:inline-flex}.placeholder{min-height:220px;color:var(--muted);border:1px dashed var(--line);border-radius:10px;justify-content:center;align-items:center;font-size:.95rem;display:flex}.content{flex:1;padding:1.5rem}.product-head h2{margin:0 0 .25rem}.goal,.vision{color:var(--muted);margin:.2rem 0;font-size:.9rem}.chips{gap:.5rem;margin:1rem 0;display:flex}.chip{background:var(--panel);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .7rem;font-size:.8rem;display:inline-flex}.roadmap-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.roadmap-velocity{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.roadmap-velocity input{width:6rem}.roadmap-table{border-collapse:collapse;width:100%}.roadmap-table th,.roadmap-table td{text-align:left;border-bottom:1px solid var(--line);padding:.5rem .6rem}.roadmap-table th{text-transform:uppercase;color:var(--muted);letter-spacing:.03em;font-size:.75rem}.roadmap-table td.num,.roadmap-table th:nth-child(n+3){text-align:right}.link-title{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.link-title:hover{text-decoration:underline}.cov-ok{color:var(--muted)}.cov-over{color:#e6a700;font-weight:600}.muted{color:var(--muted)}.roadmap-note{color:var(--muted);margin-top:1rem;font-size:.78rem}.roadmap-row{cursor:grab}.roadmap-row:active{cursor:grabbing}.roadmap-row .link-title,.roadmap-row select{cursor:pointer}.category-manager .category-list{flex-direction:column;gap:.35rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.category-row{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;align-items:center;gap:.5rem;padding:.3rem .5rem;display:flex}.category-name{flex:1;min-width:0}.category-count{color:var(--muted);white-space:nowrap;font-size:.75rem}.category-input{flex:1;min-width:0}.category-add{gap:.5rem;margin-top:.5rem;display:flex}.btn-sm{padding:.2rem .55rem;font-size:.8rem}.cat-badge{color:var(--muted);background:var(--panel-2);border:1px solid var(--line);vertical-align:middle;white-space:nowrap;border-radius:999px;margin-left:.5rem;padding:.05rem .45rem;font-size:.7rem;font-weight:500;display:inline-block}.new-item{gap:.5rem;margin:0 0 1rem;display:flex}.new-item select,.new-item input,.pts-input,.status{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.4rem .5rem;font-size:.85rem}.new-item input{flex:1}.new-item button,.sidebar+* button[type=submit]{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.4rem .9rem}.new-item button:disabled{opacity:.5;cursor:not-allowed}.hide-done{color:var(--muted);cursor:pointer;align-items:center;gap:.4rem;margin:0 0 .8rem;font-size:.82rem;display:inline-flex}.pts-input{text-align:center;width:3.5rem}select.status{cursor:pointer}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .8rem;display:flex}.filters select{border-radius:6px;padding:.25rem .4rem}.hide-epics{color:var(--muted);cursor:pointer;align-items:center;gap:.3rem;font-size:.82rem;display:inline-flex}.items tr.group-head td{background:var(--panel-2);color:var(--text);border-top:2px solid var(--line);padding:.45rem .8rem;font-size:.8rem;font-weight:600}.items tr.group-head .count{color:var(--muted);font-weight:400}.items tr.group-head.drop-over td{background:var(--accent);color:#fff}.items tr.group-empty td{color:var(--muted);padding:.5rem .8rem;font-size:.8rem;font-style:italic}.items{border-collapse:collapse;background:var(--panel);border-radius:10px;width:100%;overflow:hidden}.items th,.items td{text-align:left;border-bottom:1px solid var(--line);padding:.6rem .8rem;font-size:.9rem}.items th{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.items th.select,.items td.select{text-align:center;width:1.6rem}.items td.select input,.items th.select input{cursor:pointer}.item-row.selected td{background:var(--panel-2)}.bulk-bar{background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;align-items:center;gap:.6rem;margin-bottom:.6rem;padding:.45rem .7rem;font-size:.85rem;display:flex}.bulk-bar button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.3rem .7rem;font-size:.82rem}.bulk-bar button.ghost{color:var(--muted);background:0 0}.bulk-bar button.ghost:hover{color:var(--text)}.bulk-bar .bulk-sprint{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem;font-size:.82rem}.rank{color:var(--muted);width:2rem}.pts{text-align:center;width:4rem}.type{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:4px;padding:.05rem .3rem;font-size:.7rem}.type.EPIC{color:#c4b5fd;background:#7c3aed2e;border-color:#7c3aed}.type.STORY{color:#93c5fd;background:#2563eb2e;border-color:#2563eb}.type.TASK{color:#cbd5e1;background:#64748b2e;border-color:#64748b}.type.BUG{color:#fca5a5;background:#dc26262e;border-color:#dc2626}:root[data-theme=light] .type.EPIC{color:#6d28d9}:root[data-theme=light] .type.STORY{color:#1d4ed8}:root[data-theme=light] .type.TASK{color:#475569}:root[data-theme=light] .type.BUG{color:#b91c1c}.empty{text-align:center;color:var(--muted);padding:1.5rem}.status{color:#f8fafc;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.status.BACKLOG{background:#334155}.status.TODO{background:#1e40af}.status.IN_PROGRESS{background:#92400e}.status.A_VALIDER{background:#7c3aed}.status.DONE{background:#166534}.status.CANCELLED{background:#6b7280}.toolbar{justify-content:space-between;align-items:center;margin:1rem 0;display:flex}.view-toggle{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.view-toggle button{background:var(--panel);color:var(--text);cursor:pointer;border:none;padding:.4rem .9rem;font-size:.85rem}.view-toggle button.active{background:var(--accent);color:#fff}.vision-view{flex-direction:column;gap:1rem;max-width:720px;display:flex}.vision-head{align-items:center;gap:.6rem;display:flex}.vision-head h2{align-items:center;gap:.4rem;margin:0;display:flex}.vision-block{flex-direction:column;gap:.3rem;display:flex}.rte{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;overflow:hidden}.rte-toolbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;gap:.25rem;padding:.35rem;display:flex}.rte-btn{background:var(--panel-2);min-width:1.8rem;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:5px;padding:.15rem .4rem;font-size:.85rem}.rte-btn:hover{border-color:var(--accent)}.rte-toolbar .rte-sel{background:var(--panel-2);width:auto;max-width:9rem;color:var(--text);border:1px solid var(--line);border-radius:5px;padding:.1rem .3rem;font-size:.8rem}.rte-toolbar .rte-color{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:5px;width:2.2rem;height:1.7rem;padding:0}.rte-area{min-height:6rem;color:var(--text);outline:none;padding:.5rem .6rem;font-size:.9rem;line-height:1.5;overflow-y:auto}.rte-area:empty:before{content:attr(data-placeholder);color:var(--muted)}.rich{line-height:1.5}.rich p{margin:0 0 .5rem}.rich h1,.rich h2,.rich h3{margin:.6rem 0 .3rem}.criteria-progress{color:var(--muted);margin:0 0 .4rem;font-size:.8rem}.criteria-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.criteria-list li label{cursor:pointer;align-items:flex-start;gap:.5rem;line-height:1.4;display:flex}.criteria-list li span{color:var(--text);overflow-wrap:anywhere;min-width:0}.criteria-list li.done span{color:var(--muted);text-decoration:line-through}.criteria-edit{flex-direction:column;gap:.4rem;display:flex}.criteria-edit-row{align-items:flex-start;gap:.4rem;min-width:0;display:flex}.criteria-edit-row textarea{flex:1;min-width:0}.criteria-add{align-self:flex-start}.criteria-list input[type=checkbox],.criteria-edit-row input[type=checkbox]{flex-shrink:0;width:auto;margin-top:.25rem}.cadrage-title{align-items:center;gap:.4rem;margin:.6rem 0 0;font-size:1rem;display:flex}.cadrage-sub{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:.7rem 0 .2rem;font-size:.78rem}.dod-list{margin:.2rem 0;padding-left:1.1rem;line-height:1.5}.dod-toggle{cursor:pointer;align-items:center;gap:.5rem;display:flex}.dod-toggle input[type=checkbox]{flex-shrink:0;width:auto}.criteria-edit-row .dod-input{flex:1;width:auto;min-width:0}.sprints-view{flex-direction:column;gap:1rem;display:flex}.sprints-closed-sep{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:.5rem 0 0;padding-top:.9rem;font-size:.95rem}.sprint-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem}.sprint-card.ACTIVE{border-color:var(--accent)}.sprint-head{align-items:center;gap:.6rem;display:flex}.sprint-head h3{margin:0;font-size:1.05rem}.sprint-status{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.15rem .5rem;font-size:.72rem}.sprint-status.ACTIVE{color:#f8fafc;background:#166534;border-color:#0000}.sprint-status.CLOSED{color:#f8fafc;background:#6b7280;border-color:#0000}.sprint-goal{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.3rem;margin:.4rem 0;font-size:.9rem;display:flex}.sprints-toolbar{margin-bottom:.8rem}.sprint-create{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.sprint-create input{flex:1;min-width:12rem}.sprint-actions{gap:.4rem;margin-left:auto;display:flex}.sprint-actions .btn-secondary{align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:.8rem;display:inline-flex}.sprint-goal-edit{flex-direction:column;gap:.4rem;margin:.4rem 0;display:flex}.sprint-goal .empty{color:var(--muted);font-style:italic}.sprint-goal .icon-btn{margin-left:.3rem}.sprint-meta{color:var(--muted);flex-wrap:wrap;gap:.3rem 1rem;margin:.4rem 0 .6rem;font-size:.8rem;display:flex}.sprint-stats{color:var(--text);font-weight:600}.sprint-review{color:var(--muted);background:var(--panel-2);border-radius:8px;flex-direction:column;gap:.4rem;margin:0 0 .6rem;padding:.5rem .6rem;font-size:.8rem;display:flex}.sprint-review-recap{flex-wrap:wrap;align-items:center;gap:.3rem .9rem;display:flex}.sprint-review-head{color:var(--text);cursor:help;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.sprint-review strong{color:var(--text)}.sprint-review-todo{color:var(--accent)}.sprint-review-notes{white-space:pre-wrap;align-items:flex-start;gap:.3rem;margin:0;line-height:1.45;display:flex}.sprint-review-notes .empty{color:var(--muted);font-style:italic}.sprint-retro{color:var(--muted);background:var(--panel-2);border-radius:8px;flex-direction:column;gap:.4rem;margin:0 0 .6rem;padding:.5rem .6rem;font-size:.8rem;display:flex}.sprint-retro-head{color:var(--text);cursor:help;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.sprint-retro-edit{flex-direction:column;gap:.3rem;display:flex}.sprint-retro-read p{margin:.1rem 0}.sprint-retro-read strong,.sprint-retro-edit strong{color:var(--text)}.sprint-retro .empty{color:var(--muted);font-style:italic}.retro-improve-list{flex-direction:column;gap:.2rem;margin:.1rem 0;padding:0;list-style:none;display:flex}.retro-improve-list li{align-items:center;gap:.4rem;display:flex}.retro-improve-list li>span:first-child{flex:1}.retro-improve-list.read li:before{content:"•";color:var(--muted)}.retro-improve-add{gap:.4rem;display:flex}.retro-improve-add input{flex:1}.retro-outcome{text-transform:uppercase;border-radius:999px;padding:.05rem .4rem;font-size:.7rem}.retro-outcome.oui{color:#16a34a;background:#22c55e38}.retro-outcome.partiel{color:#ca8a04;background:#eab30838}.retro-outcome.non{color:#dc2626;background:#ef444438}.admin-list{max-height:30vh;margin:0 0 .6rem;padding:0;list-style:none;overflow-y:auto}.admin-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.35rem 0;display:flex}.admin-badge{color:#16a34a;background:#22c55e2e;border-radius:6px;margin-left:.3rem;padding:0 .35rem;font-size:.7rem;display:inline-block}.admin-page{flex-direction:column;height:100vh;display:flex}.admin-main{flex:1;padding:1rem 1.25rem;overflow-y:auto}.admin-sections{gap:1.5rem;max-width:1100px;display:grid}.admin-section h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .4rem;font-size:.9rem}.admin-page .admin-list{max-height:none}.admin-tree,.tree-children{list-style:none}.admin-tree{margin:0;padding:0}.tree-row{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.3rem .4rem;font-size:.88rem;display:flex}.tree-row:hover{background:var(--panel-2)}.tree-row .muted{margin-left:auto;font-size:.78rem}.tree-children{border-left:1px solid var(--line);margin:0 0 .2rem 1.1rem;padding:0}.tree-leaf{align-items:center;gap:.4rem;padding:.25rem .5rem;font-size:.85rem;display:flex}.role-badge{text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--line);color:var(--muted);border-radius:999px;margin-left:auto;padding:.02rem .4rem;font-size:.68rem}.admin-account{display:block}.admin-account-row{align-items:center;gap:.5rem;display:flex}.admin-account-row .tree-row{flex:1}.account-sub{padding:0 .4rem .2rem 1.7rem;font-size:.78rem}.revoked-badge{color:#dc2626;background:#ef44442e;border-radius:6px;margin-left:.3rem;padding:0 .35rem;font-size:.7rem}.admin-account.revoked .tree-row{opacity:.55}.btn-revoke{color:#dc2626}.tree-line{align-items:center;gap:.4rem;display:flex}.tree-line .tree-row{flex:1}li.revoked>.tree-line .tree-row{opacity:.55}.secret-reveal{background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.8rem;padding:.6rem .8rem;display:flex}.secret-reveal code{-webkit-user-select:all;user-select:all;word-break:break-all;font-size:.95rem}.org-control{display:inline-flex;position:relative}.org-trigger{align-items:center;gap:.35rem;display:inline-flex}.org-trigger-name{text-overflow:ellipsis;white-space:nowrap;max-width:16ch;overflow:hidden}.menu-backdrop{z-index:40;position:fixed;inset:0}.org-menu{z-index:41;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;min-width:220px;max-height:60vh;padding:.25rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 8px 24px #00000040}.org-menu-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:6px;padding:.4rem .55rem;font-size:.85rem}.org-menu-item:hover{background:var(--panel-2)}.org-menu-item.active{font-weight:600}.org-menu-sep{background:var(--line);height:1px;margin:.25rem 0}.org-menu-manage{color:var(--accent)}.retro-loop{border:1px solid var(--accent);background:var(--panel);border-radius:10px;margin-bottom:1rem;padding:.7rem .9rem}.retro-loop-head{color:var(--accent);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.retro-loop-intro{color:var(--muted);margin:.3rem 0 .5rem;font-size:.85rem}.retro-loop-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.retro-loop-list li{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.retro-loop-text{flex:12rem}.retro-loop-note{flex:8rem}.retro-loop-btns{gap:.3rem;display:inline-flex}.sprint-items{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.sprint-items li.empty{color:var(--muted);padding:.25rem .3rem;font-size:.85rem;font-style:italic}.sprint-item-link{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.25rem .3rem;font-size:.88rem;display:flex}.sprint-item-link:hover{background:var(--panel-2)}.sprint-item-title{flex:1;min-width:0}.sprint-item-pts{color:var(--muted);white-space:nowrap;font-size:.8rem}.board-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.board-sprint{color:var(--muted);align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.board-sprint select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem;font-size:.85rem}.board-goal{color:var(--muted);align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.board{align-items:flex-start;gap:1rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.column{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:1 0 14rem;min-height:220px;padding:.75rem}.column.over{border-color:var(--accent);background:var(--panel-2)}.column h3{text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 .6rem;font-size:.8rem;display:flex}.count{background:var(--panel-2);color:var(--text);border-radius:999px;padding:0 .5rem;font-size:.75rem}.count.wip-over{color:#fff;background:#dc2626;font-weight:700}.wip-edit{flex-wrap:wrap;gap:1.2rem;display:flex}.wip-edit-row{align-items:center;gap:.5rem;display:flex}.wip-edit-row span{color:var(--muted);font-size:.85rem}.wip-edit-row input{width:4.5rem}.artifact-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.cards{flex-direction:column;gap:.5rem;display:flex}.card{background:var(--panel-2);border:1px solid var(--line);cursor:grab;border-radius:8px;padding:.6rem}.card:active{cursor:grabbing}.card-title{margin:.3rem 0;font-size:.9rem}.card-points{color:var(--muted);font-size:.75rem}.card-footer{justify-content:space-between;align-items:center;gap:.4rem;margin-top:.3rem;display:flex}.card-footer .cat-badge{margin-left:0}.card.needs-fix{border-color:#d97706;box-shadow:inset 3px 0 #d97706}.fix-badge{color:#d97706;text-transform:uppercase;align-items:center;gap:.25rem;margin-left:.4rem;font-size:.68rem;font-weight:600;display:inline-flex}.no-val-badge{text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;margin-left:.4rem;padding:.02rem .4rem;font-size:.64rem;display:inline-flex}.req-validation{color:var(--muted);align-items:center;gap:.4rem;margin:.6rem 1rem 0;font-size:.82rem;display:flex}.card.quality-gap{border-color:#dc2626;box-shadow:inset 3px 0 #dc2626}.gap-badge{text-transform:uppercase;color:#fff;background:#dc2626;border-radius:999px;align-items:center;gap:.25rem;margin-left:.4rem;padding:.02rem .4rem;font-size:.66rem;font-weight:600;display:inline-flex}.card-actions{cursor:default;flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.card-actions .btn-sm{align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.75rem;display:inline-flex}.card-signal{flex-direction:column;gap:.3rem;width:100%;display:flex}.card-signal textarea{width:100%;font-size:.8rem}.card-signal-actions{justify-content:flex-end;gap:.35rem;display:flex}.empty-col{color:var(--muted);text-align:center;font-size:.85rem}.board-note{color:var(--muted);margin-top:.75rem;font-size:.85rem}.item-row{cursor:grab}.item-row:active{cursor:grabbing}.item-row:hover td{background:var(--panel-2)}.item-row td.select,.item-row td.pts{cursor:default}.link-inline{color:var(--accent);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.link-inline:hover{text-decoration:underline}.modal-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;max-width:640px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal:not(:has(.modal-head)){padding:1.25rem}.modal.modal-large{width:96vw;max-width:96vw;max-height:94vh}.modal-head{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.modal-head .type{margin-right:auto}.icon-btn{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:.25rem .4rem;font-size:1rem;line-height:1;display:inline-flex}.icon-btn:hover{background:var(--panel-2)}.icon-btn.close{font-size:1.4rem}.confirm-modal{max-width:440px;padding:1.2rem}.confirm-message{margin:0 0 1rem;line-height:1.5}.modal-body{padding:1rem}.org-list{flex-direction:column;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.org-list li{border:1px solid var(--line);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.org-role{text-transform:uppercase;color:var(--muted);font-size:.7rem}.org-row-head{width:100%;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.4rem .6rem;display:flex}.org-row-head:hover{background:var(--panel-2)}.org-members{border-top:1px solid var(--line);flex-direction:column;gap:.2rem;padding:.3rem .6rem .5rem;display:flex}.org-member{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.org-member-actions{align-items:center;gap:.3rem;display:flex}.org-member-actions select{padding:.1rem .2rem;font-size:.8rem}.org-invite{border-top:1px dashed var(--line);align-items:center;gap:.4rem;margin-top:.4rem;padding-top:.4rem;display:flex}.org-invite select{flex:1;min-width:0;font-size:.85rem}.org-selector{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;max-width:12rem;padding:.25rem .4rem;font-size:.85rem}.proj-role{text-transform:uppercase;color:var(--muted);margin-left:.4rem;font-size:.6rem}.modal-title{margin:0 0 .75rem;font-size:1.15rem}.users-title{align-items:center;gap:.45rem;display:flex}.detail-meta{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 1rem 0;display:flex}.validation-box{background:var(--panel-2);border:1px solid #7c3aed;border-radius:8px;margin:.6rem 1rem 0;padding:.6rem .7rem}.validation-actions{flex-wrap:wrap;gap:.5rem;display:flex}.validation-actions .btn-primary,.validation-actions .btn-secondary{align-items:center;gap:.3rem;display:inline-flex}.validation-textarea{width:100%;margin-bottom:.5rem}.validation-fix{color:#d97706;align-items:center;gap:.3rem;margin:0 0 .5rem;font-size:.85rem;font-weight:600;display:flex}.detail-desc{white-space:pre-wrap;margin:.3rem 0 0;line-height:1.5}.detail-desc.empty{color:var(--muted);font-style:italic}.field{margin-bottom:.9rem;display:block}.field-label{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;align-items:center;gap:.3rem;margin-bottom:.3rem;font-size:.7rem;display:flex}.field input,.field select,.field textarea{background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.45rem .55rem;font-family:inherit;font-size:.9rem}.field textarea{resize:vertical}.field-row{gap:.75rem;display:flex}.field-row .field{flex:1}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.45rem 1rem}.btn-secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:.45rem 1rem}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.timeline{margin-top:1rem}.timeline-list{flex-direction:column;gap:.4rem;margin:.3rem 0 0;padding:0;list-style:none;display:flex}.timeline-list li{border-left:2px solid var(--line);gap:.6rem;padding-left:.6rem;font-size:.85rem;display:flex}.timeline-when{color:var(--muted);white-space:nowrap;min-width:8.5rem}.timeline-what{color:var(--text)}.actor-badge{color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.35rem;margin-left:auto;padding:.25rem .6rem;font-size:.8rem;display:inline-flex}.theme-toggle{border:1px solid var(--line);background:var(--panel);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.9rem;line-height:1;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}button.actor-badge{cursor:pointer;font:inherit}button.actor-badge:hover{border-color:var(--accent);color:var(--accent)}.account-modal{max-width:440px;padding:1.6rem 1.7rem 1.8rem;position:relative}.account-modal h2{margin:0 0 .2rem}.account-modal>.detail-desc{margin:0 0 1.4rem}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute;top:.5rem;right:.7rem}.modal-close:hover{color:var(--text)}.account-modal .field{margin-bottom:1.2rem}.account-modal form>input{width:100%;margin-top:.5rem;display:block}.account-modal form>button[type=submit]{margin-top:.9rem}.account-row{align-items:center;gap:.5rem;display:flex}.account-row input{flex:1}.account-pwd-head{justify-content:space-between;align-items:center;display:flex}.eye-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;align-items:center;padding:0 .35rem;display:inline-flex}.eye-btn:hover{color:var(--text)}.account-msg{color:var(--muted);margin:.3rem 0 0;font-size:.8rem}.members-table{border-collapse:collapse;width:100%;margin:1rem 0}.members-table th,.members-table td{text-align:left;border-bottom:1px solid var(--line);padding:.5rem .6rem}.members-table th{text-transform:uppercase;color:var(--muted);font-size:.75rem}.invite-form{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1rem}.invite-hint{color:var(--muted);margin:.2rem 0 .6rem;font-size:.8rem}.invite-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.invite-row input{flex:12rem}.invite-pwd{flex:12rem;align-items:center;gap:.2rem;display:flex}.invite-pwd input{flex:1}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:.8rem;width:100%;max-width:360px;padding:2rem;display:flex}.login-card h1{text-align:center;margin:0;font-size:1.3rem}.login-logo{align-self:center;width:48px;height:48px}.login-sub{text-align:center;color:var(--muted);margin:0 0 .5rem}.login-card .btn-primary{margin-top:.5rem}.refresh-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.8rem;display:inline-flex}.refresh-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.refresh-btn:disabled{opacity:.6;cursor:default}.refresh-btn .spin{animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.breadcrumb{flex-wrap:wrap;align-items:center;gap:.3rem;padding:.5rem 1rem 0;font-size:.8rem;display:flex}.breadcrumb .crumb{align-items:center;gap:.3rem;display:inline-flex}.breadcrumb .crumb-sep,.breadcrumb .crumb-current{color:var(--muted)}.comments{margin-top:1rem}.comment-list{flex-direction:column;gap:.5rem;margin:.3rem 0 .6rem;padding:0;list-style:none;display:flex}.comment{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem}.comment-head{justify-content:space-between;margin-bottom:.25rem;font-size:.75rem;display:flex}.comment-author{font-weight:600}.comment-when{color:var(--muted)}.comment-body{white-space:pre-wrap;margin:0;font-size:.88rem;line-height:1.4}.comment-new{flex-direction:column;gap:.4rem;margin-bottom:.6rem;display:flex}.comment-new textarea,.comment-edit textarea{background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--line);resize:vertical;border-radius:6px;padding:.45rem .55rem;font-family:inherit;font-size:.88rem}.comment-new-actions{justify-content:flex-end;gap:.5rem;display:flex}.new-comment-btn{margin-bottom:.6rem}.comment-edit{flex-direction:column;gap:.4rem;margin-top:.3rem;display:flex}.comment-edited{color:var(--muted);font-style:italic}.comment-edit-btn{margin-left:.4rem;padding:0 .25rem;font-size:.8rem}.comment-error{color:#fca5a5;margin:.4rem 0 0;font-size:.8rem}.tabbed{margin-top:1rem}.tabs{border-bottom:1px solid var(--line);gap:.25rem;margin-bottom:.7rem;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.4rem .7rem;font-size:.85rem}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.tabs .count{background:var(--panel-2);border-radius:999px;padding:0 .45rem;font-size:.72rem}.parent-picker{gap:.5rem;display:flex}.parent-picker select:first-child{flex:0 0 8rem}.parent-picker select:last-child{flex:1}.children-label{margin:.6rem 0 0}.children-list{color:var(--text);margin:.2rem 0 0;padding-left:1.1rem;font-size:.85rem}
