/* 設計 token 與骨架照抄 FR-139 prototype/control-edit.html（產品 Ultima 配色），本檔下半段才是 FR-141 專用。 */
:root{
  --bg-base:#f4f6f9;--bg-sidebar:#ffffff;--bg-card:#ffffff;--bg-elevated:#ffffff;
  --bg-active:rgba(15,23,42,.05);--bg-hover:rgba(15,23,42,.035);--bg-input:#ffffff;--bg-readonly:rgba(15,23,42,.035);
  --text-primary:rgba(15,23,42,.9);--text-secondary:rgba(15,23,42,.64);--text-muted:rgba(15,23,42,.48);--text-dim:rgba(15,23,42,.3);
  --border-default:rgba(15,23,42,.12);--border-light:rgba(15,23,42,.08);--border-medium:rgba(15,23,42,.2);--border-input:rgba(15,23,42,.18);
  --accent:#0288d1;--accent-hover:#0277bd;--accent-soft:rgba(2,136,209,.07);--accent-border:rgba(2,136,209,.28);--accent-contrast:#ffffff;
  --color-green:#2e7d32;--color-green-soft:rgba(46,125,50,.08);--color-green-border:rgba(46,125,50,.3);
  --color-orange:#e65100;--color-orange-soft:rgba(239,108,0,.08);--color-orange-border:rgba(239,108,0,.35);
  --color-yellow:#8d6e00;--color-yellow-soft:rgba(245,180,0,.13);--color-yellow-border:rgba(200,150,0,.4);
  --color-red:#c62828;--color-red-soft:rgba(198,40,40,.07);--color-red-border:rgba(198,40,40,.3);
  --color-indigo:#4f46e5;--color-indigo-soft:rgba(79,70,229,.09);
  --color-slate:#607d8b;--color-slate-soft:rgba(96,125,139,.1);
  --overlay:rgba(15,23,42,.35);--shadow:0 1px 2px rgba(15,23,42,.05);--shadow-lg:0 20px 50px rgba(15,23,42,.18);
  --radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.625rem;
}
[data-theme=dark]{
  --bg-base:#121212;--bg-sidebar:#141414;--bg-card:#1a1a1a;--bg-elevated:#1e1e1e;
  --bg-active:rgba(255,255,255,.06);--bg-hover:rgba(255,255,255,.04);--bg-input:rgba(255,255,255,.03);--bg-readonly:rgba(255,255,255,.04);
  --text-primary:rgba(255,255,255,.88);--text-secondary:rgba(255,255,255,.55);--text-muted:rgba(255,255,255,.4);--text-dim:rgba(255,255,255,.25);
  --border-default:rgba(255,255,255,.09);--border-light:rgba(255,255,255,.06);--border-medium:rgba(255,255,255,.14);--border-input:rgba(255,255,255,.08);
  --accent:#4fc3f7;--accent-hover:#6dcff9;--accent-soft:rgba(79,195,247,.08);--accent-border:rgba(79,195,247,.2);--accent-contrast:#0b1a22;
  --color-green:#81c784;--color-green-soft:rgba(129,199,132,.1);--color-green-border:rgba(129,199,132,.3);
  --color-orange:#ffb74d;--color-orange-soft:rgba(255,183,77,.1);--color-orange-border:rgba(255,183,77,.3);
  --color-yellow:#fff176;--color-yellow-soft:rgba(255,241,118,.08);--color-yellow-border:rgba(255,241,118,.28);
  --color-red:#ef5350;--color-red-soft:rgba(239,83,80,.08);--color-red-border:rgba(239,83,80,.3);
  --color-indigo:#818cf8;--color-indigo-soft:rgba(99,102,241,.15);
  --color-slate:#90a4ae;--color-slate-soft:rgba(144,164,174,.12);
  --overlay:rgba(0,0,0,.6);--shadow:none;--shadow-lg:0 20px 60px rgba(0,0,0,.5);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg-base);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-size:14px;line-height:1.55}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.proto-banner{font-size:.75rem;color:var(--text-muted);padding:.3rem 1rem;border-bottom:1px solid var(--border-light);background:var(--bg-sidebar);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.topbar{height:3.25rem;display:flex;align-items:center;gap:1rem;padding:0 1.25rem;background:var(--bg-sidebar);border-bottom:1px solid var(--border-light)}
.topbar .brand{font-weight:700;letter-spacing:.02em}
.topbar .brand span{color:var(--accent)}
.topbar .spacer{flex:1}
.topbar .user{color:var(--text-secondary);font-size:.875rem}
.shell{display:flex;min-height:calc(100vh - 3.25rem - 1.7rem)}
.sidebar{width:15rem;flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border-light);padding:1rem .5rem}
.nav-group{font-size:.75rem;color:var(--text-muted);padding:.75rem .75rem .25rem;letter-spacing:.05em}
.nav-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;border:1px solid transparent}
.nav-item:hover{background:var(--bg-hover);text-decoration:none;color:var(--text-primary)}
.nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}
.nav-item.sub{padding-left:1.6rem}
.nav-item.fake{opacity:.55;cursor:default}
.nav-item.fake:hover{background:none;color:var(--text-secondary)}
.nav-foot{margin-top:1.5rem;border-top:1px solid var(--border-light);padding-top:.75rem}
.main{flex:1;min-width:0;padding:1.25rem 1.5rem 3rem}
.crumb{font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}
h1{font-size:1.5rem;margin:.1rem 0 1rem;font-weight:600}
h2{font-size:1.25rem;margin:1.5rem 0 .75rem;font-weight:600}
h3{font-size:1rem;margin:0 0 .5rem;font-weight:600}
h4{font-size:.95rem;margin:0 0 .75rem;font-weight:600}
.muted{color:var(--text-muted)}
.secondary{color:var(--text-secondary)}
.text-sm{font-size:.875rem}
.text-xs{font-size:.75rem}
.dark-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:1rem 1.25rem;box-shadow:var(--shadow)}
.row{display:flex;gap:1rem;flex-wrap:wrap}
.row>.grow{flex:1;min-width:16rem}
.between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.flex{display:flex;align-items:center;gap:.5rem}
.stack>*+*{margin-top:1rem}
.look-box{border:1px solid var(--accent-border);background:var(--accent-soft);border-radius:var(--radius-xl);padding:.85rem 1.1rem;margin-bottom:1.25rem}
.look-box h3{color:var(--accent);font-size:.95rem}
.look-box ol{margin:.25rem 0 0;padding-left:1.25rem;font-size:.875rem;color:var(--text-secondary)}
.look-box li{margin:.3rem 0}
.look-box li b{color:var(--text-primary)}
/* 表單 */
.form-label{display:block;color:var(--text-secondary);margin-bottom:.3rem;font-size:.875rem}
input,select,textarea{background:var(--bg-input);border:1px solid var(--border-input);color:var(--text-primary);border-radius:var(--radius-md);padding:.5rem .65rem;font:inherit;font-size:.875rem}
input:hover,select:hover,textarea:hover{border-color:var(--border-medium)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
select option{background:var(--bg-elevated);color:var(--text-primary)}
textarea{resize:vertical;line-height:1.55}
.formgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:0 1rem}
.field{margin-bottom:1rem;grid-column:span 12}
.field.half{grid-column:span 6}
@media (max-width:900px){.field.half{grid-column:span 12}}
.field input,.field select,.field textarea{width:100%}
.field .help{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}
.field.is-new>.form-label{color:var(--text-primary)}
.field.is-new textarea{border-color:var(--color-orange-border)}
.icon-field{position:relative}
.icon-field>.pi{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.85rem}
.icon-field input{padding-left:2rem;width:100%}
/* 按鈕 */
.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border-medium);background:var(--bg-card);color:var(--text-primary);padding:.45rem .9rem;border-radius:var(--radius-md);font:inherit;font-size:.875rem;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--bg-hover);text-decoration:none}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}
.btn-primary:hover{background:var(--accent-hover)}
.btn-outlined{border-color:var(--accent-border);color:var(--accent);background:transparent}
.btn-text{border-color:transparent;background:transparent;color:var(--accent);padding:.3rem .5rem}
.btn-danger{border-color:var(--color-red-border);color:var(--color-red);background:transparent}
.btn-icon{border-color:transparent;background:transparent;color:var(--text-muted);padding:.3rem .45rem;border-radius:999px}
.btn-icon:hover{color:var(--text-primary)}
.btn-icon.danger:hover{color:var(--color-red)}
.btn-sm{padding:.28rem .65rem;font-size:.8rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:rgba(15,23,42,.92);color:#fff;font-size:.72rem;padding:.25rem .5rem;border-radius:var(--radius-sm);white-space:nowrap;z-index:60;pointer-events:none;font-weight:400}
/* 標籤 */
.status-badge{display:inline-flex;align-items:center;gap:.375rem;white-space:nowrap;border-radius:999px;padding:1px 10px;font-size:.78rem;font-weight:500}
.status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.sb-idle{background:var(--color-slate-soft);color:var(--color-slate)}
.sb-active{background:var(--color-indigo-soft);color:var(--color-indigo)}
.sb-success{background:var(--color-green-soft);color:var(--color-green)}
.sb-warning{background:var(--color-orange-soft);color:var(--color-orange)}
.sb-danger{background:var(--color-red-soft);color:var(--color-red)}
.sb-inherit{background:transparent;color:var(--text-muted);border:1px dashed var(--border-medium)}
.tag-code{display:inline-flex;align-items:center;font-size:.78rem;font-weight:600;padding:1px .5rem;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);white-space:nowrap}
.tag-version{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:500;padding:1px .5rem;border-radius:var(--radius-sm);background:var(--bg-active);color:var(--text-secondary);border:1px solid var(--border-light);white-space:nowrap}
.tag-new{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;padding:0 .4rem;border-radius:var(--radius-sm);background:var(--color-orange-soft);color:var(--color-orange);border:1px solid var(--color-orange-border);margin-left:.35rem;white-space:nowrap;vertical-align:middle;line-height:1.5}
.doc-kind{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;padding:0 .45rem;border-radius:999px;white-space:nowrap;border:1px solid}
.doc-kind.client{color:var(--color-slate);border-color:var(--border-medium);background:var(--color-slate-soft)}
.doc-kind.consult{color:var(--color-indigo);border-color:rgba(79,70,229,.3);background:var(--color-indigo-soft)}
/* hint bar */
.hint-bar{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;font-size:.85rem;border:1px solid transparent;border-radius:var(--radius-md);flex-wrap:wrap}
.hint-bar--info{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}
.hint-bar--warn{background:var(--color-orange-soft);border-color:var(--color-orange-border);color:var(--color-orange)}
.note-proto{font-size:.75rem;color:var(--color-orange);padding-left:0;margin:.5rem 0}
/* 表格 */
.table-wrap{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);overflow:auto;box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%}
th{font-size:.75rem;font-weight:600;color:var(--text-muted);text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border-default);white-space:nowrap;background:var(--bg-active)}
td{padding:.65rem .75rem;border-bottom:1px solid var(--border-light);vertical-align:top;font-size:.875rem}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--bg-hover)}
/* 分頁籤 */
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border-default);flex-wrap:wrap}
.tab{padding:.6rem 1rem;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:.875rem;cursor:default;white-space:nowrap}
.tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}
/* 頁首列 */
.pl-header{display:flex;align-items:center;gap:.75rem 1rem;padding:.85rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);margin-bottom:.75rem;flex-wrap:wrap;box-shadow:var(--shadow)}
.pl-header .ttl{font-size:1.15rem;font-weight:500;flex:1;min-width:14rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.ver-meta{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.ver-meta .dirty{color:var(--color-orange)}
.stat-card{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.35rem .7rem;font-size:.75rem;min-width:8.5rem;color:var(--text-muted)}
.stat-card b{display:block;font-size:.8rem;color:var(--text-primary)}
/* 左右分割與樹 */
.planning-split{display:grid;grid-template-columns:19rem 1fr;border:1px solid var(--border-light);border-top:none;border-radius:0 0 var(--radius-xl) var(--radius-xl);background:var(--bg-card);min-height:70vh}
@media (max-width:1100px){.planning-split{grid-template-columns:1fr}}
.planning-tree{border-right:1px solid var(--border-light);padding:.75rem .5rem;font-size:.83rem}
.tree-tools{display:flex;justify-content:flex-end;gap:.25rem;margin:.4rem 0 .5rem}
.tnode{display:flex;align-items:center;gap:.4rem;padding:.38rem .5rem;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:default}
.tnode:hover{background:var(--bg-hover)}
.tnode.sel{background:var(--accent-soft);color:var(--accent)}
.tnode .pi{font-size:.7rem;color:var(--text-muted)}
.tnode .bdg{margin-left:auto;font-size:.7rem;color:var(--text-muted)}
.tnode.l1{padding-left:1.4rem}.tnode.l2{padding-left:2.6rem}
.tnode .nm{min-width:0}
.tnode .nm small{display:block;font-size:.72rem;color:var(--text-muted)}
.planning-content{padding:1.25rem 1.5rem;min-width:0}
.ref-text{font-size:.82rem;color:var(--text-secondary);padding:.2rem 0;margin-top:.75rem}
.ref-text summary{cursor:pointer;color:var(--text-muted);font-size:.78rem}
/* 程序書 */
.ref-doc-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}
.ref-doc-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-radius:var(--radius-lg);border:1px solid var(--border-light);background:var(--bg-active);font-size:.875rem}
.ref-doc-item .pi-file{color:var(--accent)}
.ref-doc-item a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ref-doc-empty{font-size:.85rem;padding:.5rem .75rem;border-radius:var(--radius-lg);color:var(--text-muted);border:1px dashed var(--border-default);background:var(--bg-active)}
/* 建議附件 */
.att-block{border:1px dashed var(--color-indigo);border-radius:var(--radius-lg);padding:.6rem .75rem;background:var(--color-indigo-soft)}
.att-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .65rem;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light);font-size:.875rem;margin-top:.4rem}
.att-item .pi-paperclip{color:var(--color-indigo)}
.att-item .att-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-item .att-desc{flex:1;min-width:0;color:var(--text-muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* AO 卡 */
.ao-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:1rem 1.15rem;cursor:pointer;box-shadow:var(--shadow)}
.ao-card:hover{border-color:var(--border-default)}
.ao-card.expanded{border-color:var(--accent-border)}
.ao-card-header{display:flex;gap:.75rem;align-items:flex-start}
.ao-card-header>.pi-file{color:var(--accent);margin-top:.2rem}
.ao-meta{display:flex;align-items:center;gap:.6rem;margin-top:.45rem;font-size:.8rem;color:var(--text-muted);flex-wrap:wrap}
.ao-chev{color:var(--text-muted);transition:transform .2s}
.ao-card.expanded .ao-chev{transform:rotate(180deg)}
.ao-card-body{display:none;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border-light);cursor:auto}
.ao-card.expanded .ao-card-body{display:block}
/* 唯讀欄位 */
.ro-field{margin-bottom:.9rem}
.ro-field .form-label{display:flex;align-items:center;gap:.3rem}
.ro-text{background:var(--bg-readonly);border-radius:var(--radius-md);padding:.5rem .7rem;font-size:.875rem;white-space:pre-wrap;min-height:2.1rem}
.ro-text.empty{color:var(--text-dim)}
/* 對話框 */
.overlay{position:fixed;inset:0;background:var(--overlay);display:none;align-items:flex-start;justify-content:center;padding:8vh 1rem;z-index:50;overflow:auto}
.overlay.open{display:flex}
.dialog{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:min(34rem,100%);box-shadow:var(--shadow-lg)}
.dialog-head{padding:1rem 1.25rem;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;font-weight:600}
.dialog-body{padding:1.25rem}
.dialog-foot{padding:.85rem 1.25rem;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:.5rem}
.seg{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}
.seg button{background:transparent;border:none;color:var(--text-secondary);padding:.4rem .85rem;font:inherit;font-size:.85rem;cursor:pointer;border-right:1px solid var(--border-default)}
.seg button:last-child{border-right:none}
.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:500}
.toast{position:fixed;top:4.5rem;right:1.5rem;background:var(--bg-elevated);border:1px solid var(--color-green-border);border-radius:var(--radius-md);padding:.65rem 1rem;font-size:.85rem;box-shadow:var(--shadow-lg);display:none;z-index:70}
.toast.show{display:block}
.mini-stat{padding:.55rem .85rem;border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-card);min-width:7.5rem;cursor:pointer}
.mini-stat.active{border-color:var(--accent-border);background:var(--accent-soft)}
.mini-stat .n{font-size:1.25rem;font-weight:600}
.mini-stat .l{font-size:.75rem;color:var(--text-muted)}
.index-card{display:block;color:inherit}
.index-card:hover{text-decoration:none;border-color:var(--accent-border)}
.index-card h3{color:var(--accent)}
.lib-tabs{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:0 .75rem}
.tab-toolbar{display:flex;justify-content:flex-end;padding:.75rem 1rem 0;background:var(--bg-card);border-left:1px solid var(--border-light);border-right:1px solid var(--border-light)}
.planning-split{border-top:none}
.ctrl-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.ctrl-head h2{margin:0;font-size:1.2rem}
.dirty-dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--color-orange)}
.save-row{display:flex;justify-content:flex-end;grid-column:span 12;margin:.25rem 0 1rem}
.kind-pick{display:flex;gap:.75rem;flex-wrap:wrap}
.kind-card{flex:1;min-width:12rem;border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:.6rem .8rem;cursor:pointer}
.kind-card.on{border-color:var(--accent);background:var(--accent-soft)}
.kind-card b{display:block;font-size:.875rem}
.kind-card span{font-size:.75rem;color:var(--text-muted)}
.drop{border:1px dashed var(--border-medium);border-radius:var(--radius-lg);padding:1rem;text-align:center;color:var(--text-muted);font-size:.85rem;margin-bottom:1rem}


