*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #1a3a5c;--blue: #2563a8;--blue-mid: #3d82d8;--blue-light: #e8f0fb;--blue-pale: #f0f5ff;--success: #16a34a;--success-bg: #dcfce7;--danger: #dc2626;--g50: #f8fafc;--g100: #f1f5f9;--g200: #e2e8f0;--g300: #cbd5e1;--g400: #94a3b8;--g500: #64748b;--g600: #475569;--g700: #334155;--g800: #1e293b;--r: 8px;--r-lg: 14px;--dhf-drawer-w: min(800px, 92vw)}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background:var(--g50);color:var(--g800);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{display:flex;flex-direction:column}.topbar{height:48px;background:#fff;border-bottom:1px solid var(--g200);display:flex;align-items:center;padding:0 18px;gap:18px;flex-shrink:0;position:sticky;top:0;z-index:40}.topbar-logo{font-size:.95rem;font-weight:800;color:var(--blue);letter-spacing:.2px;flex-shrink:0}.topbar-sep{width:1px;height:18px;background:var(--g200);flex-shrink:0}.topbar-nav{display:flex;gap:2px;flex:1}.tnav{font-size:.82rem;font-weight:500;color:var(--g500);padding:6px 12px;border-radius:6px;cursor:pointer;white-space:nowrap;border:none;background:none}.tnav:hover{color:var(--g800);background:var(--g100)}.tnav.active{color:var(--blue);background:var(--blue-light);font-weight:600}.tnav.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.project-label{font-size:.72rem;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.05em}.project-name{font-size:.82rem;font-weight:600;color:var(--g800);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-name-empty{font-size:.82rem;font-style:italic;color:var(--g400)}.btn-switch{background:#fff;color:var(--g600);border:1px solid var(--g200);border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:600;cursor:pointer}.btn-switch:hover{background:var(--g100)}.btn-logout{background:none;color:var(--g400);border:none;font-size:.78rem;cursor:pointer;padding:4px 6px}.btn-logout:hover{color:var(--g600)}.projects-page{min-height:100vh;display:flex;flex-direction:column;background:var(--g50)}.pp-body{flex:1;max-width:900px;width:100%;margin:0 auto;padding:40px 32px}.pp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:32px}.pp-title{font-size:1.3rem;font-weight:700;color:var(--g800)}.pp-sub{font-size:.82rem;color:var(--g500);margin-top:3px}.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.pp-card{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:20px 22px;cursor:pointer;transition:box-shadow .15s,border-color .15s;position:relative}.pp-card:hover{border-color:var(--blue-mid);box-shadow:0 4px 14px #00000012}.pp-card-menu{position:absolute;top:10px;right:10px}.pp-card-menu-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--g500);padding:2px 6px;border-radius:4px;opacity:.3;transition:opacity .12s,background .12s;line-height:1}.pp-card:hover .pp-card-menu-btn,.pp-card-menu--open .pp-card-menu-btn{opacity:1}.pp-card-menu-btn:hover{background:var(--g100)}.pp-card-menu-dropdown{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--g200);border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:130px;z-index:50;overflow:hidden}.pp-card-menu-dropdown button{display:block;width:100%;padding:9px 14px;text-align:left;background:none;border:none;cursor:pointer;font-size:.82rem;color:var(--g700)}.pp-card-menu-dropdown button:hover{background:var(--g50)}.pp-menu-item--danger{color:var(--danger)!important}.pp-card-name{font-size:.95rem;font-weight:700;color:var(--g800);margin-bottom:6px}.pp-card-desc{font-size:.78rem;color:var(--g500);line-height:1.5;margin-bottom:14px}.pp-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.pp-status{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:99px}.pp-status-active{background:var(--blue-light);color:var(--blue)}.pp-status-archived{background:var(--g100);color:var(--g500)}.pp-date{font-size:.72rem;color:var(--g400)}.pp-empty{text-align:center;padding:64px 0;color:var(--g500)}.pp-empty-title{font-size:1rem;font-weight:600;color:var(--g700);margin-bottom:6px}.pp-empty-sub{font-size:.82rem;color:var(--g500)}.pp-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:7px 16px;font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid;transition:background .12s}.pp-btn:disabled{opacity:.4;cursor:not-allowed}.pp-btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.pp-btn-primary:not(:disabled):hover{background:#122840}.pp-btn-ghost{background:#fff;color:var(--g600);border-color:var(--g200)}.pp-btn-ghost:hover{background:var(--g100)}.pp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.pp-modal{background:#fff;border-radius:var(--r-lg);padding:28px;width:440px;box-shadow:0 8px 32px #00000024}.pp-modal h2{font-size:1rem;font-weight:700;margin-bottom:4px;color:var(--g800)}.pp-modal p{font-size:.78rem;color:var(--g500);margin-bottom:20px;line-height:1.5}.pp-field{margin-bottom:14px}.pp-field label{display:block;font-size:.72rem;font-weight:700;color:var(--g600);margin-bottom:5px}.pp-field input,.pp-field textarea{width:100%;border:1px solid var(--g200);border-radius:6px;padding:8px 10px;font-size:.88rem;color:var(--g800);font-family:inherit;background:#fff}.pp-field input:focus,.pp-field textarea:focus{outline:none;border-color:var(--blue-mid)}.pp-error{font-size:.78rem;color:var(--danger);margin-bottom:10px}.pp-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.pp-modal-actions--split{justify-content:space-between;align-items:center}.pp-modal-actions-right{display:flex;gap:8px}.pp-modal--danger h2{color:#dc2626}.pp-btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}.pp-btn-danger:not(:disabled):hover{background:#b91c1c}.pp-btn-danger:disabled{opacity:.4;cursor:not-allowed}.pp-btn-danger-ghost{background:transparent;color:#dc2626;border-color:#fca5a5}.pp-btn-danger-ghost:hover{background:#fef2f2}.rs-home-root{min-height:100vh;display:flex;flex-direction:column;background:var(--g50)}.rs-home-body{flex:1;display:flex;justify-content:center;padding:48px 24px 64px}.rs-home-content{width:100%;max-width:680px}.rs-home-header{margin-bottom:32px}.rs-home-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:6px}.rs-home-sub{font-size:.88rem;color:var(--g500);line-height:1.55}.rs-module-list{display:flex;flex-direction:column;gap:10px}.rs-card{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:18px 20px;display:flex;align-items:center;gap:16px;transition:box-shadow .12s,border-color .12s}.rs-card--enabled{cursor:default}.rs-card--enabled:hover{border-color:var(--g300);box-shadow:0 2px 8px #0000000f}.rs-card-num{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;flex-shrink:0}.rs-num--notstarted{background:var(--g100);color:var(--g400)}.rs-num--inprogress{background:var(--blue-light);color:var(--blue)}.rs-num--complete{background:var(--success-bg);color:var(--success)}.rs-card-body{flex:1;min-width:0}.rs-card-top{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}.rs-card-title{font-size:.92rem;font-weight:700;color:var(--g800)}.rs-card-badge{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:99px}.rs-badge--notstarted{background:var(--g100);color:var(--g500)}.rs-badge--inprogress{background:var(--blue-light);color:var(--blue)}.rs-badge--complete{background:var(--success-bg);color:var(--success)}.rs-card-desc{font-size:.82rem;color:var(--g500);line-height:1.5;margin-bottom:6px}.rs-card-meta{font-size:.72rem;color:var(--g400);display:flex;gap:6px}.rs-card-action{flex-shrink:0}.rs-btn-open{padding:7px 16px;border-radius:var(--r);font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;white-space:nowrap;transition:background .12s}.rs-btn-open:hover{background:#122840}.rs-btn-open--disabled{background:#fff;color:var(--g400);border-color:var(--g200);cursor:not-allowed}.rs-btn-open--disabled:hover{background:#fff}.strategy-proto-root .pcs-root{display:flex;flex-direction:column;gap:14px;width:100%}.strategy-proto-root .pcs-kw-section{background:#fff;border:1px solid var(--g200);border-radius:var(--r);padding:10px 14px;display:flex;flex-direction:column;gap:8px}.strategy-proto-root .pcs-kw-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--g500)}.strategy-proto-root .pcs-kw-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.strategy-proto-root .pcs-kw-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px 3px 11px;border-radius:99px;border:1px solid var(--blue-mid);background:var(--blue-light);color:var(--blue);font-size:.72rem;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .1s,background .1s,color .1s,opacity .1s}.strategy-proto-root .pcs-kw-chip:hover{filter:brightness(.97)}.strategy-proto-root .pcs-kw-chip--excluded{border:1px dashed var(--g300);background:#fff;color:var(--g400);font-weight:600}.strategy-proto-root .pcs-kw-remove{background:none;border:none;cursor:pointer;font-size:.9rem;line-height:1;color:inherit;opacity:.55;padding:0 1px;border-radius:99px;transition:opacity .1s}.strategy-proto-root .pcs-kw-remove:hover{opacity:1}.strategy-proto-root .pcs-kw-input-row{display:flex;align-items:center;gap:6px}.strategy-proto-root .pcs-kw-input{height:28px;padding:0 10px;border:1px solid var(--g200);border-radius:99px;font-size:.78rem;outline:none;width:160px;color:var(--g700);background:var(--g50);transition:border-color .12s}.strategy-proto-root .pcs-kw-input:focus{border-color:var(--blue-mid);background:#fff}.strategy-proto-root .pcs-kw-add-btn{height:28px;font-size:.78rem;padding:0 12px;border-radius:99px}.strategy-proto-root .pcs-kw-search-btn{height:28px;font-size:.78rem;padding:0 14px;border-radius:99px}.strategy-proto-root .pcs-kw-search-btn:disabled{opacity:.4;cursor:default}.strategy-proto-root .pcs-panel-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.strategy-proto-root .pcs-panel-filter-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--g500);white-space:nowrap}.strategy-proto-root .pcs-panel-chips{display:flex;flex-wrap:wrap;gap:5px}.strategy-proto-root .pcs-panel-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 11px;border-radius:99px;border:1px solid var(--blue-mid);background:var(--blue-light);color:var(--blue);font-size:.72rem;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .1s,background .1s,color .1s,opacity .1s}.strategy-proto-root .pcs-panel-chip input[type=checkbox]{display:none}.strategy-proto-root .pcs-panel-chip:hover{filter:brightness(.97)}.strategy-proto-root .pcs-panel-chip--excluded{border:1px dashed var(--g300);background:#fff;color:var(--g400);font-weight:600;opacity:1;text-decoration:none}.strategy-proto-root .pcs-stats-row{display:flex;align-items:center;gap:12px}.strategy-proto-root .pcs-conv{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:var(--r);font-size:.78rem;font-weight:600;flex:1;border:1px solid}.strategy-proto-root .pcs-conv-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.strategy-proto-root .pcs-conv-label{flex:1}.strategy-proto-root .pcs-conv-scores{font-size:.7rem;font-weight:500;opacity:.75;white-space:nowrap}.strategy-proto-root .pcs-conv-strong{background:var(--success-bg);color:var(--success);border-color:var(--success-mid)}.strategy-proto-root .pcs-conv-strong .pcs-conv-dot{background:var(--success)}.strategy-proto-root .pcs-conv-moderate{background:var(--warn-bg);color:var(--warn);border-color:#fcd34d}.strategy-proto-root .pcs-conv-moderate .pcs-conv-dot{background:var(--warn)}.strategy-proto-root .pcs-conv-weak{background:#fff7ed;color:#ea580c;border-color:#fed7aa}.strategy-proto-root .pcs-conv-weak .pcs-conv-dot{background:#ea580c}.strategy-proto-root .pcs-conv-none{background:#fef2f2;color:var(--danger);border-color:#fecaca}.strategy-proto-root .pcs-conv-none .pcs-conv-dot{background:var(--danger)}.strategy-proto-root .pcs-guidance{font-size:.8rem;color:var(--g500);padding:2px 0}.strategy-proto-root .pcs-search-error{padding:10px 14px;background:#fef2f2;color:var(--danger);border:1px solid #fecaca;border-radius:var(--r);font-size:.82rem}.strategy-proto-root .pcs-searching{font-size:.8rem;color:var(--g400);padding:4px 0}.strategy-proto-root .pcs-table-wrap{border:1px solid var(--g200);border-radius:var(--r);overflow-x:auto;overflow-y:hidden;background:#fff}.strategy-proto-root .pcs-table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:auto}.strategy-proto-root .pcs-table th{padding:8px 5px;text-align:left;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--g500);background:var(--g50);border-bottom:1px solid var(--g200);white-space:nowrap}.strategy-proto-root .pcs-row{cursor:pointer;transition:background .1s}.strategy-proto-root .pcs-row:hover{background:var(--g50)}.strategy-proto-root .pcs-row--sel{background:var(--blue-pale)!important}.strategy-proto-root .pcs-table td{padding:8px 5px;border-bottom:1px solid var(--g100);vertical-align:middle;color:var(--g700)}.strategy-proto-root .pcs-col-rank{font-size:.72rem;font-weight:700;color:var(--g400);white-space:nowrap;width:28px}.strategy-proto-root .pcs-col-rank--top{color:var(--success)}.strategy-proto-root .pcs-col-code{white-space:nowrap;width:52px}.strategy-proto-root .pcs-chevron{display:inline-block;font-size:.6rem;color:var(--g400);cursor:pointer;padding:2px 4px;border-radius:3px;margin-right:4px;transition:background .1s}.strategy-proto-root .pcs-chevron:hover{background:var(--g200);color:var(--g600)}.strategy-proto-root .pcs-code{font-size:.78rem;font-weight:800;color:var(--navy);letter-spacing:.04em;background:var(--blue-pale);border-radius:4px;padding:1px 6px}.strategy-proto-root .pcs-code--link{cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .12s}.strategy-proto-root .pcs-code--link:hover{text-decoration-color:var(--navy)}.strategy-proto-root .pcs-col-knum{font-size:.72rem;color:var(--g500);white-space:nowrap;font-family:var(--mono, monospace)}.strategy-proto-root .pcs-knum-link{color:var(--blue-mid, #3b82f6);text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .12s}.strategy-proto-root .pcs-knum-link:hover{text-decoration-color:var(--blue-mid, #3b82f6);width:80px}.strategy-proto-root .pcs-col-dname{max-width:220px}.strategy-proto-root .pcs-col-panel{font-size:.72rem;white-space:nowrap;color:var(--g600);width:40px}.strategy-proto-root .pcs-col-score{font-size:.78rem;font-weight:700;color:var(--g400);white-space:nowrap;text-align:right;width:44px}.strategy-proto-root .pcs-score-top{color:var(--success)}.strategy-proto-root .pcs-col-kw{width:auto}.strategy-proto-root .pcs-kw-match-row{display:flex;flex-wrap:wrap;gap:4px}.strategy-proto-root .pcs-kw-hit{font-size:.68rem;font-weight:600;background:var(--success-bg);color:var(--success);border-radius:99px;padding:1px 7px;border:1px solid var(--success-mid)}.strategy-proto-root .pcs-kw-miss{font-size:.68rem;font-weight:500;background:var(--g50);color:var(--g400);border-radius:99px;padding:1px 7px;border:1px solid var(--g200);text-decoration:line-through;opacity:.7}.strategy-proto-root .pcs-col-check{width:32px;text-align:center}.strategy-proto-root .pcs-select-checkbox{width:15px;height:15px;cursor:pointer;accent-color:var(--blue)}.strategy-proto-root .pcs-reg-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.strategy-proto-root .pcs-reg-pill{display:inline-flex;align-items:center;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}.strategy-proto-root .pcs-reg-pill--class{background:#ede9fe;color:#7c3aed;border:1px solid #ddd6fe}.strategy-proto-root .pcs-reg-pill--type{background:var(--blue-light);color:var(--blue);border:1px solid #c7d9f5}.strategy-proto-root .pcs-reg-pill--panel{background:var(--g50);color:var(--g600);border:1px solid var(--g200)}.strategy-proto-root .pcs-reg-text{font-style:italic;color:var(--g500)!important}.strategy-proto-root .pcs-detail-row td{padding:0}.strategy-proto-root .pcs-detail-cell{padding:14px 16px!important;background:var(--g50);border-bottom:1px solid var(--g200)}.strategy-proto-root .pcs-detail{display:flex;flex-direction:column;gap:12px}.strategy-proto-root .pcs-section-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400);margin-bottom:4px}.strategy-proto-root .pcs-detail-block{display:flex;flex-direction:column}.strategy-proto-root .pcs-detail-text{font-size:.82rem;color:var(--g600);line-height:1.6}.strategy-proto-root .pcs-detail-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.78rem;color:var(--g500)}.strategy-proto-root .pcs-approve-bar{display:flex;flex-direction:column;gap:10px;padding:14px 18px;background:var(--success-bg);border:1.5px solid var(--success-mid);border-radius:var(--r);margin-top:4px}.strategy-proto-root .pcs-approve-entry{display:flex;align-items:center;justify-content:space-between;gap:16px}.strategy-proto-root .pcs-approve-info{display:flex;align-items:baseline;gap:10px}.strategy-proto-root .pcs-approve-code{font-size:.88rem;font-weight:800;color:var(--navy);letter-spacing:.04em}.strategy-proto-root .pcs-approve-name{font-size:.82rem;color:var(--g600)}.strategy-proto-root .pcs-approved-badge{font-size:.82rem;font-weight:700;color:var(--success)}.strategy-proto-root .pcs-approve-knum{font-family:var(--mono, monospace);font-size:.82rem;font-weight:700;color:var(--g700)}.strategy-proto-root .pcs-deselect-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;color:var(--g400);padding:2px 4px;border-radius:4px;transition:color .1s;flex-shrink:0}.strategy-proto-root .pcs-deselect-btn:hover{color:var(--danger)}.strategy-proto-root .pcs-approve-footer{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--success-mid)}.strategy-proto-root .pcr-root{display:flex;flex-direction:column;gap:28px;width:100%}.strategy-proto-root .pcr-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:2px solid var(--navy)}.strategy-proto-root .pcr-title{font-size:1.05rem;font-weight:800;color:var(--navy);letter-spacing:-.01em;margin-bottom:5px}.strategy-proto-root .pcr-meta{display:flex;flex-wrap:wrap;gap:4px;font-size:.72rem;color:var(--g500);align-items:center}.strategy-proto-root .pcr-sep{color:var(--g300)}.strategy-proto-root .pcr-dl-wrap{position:relative;flex-shrink:0}.strategy-proto-root .pcr-dl-btn{white-space:nowrap}.strategy-proto-root .pcr-dl-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--g200);border-radius:var(--r);box-shadow:var(--sh-md);min-width:168px;overflow:hidden;z-index:50}.strategy-proto-root .pcr-dl-option{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:none;border:none;padding:9px 13px;cursor:pointer;transition:background .1s}.strategy-proto-root .pcr-dl-option:hover{background:var(--g50)}.strategy-proto-root .pcr-dl-option+.pcr-dl-option{border-top:1px solid var(--g100)}.strategy-proto-root .pcr-dl-option-label{font-size:.82rem;font-weight:600;color:var(--g800)}.strategy-proto-root .pcr-dl-option-hint{font-size:.7rem;color:var(--g400)}.strategy-proto-root .pcr-section{display:flex;flex-direction:column;gap:10px}.strategy-proto-root .pcr-section-label{display:flex;align-items:center;gap:8px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--g400)}.strategy-proto-root .pcr-section-num{width:20px;height:20px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;flex-shrink:0}.strategy-proto-root .pcr-summary-box{background:var(--g50);border-left:3px solid var(--success);border-radius:0 var(--r) var(--r) 0;padding:12px 16px;font-size:.88rem;color:var(--g600);line-height:1.7}.strategy-proto-root .pcr-missing{font-size:.82rem;color:var(--g400);font-style:italic}.strategy-proto-root .pcr-conv{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:var(--r);font-size:.78rem;font-weight:600;border:1px solid;align-self:flex-start}.strategy-proto-root .pcr-conv-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.strategy-proto-root .pcr-conv-strong{background:var(--success-bg);color:var(--success);border-color:var(--success-mid)}.strategy-proto-root .pcr-conv-strong .pcr-conv-dot{background:var(--success)}.strategy-proto-root .pcr-conv-moderate{background:var(--warn-bg);color:var(--warn);border-color:#fcd34d}.strategy-proto-root .pcr-conv-moderate .pcr-conv-dot{background:var(--warn)}.strategy-proto-root .pcr-conv-weak{background:#fff7ed;color:#ea580c;border-color:#fed7aa}.strategy-proto-root .pcr-conv-weak .pcr-conv-dot{background:#ea580c}.strategy-proto-root .pcr-conv-none{background:#fef2f2;color:var(--danger);border-color:#fecaca}.strategy-proto-root .pcr-conv-none .pcr-conv-dot{background:var(--danger)}.strategy-proto-root .pcr-stats-row{display:flex;gap:24px;flex-wrap:wrap}.strategy-proto-root .pcr-stat{display:flex;flex-direction:column;gap:2px}.strategy-proto-root .pcr-stat-val{font-size:1.15rem;font-weight:700;color:var(--g800);line-height:1}.strategy-proto-root .pcr-stat-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g400)}.strategy-proto-root .pcr-kw-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.strategy-proto-root .pcr-kw-heading{font-size:.72rem;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.05em;margin-right:3px}.strategy-proto-root .pcr-kw-chip{background:var(--blue-light);color:var(--blue);border:1px solid #c7d9f5;border-radius:99px;font-size:.72rem;font-weight:600;padding:2px 9px}.strategy-proto-root .pcr-candidates-label{font-size:.72rem;font-weight:700;color:var(--g600);margin-top:14px}.strategy-proto-root .pcr-candidates-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.strategy-proto-root .pcr-candidate-row{display:flex;align-items:baseline;gap:7px;font-size:.82rem;color:var(--g700)}.strategy-proto-root .pcr-c-rank{font-size:.7rem;font-weight:700;color:var(--g400);flex-shrink:0}.strategy-proto-root .pcr-c-code{font-weight:800;color:var(--navy);flex-shrink:0}.strategy-proto-root .pcr-c-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-proto-root .pcr-c-meta{font-size:.72rem;color:var(--g500);flex-shrink:0;white-space:nowrap}.strategy-proto-root .pcr-c-conf{font-weight:700}.strategy-proto-root .pcr-c-conf--high{color:var(--success)}.strategy-proto-root .pcr-c-conf--medium{color:var(--warn)}.strategy-proto-root .pcr-c-conf--low{color:var(--g400)}.strategy-proto-root .pcr-code-card{border:1.5px solid var(--blue);border-radius:var(--r);overflow:hidden}.strategy-proto-root .pcr-code-head{background:var(--navy);color:#fff;padding:14px 18px;display:flex;align-items:baseline;gap:12px}.strategy-proto-root .pcr-code-badge{font-size:.82rem;font-weight:800;letter-spacing:.06em;background:#ffffff26;border-radius:4px;padding:2px 8px;flex-shrink:0}.strategy-proto-root .pcr-code-name{font-size:1rem;font-weight:600}.strategy-proto-root .pcr-code-meta{background:var(--blue-pale);padding:10px 18px;display:flex;flex-wrap:wrap;gap:5px;font-size:.72rem;color:var(--g500);align-items:center}.strategy-proto-root .pcr-dot{color:var(--g300)}.strategy-proto-root .pcr-flag{background:var(--g100);color:var(--g600);border-radius:4px;font-size:.65rem;font-weight:700;padding:0 5px}.strategy-proto-root .pcr-code-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px}.strategy-proto-root .pcr-field-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400);margin-bottom:4px}.strategy-proto-root .pcr-field-text{font-size:.85rem;color:var(--g600);line-height:1.65}.strategy-proto-root .pcr-approved-list{display:flex;flex-direction:column;gap:12px}.strategy-proto-root *,.strategy-proto-root *:before,.strategy-proto-root *:after{box-sizing:border-box}.strategy-proto-root{--navy: #1a3a5c;--blue: #2563a8;--blue-mid: #3d82d8;--blue-light: #e8f0fb;--blue-pale: #f0f5ff;--success: #16a34a;--success-bg: #dcfce7;--success-mid: #86efac;--warn: #d97706;--warn-bg: #fef9c3;--danger: #dc2626;--locked: #94a3b8;--locked-bg: #f1f5f9;--g50: #f8fafc;--g100: #f1f5f9;--g200: #e2e8f0;--g300: #cbd5e1;--g400: #94a3b8;--g500: #64748b;--g600: #475569;--g700: #334155;--g800: #1e293b;--r: 8px;--r-lg: 14px;--sh: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);--sh-md: 0 4px 12px rgba(0,0,0,.08);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background:var(--g50);color:var(--g800);min-height:100vh;display:flex;flex-direction:column;font-size:14px;line-height:1.5}.strategy-proto-root .app-body{flex:1;display:flex;overflow:hidden}.strategy-proto-root .sidebar{width:248px;flex-shrink:0;background:#fff;border-right:1px solid var(--g200);display:flex;flex-direction:column;overflow:hidden}.strategy-proto-root .sidebar-top{padding:14px 14px 10px;border-bottom:1px solid var(--g200)}.strategy-proto-root .sidebar-heading{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400);margin-bottom:10px}.strategy-proto-root .session-ctrl{display:grid;grid-template-columns:1fr 1fr;gap:6px}.strategy-proto-root .btn-ctrl{display:flex;align-items:center;justify-content:center;gap:4px;border-radius:6px;padding:6px 10px;font-size:.78rem;font-weight:600;cursor:pointer;border:1px solid;transition:background .12s,color .12s}.strategy-proto-root .btn-ctrl-primary{background:var(--navy);color:#fff;border-color:var(--navy);grid-column:span 2}.strategy-proto-root .btn-ctrl-primary:hover{background:#122840}.strategy-proto-root .btn-ctrl-secondary{background:#fff;color:var(--g700);border-color:var(--g200)}.strategy-proto-root .btn-ctrl-secondary:hover{background:var(--g100)}.strategy-proto-root .btn-ctrl-danger{background:#fff;color:var(--danger);border-color:#fecaca}.strategy-proto-root .btn-ctrl-danger:hover{background:#fef2f2}.strategy-proto-root .current-session{padding:10px 14px;border-bottom:1px solid var(--g200);background:var(--blue-pale)}.strategy-proto-root .cs-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--blue-mid);margin-bottom:4px}.strategy-proto-root .cs-name{font-size:.92rem;font-weight:700;color:var(--navy)}.strategy-proto-root .cs-meta{display:flex;gap:10px;margin-top:6px}.strategy-proto-root .cs-meta-item{font-size:.72rem;color:var(--g500)}.strategy-proto-root .cs-meta-item strong{color:var(--g700);font-weight:600}.strategy-proto-root .session-list-header{padding:10px 14px 6px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400)}.strategy-proto-root .session-list{flex:1;overflow-y:auto;padding:0 8px 10px;display:flex;flex-direction:column;gap:3px}.strategy-proto-root .session-item{border-radius:8px;padding:8px 10px;cursor:pointer;transition:background .12s;border:1px solid transparent}.strategy-proto-root .session-item:hover{background:var(--g100)}.strategy-proto-root .session-item.active{background:var(--blue-light);border-color:#c7d9f5}.strategy-proto-root .si-row1{display:flex;align-items:center;justify-content:space-between;gap:6px}.strategy-proto-root .si-name{font-size:.82rem;font-weight:700;color:var(--g800)}.strategy-proto-root .si-badge{font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:99px}.strategy-proto-root .badge-active{background:#dbeafe;color:#1d4ed8}.strategy-proto-root .badge-approved{background:var(--success-bg);color:var(--success)}.strategy-proto-root .badge-draft{background:var(--g100);color:var(--g500)}.strategy-proto-root .si-device{font-size:.72rem;color:var(--g500);margin-top:1px}.strategy-proto-root .si-date{font-size:.68rem;color:var(--g400)}.strategy-proto-root .si-meta{display:flex;flex-direction:column;gap:1px}.strategy-proto-root .si-bottom-row{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.strategy-proto-root .si-delete-btn{opacity:0;background:none;border:none;cursor:pointer;font-size:.75rem;color:var(--g400);padding:2px 4px;border-radius:4px;line-height:1;flex-shrink:0;transition:opacity .12s,color .12s,background .12s}.strategy-proto-root .session-item:hover .si-delete-btn{opacity:1}.strategy-proto-root .si-delete-btn:hover{color:var(--danger);background:#fef2f2}.strategy-proto-root .si-confirm-row{display:flex;align-items:center;justify-content:space-between;margin-top:4px;gap:6px}.strategy-proto-root .si-confirm-text{font-size:.72rem;font-weight:600;color:var(--danger)}.strategy-proto-root .si-confirm-actions{display:flex;gap:4px}.strategy-proto-root .si-confirm-btn{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:4px;cursor:pointer;border:1px solid;transition:background .1s}.strategy-proto-root .si-confirm-cancel{background:#fff;color:var(--g500);border-color:var(--g200)}.strategy-proto-root .si-confirm-cancel:hover{background:var(--g100)}.strategy-proto-root .si-confirm-delete{background:var(--danger);color:#fff;border-color:var(--danger)}.strategy-proto-root .si-confirm-delete:hover{background:#b91c1c}.strategy-proto-root .workspace{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.strategy-proto-root .ws-bar{background:#fff;border-bottom:1px solid var(--g200);padding:10px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.strategy-proto-root .ws-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.strategy-proto-root .ws-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.strategy-proto-root .ws-breadcrumb-link:hover{color:var(--navy)}.strategy-proto-root .ws-breadcrumb-sep{color:var(--g400)}.strategy-proto-root .ws-bar-sub{font-size:.72rem;color:var(--g500);margin-top:3px}.strategy-proto-root .ws-bar-actions{display:flex;gap:6px}.strategy-proto-root .btn-ws{padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600)}.strategy-proto-root .btn-ws:hover{background:var(--g100)}.strategy-proto-root .btn-ws-danger{color:var(--danger);border-color:#fecaca}.strategy-proto-root .btn-ws-danger:hover{background:#fef2f2}.strategy-proto-root .step-tabs{background:#fff;border-bottom:1px solid var(--g200);padding:0 22px;display:flex;gap:0;flex-shrink:0;overflow-x:auto}.strategy-proto-root .step-tab{display:flex;align-items:center;gap:7px;padding:10px 14px 10px 0;margin-right:6px;font-size:.8rem;color:var(--g400);cursor:default;white-space:nowrap;border-bottom:2px solid transparent}.strategy-proto-root .step-tab.clickable{cursor:pointer}.strategy-proto-root .step-tab.clickable:hover,.strategy-proto-root .step-tab.s-done{color:var(--g600)}.strategy-proto-root .step-tab.s-active{color:var(--navy);font-weight:700;border-bottom-color:var(--blue-mid)}.strategy-proto-root .step-tab.s-locked{opacity:.5}.strategy-proto-root .step-num{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;background:var(--g200);color:var(--g500);flex-shrink:0}.strategy-proto-root .step-tab.s-done .step-num{background:var(--success-bg);color:var(--success)}.strategy-proto-root .step-tab.s-active .step-num{background:var(--blue);color:#fff}.strategy-proto-root .resume-banner{background:var(--blue-pale);border-bottom:1px solid var(--blue-light);padding:8px 22px;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--blue);font-weight:500;flex-shrink:0}.strategy-proto-root .ws-content{flex:1;overflow-y:auto;padding:40px 48px 48px;display:flex;flex-direction:column;max-width:760px;width:100%;margin:0 auto}.strategy-proto-root .transcript{display:flex;flex-direction:column;gap:0;margin-bottom:32px}.strategy-proto-root .t-row{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--g100)}.strategy-proto-root .t-row:last-child{border-bottom:none}.strategy-proto-root .t-idx{font-size:.72rem;font-weight:700;color:var(--g300);padding-top:2px}.strategy-proto-root .t-q{font-size:.82rem;color:var(--g400);line-height:1.5;margin-bottom:2px}.strategy-proto-root .t-a{font-size:.88rem;color:var(--g700);line-height:1.5}.strategy-proto-root .q-num{font-size:.72rem;font-weight:700;color:var(--g400);letter-spacing:.05em;margin-bottom:10px}.strategy-proto-root .q-text{font-size:1.25rem;font-weight:600;color:var(--g800);line-height:1.45;margin-bottom:20px;letter-spacing:-.01em}.strategy-proto-root .conf-row{display:flex;align-items:center;gap:10px;margin-bottom:20px}.strategy-proto-root .conf-track{flex:1;height:3px;background:var(--g100);border-radius:99px;position:relative}.strategy-proto-root .conf-fill{height:100%;border-radius:99px;background:#fbbf24;transition:width .5s}.strategy-proto-root .conf-fill.hi{background:var(--success)}.strategy-proto-root .conf-marker{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--g300);left:85%}.strategy-proto-root .conf-val{font-size:.72rem;font-weight:600;color:var(--g400);white-space:nowrap}.strategy-proto-root .conf-val.hi{color:var(--success)}.strategy-proto-root .answer-ta{width:100%;min-height:100px;resize:vertical;border:1px solid var(--g200);border-radius:var(--r);padding:12px 14px;font-size:.92rem;color:var(--g800);font-family:inherit;line-height:1.6;background:#fff;transition:border-color .12s}.strategy-proto-root .answer-ta:focus{outline:none;border-color:var(--g400)}.strategy-proto-root .q-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.strategy-proto-root .dot-row{display:flex;gap:4px;align-items:center}.strategy-proto-root .dot{width:6px;height:6px;border-radius:50%;background:var(--g200)}.strategy-proto-root .dot.d{background:var(--g400)}.strategy-proto-root .dot.a{background:var(--g700)}.strategy-proto-root .action-row{display:flex;gap:8px;align-items:center}.strategy-proto-root .btn{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:7px 18px;font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid;transition:background .12s}.strategy-proto-root .btn:disabled{opacity:.35;cursor:not-allowed}.strategy-proto-root .btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.strategy-proto-root .btn-primary:not(:disabled):hover{background:#122840}.strategy-proto-root .btn-ghost{background:#fff;color:var(--g600);border-color:var(--g200)}.strategy-proto-root .btn-ghost:not(:disabled):hover{background:var(--g100)}.strategy-proto-root .btn-success{background:var(--success);color:#fff;border-color:var(--success)}.strategy-proto-root .btn-success:not(:disabled):hover{background:#15803d}.strategy-proto-root .btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}.strategy-proto-root .btn-danger:not(:disabled):hover{background:#b91c1c}.strategy-proto-root .btn-link{background:none;border:none;color:var(--g400);font-size:.78rem;cursor:pointer;padding:4px 6px;text-decoration:underline}.strategy-proto-root .btn-link:hover{color:var(--g600)}.strategy-proto-root .profile-ready{border-top:2px solid var(--success);padding-top:24px;margin-top:8px}.strategy-proto-root .pr-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.strategy-proto-root .pr-kicker{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--success)}.strategy-proto-root .pr-title{font-size:1rem;font-weight:600;color:var(--g800);margin-bottom:12px}.strategy-proto-root .pr-summary{font-size:.88rem;color:var(--g600);line-height:1.65;margin-bottom:18px;padding:12px 16px;background:var(--g50);border-radius:var(--r);border-left:3px solid var(--success)}.strategy-proto-root .pr-actions{display:flex;gap:8px;align-items:center}.strategy-proto-root .mf-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:-10px;margin-bottom:18px}.strategy-proto-root .mf-tag{font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:99px;letter-spacing:.02em}.strategy-proto-root .mf-tag--primary{background:#dbeafe;color:#1d4ed8}.strategy-proto-root .mf-tag--secondary{background:var(--g100);color:var(--g500)}.strategy-proto-root .spp-start-panel{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:32px 0;border-top:1px solid var(--g100)}.strategy-proto-root .spp-start-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g400)}.strategy-proto-root .spp-start-desc{font-size:.9rem;color:var(--g600);line-height:1.55;max-width:420px}.strategy-proto-root .spp-warning-banner{background:#fffbeb;border:1px solid #fbbf24;border-radius:8px;padding:10px 14px;font-size:.84rem;color:#92400e;margin-bottom:12px}.strategy-proto-root .locked-card{display:flex;align-items:center;gap:12px;padding:14px 0;color:var(--g400);border-top:1px solid var(--g100)}.strategy-proto-root .locked-title{font-size:.88rem;font-weight:600;color:var(--g500)}.strategy-proto-root .locked-desc{font-size:.78rem;color:var(--g400);margin-top:1px}.strategy-proto-root .overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.strategy-proto-root .modal{background:#fff;border-radius:14px;padding:24px;width:420px;box-shadow:0 8px 32px #00000024}.strategy-proto-root .modal h2{font-size:.95rem;font-weight:700;margin-bottom:4px}.strategy-proto-root .modal p{font-size:.78rem;color:var(--g500);margin-bottom:18px;line-height:1.5}.strategy-proto-root .field{margin-bottom:13px}.strategy-proto-root .field label{display:block;font-size:.72rem;font-weight:700;color:var(--g600);margin-bottom:5px}.strategy-proto-root .field input,.strategy-proto-root .field textarea{width:100%;border:1px solid var(--g200);border-radius:6px;padding:7px 10px;font-size:.85rem;color:var(--g800);font-family:inherit}.strategy-proto-root .field input:focus,.strategy-proto-root .field textarea:focus{outline:none;border-color:var(--blue-mid)}.strategy-proto-root .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.strategy-proto-root .iter-panel{border:1px solid var(--g200);border-radius:var(--r);padding:18px 20px;background:#fff}.strategy-proto-root .iter-header{margin-bottom:14px}.strategy-proto-root .iter-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.88rem;font-weight:700;color:var(--g800);margin-bottom:6px}.strategy-proto-root .iter-hint-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}.strategy-proto-root .iter-hint-strong{background:#d1fae5;color:#065f46}.strategy-proto-root .iter-hint-normal{background:var(--g100);color:var(--g500)}.strategy-proto-root .iter-gap{font-size:.78rem;font-weight:400;color:var(--g500)}.strategy-proto-root .iter-guidance{font-size:.8rem;color:var(--g500);line-height:1.5;padding:8px 12px;background:var(--g50);border-radius:6px;border-left:3px solid var(--blue-mid);margin-bottom:2px}.strategy-proto-root .iter-table-wrap{overflow-x:auto;margin-bottom:16px}.strategy-proto-root .iter-table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:fixed}.strategy-proto-root .iter-table colgroup col.col-rank{width:36px}.strategy-proto-root .iter-table colgroup col.col-code{width:52px}.strategy-proto-root .iter-table colgroup col.col-name{width:28%}.strategy-proto-root .iter-table colgroup col.col-cls{width:36px}.strategy-proto-root .iter-table colgroup col.col-score{width:52px}.strategy-proto-root .iter-table colgroup col.col-kw{width:auto}.strategy-proto-root .iter-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--g200);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--g500)}.strategy-proto-root .iter-table td{padding:7px 8px;border-bottom:1px solid var(--g100);vertical-align:top;color:var(--g700);word-break:break-word}.strategy-proto-root .iter-kw-cell{display:flex;flex-wrap:wrap;gap:3px;align-content:flex-start}.strategy-proto-root .iter-rank{font-weight:700;color:var(--g600);white-space:nowrap}.strategy-proto-root .iter-rank-top{color:var(--g800)}.strategy-proto-root .iter-score-top{color:var(--success)}.strategy-proto-root .iter-code{font-weight:700;font-family:monospace;white-space:nowrap}.strategy-proto-root .iter-cls{text-align:center}.strategy-proto-root .iter-score{text-align:right;font-weight:600;white-space:nowrap}.strategy-proto-root .iter-actions{display:flex;gap:10px;align-items:center;padding-bottom:12px}.spp-timer-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px}.spp-timer-label{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;color:var(--g400)}.spp-timer-display{font-size:.88rem;font-variant-numeric:tabular-nums;color:var(--g400);font-family:ui-monospace,SF Mono,monospace}.spp-timer-desc{font-size:.78rem;color:var(--g400);text-align:center;max-width:340px;margin-top:4px}.strategy-proto-root .staged-tray{border:1px solid var(--success);border-radius:var(--r);background:#f0fdf4;margin-bottom:16px;flex-shrink:0;overflow:visible;display:flex;flex-direction:column}.strategy-proto-root .staged-tray-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #bbf7d0}.strategy-proto-root .staged-tray-count,.strategy-proto-root .staged-tray-done{font-size:.8rem;font-weight:700;color:var(--success)}.strategy-proto-root .staged-tray-list{padding:8px 14px;display:flex;flex-direction:column;gap:6px}.strategy-proto-root .staged-tray-entry{display:flex;align-items:center;gap:10px;font-size:.82rem}.strategy-proto-root .staged-tray-name{flex:1;color:var(--g800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strategy-proto-root .staged-tray-code{font-weight:700;color:var(--navy);flex-shrink:0}.strategy-proto-root .staged-tray-code--link{cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .12s}.strategy-proto-root .staged-tray-code--link:hover{text-decoration-color:var(--navy)}.strategy-proto-root .staged-tray-knum{color:var(--g400);font-size:.75rem;flex-shrink:0}.strategy-proto-root .staged-tray-knum--link{color:var(--blue-mid, #3b82f6);text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .12s}.strategy-proto-root .staged-tray-knum--link:hover{text-decoration-color:var(--blue-mid, #3b82f6)}.strategy-proto-root .staged-tray-remove{background:none;border:none;cursor:pointer;color:var(--g400);font-size:1rem;line-height:1;padding:0 2px;flex-shrink:0}.strategy-proto-root .staged-tray-remove:hover{color:var(--danger)}.strategy-proto-root .staged-tray-error{padding:6px 14px 10px;font-size:.78rem;color:var(--danger)}.strategy-proto-root .ms-ai-lock{padding:20px 0 8px;border-top:1px solid var(--g100)}.strategy-proto-root .ms-ai-lock-msg{font-size:.88rem;font-weight:600;color:var(--g600);margin-bottom:12px}.strategy-proto-root .ms-ai-lock-steps{display:flex;flex-direction:column;gap:6px}.strategy-proto-root .ms-ai-lock-step{font-size:.82rem;color:var(--g400)}.strategy-proto-root .ms-ai-lock-step--done{color:var(--success)}.pi-root *,.pi-root *:before,.pi-root *:after{box-sizing:border-box}.pi-root{--navy: #1a3a5c;--blue: #2563a8;--blue-mid: #3d82d8;--blue-light: #e8f0fb;--blue-pale: #f0f5ff;--success: #16a34a;--success-bg: #dcfce7;--success-mid: #86efac;--warn: #d97706;--warn-bg: #fef3c7;--danger: #dc2626;--danger-bg: #fef2f2;--g50: #f8fafc;--g100: #f1f5f9;--g200: #e2e8f0;--g300: #cbd5e1;--g400: #94a3b8;--g500: #64748b;--g600: #475569;--g700: #334155;--g800: #1e293b;--r: 8px;--sh: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);--sh-md: 0 4px 12px rgba(0,0,0,.09);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background:var(--g50);color:var(--g800);min-height:100vh;display:flex;flex-direction:column;font-size:14px;line-height:1.5}.pi-body{flex:1;display:flex;overflow:hidden}.pi-sidebar{width:260px;flex-shrink:0;background:#fff;border-right:1px solid var(--g200);display:flex;flex-direction:column;overflow:hidden}.pi-sidebar-top{padding:14px 14px 12px;border-bottom:1px solid var(--g200)}.pi-sidebar-heading{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400);margin-bottom:4px}.pi-sidebar-sub{font-size:.72rem;color:var(--g500)}.pi-session-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px}.pi-sidebar-loading,.pi-sidebar-empty{padding:16px 12px;font-size:.8rem;color:var(--g500);text-align:center}.pi-session-card{padding:10px 12px;border-radius:var(--r);border:1.5px solid var(--g200);background:#fff;cursor:pointer;transition:border-color .12s,background .12s}.pi-session-card:hover{border-color:var(--blue-mid);background:var(--blue-pale)}.pi-session-card.active{border-color:var(--blue);background:var(--blue-light)}.pi-sc-top{display:flex;align-items:center;gap:6px;margin-bottom:5px}.pi-sc-code{font-size:.75rem;font-weight:800;letter-spacing:.05em;background:var(--navy);color:#fff;border-radius:4px;padding:1px 7px}.pi-sc-badge{font-size:.68rem;font-weight:700;border-radius:99px;padding:1px 8px;border:1px solid transparent}.pi-badge-idle{background:var(--g100);color:var(--g500);border-color:var(--g200)}.pi-badge-progress{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.pi-badge-waiting{background:var(--warn-bg);color:var(--warn);border-color:#fcd34d}.pi-badge-ready{background:#e0f2fe;color:#0369a1;border-color:#7dd3fc}.pi-badge-approved{background:var(--success-bg);color:var(--success);border-color:var(--success-mid)}.pi-badge-error{background:var(--danger-bg);color:var(--danger);border-color:#fca5a5}.pi-sc-name{font-size:.82rem;font-weight:600;color:var(--g800);margin-bottom:2px}.pi-sc-device{font-size:.72rem;color:var(--g500)}.pi-main{flex:1;overflow-y:auto;padding:24px 28px;display:flex;flex-direction:column}.pi-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500);margin-bottom:16px}.pi-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.pi-breadcrumb-link:hover{color:var(--navy)}.pi-breadcrumb-sep{color:var(--g400)}.pi-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--g500);padding:60px 40px}.pi-empty-icon{font-size:2.5rem;margin-bottom:14px}.pi-empty-title{font-size:1.05rem;font-weight:700;color:var(--g700);margin-bottom:8px}.pi-empty-sub{font-size:.85rem;max-width:340px}.pi-session-view{display:flex;flex-direction:column;gap:0;max-width:940px}.pi-view-header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--g200);margin-bottom:0}.pi-view-title{display:flex;align-items:center;gap:10px;margin-bottom:4px}.pi-view-code{font-size:.8rem;font-weight:800;letter-spacing:.05em;background:var(--navy);color:#fff;border-radius:4px;padding:2px 8px}.pi-view-name{font-size:1.05rem;font-weight:700;color:var(--g800)}.pi-view-device{font-size:.82rem;color:var(--g500)}.pi-steps{display:flex;align-items:stretch;border-bottom:2px solid var(--g200);margin-bottom:24px}.pi-step-tab{display:flex;align-items:center;gap:7px;padding:13px 18px 11px;font-size:.82rem;font-weight:600;color:var(--g400);cursor:default;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .1s}.pi-step-tab.clickable{cursor:pointer;color:var(--g600)}.pi-step-tab.clickable:hover{color:var(--g800)}.pi-step-tab.active{color:var(--navy);border-bottom-color:var(--blue)}.pi-step-num{width:20px;height:20px;border-radius:50%;flex-shrink:0;font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center;background:var(--g100);color:var(--g400);border:1.5px solid var(--g200);transition:background .1s,color .1s,border-color .1s}.pi-step-tab.active .pi-step-num{background:var(--navy);color:#fff;border-color:var(--navy)}.pi-step-tab.done .pi-step-num{background:var(--success);color:#fff;border-color:var(--success)}.pi-step-count{min-width:18px;height:18px;border-radius:99px;padding:0 5px;background:var(--success);color:#fff;font-size:.65rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.pi-candidates-note{font-size:.78rem;color:var(--g500);background:var(--g50);border:1px solid var(--g200);border-radius:6px;padding:8px 12px;margin-bottom:12px}.pi-nav-btns{display:flex;gap:8px}.pi-start-panel{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 40px;background:#fff;border-radius:var(--r);border:1px solid var(--g200);box-shadow:var(--sh)}.pi-start-icon{font-size:2.2rem;margin-bottom:12px}.pi-start-title{font-size:1rem;font-weight:700;color:var(--g800);margin-bottom:10px}.pi-start-desc{font-size:.85rem;color:var(--g600);max-width:440px;margin-bottom:20px;line-height:1.65}.pi-start-btn{padding:10px 24px;font-size:.9rem}.pi-timer-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px}.pi-timer-label{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;color:var(--g400)}.pi-timer-display{font-size:.88rem;font-variant-numeric:tabular-nums;color:var(--g400);font-family:ui-monospace,SF Mono,monospace}.pi-iter-panel{background:#fff;border-radius:var(--r);border:1px solid var(--g200);box-shadow:var(--sh);padding:20px 20px 16px;display:flex;flex-direction:column;gap:14px}.pi-iter-header{display:flex;flex-direction:column;gap:6px}.pi-iter-title{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:700;color:var(--g800)}.pi-hint-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;border-radius:99px;padding:2px 10px;border:1px solid transparent}.pi-hint-none{background:var(--g100);color:var(--g500);border-color:var(--g200)}.pi-hint-weak{background:var(--danger-bg);color:var(--danger);border-color:#fca5a5}.pi-hint-moderate{background:var(--warn-bg);color:var(--warn);border-color:#fcd34d}.pi-hint-strong{background:var(--success-bg);color:var(--success);border-color:var(--success-mid)}.pi-iter-guidance{font-size:.78rem;color:var(--g600);padding-left:2px}.pi-iter-actions{display:flex;gap:8px;padding-bottom:4px}.pi-iter-table-wrap{overflow-x:auto;border-radius:6px;border:1px solid var(--g200)}.pi-iter-table{width:100%;border-collapse:collapse;font-size:.78rem;table-layout:fixed;min-width:900px}.pi-iter-table thead tr{background:var(--g50);border-bottom:1px solid var(--g200)}.pi-iter-table th{padding:8px 10px;text-align:left;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);white-space:nowrap}.pi-iter-table td{padding:8px 10px;border-bottom:1px solid var(--g100)}.pi-iter-table tbody tr{cursor:pointer;transition:background .1s}.pi-iter-table tbody tr:hover{background:var(--blue-pale)}.pi-iter-table tbody tr.pi-row-checked{background:var(--blue-light)}.pi-iter-table tbody tr:last-child td{border-bottom:none}.pi-td-check{width:36px}.pi-td-rank{width:56px;font-weight:700;color:var(--g500);overflow:hidden}.rank-cell{display:flex;align-items:center;gap:4px;overflow:hidden}.pi-td-knum{font-weight:700;color:var(--navy);font-family:monospace}.pi-td-device{font-weight:500}.pi-td-applicant-sub{font-size:.78rem;color:var(--g500);margin-top:2px}.pi-td-date{color:var(--g500);white-space:nowrap}.pi-td-type{color:var(--g500);font-size:.72rem}.pi-td-score{font-weight:700;text-align:right}.pi-score-top{color:var(--success)}.pi-kw-cell{display:flex;flex-wrap:wrap;gap:3px}.pi-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;flex-shrink:0;background:var(--g100);border:1px solid var(--g200);color:var(--g400);font-size:.7rem;cursor:pointer;line-height:1;transition:background .1s,color .1s,border-color .1s,transform .15s}.pi-expand-btn:hover{background:var(--blue-light);color:var(--blue);border-color:#93c5fd}.pi-expand-btn.open{transform:rotate(90deg);background:var(--blue-light);color:var(--blue);border-color:#93c5fd}.pi-row-detail td{padding:0;border-bottom:1px solid var(--g200)}.pi-row-detail:hover{background:transparent!important}.pi-detail-wrap{padding:12px 14px 14px 16px;background:var(--g50);border-left:3px solid var(--blue-mid);display:flex;flex-direction:column;gap:10px}.pi-detail-cols{display:flex;flex-direction:column;gap:12px}.pi-detail-section{display:flex;flex-direction:column;gap:4px}.pi-detail-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400)}.pi-detail-text{font-size:.78rem;color:var(--g600);line-height:1.6;max-height:96px;overflow-y:auto}.pi-detail-fda-link{font-size:.75rem;font-weight:600;color:var(--blue);text-decoration:none;width:fit-content}.pi-detail-fda-link:hover{text-decoration:underline}.pi-results-panel{display:flex;flex-direction:column;gap:16px}.pi-results-title{font-size:.95rem;font-weight:700;color:var(--g800);margin-bottom:4px}.pi-results-sub{font-size:.82rem;color:var(--g600)}.pi-pred-cards{display:flex;flex-direction:column;gap:10px}.pi-pred-card{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;background:#fff;border-radius:var(--r);border:1.5px solid var(--g200);box-shadow:var(--sh);cursor:pointer;transition:border-color .12s,background .12s}.pi-pred-card:hover{border-color:var(--blue-mid)}.pi-pred-card-sel{border-color:var(--success);background:var(--success-bg)}.pi-pred-check-col{padding-top:2px;flex-shrink:0}.pi-pred-check-col input[type=checkbox]{width:16px;height:16px;cursor:pointer}.pi-pred-body{flex:1;display:flex;flex-direction:column;gap:6px}.pi-pred-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pi-pred-knum{font-size:.82rem;font-weight:800;letter-spacing:.04em;color:var(--navy);font-family:monospace;background:var(--blue-light);border-radius:4px;padding:1px 7px}.pi-pred-dname{font-size:.9rem;font-weight:600;color:var(--g800)}.pi-pred-top-badge{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--success-bg);color:var(--success);border:1px solid var(--success-mid);border-radius:99px;padding:1px 8px}.pi-pred-meta{font-size:.75rem;color:var(--g500);display:flex;flex-wrap:wrap;align-items:center;gap:4px}.pi-dot{color:var(--g300)}.pi-pred-summ-badge{font-size:.72rem;color:var(--g600);display:inline-flex;align-items:center;gap:4px}.pi-pred-kws{display:flex;flex-wrap:wrap;gap:4px}.pi-pred-fda-link{font-size:.75rem;color:var(--blue);text-decoration:none;font-weight:600;width:fit-content}.pi-pred-fda-link:hover{text-decoration:underline}.pi-approve-bar{display:flex;justify-content:flex-end;padding-top:8px}.pi-approved-panel{background:#fff;border-radius:var(--r);border:1px solid var(--success-mid);box-shadow:var(--sh);padding:20px 20px 16px;display:flex;flex-direction:column;gap:16px}.pi-approved-header{display:flex;align-items:flex-start;gap:14px}.pi-approved-icon{width:36px;height:36px;border-radius:50%;background:var(--success-bg);color:var(--success);display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;flex-shrink:0}.pi-approved-title{font-size:.95rem;font-weight:700;color:var(--g800);margin-bottom:3px}.pi-approved-sub{font-size:.82rem;color:var(--g600)}.pi-approved-list{display:flex;flex-direction:column;gap:8px}.pi-approved-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:6px;background:var(--g50);border:1px solid var(--g200)}.pi-approved-knum{font-size:.8rem;font-weight:800;letter-spacing:.04em;color:var(--navy);font-family:monospace;background:var(--blue-light);border-radius:4px;padding:1px 7px;flex-shrink:0}.pi-approved-info{flex:1}.pi-approved-dname{font-size:.85rem;font-weight:600;color:var(--g800)}.pi-approved-meta{font-size:.72rem;color:var(--g500);margin-top:2px}.pi-approved-badge{font-size:.72rem;font-weight:700;color:var(--success);background:var(--success-bg);border:1px solid var(--success-mid);border-radius:99px;padding:2px 10px;flex-shrink:0}.pi-redo-btn{font-size:.8rem;align-self:flex-start}.pi-error-panel{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 40px;background:#fff;border-radius:var(--r);border:1px solid var(--danger);box-shadow:var(--sh)}.pi-error-icon{font-size:2rem;color:var(--danger);margin-bottom:10px}.pi-error-title{font-size:1rem;font-weight:700;color:var(--g800);margin-bottom:6px}.pi-error-desc{font-size:.85rem;color:var(--g600);margin-bottom:18px;max-width:380px}.pi-root .btn{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:7px 16px;font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid;transition:background .12s,opacity .12s;white-space:nowrap}.pi-root .btn:disabled{opacity:.45;cursor:not-allowed}.pi-root .btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.pi-root .btn-primary:hover:not(:disabled){background:#122840}.pi-root .btn-ghost{background:#fff;color:var(--g700);border-color:var(--g200)}.pi-root .btn-ghost:hover:not(:disabled){background:var(--g100)}.pi-root .btn-success{background:var(--success);color:#fff;border-color:var(--success)}.pi-root .btn-success:hover:not(:disabled){background:#15803d}.pi-root .pcs-kw-hit{background:#dcfce7;color:#15803d;border:1px solid #86efac;border-radius:99px;font-size:.68rem;font-weight:600;padding:1px 7px}.pi-root .pcs-kw-miss{background:var(--g100);color:var(--g500);border:1px solid var(--g200);border-radius:99px;font-size:.68rem;font-weight:600;padding:1px 7px;text-decoration:line-through}.pi-search-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid var(--g200)}.pi-search-tab{padding:8px 18px 7px;font-size:.82rem;font-weight:600;color:var(--g500);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .1s,border-color .1s}.pi-search-tab:hover{color:var(--g700)}.pi-search-tab.active{color:var(--navy);border-bottom-color:var(--blue)}.pi-manual-panel{display:flex;flex-direction:column;gap:16px}.pi-manual-kw-area{background:#fff;border-radius:var(--r);border:1px solid var(--g200);box-shadow:var(--sh);padding:16px 18px;display:flex;flex-direction:column;gap:10px}.pi-manual-kw-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400)}.pi-manual-kw-row{display:flex;flex-wrap:wrap;gap:6px}.pi-manual-kw-chip{display:inline-flex;align-items:center;gap:4px;background:var(--blue-light);color:var(--navy);border:1px solid #93c5fd;border-radius:99px;font-size:.78rem;font-weight:600;padding:3px 10px 3px 12px}.pi-manual-kw-remove{background:none;border:none;cursor:pointer;color:var(--g400);font-size:.9rem;line-height:1;padding:0 1px;transition:color .1s}.pi-manual-kw-remove:hover{color:var(--danger)}.pi-manual-kw-input-row{display:flex;gap:6px;align-items:center}.pi-manual-kw-input{width:200px;flex:0 0 auto;padding:6px 10px;border-radius:6px;border:1px solid var(--g200);font-size:.82rem;background:var(--g50);color:var(--g800);transition:border-color .1s}.pi-manual-kw-input:focus{outline:none;border-color:var(--blue-mid);background:#fff}.pi-manual-kw-add-btn{padding:5px 12px!important;font-size:.78rem!important}.pi-manual-kw-refresh-row{margin-top:8px}.pi-manual-kw-refresh-btn{padding:6px 16px!important;font-size:.82rem!important}.pi-manual-kw-refresh-btn:disabled{opacity:.4;cursor:default}.pi-manual-results-meta{font-size:.78rem;color:var(--g500);padding-bottom:4px}.pi-manual-approve-btn{padding:4px 10px!important;font-size:.75rem!important;white-space:nowrap}.pi-manual-results{display:flex;flex-direction:column;gap:8px}.pi-source-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-radius:99px;padding:1px 8px;border:1px solid transparent}.pi-source-badge.ai{background:var(--blue-light);color:var(--blue);border-color:#93c5fd}.pi-source-badge.manual{background:var(--warn-bg);color:var(--warn);border-color:#fcd34d}.pi-selection-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 16px;background:var(--navy);color:#fff;border-radius:var(--r);box-shadow:var(--sh-md)}.pi-selection-count{font-size:.88rem;font-weight:600}.pi-selection-breakdown{font-size:.78rem;font-weight:400;opacity:.8}.rsp-root{min-height:100vh;background:var(--blue-pale, #f0f5ff);display:flex;flex-direction:column}.rsp-body{flex:1;display:flex;justify-content:center;padding:32px 24px 60px}.rsp-content{width:100%;max-width:860px;display:flex;flex-direction:column;gap:24px}.rsp-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500, #6b7280)}.rsp-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue, #2563a8);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.rsp-breadcrumb-link:hover{color:var(--navy, #1a3a5c)}.rsp-breadcrumb-sep{color:var(--g400, #9ca3af)}.rsp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.rsp-title{font-size:1.6rem;font-weight:700;color:var(--navy, #1a3a5c);margin:0 0 4px}.rsp-sub{font-size:.9rem;color:var(--g500, #6b7280);margin:0}.rsp-header-actions{flex-shrink:0;padding-top:4px}.rsp-loading{display:flex;align-items:center;gap:10px;color:var(--g500, #6b7280);font-size:.95rem;padding:48px 0;justify-content:center}.rsp-timer-display{font-size:.88rem;font-variant-numeric:tabular-nums;color:var(--g400, #9ca3af);font-family:ui-monospace,SF Mono,monospace;margin-left:8px}.rsp-btn-primary{background:var(--blue, #2563a8);color:#fff;border:none;border-radius:8px;padding:12px 28px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.rsp-btn-primary:hover:not(:disabled){background:var(--navy, #1a3a5c)}.rsp-btn-primary:disabled{opacity:.55;cursor:not-allowed}.rsp-btn-ghost{background:none;border:1.5px solid var(--g300, #d1d5db);border-radius:8px;padding:8px 16px;font-size:.88rem;font-weight:500;color:var(--g700, #374151);cursor:pointer;transition:border-color .15s,color .15s}.rsp-btn-ghost:hover:not(:disabled){border-color:var(--blue, #2563a8);color:var(--blue, #2563a8)}.rsp-btn-ghost:disabled{opacity:.5;cursor:not-allowed}.rsp-regen-btn{background:none;border:1.5px solid var(--g300, #d1d5db);border-radius:6px;padding:5px 12px;font-size:.82rem;font-weight:500;color:var(--g600, #4b5563);cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.rsp-regen-btn:hover{border-color:var(--blue, #2563a8);color:var(--blue, #2563a8)}.rsp-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:12px;font-size:.78rem;font-weight:600;white-space:nowrap}.rsp-chip--done{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.rsp-chip--error{background:#fee2e2;color:#dc2626}.rsp-chip--generating{background:var(--blue-light, #e8f0fb);color:var(--blue, #2563a8)}.rsp-chip--pending{background:var(--g100, #f3f4f6);color:var(--g500, #6b7280)}.rsp-pathway-row--pending{border-style:dashed;opacity:.85}.rsp-add-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:10px 14px;font-size:.84rem;color:#b91c1c}.rsp-idle{background:#fff;border-radius:12px;border:1.5px solid var(--g200, #e5e7eb);padding:56px 40px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.rsp-idle-icon{font-size:2.5rem;line-height:1}.rsp-idle-title{font-size:1.2rem;font-weight:700;color:var(--navy, #1a3a5c);margin:0}.rsp-idle-desc{font-size:.92rem;color:var(--g600, #4b5563);max-width:440px;line-height:1.55;margin:0}.rsp-generating{background:#fff;border-radius:12px;border:1.5px solid var(--blue-light, #e8f0fb);padding:32px;display:flex;flex-direction:column;gap:20px}.rsp-gen-header{display:flex;align-items:center;gap:10px}.rsp-gen-label{display:flex;align-items:center;font-size:1rem;font-weight:600;color:var(--navy, #1a3a5c)}.rsp-pathway-list{display:flex;flex-direction:column;gap:8px}.rsp-pathway-gen-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px;background:var(--blue-pale, #f0f5ff)}.rsp-pathway-num{font-size:.88rem;font-weight:600;color:var(--navy, #1a3a5c);display:flex;align-items:center;gap:6px}.rsp-pathway-code{font-weight:400;color:var(--g500, #6b7280)}.rsp-gen-partial{font-size:.85rem;color:var(--g500, #6b7280);margin:0;font-style:italic}.rsp-error-center{background:#fff;border-radius:12px;border:1.5px solid #fca5a5;padding:56px 40px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.rsp-error-icon{font-size:2.5rem}.rsp-error-title{font-size:1.2rem;font-weight:700;color:#991b1b;margin:0}.rsp-error-desc{font-size:.9rem;color:var(--g600, #4b5563);max-width:460px;line-height:1.55;margin:0}.rsp-error-box{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:12px 16px;text-align:left;font-size:.82rem;color:#b91c1c;max-width:500px;width:100%;line-height:1.6}.rsp-pathway-table{display:flex;flex-direction:column;gap:6px}.rsp-pathway-row{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border:1.5px solid var(--g200, #e5e7eb);border-radius:8px}.rsp-pathway-date{font-size:.82rem;color:var(--g400, #9ca3af)}.rsp-pathway-err-msg{font-size:.82rem;color:#b91c1c;flex:1}.rsp-regen-btn--labeled{margin-left:auto}.rsp-doc-area{display:flex;flex-direction:column;gap:12px}.rsp-doc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.rsp-doc-status{display:flex;align-items:center;gap:6px;font-size:.83rem;color:var(--g500, #6b7280)}.rsp-doc-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success, #16a34a);flex-shrink:0}.rsp-doc{background:#fff;border-radius:12px;border:1.5px solid var(--g200, #e5e7eb);padding:40px 48px;color:var(--g800, #1f2937);line-height:1.7;font-size:.93rem}.rsp-doc h1{font-size:1.5rem;font-weight:700;color:var(--navy, #1a3a5c);margin:0 0 4px}.rsp-doc h2{font-size:1.2rem;font-weight:700;color:var(--navy, #1a3a5c);margin:32px 0 12px;padding-top:16px;border-top:1.5px solid var(--g100, #f3f4f6)}.rsp-doc h2:first-child{border-top:none;margin-top:0}.rsp-doc h3{font-size:1rem;font-weight:600;color:var(--g800, #1f2937);margin:20px 0 8px}.rsp-doc p{margin:0 0 12px}.rsp-doc ul,.rsp-doc ol{padding-left:24px;margin:8px 0 12px}.rsp-doc li{margin-bottom:4px}.rsp-doc table{width:100%;border-collapse:collapse;font-size:.88rem;margin:12px 0}.rsp-doc th{background:var(--blue-pale, #f0f5ff);color:var(--navy, #1a3a5c);font-weight:600;text-align:left;padding:8px 12px;border:1px solid var(--g200, #e5e7eb)}.rsp-doc td{padding:8px 12px;border:1px solid var(--g200, #e5e7eb);color:var(--g700, #374151)}.rsp-doc tr:nth-child(2n) td{background:var(--blue-pale, #f0f5ff)}.rsp-doc hr{border:none;border-top:1.5px solid var(--g100, #f3f4f6);margin:24px 0}.rsp-doc strong{color:var(--g800, #1f2937)}.rsp-doc code{background:var(--g100, #f3f4f6);border-radius:4px;padding:1px 5px;font-size:.85em}.rsp-doc blockquote{border-left:3px solid var(--blue-light, #e8f0fb);margin:0;padding:4px 16px;color:var(--g500, #6b7280);font-style:italic}@media(max-width:640px){.rsp-doc{padding:24px 20px}.rsp-idle{padding:40px 24px}.rsp-header{flex-direction:column}}.intake-root{display:flex;flex-direction:column;min-height:100vh;background:var(--g50, #f8fafc)}.intake-body{display:flex;flex:1;overflow:hidden}.intake-rail{width:220px;flex-shrink:0;background:#fff;border-right:1px solid var(--g200, #e2e8f0);padding:24px 0;display:flex;flex-direction:column;gap:2px}.intake-rail-title{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g400, #94a3b8);padding:0 18px 12px}.intake-rail-item{display:flex;align-items:center;gap:10px;padding:9px 18px;font-size:.83rem;font-weight:500;color:var(--g600, #475569);background:none;border:none;cursor:pointer;text-align:left;border-radius:0;transition:background .1s,color .1s}.intake-rail-item:hover{background:var(--g50, #f8fafc)}.intake-rail-item.active{background:var(--blue-light, #eff6ff);color:var(--navy, #1e3a5f);font-weight:600}.intake-rail-legend{margin-top:auto;padding:16px 18px 0;border-top:1px solid var(--g100, #f1f5f9);display:flex;flex-direction:column;gap:6px}.intake-rail-legend-row{display:flex;align-items:center;gap:8px;font-size:.72rem;color:var(--g400, #94a3b8)}.intake-save-status{padding:10px 18px 0;font-size:.72rem;font-weight:600}.intake-save-status--saving{color:var(--g400, #94a3b8)}.intake-save-status--saved{color:#22c55e}.intake-save-status--error{color:#ef4444}.intake-loading{padding:40px 0;color:var(--g400, #94a3b8);font-size:.85rem}.intake-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.intake-dot--empty{background:var(--g200, #e2e8f0)}.intake-dot--partial{background:#f59e0b}.intake-dot--complete{background:#22c55e}.intake-content{flex:1;overflow-y:auto;padding:32px 40px;max-width:780px}.intake-content-header{margin-bottom:28px}.intake-content-title{font-size:1.25rem;font-weight:700;color:var(--navy, #1e3a5f);margin:0}.intake-questionnaire{display:flex;flex-direction:column;gap:28px}.intake-q{display:flex;flex-direction:column;gap:6px}.intake-q-label{font-size:.88rem;font-weight:600;color:var(--g800, #1e293b)}.intake-q-req{color:#ef4444;margin-left:3px}.intake-q-hint{font-size:.78rem;color:var(--g400, #94a3b8);line-height:1.4}.intake-input,.intake-textarea{border:1px solid var(--g200, #e2e8f0);border-radius:6px;padding:8px 12px;font-size:.85rem;color:var(--g800, #1e293b);background:#fff;transition:border-color .12s;resize:vertical;font-family:inherit}.intake-input:focus,.intake-textarea:focus{outline:none;border-color:var(--blue-mid, #3b82f6)}.intake-input,.intake-textarea{width:100%;box-sizing:border-box}.intake-single{display:flex;flex-wrap:wrap;gap:6px}.intake-opt{padding:6px 14px;border-radius:99px;border:1px solid var(--g200, #e2e8f0);background:#fff;font-size:.8rem;font-weight:500;color:var(--g600, #475569);cursor:pointer;transition:all .1s}.intake-opt:hover{border-color:var(--blue-mid, #3b82f6);color:var(--navy, #1e3a5f)}.intake-opt.selected{background:var(--navy, #1e3a5f);border-color:var(--navy, #1e3a5f);color:#fff}.intake-multi{display:flex;flex-direction:column;gap:8px}.intake-check{display:flex;align-items:center;gap:8px;font-size:.83rem;color:var(--g700, #334155);cursor:pointer}.intake-check input[type=checkbox]{cursor:pointer;accent-color:var(--navy, #1e3a5f)}.intake-bubble-section{display:flex;flex-direction:column;gap:16px}.intake-bubble-toolbar{display:flex;justify-content:flex-end}.intake-add-btn{padding:7px 16px;border-radius:6px;border:1px dashed var(--g300, #cbd5e1);background:#fff;font-size:.82rem;font-weight:600;color:var(--g600, #475569);cursor:pointer;transition:all .12s}.intake-add-btn:hover{border-color:var(--blue-mid, #3b82f6);color:var(--navy, #1e3a5f);background:var(--blue-light, #eff6ff)}.intake-bubble-empty{padding:40px 24px;text-align:center;color:var(--g400, #94a3b8);font-size:.85rem;border:1px dashed var(--g200, #e2e8f0);border-radius:8px;background:#fff}.intake-bubble{background:#fff;border:1px solid var(--g200, #e2e8f0);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.intake-bubble-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--g100, #f1f5f9);background:var(--g50, #f8fafc)}.intake-bubble-label{flex:1;border:none;background:transparent;font-size:.82rem;font-weight:600;color:var(--g600, #475569);outline:none}.intake-bubble-label::placeholder{font-weight:400;color:var(--g300, #cbd5e1)}.intake-bubble-remove{background:none;border:none;cursor:pointer;color:var(--g300, #cbd5e1);font-size:1.1rem;line-height:1;padding:0 2px;flex-shrink:0;transition:color .1s}.intake-bubble-remove:hover{color:#ef4444}.intake-bubble-content{display:block;width:100%;box-sizing:border-box;padding:12px;border:none;font-size:.83rem;color:var(--g700, #334155);line-height:1.55;resize:vertical;font-family:inherit;background:#fff;min-height:120px}.intake-bubble-content:focus{outline:none}.intake-bubble-content::placeholder{color:var(--g300, #cbd5e1)}.dc-root{min-height:100vh;display:flex;flex-direction:column;background:var(--g50)}.dc-body{flex:1;display:flex;justify-content:center;padding:48px 24px 80px}.dc-content{width:100%;max-width:700px}.dc-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:6px}.dc-sub{font-size:.88rem;color:var(--g500);line-height:1.55;margin-bottom:20px}.dc-progress-track{background:var(--g200);border-radius:99px;height:6px;margin-bottom:8px;overflow:hidden}.dc-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.dc-progress-stats{font-size:.78rem;color:var(--g500);display:flex;align-items:center;gap:10px;margin-bottom:32px}.dc-progress-num{font-weight:700;color:var(--g700)}.dc-progress-sep{color:var(--g300)}.dc-list{position:relative;display:flex;flex-direction:column}.dc-list:before{content:"";position:absolute;left:17px;top:26px;height:calc(100% - 290px);width:2px;background:var(--g200);border-radius:2px;z-index:0}.dc-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:8px;position:relative;z-index:1;transition:box-shadow .12s,border-color .12s}.dc-card--clickable{cursor:pointer}.dc-card--clickable:hover{border-color:var(--g300);box-shadow:0 2px 10px #00000012}.dc-card--locked{opacity:.5}.dc-card--auto{border:1px dashed var(--g300);background:var(--g50)}.dc-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;flex-shrink:0;position:relative;z-index:2}.dc-circle--done{background:var(--success-bg);color:var(--success)}.dc-circle--next{background:var(--blue-light);color:var(--blue)}.dc-circle--locked{background:var(--g100);color:var(--g400);border:1px solid var(--g200)}.dc-doc-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;background:#ccfbf1;position:relative;z-index:2}.dc-doc-icon--auto{background:var(--purple-bg, #ede9fe);font-size:.9rem;font-weight:800;color:#7c3aed}.dc-card-body{flex:1;min-width:0}.dc-card-top{display:flex;align-items:center;gap:8px;margin-bottom:2px;flex-wrap:wrap}.dc-card-title{font-size:.92rem;font-weight:700;color:var(--g800)}.dc-badge{font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}.dc-badge--done{background:var(--success-bg);color:var(--success)}.dc-badge--next{background:var(--blue-light);color:var(--blue)}.dc-badge--locked{background:var(--g100);color:var(--g500)}.dc-badge--auto{background:#ede9fe;color:#7c3aed}.dc-badge--ready{background:#ccfbf1;color:#0d9488}.dc-card-desc{font-size:.8rem;color:var(--g500);line-height:1.45}.dc-card-meta{font-size:.72rem;color:var(--g400);margin-top:3px}.dc-card-requires{font-size:.72rem;color:var(--g400);margin-top:3px;font-style:italic}.dc-card-from{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:5px;font-size:.72rem;color:var(--g400)}.dc-from-chip{background:var(--blue-light);color:var(--blue);border-radius:4px;padding:1px 7px;font-size:.68rem;font-weight:600}.dc-card-action{flex-shrink:0}.dc-btn-open{padding:7px 16px;border-radius:var(--r);font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;white-space:nowrap}.dc-btn-open:hover{background:#122840}.dc-btn-generate{padding:7px 16px;border-radius:var(--r);font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid #0d9488;background:#0d9488;color:#fff;white-space:nowrap}.dc-btn-generate:hover{background:#0f766e}.dc-btn-disabled{padding:7px 14px;border-radius:var(--r);font-size:.82rem;font-weight:600;border:1px solid var(--g200);background:#fff;color:var(--g400);white-space:nowrap;cursor:not-allowed}.dc-transition{display:flex;align-items:center;gap:10px;margin:4px 0 14px;position:relative;z-index:1}.dc-transition-line{flex:1;height:1px;background:var(--g200)}.dc-transition-label{font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--g400);white-space:nowrap}.iup-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.iup-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.iup-content{width:100%;max-width:860px;display:flex;flex-direction:column;gap:24px}.iup-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.iup-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.iup-breadcrumb-link:hover{color:var(--navy)}.iup-breadcrumb-sep{color:var(--g400)}.iup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.iup-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.iup-sub{font-size:.88rem;color:var(--g500);line-height:1.5}.iup-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .12s,opacity .12s}.iup-btn-ai:hover:not(:disabled){background:#122840}.iup-btn-ai:disabled{opacity:.65;cursor:not-allowed}.iup-btn-ai.generating{background:var(--blue)}.iup-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.iup-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.iup-progress-num{font-weight:700;color:var(--g700)}.iup-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.iup-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.iup-progress-dots{display:flex;gap:5px}.iup-dot{width:10px;height:10px;border-radius:50%;cursor:default}.iup-dot--approved{background:var(--success)}.iup-dot--draft{background:var(--blue)}.iup-dot--edited{background:#b45309}.iup-dot--empty{background:var(--g200);border:1px solid var(--g300)}.iup-fields{display:flex;flex-direction:column;gap:12px}.iup-card{background:#fff;border:1px solid var(--g200);border-left-width:4px;border-radius:var(--r-lg);padding:20px 24px;transition:box-shadow .12s}.iup-card:hover{box-shadow:0 2px 10px #0000000f}.iup-card--approved{border-left-color:var(--success)}.iup-card--draft{border-left-color:var(--blue)}.iup-card--edited{border-left-color:#b45309}.iup-card--empty{border-left-color:var(--g200)}.iup-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.iup-card-title{font-size:.95rem;font-weight:700;color:var(--g800)}.iup-badge{font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap;flex-shrink:0}.iup-badge--approved{background:var(--success-bg);color:var(--success)}.iup-badge--draft{background:var(--blue-light);color:var(--blue)}.iup-badge--edited{background:#fef3c7;color:#b45309}.iup-badge--empty{background:var(--g100);color:var(--g500)}.iup-card-content{font-size:.85rem;color:var(--g700);line-height:1.65;margin-bottom:14px}.iup-card-content.empty{color:var(--g400);font-style:italic}.iup-textarea{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:10px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:100px;margin-bottom:12px;font-family:inherit;outline:none}.iup-textarea:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px var(--blue-light)}.iup-card-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px}.iup-card-meta{font-size:.72rem;color:var(--g400);flex:1}.iup-card-actions{display:flex;gap:8px;align-items:center}.iup-btn-sm{padding:5px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s,border-color .1s}.iup-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.iup-btn-approve{padding:5px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.iup-btn-approve:hover{background:#bbf7d0}.iup-btn-save{padding:5px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.iup-btn-save:hover{background:#122840}.iup-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px}.iup-btn-revoke:hover{color:var(--g600)}.iup-approved-banner{background:var(--success-bg);border:1px solid #86efac;border-radius:var(--r-lg);padding:16px 20px;display:flex;align-items:center;gap:16px}.iup-approved-body{flex:1}.iup-approved-title{font-size:.9rem;font-weight:700;color:var(--success);margin-bottom:2px}.iup-approved-sub{font-size:.8rem;color:#15803d}.iup-btn-mark-approved{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:1px solid var(--success);background:var(--success);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .1s}.iup-btn-mark-approved:hover{background:#15803d}.iup-loading{padding:32px 0;text-align:center;color:var(--text-muted, #64748b);font-size:14px}.iup-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:13px}.un-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.un-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.un-content{width:100%;max-width:900px;display:flex;flex-direction:column;gap:20px}.un-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.un-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.un-breadcrumb-link:hover{color:var(--navy)}.un-breadcrumb-sep{color:var(--g400)}.un-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.un-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.un-sub{font-size:.88rem;color:var(--g500);line-height:1.5}.un-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.un-btn-download{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.un-btn-download:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.un-btn-download:disabled{opacity:.6;cursor:not-allowed}.un-btn-regen{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s}.un-btn-regen:hover{background:var(--g50);border-color:var(--g300)}.un-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .12s,opacity .12s}.un-btn-ai:hover:not(:disabled){background:#122840}.un-btn-ai:disabled{opacity:.65;cursor:not-allowed}.un-btn-ai.generating{background:var(--blue)}.un-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.un-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.un-progress-num{font-weight:700;color:var(--g700)}.un-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.un-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.un-table{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.un-table-head{display:grid;grid-template-columns:36px 72px 1fr 160px 96px;background:var(--g50);border-bottom:1px solid var(--g200);padding:8px 0}.un-col-label{font-size:.72rem;font-weight:700;color:var(--g500);letter-spacing:.06em;text-transform:uppercase;padding:0 12px}.un-row{display:grid;grid-template-columns:36px 72px 1fr 160px 96px;border-bottom:1px solid var(--g200);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.un-row:last-child{border-bottom:none}.un-row:hover{background:var(--blue-pale)}.un-row--dragging{opacity:.3}.un-drop-line{height:2px;background:var(--blue);border-radius:0}.un-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--g300);cursor:grab;padding:0 8px;transition:color .1s}.un-drag-handle:hover{color:var(--g500)}.un-drag-handle:active{cursor:grabbing}.un-cell-id{padding:14px 12px;font-size:.75rem;font-family:ui-monospace,monospace;color:var(--g500);display:flex;align-items:flex-start}.un-cell-desc{padding:12px;font-size:.82rem;color:var(--g800);line-height:1.55;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.un-cell-desc--empty{color:var(--g400);font-style:italic}.un-cell-ctx{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5}.un-cell-status{padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.un-row-hint{color:var(--g300);font-size:.8rem;opacity:0;transition:opacity .1s;flex-shrink:0}.un-row:hover .un-row-hint{opacity:1}.un-badge{font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}.un-badge--approved{background:var(--success-bg);color:var(--success)}.un-badge--draft{background:var(--blue-light);color:var(--blue)}.un-badge--edited{background:#fef3c7;color:#b45309}.un-badge--empty{background:var(--g100);color:var(--g500)}.un-add-btn{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.un-add-btn:hover{color:var(--navy)}.un-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000038;z-index:100}.un-drawer{position:fixed;right:0;top:0;height:100vh;width:var(--dhf-drawer-w);background:#fff;border-left:1px solid var(--g200);transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000012}.un-drawer.open{transform:translate(0)}.un-drawer-header{padding:16px 20px;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.un-drawer-id{font-size:.75rem;color:var(--g400);font-family:ui-monospace,monospace;margin-bottom:2px}.un-drawer-title{font-size:.95rem;font-weight:700;color:var(--navy)}.un-close-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:5px 7px;border-radius:var(--r);display:flex;align-items:center;font-size:1rem;line-height:1;transition:color .1s,background .1s}.un-close-btn:hover{color:var(--g700);background:var(--g100)}.un-drawer-head-actions{display:flex;align-items:center;gap:6px}.un-drawer-nav{display:flex;align-items:center;gap:1px}.un-nav-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:1px 6px;border-radius:var(--r);display:flex;align-items:center;font-size:1.25rem;line-height:1;transition:color .1s,background .1s}.un-nav-btn:hover:not(:disabled){color:var(--g700);background:var(--g100)}.un-nav-btn:disabled{opacity:.3;cursor:default}.un-nav-count{font-size:.72rem;color:var(--g400);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.un-drawer-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.un-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:6px}.un-textarea{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:10px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:80px;font-family:inherit;outline:none;box-sizing:border-box}.un-textarea:focus{box-shadow:0 0 0 3px var(--blue-light)}.un-drawer-footer{padding:14px 20px;border-top:1px solid var(--g200);display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0}.un-btn-sm{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s}.un-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.un-btn-save{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.un-btn-save:hover{background:#122840}.un-btn-approve{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.un-btn-approve:hover{background:#bbf7d0}.un-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.un-btn-revoke:hover{color:var(--g600)}.un-btn-delete{font-size:.75rem;color:#b91c1c;background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.un-btn-delete:hover{color:#7f1d1d}.un-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.un-confirm{background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000002e;width:100%;max-width:380px;padding:22px}.un-confirm-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}.un-confirm-msg{font-size:.85rem;color:var(--g600);line-height:1.5}.un-confirm-msg strong{color:var(--g700);font-family:ui-monospace,monospace}.un-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.un-confirm-delete{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #b91c1c;background:#b91c1c;color:#fff;transition:background .1s}.un-confirm-delete:hover{background:#7f1d1d}.un-loading{padding:32px 0;text-align:center;color:var(--g500);font-size:.9rem}.un-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.un-empty{padding:28px 20px;text-align:center;color:var(--g500);font-size:.85rem;line-height:1.5}.un-batchlist{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.un-batchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.un-batchlist-title{font-size:.82rem;font-weight:700;color:var(--g700)}.un-batchlist-timer{font-size:.78rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.un-batchlist-items{display:flex;flex-direction:column;gap:2px}.un-batch{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem}.un-batch-icon{width:18px;text-align:center;font-weight:700;flex-shrink:0}.un-batch-label{color:var(--g700);font-weight:600;min-width:210px}.un-batch-status{color:var(--g500)}.un-batch--pending{opacity:.6}.un-batch--pending .un-batch-icon{color:var(--g400)}.un-batch--generating .un-batch-icon{color:var(--blue);display:inline-block;animation:un-spin 1s linear infinite}.un-batch--generating .un-batch-status{color:var(--blue)}.un-batch--done .un-batch-icon{color:var(--success)}.un-batch--error .un-batch-icon,.un-batch--error .un-batch-status{color:#b91c1c}.un-batch--idle .un-batch-icon{color:var(--g300)}.un-batch-retry{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.un-batch-retry:hover:not(:disabled){background:#fee2e2}.un-batch-retry:disabled{opacity:.55;cursor:not-allowed}.un-batch-run{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid var(--g200);background:#fff;color:var(--navy);font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.un-batch-run:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.un-batch-run:disabled{opacity:.55;cursor:not-allowed}.un-enumerating{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem;color:var(--blue);font-weight:600}.un-spin{display:inline-block;color:var(--blue);animation:un-spin 1s linear infinite}@keyframes un-spin{to{transform:rotate(360deg)}}.li-section{border:1px solid var(--g200);border-radius:var(--r);overflow:hidden;margin-bottom:12px;background:#fff}.li-section:last-child{margin-bottom:0}.li-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--g50);border-bottom:1px solid var(--g200)}.li-head-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--g500)}.li-head-count{font-size:.68rem;font-weight:700;color:var(--g400)}.li-head-hint{margin-left:auto;font-size:.68rem;color:var(--g400);font-style:italic}.li-row{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-bottom:1px solid var(--g100)}.li-row:last-child{border-bottom:none}.li-id{font-family:ui-monospace,monospace;font-size:.74rem;font-weight:700;color:var(--blue);flex-shrink:0;min-width:62px;padding-top:1px}.li-desc{font-size:.82rem;color:var(--g700);line-height:1.4;flex:1}.li-desc--empty{color:var(--g400);font-style:italic}.li-remove{flex-shrink:0;width:22px;height:22px;border:1px solid var(--g200);border-radius:6px;background:#fff;color:var(--g500);cursor:pointer;font-size:.95rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s,border-color .1s}.li-remove:hover{background:#fef2f2;color:var(--danger);border-color:#fecaca}.li-empty{padding:10px 12px;font-size:.78rem;color:var(--g400)}.li-add-bar{padding:8px 12px}.li-add-btn{width:26px;height:26px;border:1px solid var(--g200);border-radius:6px;background:#fff;color:var(--g500);cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s}.li-add-btn:hover{background:var(--g50);border-color:var(--g300);color:var(--blue)}.li-picker{position:relative}.li-picker-row{display:flex;gap:6px;align-items:center}.li-search{flex:1;font-size:.82rem;padding:7px 10px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);outline:none;box-sizing:border-box;font-family:inherit;color:var(--g800)}.li-btn-sm{padding:6px 12px;border-radius:var(--r);font-size:.78rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600)}.li-btn-sm:hover{background:var(--g50)}.li-list{margin-top:6px;max-height:200px;overflow-y:auto;border:1px solid var(--g200);border-radius:var(--r)}.li-option{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--g100)}.li-option:last-child{border-bottom:none}.li-option:hover{background:var(--blue-pale)}.li-option-id{font-family:ui-monospace,monospace;font-size:.72rem;font-weight:700;color:var(--blue);flex-shrink:0;min-width:62px}.li-option-desc{font-size:.78rem;color:var(--g600);line-height:1.35}.li-list-empty{padding:10px;font-size:.78rem;color:var(--g400);text-align:center}.pha-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.pha-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.pha-content{width:100%;max-width:1200px;display:flex;flex-direction:column;gap:20px}.pha-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.pha-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.pha-breadcrumb-link:hover{color:var(--navy)}.pha-breadcrumb-sep{color:var(--g400)}.pha-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.pha-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.pha-sub{font-size:.88rem;color:var(--g500);line-height:1.5}.pha-header-right{display:flex;gap:10px;align-items:flex-start;flex-shrink:0}.pha-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;transition:background .12s,opacity .12s}.pha-btn-ai:hover:not(:disabled){background:#122840}.pha-btn-ai:disabled{opacity:.65;cursor:not-allowed}.pha-btn-ai.generating{background:var(--blue)}.pha-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.pha-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.pha-progress-num{font-weight:700;color:var(--g700)}.pha-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.pha-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.pha-batchlist{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.pha-batchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pha-batchlist-title{font-size:.82rem;font-weight:700;color:var(--g700)}.pha-batchlist-timer{font-size:.78rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.pha-batchlist-items{display:flex;flex-direction:column;gap:2px}.pha-batch{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem}.pha-batch-icon{width:18px;text-align:center;font-weight:700;flex-shrink:0}.pha-batch-label{color:var(--g700);font-weight:600;min-width:170px}.pha-batch-status{color:var(--g500)}.pha-batch--pending{opacity:.6}.pha-batch--pending .pha-batch-icon{color:var(--g400)}.pha-batch--generating .pha-batch-icon{color:var(--blue);display:inline-block;animation:pha-spin 1s linear infinite}.pha-batch--generating .pha-batch-status{color:var(--blue)}.pha-batch--done .pha-batch-icon{color:var(--success)}.pha-batch--error .pha-batch-icon,.pha-batch--error .pha-batch-status{color:#b91c1c}.pha-batch--idle .pha-batch-icon{color:var(--g300)}.pha-batch-retry{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.pha-batch-retry:hover:not(:disabled){background:#fee2e2}.pha-batch-retry:disabled{opacity:.55;cursor:not-allowed}.pha-batch-run{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid var(--g200);background:#fff;color:var(--navy);font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.pha-batch-run:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.pha-batch-run:disabled{opacity:.55;cursor:not-allowed}.pha-enumerating{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem;color:var(--blue);font-weight:600}.pha-spin{display:inline-block;color:var(--blue);animation:pha-spin 1s linear infinite}@keyframes pha-spin{to{transform:rotate(360deg)}}.pha-tabs{display:flex;gap:0;border-bottom:2px solid var(--g200)}.pha-tab{padding:8px 18px;font-size:.85rem;font-weight:600;cursor:pointer;background:none;border:none;color:var(--g500);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .1s,border-color .1s}.pha-tab:hover{color:var(--navy)}.pha-tab--active{color:var(--navy);border-bottom-color:var(--navy)}.pha-table-wrap{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.pha-table-scroll{overflow-x:auto}.pha-table{width:max-content;min-width:100%;border-collapse:collapse}.pha-col-grip{width:36px;min-width:36px}.pha-col-id{width:80px;min-width:80px;position:sticky;left:36px;background:inherit;z-index:2}.pha-col-hz{width:160px;min-width:140px}.pha-col-seq{width:180px;min-width:150px}.pha-col-sit{width:200px;min-width:160px}.pha-col-src,.pha-col-harm{width:160px;min-width:130px}.pha-col-user{width:120px;min-width:100px}.pha-col-uns{width:100px;min-width:80px}.pha-col-sev,.pha-col-prob{width:80px;min-width:70px}.pha-col-risk{width:90px;min-width:80px}.pha-col-ex{width:180px;min-width:150px}.pha-col-rec{width:200px;min-width:160px}.pha-col-owner{width:130px;min-width:110px}.pha-col-rsev,.pha-col-rprob{width:80px;min-width:70px}.pha-col-rrisk,.pha-col-acc{width:90px;min-width:80px}.pha-col-notes{width:160px;min-width:130px}th.pha-col-grip,td.pha-col-grip{position:sticky;left:0;z-index:3}th.pha-col-id,td.pha-col-id{position:sticky;left:36px;z-index:2}.pha-thead-group th{background:var(--g100);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--g600);padding:5px 10px;border-bottom:1px solid var(--g200);border-right:1px solid var(--g200);text-align:center}.pha-thead-group th:first-child{border-right:none}.pha-thead-cols th{background:var(--g50);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--g500);padding:6px 8px;border-bottom:2px solid var(--g200);white-space:nowrap}.pha-thead-group th.pha-col-grip,.pha-thead-cols th.pha-col-grip{z-index:5;background:var(--g100)}.pha-thead-group th.pha-col-id,.pha-thead-cols th.pha-col-id{z-index:4}.pha-row{cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.pha-row:hover td,.pha-row:hover td.pha-col-grip,.pha-row:hover td.pha-col-id{background:var(--blue-pale)}.pha-row--dragging{opacity:.3}.pha-row td{padding:10px 8px;font-size:.78rem;color:var(--g800);border-bottom:1px solid var(--g200);vertical-align:top;line-height:1.45;background:#fff}.pha-row td.pha-col-grip{background:#fff}.pha-row td.pha-col-id{background:#fff;font-family:ui-monospace,monospace;color:var(--g500);font-size:.72rem}.pha-row:last-child td{border-bottom:none}.pha-drop-row td{padding:0;border:none}.pha-drop-line{height:2px;background:var(--blue)}.pha-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--g300);cursor:grab;padding:0 6px;height:100%;transition:color .1s}.pha-drag-handle:hover{color:var(--g500)}.pha-drag-handle:active{cursor:grabbing}.pha-cell-empty{color:var(--g400);font-style:italic}.pha-cell-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pha-pill{display:inline-block;font-size:.65rem;font-weight:800;padding:2px 8px;border-radius:99px;white-space:nowrap;letter-spacing:.04em}.pha-pill--high{background:#fee2e2;color:#dc2626}.pha-pill--medium{background:#fef3c7;color:#b45309}.pha-pill--low{background:var(--success-bg);color:var(--success)}.pha-pill--na{background:var(--g100);color:var(--g400)}.pha-add-btn{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.pha-add-btn:hover{color:var(--navy)}.pha-badge{font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}.pha-badge--approved{background:var(--success-bg);color:var(--success)}.pha-badge--draft{background:var(--blue-light);color:var(--blue)}.pha-badge--edited{background:#fef3c7;color:#b45309}.pha-badge--empty{background:var(--g100);color:var(--g500)}.pha-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000038;z-index:100}.pha-drawer{position:fixed;right:0;top:0;height:100vh;width:var(--dhf-drawer-w);background:#fff;border-left:1px solid var(--g200);transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000012}.pha-drawer.open{transform:translate(0)}.pha-drawer-header{padding:16px 20px;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.pha-drawer-id{font-size:.75rem;color:var(--g400);font-family:ui-monospace,monospace;margin-bottom:2px}.pha-drawer-title{font-size:.95rem;font-weight:700;color:var(--navy)}.pha-close-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:5px 7px;border-radius:var(--r);display:flex;align-items:center;font-size:1rem;line-height:1;transition:color .1s,background .1s}.pha-close-btn:hover{color:var(--g700);background:var(--g100)}.pha-drawer-head-actions{display:flex;align-items:center;gap:6px}.pha-drawer-nav{display:flex;align-items:center;gap:1px}.pha-nav-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:1px 6px;border-radius:var(--r);display:flex;align-items:center;font-size:1.25rem;line-height:1;transition:color .1s,background .1s}.pha-nav-btn:hover:not(:disabled){color:var(--g700);background:var(--g100)}.pha-nav-btn:disabled{opacity:.3;cursor:default}.pha-nav-count{font-size:.72rem;color:var(--g400);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.pha-drawer-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.pha-section-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--g400);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--g200)}.pha-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:4px}.pha-textarea{width:100%;font-size:.82rem;color:var(--g800);line-height:1.6;padding:8px 10px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:60px;font-family:inherit;outline:none;box-sizing:border-box}.pha-textarea:focus{box-shadow:0 0 0 3px var(--blue-light)}.pha-textarea--auto{resize:none;overflow:hidden;white-space:pre-wrap}.pha-select{width:100%;font-size:.82rem;color:var(--g800);padding:7px 10px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);font-family:inherit;outline:none;cursor:pointer}.pha-select:focus{box-shadow:0 0 0 3px var(--blue-light)}.pha-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pha-field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.pha-risk-display{display:flex;align-items:center;gap:8px;padding:6px 0}.pha-risk-display-label{font-size:.78rem;color:var(--g600)}.pha-drawer-footer{padding:14px 20px;border-top:1px solid var(--g200);display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0}.pha-btn-sm{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s}.pha-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.pha-btn-save{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.pha-btn-save:hover{background:#122840}.pha-btn-approve{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.pha-btn-approve:hover{background:#bbf7d0}.pha-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.pha-btn-revoke:hover{color:var(--g600)}.pha-matrix-wrap{display:flex;flex-direction:column;gap:28px}.pha-matrix-section{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:20px}.pha-matrix-section-title{font-size:.8rem;font-weight:700;color:var(--navy);margin-bottom:14px}.pha-label-list{display:flex;flex-direction:column;gap:8px}.pha-label-item{display:flex;align-items:center;gap:8px}.pha-label-item input{flex:1;font-size:.82rem;padding:6px 10px;border:1.5px solid var(--g200);border-radius:var(--r);font-family:inherit;outline:none;color:var(--g800)}.pha-label-item input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light)}.pha-label-num{font-size:.72rem;font-family:ui-monospace,monospace;color:var(--g400);width:24px;text-align:right;flex-shrink:0}.pha-label-btn-rm{background:none;border:none;cursor:pointer;color:var(--g400);font-size:1rem;line-height:1;padding:2px 4px;border-radius:var(--r);transition:color .1s}.pha-label-btn-rm:hover{color:#dc2626}.pha-label-add{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600;margin-top:4px}.pha-label-add:hover{color:var(--navy)}.pha-grid-wrap{overflow-x:auto}.pha-grid{display:grid;gap:4px;width:max-content}.pha-grid-corner{display:flex;align-items:center;justify-content:center}.pha-grid-row-label{display:flex;align-items:center;font-size:.72rem;font-weight:600;color:var(--g600);padding:4px 8px;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.pha-grid-col-label{display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;color:var(--g600);padding:4px 6px;text-align:center;max-width:90px;line-height:1.3}.pha-grid-cell{width:80px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);font-size:.75rem;font-weight:800;cursor:pointer;transition:opacity .1s,transform .1s;letter-spacing:.04em;-webkit-user-select:none;user-select:none}.pha-grid-cell:hover{opacity:.8;transform:scale(1.04)}.pha-grid-cell--H{background:#fee2e2;color:#dc2626}.pha-grid-cell--M{background:#fef3c7;color:#b45309}.pha-grid-cell--L{background:var(--success-bg);color:var(--success)}.pha-loading{padding:32px 0;text-align:center;color:var(--g500);font-size:.9rem}.pha-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.pha-empty{padding:28px 20px;text-align:center;color:var(--g500);font-size:.85rem;line-height:1.5}.pha-btn-delete{font-size:.75rem;color:#b91c1c;background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.pha-btn-delete:hover{color:#7f1d1d}.pha-derived-ctx{border:1px dashed var(--g200);border-radius:var(--r);padding:10px 12px;background:var(--g50);display:flex;flex-direction:column;gap:6px}.pha-derived-ctx-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--g400)}.pha-derived-ctx-item{display:flex;gap:8px;font-size:.8rem;line-height:1.4}.pha-derived-ctx-id{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--g500);flex-shrink:0;padding-top:1px}.pha-derived-ctx-text{color:var(--g600)}.pha-btn-regen{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s}.pha-btn-regen:hover{background:var(--g50);border-color:var(--g300)}.pha-btn-download{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.pha-btn-download:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.pha-btn-download:disabled{opacity:.6;cursor:not-allowed}.pha-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.pha-confirm{background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000002e;width:100%;max-width:380px;padding:22px}.pha-confirm-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}.pha-confirm-msg{font-size:.85rem;color:var(--g600);line-height:1.5}.pha-confirm-msg strong{color:var(--g700);font-family:ui-monospace,monospace}.pha-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.pha-confirm-delete{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #b91c1c;background:#b91c1c;color:#fff;transition:background .1s}.pha-confirm-delete:hover{background:#7f1d1d}.pha-derived-ctx-unknown{color:#b45309;font-style:italic}.pha-harms-wrap{display:flex;flex-direction:column;gap:16px;max-width:760px}.pha-harms-intro{font-size:.82rem;color:var(--g500);line-height:1.55;background:var(--blue-pale);border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 14px}.pha-inline-link{background:none;border:none;padding:0;color:var(--blue);font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.pha-inline-link:hover{color:var(--navy)}.pha-harms-list{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.pha-harms-head{display:grid;grid-template-columns:1fr 190px 36px;gap:10px;padding:8px 14px;background:var(--g50);border-bottom:1px solid var(--g200);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--g500)}.pha-harms-empty{padding:24px 16px;text-align:center;color:var(--g500);font-size:.84rem;line-height:1.5}.pha-harm-row{display:grid;grid-template-columns:1fr 190px 36px;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--g200)}.pha-harm-row:last-child{border-bottom:none}.pha-harm-desc{width:100%;font-size:.84rem;color:var(--g800);padding:7px 10px;border:1.5px solid transparent;border-radius:var(--r);background:transparent;font-family:inherit;outline:none;box-sizing:border-box}.pha-harm-desc:hover{border-color:var(--g200)}.pha-harm-desc:focus{border-color:var(--blue);background:var(--blue-pale);box-shadow:0 0 0 3px var(--blue-light)}.pha-harm-sev{width:100%}.pha-harm-rm{background:none;border:none;cursor:pointer;color:var(--g400);font-size:1.1rem;line-height:1;padding:4px 6px;border-radius:var(--r)}.pha-harm-rm:hover{color:#b91c1c;background:#fef2f2}.pha-newharm{display:flex;gap:8px;align-items:center}.pha-newharm--drawer{margin-top:8px}.pha-newharm-input{flex:1;font-size:.84rem;color:var(--g800);padding:8px 10px;border:1.5px solid var(--g200);border-radius:var(--r);background:#fff;font-family:inherit;outline:none;box-sizing:border-box}.pha-newharm-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light)}.pha-newharm-add{padding:8px 16px;border-radius:var(--r);font-size:.82rem;font-weight:700;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;white-space:nowrap}.pha-newharm-add:hover:not(:disabled){background:#122840}.pha-newharm-add:disabled{opacity:.5;cursor:not-allowed}.pha-sev-derived{font-size:.95rem;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}.sdi-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.sdi-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.sdi-content{width:100%;max-width:900px;display:flex;flex-direction:column;gap:20px}.sdi-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.sdi-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.sdi-breadcrumb-link:hover{color:var(--navy)}.sdi-breadcrumb-sep{color:var(--g400)}.sdi-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sdi-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.sdi-sub{font-size:.88rem;color:var(--g500);line-height:1.5}.sdi-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.sdi-btn-download{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.sdi-btn-download:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.sdi-btn-download:disabled{opacity:.6;cursor:not-allowed}.sdi-btn-regen{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s}.sdi-btn-regen:hover{background:var(--g50);border-color:var(--g300)}.sdi-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .12s,opacity .12s}.sdi-btn-ai:hover:not(:disabled){background:#122840}.sdi-btn-ai:disabled{opacity:.65;cursor:not-allowed}.sdi-btn-ai.generating{background:var(--blue)}.sdi-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.sdi-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.sdi-progress-num{font-weight:700;color:var(--g700)}.sdi-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.sdi-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.sdi-table{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.sdi-table-head{display:grid;grid-template-columns:36px 72px 1.6fr 1.4fr 120px 96px;background:var(--g50);border-bottom:1px solid var(--g200);padding:8px 0}.sdi-col-label{font-size:.72rem;font-weight:700;color:var(--g500);letter-spacing:.06em;text-transform:uppercase;padding:0 12px}.sdi-row{display:grid;grid-template-columns:36px 72px 1.6fr 1.4fr 120px 96px;border-bottom:1px solid var(--g200);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.sdi-row:last-child{border-bottom:none}.sdi-row:hover{background:var(--blue-pale)}.sdi-row--dragging{opacity:.3}.sdi-drop-line{height:2px;background:var(--blue);border-radius:0}.sdi-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--g300);cursor:grab;padding:0 8px;transition:color .1s}.sdi-drag-handle:hover{color:var(--g500)}.sdi-drag-handle:active{cursor:grabbing}.sdi-cell-id{padding:14px 12px;font-size:.75rem;font-family:ui-monospace,monospace;color:var(--g500);display:flex;align-items:flex-start}.sdi-cell-req{padding:12px;font-size:.82rem;color:var(--g800);line-height:1.55;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sdi-cell-req--empty{color:var(--g400);font-style:italic}.sdi-cell-acc{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sdi-cell-cat{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5}.sdi-cell-status{padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.sdi-row-hint{color:var(--g300);font-size:.8rem;opacity:0;transition:opacity .1s;flex-shrink:0}.sdi-row:hover .sdi-row-hint{opacity:1}.sdi-badge{font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}.sdi-badge--approved{background:var(--success-bg);color:var(--success)}.sdi-badge--draft{background:var(--blue-light);color:var(--blue)}.sdi-badge--edited{background:#fef3c7;color:#b45309}.sdi-badge--empty{background:var(--g100);color:var(--g500)}.sdi-add-btn{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.sdi-add-btn:hover{color:var(--navy)}.sdi-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000038;z-index:100}.sdi-drawer{position:fixed;right:0;top:0;height:100vh;width:var(--dhf-drawer-w);background:#fff;border-left:1px solid var(--g200);transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000012}.sdi-drawer.open{transform:translate(0)}.sdi-drawer-header{padding:16px 20px;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.sdi-drawer-id{font-size:.75rem;color:var(--g400);font-family:ui-monospace,monospace;margin-bottom:2px}.sdi-drawer-title{font-size:.95rem;font-weight:700;color:var(--navy)}.sdi-close-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:5px 7px;border-radius:var(--r);display:flex;align-items:center;font-size:1rem;line-height:1;transition:color .1s,background .1s}.sdi-close-btn:hover{color:var(--g700);background:var(--g100)}.sdi-drawer-head-actions{display:flex;align-items:center;gap:6px}.sdi-drawer-nav{display:flex;align-items:center;gap:1px}.sdi-nav-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:1px 6px;border-radius:var(--r);display:flex;align-items:center;font-size:1.25rem;line-height:1;transition:color .1s,background .1s}.sdi-nav-btn:hover:not(:disabled){color:var(--g700);background:var(--g100)}.sdi-nav-btn:disabled{opacity:.3;cursor:default}.sdi-nav-count{font-size:.72rem;color:var(--g400);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.sdi-drawer-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.sdi-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:6px}.sdi-textarea{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:10px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:80px;font-family:inherit;outline:none;box-sizing:border-box}.sdi-textarea:focus{box-shadow:0 0 0 3px var(--blue-light)}.sdi-select{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:9px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer}.sdi-select:focus{box-shadow:0 0 0 3px var(--blue-light)}.sdi-chip{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 11px;border-radius:99px;background:var(--g100);color:var(--g600)}.sdi-linked{font-size:.82rem;color:var(--g600);line-height:1.5;font-family:ui-monospace,monospace}.sdi-drawer-footer{padding:14px 20px;border-top:1px solid var(--g200);display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0}.sdi-btn-sm{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s}.sdi-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.sdi-btn-save{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.sdi-btn-save:hover{background:#122840}.sdi-btn-approve{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.sdi-btn-approve:hover{background:#bbf7d0}.sdi-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.sdi-btn-revoke:hover{color:var(--g600)}.sdi-btn-delete{font-size:.75rem;color:#b91c1c;background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.sdi-btn-delete:hover{color:#7f1d1d}.sdi-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.sdi-confirm{background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000002e;width:100%;max-width:380px;padding:22px}.sdi-confirm-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}.sdi-confirm-msg{font-size:.85rem;color:var(--g600);line-height:1.5}.sdi-confirm-msg strong{color:var(--g700);font-family:ui-monospace,monospace}.sdi-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.sdi-confirm-delete{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #b91c1c;background:#b91c1c;color:#fff;transition:background .1s}.sdi-confirm-delete:hover{background:#7f1d1d}.sdi-loading{padding:32px 0;text-align:center;color:var(--g500);font-size:.9rem}.sdi-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.sdi-empty{padding:28px 20px;text-align:center;color:var(--g500);font-size:.85rem;line-height:1.5}.sdi-batchlist{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.sdi-batchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sdi-batchlist-title{font-size:.82rem;font-weight:700;color:var(--g700)}.sdi-batchlist-timer{font-size:.78rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.sdi-batchlist-items{display:flex;flex-direction:column;gap:2px}.sdi-batch{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem}.sdi-batch-icon{width:18px;text-align:center;font-weight:700;flex-shrink:0}.sdi-batch-label{color:var(--g700);font-weight:600;min-width:210px}.sdi-batch-status{color:var(--g500)}.sdi-batch--pending{opacity:.6}.sdi-batch--pending .sdi-batch-icon{color:var(--g400)}.sdi-batch--generating .sdi-batch-icon{color:var(--blue);display:inline-block;animation:sdi-spin 1s linear infinite}.sdi-batch--generating .sdi-batch-status{color:var(--blue)}.sdi-batch--done .sdi-batch-icon{color:var(--success)}.sdi-batch--error .sdi-batch-icon,.sdi-batch--error .sdi-batch-status{color:#b91c1c}.sdi-batch--idle .sdi-batch-icon{color:var(--g300)}.sdi-batch-retry{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.sdi-batch-retry:hover:not(:disabled){background:#fee2e2}.sdi-batch-retry:disabled{opacity:.55;cursor:not-allowed}.sdi-batch-run{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid var(--g200);background:#fff;color:var(--navy);font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.sdi-batch-run:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.sdi-batch-run:disabled{opacity:.55;cursor:not-allowed}.sdi-enumerating{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem;color:var(--blue);font-weight:600}.sdi-spin{display:inline-block;color:var(--blue);animation:sdi-spin 1s linear infinite}.sa-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.sa-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.sa-content{width:100%;max-width:900px;display:flex;flex-direction:column;gap:20px}.sa-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.sa-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.sa-breadcrumb-link:hover{color:var(--navy)}.sa-breadcrumb-sep{color:var(--g400)}.sa-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sa-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.sa-sub{font-size:.88rem;color:var(--g500);line-height:1.5}.sa-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.sa-btn-download{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.sa-btn-download:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.sa-btn-download:disabled{opacity:.6;cursor:not-allowed}.sa-btn-regen{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s}.sa-btn-regen:hover{background:var(--g50);border-color:var(--g300)}.sa-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .12s,opacity .12s}.sa-btn-ai:hover:not(:disabled){background:#122840}.sa-btn-ai:disabled{opacity:.65;cursor:not-allowed}.sa-btn-ai.generating{background:var(--blue)}.sa-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.sa-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.sa-progress-num{font-weight:700;color:var(--g700)}.sa-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.sa-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.sa-table{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.sa-table-head{display:grid;grid-template-columns:36px 72px 1.6fr 1.4fr 120px 96px;background:var(--g50);border-bottom:1px solid var(--g200);padding:8px 0}.sa-col-label{font-size:.72rem;font-weight:700;color:var(--g500);letter-spacing:.06em;text-transform:uppercase;padding:0 12px}.sa-row{display:grid;grid-template-columns:36px 72px 1.6fr 1.4fr 120px 96px;border-bottom:1px solid var(--g200);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.sa-row:last-child{border-bottom:none}.sa-row:hover{background:var(--blue-pale)}.sa-row--dragging{opacity:.3}.sa-drop-line{height:2px;background:var(--blue);border-radius:0}.sa-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--g300);cursor:grab;padding:0 8px;transition:color .1s}.sa-drag-handle:hover{color:var(--g500)}.sa-drag-handle:active{cursor:grabbing}.sa-cell-id{padding:14px 12px;font-size:.75rem;font-family:ui-monospace,monospace;color:var(--g500);display:flex;align-items:flex-start}.sa-cell-req{padding:12px;font-size:.82rem;color:var(--g800);line-height:1.55;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sa-cell-req--empty{color:var(--g400);font-style:italic}.sa-cell-acc{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sa-cell-cat{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5}.sa-cell-status{padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.sa-row-hint{color:var(--g300);font-size:.8rem;opacity:0;transition:opacity .1s;flex-shrink:0}.sa-row:hover .sa-row-hint{opacity:1}.sa-badge{font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}.sa-badge--approved{background:var(--success-bg);color:var(--success)}.sa-badge--draft{background:var(--blue-light);color:var(--blue)}.sa-badge--edited{background:#fef3c7;color:#b45309}.sa-badge--empty{background:var(--g100);color:var(--g500)}.sa-add-btn{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.sa-add-btn:hover{color:var(--navy)}.sa-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000038;z-index:100}.sa-drawer{position:fixed;right:0;top:0;height:100vh;width:var(--dhf-drawer-w);background:#fff;border-left:1px solid var(--g200);transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000012}.sa-drawer.open{transform:translate(0)}.sa-drawer-header{padding:16px 20px;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.sa-drawer-id{font-size:.75rem;color:var(--g400);font-family:ui-monospace,monospace;margin-bottom:2px}.sa-drawer-title{font-size:.95rem;font-weight:700;color:var(--navy)}.sa-close-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:5px 7px;border-radius:var(--r);display:flex;align-items:center;font-size:1rem;line-height:1;transition:color .1s,background .1s}.sa-close-btn:hover{color:var(--g700);background:var(--g100)}.sa-drawer-head-actions{display:flex;align-items:center;gap:6px}.sa-drawer-nav{display:flex;align-items:center;gap:1px}.sa-nav-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:1px 6px;border-radius:var(--r);display:flex;align-items:center;font-size:1.25rem;line-height:1;transition:color .1s,background .1s}.sa-nav-btn:hover:not(:disabled){color:var(--g700);background:var(--g100)}.sa-nav-btn:disabled{opacity:.3;cursor:default}.sa-nav-count{font-size:.72rem;color:var(--g400);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.sa-drawer-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.sa-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:6px}.sa-textarea{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:10px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:80px;font-family:inherit;outline:none;box-sizing:border-box}.sa-textarea:focus{box-shadow:0 0 0 3px var(--blue-light)}.sa-select{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:9px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer}.sa-select:focus{box-shadow:0 0 0 3px var(--blue-light)}.sa-chip{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 11px;border-radius:99px;background:var(--g100);color:var(--g600)}.sa-linked{font-size:.82rem;color:var(--g600);line-height:1.5;font-family:ui-monospace,monospace}.sa-drawer-footer{padding:14px 20px;border-top:1px solid var(--g200);display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0}.sa-btn-sm{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s}.sa-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.sa-btn-save{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.sa-btn-save:hover{background:#122840}.sa-btn-approve{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.sa-btn-approve:hover{background:#bbf7d0}.sa-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.sa-btn-revoke:hover{color:var(--g600)}.sa-btn-delete{font-size:.75rem;color:#b91c1c;background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.sa-btn-delete:hover{color:#7f1d1d}.sa-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.sa-confirm{background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000002e;width:100%;max-width:380px;padding:22px}.sa-confirm-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}.sa-confirm-msg{font-size:.85rem;color:var(--g600);line-height:1.5}.sa-confirm-msg strong{color:var(--g700);font-family:ui-monospace,monospace}.sa-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.sa-confirm-delete{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #b91c1c;background:#b91c1c;color:#fff;transition:background .1s}.sa-confirm-delete:hover{background:#7f1d1d}.sa-loading{padding:32px 0;text-align:center;color:var(--g500);font-size:.9rem}.sa-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.sa-empty{padding:28px 20px;text-align:center;color:var(--g500);font-size:.85rem;line-height:1.5}.sa-batchlist{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.sa-batchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sa-batchlist-title{font-size:.82rem;font-weight:700;color:var(--g700)}.sa-batchlist-timer{font-size:.78rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.sa-batchlist-items{display:flex;flex-direction:column;gap:2px}.sa-batch{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem}.sa-batch-icon{width:18px;text-align:center;font-weight:700;flex-shrink:0}.sa-batch-label{color:var(--g700);font-weight:600;min-width:210px}.sa-batch-status{color:var(--g500)}.sa-batch--pending{opacity:.6}.sa-batch--pending .sa-batch-icon{color:var(--g400)}.sa-batch--generating .sa-batch-icon{color:var(--blue);display:inline-block;animation:sa-spin 1s linear infinite}.sa-batch--generating .sa-batch-status{color:var(--blue)}.sa-batch--done .sa-batch-icon{color:var(--success)}.sa-batch--error .sa-batch-icon,.sa-batch--error .sa-batch-status{color:#b91c1c}.sa-batch--idle .sa-batch-icon{color:var(--g300)}.sa-batch-retry{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.sa-batch-retry:hover:not(:disabled){background:#fee2e2}.sa-batch-retry:disabled{opacity:.55;cursor:not-allowed}.sa-batch-run{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid var(--g200);background:#fff;color:var(--navy);font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.sa-batch-run:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.sa-batch-run:disabled{opacity:.55;cursor:not-allowed}.sa-enumerating{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem;color:var(--blue);font-weight:600}.sa-spin{display:inline-block;color:var(--blue);animation:sa-spin 1s linear infinite}@keyframes sa-spin{to{transform:rotate(360deg)}}.sa-section-title{font-size:.95rem;font-weight:800;color:var(--navy);margin:4px 0 2px}.sa-section{display:flex;flex-direction:column;gap:8px}.sa-table-head--modules,.sa-row--modules{grid-template-columns:36px 72px 1.2fr 110px 1.6fr 100px}.sa-table-head--interfaces,.sa-row--interfaces{grid-template-columns:36px 72px 96px 96px 100px 1.6fr 100px}.sa-mono{font-family:ui-monospace,monospace;font-size:.78rem;color:var(--g600)}.ssdi-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.ssdi-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.ssdi-content{width:100%;max-width:900px;display:flex;flex-direction:column;gap:20px}.ssdi-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.ssdi-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.ssdi-breadcrumb-link:hover{color:var(--navy)}.ssdi-breadcrumb-sep{color:var(--g400)}.ssdi-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ssdi-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.ssdi-sub{font-size:.88rem;color:var(--g500);line-height:1.5}.ssdi-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.ssdi-btn-download{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.ssdi-btn-download:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.ssdi-btn-download:disabled{opacity:.6;cursor:not-allowed}.ssdi-btn-regen{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s}.ssdi-btn-regen:hover{background:var(--g50);border-color:var(--g300)}.ssdi-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .12s,opacity .12s}.ssdi-btn-ai:hover:not(:disabled){background:#122840}.ssdi-btn-ai:disabled{opacity:.65;cursor:not-allowed}.ssdi-btn-ai.generating{background:var(--blue)}.ssdi-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.ssdi-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.ssdi-progress-num{font-weight:700;color:var(--g700)}.ssdi-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.ssdi-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.ssdi-table{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.ssdi-table-head{display:grid;grid-template-columns:36px 72px 1.6fr 1.4fr 120px 96px;background:var(--g50);border-bottom:1px solid var(--g200);padding:8px 0}.ssdi-col-label{font-size:.72rem;font-weight:700;color:var(--g500);letter-spacing:.06em;text-transform:uppercase;padding:0 12px}.ssdi-row{display:grid;grid-template-columns:36px 72px 1.6fr 1.4fr 120px 96px;border-bottom:1px solid var(--g200);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.ssdi-row:last-child{border-bottom:none}.ssdi-row:hover{background:var(--blue-pale)}.ssdi-row--dragging{opacity:.3}.ssdi-drop-line{height:2px;background:var(--blue);border-radius:0}.ssdi-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--g300);cursor:grab;padding:0 8px;transition:color .1s}.ssdi-drag-handle:hover{color:var(--g500)}.ssdi-drag-handle:active{cursor:grabbing}.ssdi-cell-id{padding:14px 12px;font-size:.75rem;font-family:ui-monospace,monospace;color:var(--g500);display:flex;align-items:flex-start}.ssdi-cell-req{padding:12px;font-size:.82rem;color:var(--g800);line-height:1.55;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ssdi-cell-req--empty{color:var(--g400);font-style:italic}.ssdi-cell-acc{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ssdi-cell-cat{padding:12px;font-size:.82rem;color:var(--g500);line-height:1.5}.ssdi-cell-status{padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.ssdi-row-hint{color:var(--g300);font-size:.8rem;opacity:0;transition:opacity .1s;flex-shrink:0}.ssdi-row:hover .ssdi-row-hint{opacity:1}.ssdi-badge{font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}.ssdi-badge--approved{background:var(--success-bg);color:var(--success)}.ssdi-badge--draft{background:var(--blue-light);color:var(--blue)}.ssdi-badge--edited{background:#fef3c7;color:#b45309}.ssdi-badge--empty{background:var(--g100);color:var(--g500)}.ssdi-add-btn{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.ssdi-add-btn:hover{color:var(--navy)}.ssdi-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000038;z-index:100}.ssdi-drawer{position:fixed;right:0;top:0;height:100vh;width:var(--dhf-drawer-w);background:#fff;border-left:1px solid var(--g200);transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000012}.ssdi-drawer.open{transform:translate(0)}.ssdi-drawer-header{padding:16px 20px;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.ssdi-drawer-id{font-size:.75rem;color:var(--g400);font-family:ui-monospace,monospace;margin-bottom:2px}.ssdi-drawer-title{font-size:.95rem;font-weight:700;color:var(--navy)}.ssdi-close-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:5px 7px;border-radius:var(--r);display:flex;align-items:center;font-size:1rem;line-height:1;transition:color .1s,background .1s}.ssdi-close-btn:hover{color:var(--g700);background:var(--g100)}.ssdi-drawer-head-actions{display:flex;align-items:center;gap:6px}.ssdi-drawer-nav{display:flex;align-items:center;gap:1px}.ssdi-nav-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:1px 6px;border-radius:var(--r);display:flex;align-items:center;font-size:1.25rem;line-height:1;transition:color .1s,background .1s}.ssdi-nav-btn:hover:not(:disabled){color:var(--g700);background:var(--g100)}.ssdi-nav-btn:disabled{opacity:.3;cursor:default}.ssdi-nav-count{font-size:.72rem;color:var(--g400);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.ssdi-drawer-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.ssdi-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:6px}.ssdi-textarea{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:10px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:80px;font-family:inherit;outline:none;box-sizing:border-box}.ssdi-textarea:focus{box-shadow:0 0 0 3px var(--blue-light)}.ssdi-select{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:9px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer}.ssdi-select:focus{box-shadow:0 0 0 3px var(--blue-light)}.ssdi-chip{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 11px;border-radius:99px;background:var(--g100);color:var(--g600)}.ssdi-linked{font-size:.82rem;color:var(--g600);line-height:1.5;font-family:ui-monospace,monospace}.ssdi-drawer-footer{padding:14px 20px;border-top:1px solid var(--g200);display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0}.ssdi-btn-sm{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s}.ssdi-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.ssdi-btn-save{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.ssdi-btn-save:hover{background:#122840}.ssdi-btn-approve{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.ssdi-btn-approve:hover{background:#bbf7d0}.ssdi-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.ssdi-btn-revoke:hover{color:var(--g600)}.ssdi-btn-delete{font-size:.75rem;color:#b91c1c;background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.ssdi-btn-delete:hover{color:#7f1d1d}.ssdi-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.ssdi-confirm{background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000002e;width:100%;max-width:380px;padding:22px}.ssdi-confirm-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}.ssdi-confirm-msg{font-size:.85rem;color:var(--g600);line-height:1.5}.ssdi-confirm-msg strong{color:var(--g700);font-family:ui-monospace,monospace}.ssdi-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.ssdi-confirm-delete{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #b91c1c;background:#b91c1c;color:#fff;transition:background .1s}.ssdi-confirm-delete:hover{background:#7f1d1d}.ssdi-loading{padding:32px 0;text-align:center;color:var(--g500);font-size:.9rem}.ssdi-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.ssdi-empty{padding:28px 20px;text-align:center;color:var(--g500);font-size:.85rem;line-height:1.5}.ssdi-batchlist{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.ssdi-batchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ssdi-batchlist-title{font-size:.82rem;font-weight:700;color:var(--g700)}.ssdi-batchlist-timer{font-size:.78rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.ssdi-batchlist-items{display:flex;flex-direction:column;gap:2px}.ssdi-batch{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem}.ssdi-batch-icon{width:18px;text-align:center;font-weight:700;flex-shrink:0}.ssdi-batch-label{color:var(--g700);font-weight:600;min-width:210px}.ssdi-batch-status{color:var(--g500)}.ssdi-batch--pending{opacity:.6}.ssdi-batch--pending .ssdi-batch-icon{color:var(--g400)}.ssdi-batch--generating .ssdi-batch-icon{color:var(--blue);display:inline-block;animation:sdi-spin 1s linear infinite}.ssdi-batch--generating .ssdi-batch-status{color:var(--blue)}.ssdi-batch--done .ssdi-batch-icon{color:var(--success)}.ssdi-batch--error .ssdi-batch-icon,.ssdi-batch--error .ssdi-batch-status{color:#b91c1c}.ssdi-batch--idle .ssdi-batch-icon{color:var(--g300)}.ssdi-batch-retry{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.ssdi-batch-retry:hover:not(:disabled){background:#fee2e2}.ssdi-batch-retry:disabled{opacity:.55;cursor:not-allowed}.ssdi-batch-run{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid var(--g200);background:#fff;color:var(--navy);font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.ssdi-batch-run:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.ssdi-batch-run:disabled{opacity:.55;cursor:not-allowed}.ssdi-enumerating{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem;color:var(--blue);font-weight:600}.ssdi-spin{display:inline-block;color:var(--blue);animation:sdi-spin 1s linear infinite}@keyframes sdi-spin{to{transform:rotate(360deg)}}.ssdi-module-section{margin-bottom:22px}.ssdi-module-head{display:flex;align-items:baseline;gap:10px;padding:6px 2px 8px;border-bottom:2px solid var(--g200);margin-bottom:2px}.ssdi-module-id{font-family:ui-monospace,monospace;font-size:.78rem;font-weight:700;color:var(--blue)}.ssdi-module-name{font-size:.95rem;font-weight:800;color:var(--navy)}.ssdi-module-domain{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);background:var(--g100);border-radius:999px;padding:2px 8px}.ssdi-module-count{margin-left:auto;font-size:.72rem;color:var(--g400)}.ssdi-cell-mono{font-family:ui-monospace,monospace;font-size:.78rem;color:var(--g600)}.ssdi-multi{display:flex;flex-wrap:wrap;gap:6px}.ssdi-multi-empty{font-size:.8rem;color:var(--g400)}.ssdi-tag{display:inline-flex;align-items:center;gap:5px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.76rem;font-family:ui-monospace,monospace;color:var(--g600);border:1.5px solid var(--g200);border-radius:999px;padding:3px 10px;background:#fff;transition:background .1s,border-color .1s,color .1s}.ssdi-tag:hover{border-color:var(--g300);background:var(--g50)}.ssdi-tag--on{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}.ssdi-tag--ro{cursor:default}.ssdi-module-select{max-width:100%}.dfmea-root{min-height:100vh;display:flex;flex-direction:column;background:var(--blue-pale)}.dfmea-body{flex:1;display:flex;justify-content:center;padding:32px 24px 80px}.dfmea-content{width:100%;max-width:1200px;display:flex;flex-direction:column;gap:20px}.dfmea-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--g500)}.dfmea-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:2px}.dfmea-breadcrumb-link:hover{color:var(--navy)}.dfmea-breadcrumb-sep{color:var(--g400)}.dfmea-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dfmea-title{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:4px}.dfmea-sub{font-size:.88rem;color:var(--g500);line-height:1.5;max-width:760px}.dfmea-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.dfmea-btn-download,.dfmea-btn-regen{padding:8px 16px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--navy);border:1px solid var(--g200);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.dfmea-btn-download:hover:not(:disabled),.dfmea-btn-regen:hover{background:var(--g50);border-color:var(--g300)}.dfmea-btn-download:disabled{opacity:.6;cursor:not-allowed}.dfmea-btn-ai{padding:8px 18px;border-radius:var(--r);font-size:.85rem;font-weight:700;cursor:pointer;border:none;background:var(--navy);color:#fff;white-space:nowrap;flex-shrink:0;transition:background .12s,opacity .12s}.dfmea-btn-ai:hover:not(:disabled){background:#122840}.dfmea-btn-ai:disabled{opacity:.65;cursor:not-allowed}.dfmea-progress-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:12px 16px}.dfmea-progress-label{font-size:.78rem;color:var(--g500);white-space:nowrap}.dfmea-progress-num{font-weight:700;color:var(--g700)}.dfmea-progress-track{flex:1;background:var(--g200);border-radius:99px;height:6px;overflow:hidden}.dfmea-progress-fill{height:6px;background:var(--success);border-radius:99px;transition:width .4s ease}.dfmea-table{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.dfmea-table-head,.dfmea-row{display:grid;grid-template-columns:68px 1.5fr 1.4fr 34px 34px 74px 1.1fr 76px 74px 104px;align-items:stretch}.dfmea-table-head{background:var(--g50);border-bottom:1px solid var(--g200);padding:8px 0}.dfmea-col-label{font-size:.68rem;font-weight:700;color:var(--g500);letter-spacing:.05em;text-transform:uppercase;padding:0 10px}.dfmea-col-c{text-align:center;padding:0 2px}.dfmea-row{border-bottom:1px solid var(--g200);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.dfmea-row:last-child{border-bottom:none}.dfmea-row:hover{background:var(--blue-pale)}.dfmea-cell-id{padding:12px 10px;font-size:.74rem;font-family:ui-monospace,monospace;color:var(--g500)}.dfmea-cell-txt{padding:11px 10px;font-size:.8rem;color:var(--g800);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dfmea-cell-txt--empty{color:var(--g400);font-style:italic}.dfmea-cell-muted{color:var(--g500)}.dfmea-cell-num{padding:11px 2px;font-size:.82rem;color:var(--g700);text-align:center;font-variant-numeric:tabular-nums}.dfmea-cell-risk{padding:11px 2px;display:flex;align-items:flex-start;justify-content:center}.dfmea-cell-accept{padding:11px 8px;font-size:.78rem;color:var(--g600)}.dfmea-cell-status{padding:11px 10px;display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.dfmea-row-hint{color:var(--g300);font-size:.8rem;opacity:0;transition:opacity .1s;flex-shrink:0}.dfmea-row:hover .dfmea-row-hint{opacity:1}.dfmea-pill{display:inline-block;font-size:.62rem;font-weight:800;padding:2px 7px;border-radius:99px;white-space:nowrap;letter-spacing:.03em}.dfmea-pill--high{background:#fee2e2;color:#dc2626}.dfmea-pill--medium{background:#fef3c7;color:#b45309}.dfmea-pill--low{background:var(--success-bg);color:var(--success)}.dfmea-pill--na{background:var(--g100);color:var(--g400)}.dfmea-badge{font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}.dfmea-badge--approved{background:var(--success-bg);color:var(--success)}.dfmea-badge--draft{background:var(--blue-light);color:var(--blue)}.dfmea-badge--edited{background:#fef3c7;color:#b45309}.dfmea-badge--empty{background:var(--g100);color:var(--g500)}.dfmea-add-btn{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.dfmea-add-btn:hover{color:var(--navy)}.dfmea-add-btn:disabled{opacity:.5;cursor:not-allowed}.dfmea-comp-section{margin-bottom:22px}.dfmea-comp-head{display:flex;align-items:baseline;gap:10px;padding:6px 2px 8px;border-bottom:2px solid var(--g200);margin-bottom:2px}.dfmea-comp-id{font-family:ui-monospace,monospace;font-size:.78rem;font-weight:700;color:var(--blue)}.dfmea-comp-name{font-size:.95rem;font-weight:800;color:var(--navy)}.dfmea-comp-type{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:2px 8px}.dfmea-comp-type--module{color:var(--blue);background:var(--blue-light)}.dfmea-comp-type--interface{color:#7c3aed;background:#ede9fe}.dfmea-comp-sub{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);background:var(--g100);border-radius:999px;padding:2px 8px}.dfmea-comp-count{margin-left:auto;font-size:.72rem;color:var(--g400)}.dfmea-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000038;z-index:100}.dfmea-drawer{position:fixed;right:0;top:0;height:100vh;width:var(--dhf-drawer-w);background:#fff;border-left:1px solid var(--g200);transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000012}.dfmea-drawer.open{transform:translate(0)}.dfmea-drawer-header{padding:16px 20px;border-bottom:1px solid var(--g200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.dfmea-drawer-id{font-size:.75rem;color:var(--g400);font-family:ui-monospace,monospace;margin-bottom:2px}.dfmea-drawer-title{font-size:.95rem;font-weight:700;color:var(--navy)}.dfmea-close-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:5px 7px;border-radius:var(--r);display:flex;align-items:center;font-size:1rem;line-height:1;transition:color .1s,background .1s}.dfmea-close-btn:hover{color:var(--g700);background:var(--g100)}.dfmea-drawer-head-actions{display:flex;align-items:center;gap:6px}.dfmea-drawer-nav{display:flex;align-items:center;gap:1px}.dfmea-nav-btn{background:none;border:none;cursor:pointer;color:var(--g400);padding:1px 6px;border-radius:var(--r);display:flex;align-items:center;font-size:1.25rem;line-height:1;transition:color .1s,background .1s}.dfmea-nav-btn:hover:not(:disabled){color:var(--g700);background:var(--g100)}.dfmea-nav-btn:disabled{opacity:.3;cursor:default}.dfmea-nav-count{font-size:.72rem;color:var(--g400);font-variant-numeric:tabular-nums;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.dfmea-drawer-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.dfmea-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:6px}.dfmea-textarea{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:10px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);resize:vertical;min-height:44px;font-family:inherit;outline:none;box-sizing:border-box}.dfmea-textarea:focus{box-shadow:0 0 0 3px var(--blue-light)}.dfmea-select{width:100%;font-size:.85rem;color:var(--g800);line-height:1.65;padding:9px 12px;border:1.5px solid var(--blue);border-radius:var(--r);background:var(--blue-pale);font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer}.dfmea-select:focus{box-shadow:0 0 0 3px var(--blue-light)}.dfmea-chip{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:99px;background:var(--g100);color:var(--g600)}.dfmea-chip-type{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--blue);background:#fff;border-radius:999px;padding:1px 7px}.dfmea-section-title{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--g200)}.dfmea-field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.dfmea-risk-display{display:flex;align-items:center;gap:8px;padding:8px 0}.dfmea-risk-display-label{font-size:.68rem;color:var(--g400)}.dfmea-drawer-footer{padding:14px 20px;border-top:1px solid var(--g200);display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0}.dfmea-btn-sm{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s}.dfmea-btn-sm:hover{background:var(--g50);border-color:var(--g300)}.dfmea-btn-save{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .1s}.dfmea-btn-save:hover{background:#122840}.dfmea-btn-approve{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--success);background:var(--success-bg);color:var(--success);transition:background .1s}.dfmea-btn-approve:hover{background:#bbf7d0}.dfmea-btn-revoke{font-size:.75rem;color:var(--g400);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.dfmea-btn-revoke:hover{color:var(--g600)}.dfmea-btn-delete{font-size:.75rem;color:#b91c1c;background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;margin-right:auto}.dfmea-btn-delete:hover{color:#7f1d1d}.dfmea-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.dfmea-confirm{background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000002e;width:100%;max-width:400px;padding:22px}.dfmea-confirm-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}.dfmea-confirm-msg{font-size:.85rem;color:var(--g600);line-height:1.5}.dfmea-confirm-msg strong{color:var(--g700);font-family:ui-monospace,monospace}.dfmea-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dfmea-confirm-delete{padding:6px 14px;border-radius:var(--r);font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #b91c1c;background:#b91c1c;color:#fff;transition:background .1s}.dfmea-confirm-delete:hover{background:#7f1d1d}.dfmea-loading{padding:32px 0;text-align:center;color:var(--g500);font-size:.9rem}.dfmea-error{margin:12px 0 0;padding:10px 14px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.dfmea-empty{padding:28px 20px;text-align:center;color:var(--g500);font-size:.85rem;line-height:1.5}.dfmea-batchlist{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.dfmea-batchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dfmea-batchlist-title{font-size:.82rem;font-weight:700;color:var(--g700)}.dfmea-batchlist-timer{font-size:.78rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.dfmea-batchlist-items{display:flex;flex-direction:column;gap:2px}.dfmea-batch{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem}.dfmea-batch-icon{width:18px;text-align:center;font-weight:700;flex-shrink:0}.dfmea-batch-label{color:var(--g700);font-weight:600;min-width:240px}.dfmea-batch-status{color:var(--g500)}.dfmea-batch--pending{opacity:.6}.dfmea-batch--pending .dfmea-batch-icon{color:var(--g400)}.dfmea-batch--generating .dfmea-batch-icon{color:var(--blue);display:inline-block;animation:dfmea-spin 1s linear infinite}.dfmea-batch--generating .dfmea-batch-status{color:var(--blue)}.dfmea-batch--done .dfmea-batch-icon{color:var(--success)}.dfmea-batch--error .dfmea-batch-icon,.dfmea-batch--error .dfmea-batch-status{color:#b91c1c}.dfmea-batch--idle .dfmea-batch-icon{color:var(--g300)}.dfmea-batch-retry{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.dfmea-batch-retry:hover:not(:disabled){background:#fee2e2}.dfmea-batch-retry:disabled{opacity:.55;cursor:not-allowed}.dfmea-batch-run{margin-left:auto;padding:3px 12px;border-radius:var(--r);border:1px solid var(--g200);background:#fff;color:var(--navy);font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap}.dfmea-batch-run:hover:not(:disabled){background:var(--g50);border-color:var(--g300)}.dfmea-batch-run:disabled{opacity:.55;cursor:not-allowed}.dfmea-enumerating{display:flex;align-items:center;gap:10px;padding:6px 4px;font-size:.8rem;color:var(--blue);font-weight:600}.dfmea-spin{display:inline-block;color:var(--blue);animation:dfmea-spin 1s linear infinite}@keyframes dfmea-spin{to{transform:rotate(360deg)}}.dfmea-sev-derived{font-size:.95rem;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}.trace-root{min-height:100vh;background:var(--blue-pale)}.trace-body{display:flex;justify-content:center;padding:28px 24px 80px}.trace-content{width:100%;max-width:1200px;display:flex;flex-direction:column;gap:20px}.trace-breadcrumb{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--g500)}.trace-breadcrumb-link{background:none;border:none;cursor:pointer;color:var(--blue);font-size:.85rem;padding:0;font-weight:600}.trace-breadcrumb-link:hover{text-decoration:underline}.trace-breadcrumb-sep{color:var(--g300)}.trace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.trace-title{font-size:1.7rem;font-weight:800;color:var(--navy);letter-spacing:-.02em}.trace-sub{font-size:.92rem;color:var(--g500);margin-top:6px;max-width:720px;line-height:1.5}.trace-header-actions{display:flex;gap:8px;flex-shrink:0}.trace-btn{padding:9px 16px;border-radius:var(--r);font-size:.82rem;font-weight:700;cursor:pointer;border:1px solid var(--g200);background:#fff;color:var(--g600);transition:background .1s,border-color .1s}.trace-btn:hover{background:var(--g50);border-color:var(--g300)}.trace-btn:disabled{opacity:.5;cursor:default}.trace-error{background:#fff5f5;border:1px solid #fecaca;color:var(--danger);border-radius:var(--r);padding:12px 16px;font-size:.88rem}.trace-loading{color:var(--g500);font-size:.9rem;padding:20px}.trace-coverage{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.trace-stat{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:14px 16px}.trace-stat-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--g500)}.trace-stat-value{font-size:1.5rem;font-weight:800;color:var(--navy);margin:4px 0 8px}.trace-stat-value small{font-size:.9rem;color:var(--g400);font-weight:600}.trace-stat-track{height:6px;background:var(--g100);border-radius:999px;overflow:hidden}.trace-stat-fill{height:100%;border-radius:999px;transition:width .3s}.trace-stat-fill--full{background:var(--success)}.trace-stat-fill--partial{background:var(--blue-mid)}.trace-stat-fill--none{background:var(--danger)}.trace-stat--muted{opacity:.55}.trace-gaps{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:18px 20px}.trace-gaps-clean{display:flex;align-items:center;gap:8px;color:var(--success);font-weight:700;font-size:.9rem}.trace-gaps-head{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--danger);margin-bottom:12px}.trace-gap-group{margin-bottom:14px}.trace-gap-group:last-child{margin-bottom:0}.trace-gap-group-title{font-size:.78rem;font-weight:700;color:var(--g700);margin-bottom:6px}.trace-gap-group-title button{background:none;border:none;color:var(--blue);cursor:pointer;font-size:.74rem;font-weight:600;margin-left:8px;padding:0}.trace-gap-group-title button:hover{text-decoration:underline}.trace-gap-items{display:flex;flex-wrap:wrap;gap:6px}.trace-gap-chip{font-size:.74rem;font-family:ui-monospace,monospace;color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:999px;padding:2px 9px}.trace-gap-chip span{color:var(--g500);font-family:inherit}.trace-matrix{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden}.trace-matrix-scroll{overflow-x:auto}.trace-grid{display:grid;grid-template-columns:1.6fr 1.1fr 1.1fr 1.1fr 1.1fr;min-width:900px}.trace-grid-head{display:contents}.trace-grid-head>div{position:sticky;top:0;background:var(--g50);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--g500);padding:12px 14px;border-bottom:2px solid var(--g200)}.trace-grid-row{display:contents}.trace-grid-row>div{padding:12px 14px;border-bottom:1px solid var(--g100);font-size:.82rem;vertical-align:top}.trace-grid-row:hover>div{background:var(--g50)}.trace-need-id{font-family:ui-monospace,monospace;font-size:.74rem;color:var(--blue);font-weight:700}.trace-need-desc{color:var(--g800);margin-top:2px;line-height:1.4}.trace-cell-chips{display:flex;flex-wrap:wrap;gap:5px}.trace-chip{font-size:.72rem;font-family:ui-monospace,monospace;color:var(--g700);background:var(--g100);border-radius:999px;padding:2px 8px;white-space:nowrap}.trace-chip--safety{color:var(--danger);background:#fef2f2}.trace-chip--empty{color:var(--danger);background:#fef2f2;border:1px dashed #fecaca;font-family:inherit;font-style:italic}.trace-cell-muted{color:var(--g300);font-size:.8rem}.trace-derived{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:16px 20px}.trace-derived-head{font-size:.8rem;font-weight:800;color:var(--g700);margin-bottom:10px}.trace-empty{background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:40px;text-align:center;color:var(--g500);font-size:.9rem}@media(max-width:720px){.trace-coverage{grid-template-columns:repeat(2,1fr)}}