/* ── FR-141 專用 ── */
.tab{cursor:pointer;user-select:none}
.tab .cnt{font-size:.72rem;color:var(--text-muted);margin-left:.3rem}
.tab-panel{background:var(--bg-card);border:1px solid var(--border-light);border-top:none;border-radius:0 0 var(--radius-xl) var(--radius-xl);padding:1.25rem 1.5rem}
.phase-banner{display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-radius:var(--radius-md);background:var(--color-indigo-soft);color:var(--color-indigo);font-size:.85rem;margin-bottom:.75rem;flex-wrap:wrap}
.phase-banner .step{color:var(--text-muted)}
.phase-banner .step.on{color:var(--color-indigo);font-weight:600}
.ro-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;padding:1px .55rem;border-radius:999px;background:var(--color-slate-soft);color:var(--color-slate)}
.is-readonly .edit-only{display:none!important}
.menu-wrap{position:relative;display:inline-block}
.menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:19rem;padding:.35rem;display:none;z-index:40}
.menu.open{display:block}
.menu-item{display:flex;gap:.65rem;align-items:flex-start;padding:.55rem .7rem;border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary)}
.menu-item:hover{background:var(--bg-hover);text-decoration:none}
.menu-item>.pi{color:var(--accent);margin-top:.15rem}
.menu-item small{display:block;color:var(--text-muted);font-size:.75rem}
/* 多選 */
.ms{position:relative;min-width:0}
.ms-box{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;min-height:2.1rem;padding:.25rem .35rem;border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-input);cursor:pointer}
.ms-box:hover{border-color:var(--border-medium)}
.ms.open .ms-box{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.ms-ph{color:var(--text-dim);font-size:.8rem;padding:0 .25rem}
.chip{display:inline-flex;align-items:center;gap:.2rem;font-size:.76rem;padding:1px .45rem;border-radius:999px;background:var(--bg-active);border:1px solid var(--border-light);white-space:nowrap}
.chip .x{cursor:pointer;color:var(--text-muted);font-size:.65rem}
.chip .x:hover{color:var(--color-red)}
.ms-panel{position:absolute;left:0;top:calc(100% + 3px);min-width:100%;width:max-content;max-width:20rem;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:45;display:none;padding:.3rem}
.ms.open .ms-panel{display:block}
.ms-opt{display:flex;align-items:center;gap:.45rem;padding:.35rem .5rem;border-radius:var(--radius-sm);font-size:.82rem;cursor:pointer}
.ms-opt:hover{background:var(--bg-hover)}
.ms-opt input{margin:0}
.ms-add{display:flex;gap:.3rem;border-top:1px solid var(--border-light);margin-top:.3rem;padding-top:.35rem}
.ms-add input{flex:1;padding:.3rem .5rem;font-size:.8rem}
.is-readonly .ms-box{cursor:default;background:var(--bg-readonly)}
.is-readonly .chip .x{display:none}
/* AO 表 */
.ao-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.85rem}
.progress{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}
.progress .bar{width:8rem;height:.4rem;border-radius:999px;background:var(--bg-active);overflow:hidden}
.progress .bar>i{display:block;height:100%;background:var(--color-green)}
.ctrl-group{border:1px solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:.6rem;background:var(--bg-card)}
.ctrl-row{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;cursor:pointer;flex-wrap:wrap}
.ctrl-row:hover{background:var(--bg-hover)}
.ctrl-row .chev{color:var(--text-muted);font-size:.75rem;transition:transform .15s}
.ctrl-group.open .ctrl-row .chev{transform:rotate(90deg)}
.ctrl-row .nm{font-weight:500;flex:1;min-width:12rem}
.ctrl-body{display:none;border-top:1px solid var(--border-light);overflow-x:auto}
.ctrl-group.open .ctrl-body{display:block}
.ao-table{min-width:68rem}
.ao-table td{padding:.6rem .6rem}
.ao-table th{padding:.45rem .6rem}
.ao-text{font-size:.84rem;line-height:1.5}
.ao-text .lbl{font-weight:600;color:var(--accent);margin-right:.25rem}
.ao-text small{display:block;color:var(--text-muted);font-size:.72rem;margin-top:.2rem}
.mg{display:flex;gap:.35rem;align-items:flex-start;margin-bottom:.35rem}
.mg select{width:8.5rem;flex-shrink:0;padding:.35rem .4rem;font-size:.8rem}
.mg textarea{flex:1;min-width:10rem;font-size:.8rem;padding:.35rem .5rem;min-height:2.1rem}
.mg .btn-icon{flex-shrink:0;margin-top:.15rem}
.tag-override{display:inline-flex;align-items:center;gap:.2rem;font-size:.68rem;font-weight:600;padding:0 .4rem;border-radius:var(--radius-sm);background:var(--color-yellow-soft);color:var(--color-yellow);border:1px solid var(--color-yellow-border);white-space:nowrap}
.tag-inherit{font-size:.68rem;color:var(--text-muted)}
.row-unfilled td:first-child{box-shadow:inset 3px 0 0 var(--color-orange)}
.fill-badge{font-size:.72rem;padding:1px .5rem;border-radius:999px;white-space:nowrap}
.fill-badge.done{background:var(--color-green-soft);color:var(--color-green)}
.fill-badge.part{background:var(--color-orange-soft);color:var(--color-orange)}
/* 匯入預覽 */
.steps{display:flex;gap:.5rem;align-items:center;font-size:.82rem;color:var(--text-muted);flex-wrap:wrap}
.steps .on{color:var(--accent);font-weight:600}
.steps .done{color:var(--color-green)}
.st-ok{color:var(--color-green)}.st-warn{color:var(--color-orange)}.st-err{color:var(--color-red)}
.diff-old{color:var(--text-muted);text-decoration:line-through;white-space:pre-wrap}
.diff-new{white-space:pre-wrap}
.cell-pre{white-space:pre-wrap;font-size:.8rem}
/* 報告稿 */
.paper{background:#fff;color:#1b1b1b;max-width:52rem;margin:0 auto;padding:3rem 3.5rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:"Noto Serif TC","PingFang TC","Microsoft JhengHei",serif;font-size:15px;line-height:1.85}
.paper h1{text-align:center;font-size:1.5rem;margin:0 0 2rem}
.paper h2{font-size:1.1rem;margin:1.5rem 0 .35rem}
.paper p{margin:.2rem 0 .5rem;text-indent:2em}
.paper ol{margin:.2rem 0 .5rem}
.paper .placeholder{border:1px dashed #b0b0b0;color:#888;padding:.8rem 1rem;border-radius:4px;text-align:center;font-size:.9rem}
.paper table{font-size:12px;line-height:1.5;margin-top:.5rem}
.paper th,.paper td{border:1px solid #9a9a9a;padding:.35rem .4rem;vertical-align:top;color:#1b1b1b;background:#fff;white-space:pre-wrap}
.paper th{background:#e8edf3;font-weight:600;text-align:center}
.paper tbody tr:hover td{background:#fff}
.paper .meta{font-size:13px;margin:.1rem 0}
.paper-break{border:none;border-top:2px dashed #c7c7c7;margin:2.5rem -3.5rem}
/* .field input 的 width:100% 會把勾選框撐滿整列 */
input[type=checkbox]{width:auto!important;padding:0;margin:0 .35rem 0 0;vertical-align:middle}
.field>.form-label>input[type=checkbox]{margin-right:.4rem}

/* ── 第二輪：稽核次麵包屑、左樹右表單、預覽模式 ── */
.pass-crumb{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.85rem;margin-bottom:.6rem}
.pc-sep{font-size:.7rem;color:var(--text-dim)}
.pc-pass{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.2rem .7rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.pc-pass.ext{border-color:var(--color-indigo);color:var(--color-indigo);background:var(--color-indigo-soft)}
.pc-pass:hover{filter:brightness(1.05)}
.menu .menu-item.on{background:var(--accent-soft)}
.menu .menu-item.disabled{opacity:.5;cursor:not-allowed}
.menu .menu-item.disabled:hover{background:none}
.pass-ro{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.55rem 1rem;border-radius:var(--radius-md);background:var(--color-slate-soft);border:1px solid var(--border-medium);color:var(--text-secondary);font-size:.85rem;margin-bottom:.75rem}
.pass-ro a{margin-left:auto}
.pass-note{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--text-muted)}
.split{display:grid;grid-template-columns:18.5rem 1fr;background:var(--bg-card);border:1px solid var(--border-light);border-top:none;border-radius:0 0 var(--radius-xl) var(--radius-xl);min-height:72vh}
@media (max-width:1000px){.split{grid-template-columns:1fr}.split .tree-col{border-right:none;border-bottom:1px solid var(--border-light);max-height:22rem}}
.tree-col{border-right:1px solid var(--border-light);padding:.85rem .6rem;display:flex;flex-direction:column;gap:.6rem;position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto}
.tree-col .progress{font-size:.8rem}
.tree-col .progress .bar{flex:1}
.tree-col>*{flex-shrink:0}
.tree-col .seg{display:flex}
.tree-col .seg button{flex:1;padding:.32rem .3rem;font-size:.75rem;min-height:1.9rem}
#tree{font-size:.83rem}
.tnode.fam{color:var(--text-primary);cursor:pointer;margin-top:.2rem}
.tnode.fam .pi{font-size:.65rem}
.tnode.l1{cursor:pointer;padding-left:1.1rem}
.tnode .nm small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:9.5rem}
.dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0;border:1.5px solid var(--color-slate)}
.dot.done{background:var(--color-green);border-color:var(--color-green)}
.dot.part{background:linear-gradient(90deg,var(--color-orange) 50%,transparent 50%);border-color:var(--color-orange)}
.tbadge{font-size:.66rem;font-weight:600;padding:0 .35rem;border-radius:var(--radius-sm);white-space:nowrap;margin-left:auto}
.tbadge+.bdg{margin-left:.3rem}
.tbadge.chg{background:var(--color-yellow-soft);color:var(--color-yellow);border:1px solid var(--color-yellow-border)}
.tbadge.prob{background:var(--color-red-soft);color:var(--color-red);border:1px solid var(--color-red-border)}
.form-col{padding:1.15rem 1.4rem 1.5rem;min-width:0}
.view-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.6rem 1rem;background:var(--bg-card);border-left:1px solid var(--border-light);border-right:1px solid var(--border-light)}
.def-block{border:1px dashed var(--accent-border);background:var(--accent-soft);border-radius:var(--radius-lg);padding:.8rem 1rem;margin:1rem 0}
.def-grid,.aoc-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.9fr);gap:.9rem;margin-top:.6rem}
@media (max-width:1250px){.def-grid,.aoc-grid{grid-template-columns:1fr}}
.aoc{border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:.85rem 1rem;margin-bottom:.7rem;background:var(--bg-card)}
.aoc.unfilled{box-shadow:inset 3px 0 0 var(--color-orange)}
.aoc-head{display:flex;gap:.6rem;align-items:flex-start}
.aoc-head .lbl{font-weight:700;color:var(--accent);flex-shrink:0}
.aoc-txt{flex:1;font-size:.88rem}
.aoc-txt small{display:block;color:var(--text-muted);font-size:.74rem}
.aoc-tags{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.aoc-pid{margin-top:.4rem;text-align:right}
.u-tag{margin-top:.3rem}
.tag-inh{display:inline-flex;align-items:center;gap:.25rem;font-size:.68rem;font-weight:600;padding:0 .4rem;border-radius:var(--radius-sm);background:var(--color-indigo-soft);color:var(--color-indigo);white-space:nowrap}
.ov-table td{font-size:.8rem}
.mg select{width:9rem}
.mg textarea{min-height:2rem}
/* 預覽模式 */
.pv-banner{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.7rem 1rem;border-radius:var(--radius-lg);background:var(--color-yellow-soft);border:1px solid var(--color-yellow-border);margin-bottom:.75rem;position:sticky;top:0;z-index:30}
.pv-banner .ttl{font-weight:600}
.pv-banner .sp{flex:1}
.pv-changed textarea,.pv-changed input,.pv-changed .ms-box,.aoc.pv-changed{background:var(--color-yellow-soft)!important;border-color:var(--color-yellow-border)!important}
.aoc.pv-problem{border-color:var(--color-red-border)!important;box-shadow:inset 3px 0 0 var(--color-red)}
.pv-old{font-size:.76rem;color:var(--text-muted);margin-top:.3rem;white-space:pre-wrap}
.pv-old s{color:var(--text-muted)}
.mg-unknown .unk-box,.mg-mapped .unk-box{width:9rem;flex-shrink:0;border-radius:var(--radius-md);padding:.3rem .35rem}
.mg-unknown .unk-box{border:1px solid var(--color-red-border);background:var(--color-red-soft);color:var(--color-red)}
.mg-mapped .unk-box{border:1px solid var(--color-green-border);background:var(--color-green-soft);color:var(--color-green)}
.unk-box select{width:100%;margin-top:.25rem;padding:.25rem .3rem;font-size:.78rem}
.tab-hl{color:var(--color-yellow);font-size:.7rem;margin-left:.3rem}

.unk-person{font-size:.75rem;margin-top:.35rem;padding:.3rem .45rem;border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.unk-person.bad{border:1px solid var(--color-red-border);background:var(--color-red-soft);color:var(--color-red)}
.unk-person.ok{border:1px solid var(--color-green-border);background:var(--color-green-soft);color:var(--color-green)}
.unk-person select{padding:.2rem .3rem;font-size:.75rem}

/* ── FR-142 稽核結果頁新增 ── */
.vb{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid transparent;white-space:nowrap}
.vb.sm{font-size:.7rem;padding:.08rem .45rem}
.vb.v-none{background:var(--surface-100,#eef2f3);color:var(--text-muted);border-color:var(--surface-300,#cfd8dc)}
.vb.v-met{background:#dcf5e6;color:#176b3a;border-color:#9ad8b4}
.vb.v-nm{background:#fde4e4;color:#9f1d1d;border-color:#f3a6a6}
.vb.v-na{background:#eceff1;color:#455a64;border-color:#b0bec5}
[data-theme=dark] .vb.v-met{background:#133a24;color:#8fe0b0;border-color:#1f5c38}
[data-theme=dark] .vb.v-nm{background:#4a1616;color:#ff9b9b;border-color:#7a2626}
[data-theme=dark] .vb.v-na{background:#2a3338;color:#b0bec5;border-color:#455a64}
.tbadge.nm{background:#fde4e4;color:#9f1d1d}
.v-nm-t{color:#c0392b;font-weight:600}
.ctrl-verdict{margin-left:auto;display:flex;align-items:center;gap:.5rem;font-size:.85rem;flex-wrap:wrap}
.ctrl-verdict small{color:var(--text-muted);font-size:.72rem}
.aoc.arc{grid-template-columns:17rem 1fr 1fr;gap:.75rem;margin-top:.6rem}
@media(max-width:1100px){.arc-grid{grid-template-columns:1fr}}
.arc-grid textarea,.arc-risk textarea{width:100%;font-size:.85rem}
.seg.vseg,.seg.sevseg{flex-wrap:nowrap}
.seg.vseg button.on.v-met{background:#176b3a;color:#fff}
.seg.vseg button.on.v-nm{background:#9f1d1d;color:#fff}
.seg.vseg button.on.v-na{background:#546e7a;color:#fff}
.aoc-warn{margin-top:.35rem;display:flex;flex-direction:column;gap:.15rem}
.arc-risk{margin-top:.6rem;border:1px dashed var(--surface-300,#cfd8dc);border-radius:8px;padding:.5rem .7rem}
.arc-risk.has{border-style:solid;border-color:#e0a300;background:rgba(224,163,0,.06)}
.arc-risk-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.arc-risk-head .form-label{margin:0}
.arc-risk-grid{display:grid;grid-template-columns:1fr;gap:.6rem;margin-top:.4rem}
@media(max-width:900px){.arc-risk-grid{grid-template-columns:1fr}}
.plan-ref{margin:.4rem 0 0;font-size:.8rem;background:var(--surface-50,#fafbfb);border:1px solid var(--surface-200,#e4e9ea);border-radius:8px;padding:.35rem .6rem}
.plan-ref summary{cursor:pointer;color:var(--text-secondary)}
.plan-ref-body{display:grid;grid-template-columns:1.4fr 1fr;gap:.75rem;margin-top:.4rem}
.plan-ref-body ul{margin:.2rem 0 0;padding-left:1.1rem}
.plan-ref-body .muted{display:block;font-size:.7rem;margin-top:.3rem}
.sev{display:inline-block;padding:.1rem .5rem;border-radius:4px;font-weight:600;font-size:.78rem}
.sev-h{background:#fde4e4;color:#9f1d1d}.sev-m{background:#fff1cc;color:#8a5a00}.sev-l{background:#e3f1fb;color:#1b5e8a}
tr.merged td{background:rgba(14,124,134,.06)}
.stat-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.75rem}
.stat-row .mini-stat{min-width:7rem}

.paper .attach-wrap{overflow-x:auto;margin:0 -1.5rem}
.paper .attach-wrap table{min-width:72rem}
.pv-banner .ttl{white-space:nowrap}

.ev-col{min-width:0}
.ev-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border-input);border-radius:var(--radius-md);padding:.3rem .4rem;background:var(--bg-input);min-height:2.4rem}
.ev-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .2rem;font-size:.85rem;border-bottom:1px solid var(--border-light)}
.ev-item:last-child{border-bottom:0}
.ev-item .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.ev-item .src{color:var(--text-muted);font-size:.75rem;white-space:nowrap}
.ev-item .x{cursor:pointer;color:var(--text-muted)}.ev-item .x:hover{color:var(--color-red)}
.ev-item.audit .pi-camera{color:#b26a00}
.ev-empty{color:var(--text-muted);font-size:.78rem;padding:.2rem}
.ev-tools{display:flex;gap:.25rem;margin-top:.2rem}
.ev-hint{color:#8a5a00;margin-top:.2rem}
.ev-subj{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}
.f-evnote{width:100%;margin-top:.35rem;font-size:.78rem}
.ev-group{margin-bottom:.75rem}.ev-group>b{display:block;font-size:.8rem;margin-bottom:.25rem;color:var(--text-secondary)}
.ev-opt{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.4rem;padding:.3rem .4rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.82rem}
.ev-opt:hover{background:var(--bg-hover)}.ev-opt small{grid-column:3;color:var(--text-muted);font-size:.7rem}
.arc-grid{grid-template-columns:14rem 1fr 1.6fr}
.final-banner{display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;border-radius:var(--radius-lg);background:#eceff1;border:1px solid #b0bec5;margin-bottom:.75rem;font-size:.85rem}
[data-theme=dark] .final-banner{background:#2a3338;border-color:#455a64}

.is-locked .seg.vseg button,.is-locked .seg.sevseg button{pointer-events:none;opacity:.75}
.is-locked .chip .x,.is-locked .ev-item .x,.is-locked .ms-box{pointer-events:none}
.is-locked .chip .x,.is-locked .ev-item .x{display:none}

.rep-doc{max-width:60rem;margin:0 auto}
.rep-doc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}
.rep-paper{margin-bottom:0}
.rep-paper.folded{max-height:9rem;overflow:hidden;position:relative;cursor:pointer}
.rep-paper.folded::after{content:'…點一下展開第 1～6 章';position:absolute;left:0;right:0;bottom:0;padding:2.5rem 0 .6rem;text-align:center;font-size:.8rem;color:var(--text-muted);background:linear-gradient(to bottom,transparent,var(--bg-elevated,#fff) 60%)}
[data-theme=dark] .rep-paper.folded::after{background:linear-gradient(to bottom,transparent,var(--bg-elevated,#1e2426) 60%)}
.rep-edit-paper{border-top:2px dashed var(--border-medium)}
.rep-edit-paper textarea{width:100%;font-family:inherit;font-size:.95rem;line-height:1.7;padding:.75rem;text-indent:0}


.att-summary{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem;padding:.6rem .8rem;border:1px dashed var(--border-medium);border-radius:var(--radius-md);font-size:.85rem;text-indent:0}
#dlg-preview .dialog{max-width:none;width:calc(100vw - 3rem);height:calc(100vh - 3rem);display:flex;flex-direction:column}
#dlg-preview .pv-body{flex:1;overflow:auto;background:var(--bg-page,#e9edef);padding:1.5rem}
[data-theme=dark] #dlg-preview .pv-body{background:#141a1c}
.pv-page{margin:0 auto 1.5rem;position:relative;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.pv-page.portrait{width:min(52rem,100%);min-height:72rem;box-sizing:border-box}
.pv-page.landscape{width:min(72rem,100%);min-height:52rem;padding:1.5rem 1.8rem;box-sizing:border-box}
.pv-pageno{position:absolute;bottom:.8rem;left:0;right:0;text-align:center;font-size:.72rem;color:var(--text-muted)}
.att-table{width:100%;table-layout:fixed;border-collapse:collapse}
.att-table th,.att-table td{border:1px solid #999;padding:.25rem .35rem;font-size:.72rem;line-height:1.35;vertical-align:top;overflow-wrap:anywhere;white-space:pre-wrap}
.att-table th{background:#eef1f3;text-align:center;white-space:normal}
[data-theme=dark] .att-table th{background:#2a3338}
.att-table tr.nm-row td{background:rgba(192,57,43,.06)}
.att-table .vcell{text-align:center;font-weight:600;white-space:nowrap}.att-table .vcell.nm{color:#9f1d1d}.att-table .vcell.na{color:#546e7a}
.att-table.no-fr th:last-child,.att-table.no-fr td:last-child,.att-table.no-fr col:last-child{display:none}

/* ── 第四輪：左樹到 AO、中間一條 AO ── */
.tnode.l2{padding:.3rem .5rem .3rem 2.4rem;font-size:.8rem;display:flex;align-items:center;gap:.4rem;cursor:pointer;border-radius:var(--radius-sm)}
.tnode.l2:hover{background:var(--bg-hover)}
.tnode.l2.sel{background:var(--bg-active);font-weight:600}
.tnode.l2 .lbl{color:var(--accent);font-weight:600;min-width:1.6rem}
.tnode.l2 .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tnode.l1 .bdg{margin-left:auto}
.tnode.l1 .chev{color:var(--text-muted);font-size:.7rem;margin-left:.2rem}
.ao-page{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1.1rem 1.4rem}
.ao-page-head{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.9rem}
.ao-page-head .lbl{font-size:1.2rem;font-weight:700;color:var(--accent)}
.ao-page-head .txt{flex:1;font-size:1rem;line-height:1.5}
.ao-page-head .txt small{display:block;color:var(--text-muted);font-size:.8rem}
.ao-sec{margin-top:1rem}
.ao-sec>.form-label{font-size:.9rem;font-weight:600;margin-bottom:.4rem;display:flex;align-items:center;gap:.5rem}
.ao-sec>.form-label small{font-weight:400;color:var(--text-muted);font-size:.75rem}
.ao-two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:1000px){.ao-two{grid-template-columns:1fr}}
.ao-sec textarea,.ao-sec input{width:100%;font-size:.9rem}
.plan-ref{margin:0}
.ao-nav{display:flex;justify-content:space-between;align-items:center;margin-top:1.2rem;gap:.5rem;flex-wrap:wrap}
.ao-nav .pos{font-size:.8rem;color:var(--text-muted)}
.arc-risk{margin-top:0}
.rep-only{max-width:60rem;margin:0 auto}
.rep-only textarea{width:100%;font-family:inherit;font-size:.95rem;line-height:1.7;padding:.9rem;min-height:26rem}
.pv-landscape-tag{position:absolute;top:.6rem;right:.9rem;font-size:.7rem;color:var(--text-muted);border:1px solid var(--border-medium);border-radius:999px;padding:.05rem .5rem}

.risk-toggle{margin-top:.6rem}

/* 樹：判定膠囊固定欄寬、右對齊，族群／控制項／AO 三層同一款 */
.tnode .vcol{margin-left:auto;width:3.4rem;display:flex;justify-content:center;flex-shrink:0}
.tnode .chev-slot{width:.9rem;flex-shrink:0;display:flex;justify-content:center}
.tnode .chev-slot .pi{font-size:.65rem;color:var(--text-muted)}
.tnode .vcol .vb.sm{width:100%;justify-content:center;padding:.08rem 0;font-size:.68rem;border-radius:4px}
.tnode .nm{flex:1}
.tnode.fam .nm b{margin-right:.2rem}
.tnode.l1>.dot{display:none}

.req{color:var(--color-red);font-weight:600}

/* 樹：判定燈號放最前面（顏色＋形狀），hover 看結果與全文；AO 文字最多兩行 */
.vd{width:.7rem;height:.7rem;border-radius:50%;flex-shrink:0;box-sizing:border-box;position:relative;align-self:flex-start;margin-top:.32rem}
.vd.v-met{background:#1e8a4c}
.vd.v-nm{background:#c62828}
.vd.v-na{background:#fff;border:1.5px solid #78909c}
.vd.v-na::after{content:'';position:absolute;left:50%;top:-1px;bottom:-1px;width:1.5px;background:#78909c;transform:translateX(-50%) rotate(45deg)}
.vd.v-none{background:transparent;border:1.5px solid #90a4ae}
[data-theme=dark] .vd.v-na{background:transparent}
.tnode{align-items:flex-start}
.tnode.fam .vd{margin-top:.28rem}
.tnode.l2 .lbl{align-self:flex-start;margin-top:.05rem}
.tnode.l2 .nm{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.tnode.l2{padding-top:.35rem;padding-bottom:.35rem}
.tnode .nm small{max-width:none}
.tnode .chev-slot{align-self:flex-start;margin-top:.2rem}
.tree-legend{display:flex;gap:.7rem;flex-wrap:wrap;font-size:.7rem;color:var(--text-muted);margin:.35rem 0 .2rem}
.tree-legend span{display:inline-flex;align-items:center;gap:.25rem}
.tree-legend .vd{margin-top:0;align-self:center}

.vd[data-vtip]:hover::before{content:attr(data-vtip);position:absolute;left:-.3rem;top:calc(100% + 6px);background:rgba(15,23,42,.94);color:#fff;font-size:.72rem;line-height:1.45;padding:.35rem .55rem;border-radius:var(--radius-sm);white-space:pre-wrap;width:max-content;max-width:18rem;z-index:60;pointer-events:none;font-weight:400}

/* 控制項總覽 */
.co-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:.8rem 1rem;margin:.6rem 0 1rem;background:var(--bg-card)}
.co-verdict{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.co-lbl{font-weight:600;font-size:.9rem}
.co-why{font-size:.85rem;color:var(--text-secondary)}
.co-counts{display:flex;gap:1rem;font-size:.82rem;color:var(--text-secondary)}
.co-counts b{color:var(--text-primary);margin-left:.15rem}
.co-table{width:100%;border-collapse:collapse;font-size:.84rem}
.co-table th{text-align:left;font-weight:600;font-size:.78rem;color:var(--text-muted);padding:.45rem .5rem;border-bottom:1px solid var(--border-medium)}
.co-table td{padding:.55rem .5rem;border-bottom:1px solid var(--border-light);vertical-align:top}
.co-table tbody tr{cursor:pointer}
.co-table tbody tr:hover{background:var(--bg-hover)}
.co-ao-lbl{color:var(--accent);font-weight:600;margin-right:.35rem}
.co-fd{color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.back-ctrl{color:var(--text-muted);margin-right:.2rem;display:inline-flex;align-items:center}
.back-ctrl:hover{color:var(--accent)}
.co-table th:nth-child(1){width:38%}.co-table th:nth-child(2){width:5.5rem}.co-table th:nth-child(4){width:5rem}.co-table th:nth-child(5){width:1.2rem}

/* 佐證：依任務分組、勾選採用 */
.ev-list{padding:0;gap:0;background:var(--bg-card)}
.ev-task{padding:.5rem .7rem;border-bottom:1px solid var(--border-light)}
.ev-task:last-child{border-bottom:0}
.ev-task-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.25rem}
.ev-task-head .tk-name{font-weight:600;font-size:.85rem}
.ev-task-head .tk-meta{font-size:.75rem;color:var(--text-muted)}
.ev-row{display:flex;align-items:flex-start;gap:.5rem;padding:.3rem 0 .3rem .2rem;font-size:.85rem;cursor:pointer}
.ev-row input{margin-top:.2rem}
.ev-row .ev-ic{margin-top:.2rem;color:var(--text-secondary);font-size:.85rem;width:1rem;text-align:center}
.ev-row .nm{flex:1;min-width:0;color:var(--text-primary);text-decoration:none}
.ev-row a.nm:hover{color:var(--accent);text-decoration:underline}
.ev-row .nm.cm{font-size:.82rem;line-height:1.5;color:var(--text-secondary)}
.ev-row .nm.cm b{color:var(--text-primary);font-weight:600}
.ev-row .src{white-space:nowrap;color:var(--text-muted);font-size:.74rem;margin-top:.15rem}
.ev-row.off .nm,.ev-row.off .src,.ev-row.off .ev-ic{opacity:.45}
.ev-row.off a.nm{text-decoration:line-through}
.ev-cm-toggle{font-size:.78rem;color:var(--text-secondary);cursor:pointer;padding:.3rem 0 .1rem .2rem;display:flex;align-items:center;gap:.35rem}
.ev-cm-toggle:hover{color:var(--accent)}
.ev-cm-toggle .pi{font-size:.65rem}
.ev-count{font-weight:400}

.ev-cm-list{margin:.2rem 0 .1rem 1.2rem;padding:.4rem .6rem;background:var(--bg-hover);border-radius:var(--radius-md)}
.ev-cm{font-size:.8rem;color:var(--text-secondary);padding:.25rem 0;line-height:1.5}
.ev-cm+.ev-cm{border-top:1px solid var(--border-light)}
.ev-cm b{color:var(--text-primary);font-weight:600}.ev-cm small{color:var(--text-muted)}

.ev-task-head{gap:1.2rem;flex-wrap:wrap;font-size:.82rem}
.ev-task-head .tk-f{display:inline-flex;align-items:baseline;gap:.4rem;color:var(--text-primary)}
.ev-task-head .tk-l{color:var(--text-muted);font-size:.75rem}

.ev-list{padding:.2rem .7rem}
.ev-row{border-bottom:1px solid var(--border-light);padding:.45rem 0}
.ev-row:last-child{border-bottom:0}
.ev-tag{font-size:.7rem;color:var(--text-secondary);border:1px solid var(--border-medium);border-radius:999px;padding:0 .45rem;margin-top:.12rem;white-space:nowrap}
