:root{--bg: #f0f4f8;--panel: #ffffff;--panel2: #f7f9fc;--line: #e2e8f0;--line2: #cbd5e1;--text: #1e293b;--muted: #64748b;--accent: #2563eb;--accent2: #7c3aed;--green: #16a34a;--amber: #d97706;--red: #dc2626;--chip: #f1f5f9;--radius: 10px;--mono: "SF Mono", "Cascadia Code", Consolas, monospace}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}header{display:flex;align-items:center;justify-content:space-between;padding:11px 22px;border-bottom:1px solid var(--line);background:var(--panel);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px}.logo{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 1px 2px #2563eb40}.logo svg{width:18px;height:18px}h1{margin:0;font-size:17px;font-weight:800;letter-spacing:-.3px;color:var(--text)}.tag{margin:1px 0 0;color:var(--muted);font-size:11.5px}.graph-badge{background:var(--chip);border:1px solid var(--line);padding:5px 12px;border-radius:20px;font-size:11.5px;color:var(--muted);cursor:default;font-weight:500}.layout{display:grid;grid-template-columns:310px 1fr;height:calc(100vh - 56px)}.sidebar{border-right:1px solid var(--line);overflow-y:auto;padding:14px;background:#eef2f7}.detail{overflow-y:auto;padding:22px 28px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card h2{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700}.filedrop{display:flex;align-items:center;justify-content:center;text-align:center;border:1.5px dashed var(--line2);border-radius:var(--radius);padding:20px 12px;color:var(--muted);cursor:pointer;transition:.15s;font-size:13px;background:var(--panel2)}.filedrop:hover,.filedrop.drag{border-color:var(--accent);color:var(--accent);background:#eff6ff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:.12s;font-weight:500}.btn:hover:not(:disabled){border-color:var(--accent);background:#f0f6ff;color:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;width:100%;margin-top:10px}.btn.primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.btn.good{background:var(--green);border-color:#15803d;color:#fff}.btn.good:hover:not(:disabled){background:#15803d}.btn.warn{background:var(--amber);border-color:#b45309;color:#fff}.btn.warn:hover:not(:disabled){background:#b45309}.btn.danger{background:transparent;border-color:var(--red);color:var(--red)}.btn.danger:hover:not(:disabled){background:#fef2f2}.btn.sm{padding:4px 10px;font-size:12px}.hint{color:var(--muted);font-size:11.5px;margin-top:10px;line-height:1.55}.record-list,.queue-list{list-style:none;margin:0;padding:0}.record-list li,.queue-list li{padding:9px 10px;border-radius:8px;cursor:pointer;margin-bottom:4px;border:1px solid var(--line);background:var(--panel);transition:.12s}.record-list li:hover{border-color:var(--line2);background:var(--panel2)}.record-list li.active{border-color:var(--accent);background:#eff6ff}.record-list .r-name{font-weight:600;font-size:13px;color:var(--text)}.record-list .r-meta{color:var(--muted);font-size:11.5px;margin-top:2px}.pill{background:var(--red);color:#fff;border-radius:20px;padding:1px 7px;font-size:11px;margin-left:5px;font-weight:600}.queue-list li{font-size:12px}.queue-list .q-concept{font-weight:600;color:var(--text)}.queue-list .q-val{color:var(--muted)}.state{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.state.needs_review,.state.preflight{background:#fef3c7;color:#92400e}.state.resolved,.state.confirmed,.state.awaiting_activation{background:#dcfce7;color:#14532d}.state.rejected,.state.failed{background:#fee2e2;color:#991b1b}.state.resolving,.state.generating,.state.extracted,.state.activating{background:#dbeafe;color:#1e40af}.state.ingested,.state.parsed{background:var(--chip);color:var(--muted)}.detail h2.rec-title{margin:0 0 3px;font-size:20px;font-weight:700;color:var(--text)}.sub{color:var(--muted);margin:0 0 16px;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.section{margin-bottom:20px}.section>h3{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:7px;margin:0 0 12px;font-weight:700;display:flex;align-items:center;gap:8px}table.kv{width:100%;border-collapse:collapse}table.kv td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}table.kv td.k{color:var(--muted);width:40%;font-size:12px;font-weight:500}.mono{font-family:var(--mono);font-size:12px}.flag{border:1px solid var(--line);border-left:3px solid var(--line2);padding:10px 12px;margin-bottom:7px;background:var(--panel);border-radius:0 8px 8px 0}.flag.block,.flag.danger{border-left-color:var(--red);background:#fff5f5;border-color:#fecaca}.flag.warn{border-left-color:var(--amber);background:#fffbeb;border-color:#fde68a}.flag.good{border-left-color:var(--green);background:#f0fdf4;border-color:#bbf7d0}.flag.overridden{opacity:.55}.flag.selected-tab{background:#eff6ff;border-left-color:var(--accent);border-color:#bfdbfe}.good-txt{color:var(--green);font-weight:600}.flag .f-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.flag .f-check{font-weight:600;font-size:12.5px;color:var(--text)}.flag .f-msg{color:var(--text);font-size:12.5px;margin-top:4px}.flag .loop-tag{font-size:10px;background:#ede9fe;padding:2px 8px;border-radius:10px;color:var(--accent2);font-weight:700;letter-spacing:.3px}.res{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:8px;background:var(--panel);transition:border-color .12s}.res:hover{border-color:var(--line2)}.res.needs_review{border-color:#fbbf24;background:#fffdf0}.res.resolved{border-color:#86efac;background:#f6fef9}.res.rejected{border-color:#fca5a5;background:#fff8f8}.res .r-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.res .concept{font-weight:700;font-size:13px;color:var(--text)}.res .conf{font-family:var(--mono);font-size:11.5px;color:var(--muted)}.res .raw{color:var(--muted);font-size:12.5px;margin:5px 0 8px}.candidates{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.cand{border:1px solid var(--line);border-radius:20px;padding:4px 12px;font-size:12px;cursor:pointer;background:var(--chip);transition:.12s;font-weight:500;color:var(--text)}.cand:hover{border-color:var(--accent);background:#eff6ff;color:var(--accent)}.cand.chosen{border-color:var(--green);background:#dcfce7;color:#15803d;font-weight:600}.cand .cscore{color:var(--muted);font-size:10.5px;margin-left:5px}.cand .noapi{color:var(--red);font-size:10px;margin-left:5px;font-weight:600}.res-actions{display:flex;gap:8px;margin-top:8px;align-items:center}.res-actions input[type=text]{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 10px;font-size:12px;transition:.12s}.res-actions input[type=text]:focus{outline:none;border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 2px #2563eb1a}.evidence{list-style:none;padding:0;margin:0}.evidence li{padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px;display:flex;gap:10px;align-items:center}.evidence li:last-child{border-bottom:none}.strength{font-size:10px;padding:2px 8px;border-radius:10px;text-transform:uppercase;font-weight:700;letter-spacing:.3px}.strength.strong{background:#dcfce7;color:#14532d}.strength.moderate{background:#fef3c7;color:#92400e}.strength.weak{background:var(--chip);color:var(--muted)}.scorebar{display:flex;gap:8px;margin:10px 0}.scorebar .sb{flex:1;text-align:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 8px;transition:.12s}.scorebar .sb.win{border-color:var(--accent);background:#eff6ff;box-shadow:0 0 0 1px var(--accent)}.scorebar .sb .p{font-size:11px;color:var(--muted);font-weight:500;margin-bottom:4px}.scorebar .sb .v{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--text)}.scorebar .sb.win .v{color:var(--accent)}pre.artifact{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:14px;overflow-x:auto;font-family:var(--mono);font-size:11.5px;max-height:340px;color:var(--text);line-height:1.6}.tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.tab{padding:5px 12px;border:1px solid var(--line);border-radius:7px;cursor:pointer;font-size:12px;background:var(--panel2);color:var(--muted);font-weight:500;transition:.12s}.tab:hover{border-color:var(--accent);color:var(--accent)}.tab.active{border-color:var(--accent);color:var(--accent);background:#eff6ff;font-weight:600}.audit{list-style:none;padding:0;margin:0;font-size:12px}.audit li{padding:6px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:baseline}.audit li:last-child{border-bottom:none}.audit .a-actor{font-size:10px;padding:2px 7px;border-radius:8px;background:var(--chip);font-weight:700;flex-shrink:0}.audit .a-actor.human{background:#ede9fe;color:#6d28d9}.audit .a-actor.agent{background:#dbeafe;color:#1d4ed8}.actionbar{display:flex;gap:10px;margin:0 0 18px;flex-wrap:wrap;align-items:center}.toast{position:fixed;bottom:22px;right:22px;background:var(--text);color:#fff;padding:11px 18px;border-radius:10px;box-shadow:0 8px 32px #0000002e;z-index:50;max-width:380px;font-size:13px;font-weight:500}.toast.err{background:var(--red)}.tier{display:flex;gap:8px;align-items:center;padding:6px 0;font-size:12.5px;border-bottom:1px solid var(--line)}.tier:last-child{border-bottom:none}.tier .badge{font-size:10px;padding:2px 8px;border-radius:8px;background:var(--chip);font-weight:600;color:var(--muted)}.tier .badge.synthetic{background:#ede9fe;color:var(--accent2)}.muted{color:var(--muted)}.warnbox{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 14px;font-size:12.5px;margin-bottom:12px;color:#92400e}.pipeline-steps{display:flex;align-items:center;margin:0 0 20px;overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;gap:0}.pstep{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:80px;cursor:pointer;padding:7px 10px;border-radius:8px;transition:background .12s;-webkit-user-select:none;user-select:none}.pstep:hover{background:var(--panel2)}.pstep.current{background:#eff6ff;outline:1.5px solid var(--accent)}.ps-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid var(--line);background:var(--chip);color:var(--muted);transition:.12s}.ps-icon svg{width:13px;height:13px}.pstep.done .ps-icon{border-color:var(--green);background:#dcfce7;color:#15803d}.pstep.active .ps-icon{border-color:var(--accent);background:#dbeafe;color:#1d4ed8}.pstep.blocked .ps-icon{border-color:var(--amber);background:#fef3c7;color:#92400e}.pstep.current .ps-icon{box-shadow:0 0 0 3px #2563eb26}.ps-label{font-size:11.5px;font-weight:600;color:var(--muted);text-align:center;white-space:nowrap}.pstep.done .ps-label{color:#15803d}.pstep.active .ps-label{color:#1d4ed8}.pstep.blocked .ps-label{color:#92400e}.pstep.current .ps-label{color:var(--text)}.ps-sub{font-size:9.5px;color:var(--muted);font-weight:500}.ps-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;border-radius:10px;padding:0 5px;font-size:10px;font-weight:700;margin-left:4px;min-width:16px;line-height:16px}.ps-conn{flex:1;height:2px;background:var(--line);min-width:20px}.ps-conn.done{background:#86efac}.wb-item{margin-bottom:4px}.wb-header{display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:8px;cursor:pointer;transition:background .12s;border:1px solid transparent}.wb-header:hover{background:var(--panel2);border-color:var(--line)}.wb-item.open>.wb-header{background:#eff6ff;border-color:#bfdbfe}.wb-icon{color:var(--muted);width:12px;height:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .15s}.wb-icon svg{width:12px;height:12px}.wb-icon.open{transform:rotate(90deg)}.wb-name{font-weight:600;font-size:12.5px;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-meta{font-size:11px;color:var(--muted);flex-shrink:0}.wb-tabs{padding:2px 0 4px 16px}.wb-tab{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:7px;cursor:pointer;margin-bottom:2px;border:1px solid transparent;transition:.12s}.wb-tab:hover{background:var(--panel2);border-color:var(--line)}.wb-tab.active{background:#eff6ff;border-color:var(--accent)}.wb-tab.unprocessed{cursor:default}.wb-tab.unprocessed:hover{background:transparent;border-color:transparent}.wb-tab-name{font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-rejected-note{font-size:11px;color:var(--muted);padding:4px 8px}.res-custom-input{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}.res-custom-input input[type=text]{flex:1;min-width:140px;padding:5px 9px;border:1.5px solid var(--line2);border-radius:6px;font-size:12.5px;background:#fff;color:var(--text)}.res-custom-input input[type=text]:focus{outline:none;border-color:var(--accent)}.rcg{margin-bottom:18px}.rcg-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:8px 8px 0 0;border-bottom:2px solid var(--line2)}.rcg-header.has-pending{border-bottom-color:var(--amber);background:#fffdf5}.rcg-name{font-weight:700;font-size:13px;color:var(--text)}.rcg-count{font-size:11px;background:var(--chip);border-radius:10px;padding:1px 8px;color:var(--muted);font-weight:600}.rcg-pending{font-size:11px;background:#fef3c7;color:#92400e;border-radius:10px;padding:1px 8px;font-weight:700}.rcg-sdf-col{margin-left:auto;font-size:10.5px;font-family:var(--mono);background:#eff6ff;color:var(--accent);border:1px solid #bfdbfe;border-radius:6px;padding:2px 8px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rcg-body{border:1px solid var(--line);border-top:none;border-radius:0 0 8px 8px;padding:8px;background:var(--panel)}.rcg-body .res:last-child{margin-bottom:0}.sdf-pack-info{background:#f0f6ff;border:1px solid #bfdbfe;border-radius:6px;padding:7px 12px;font-size:11.5px;color:#1e40af;margin-bottom:8px;display:flex;align-items:flex-start;gap:8px;line-height:1.5}.sdf-pack-info b{font-weight:700}.res-adset-label{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--accent);background:#4c8dff12;border-radius:5px;padding:4px 10px;margin:4px 0 7px}.res-adset-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.res-status{font-size:11px;border-radius:10px;padding:2px 8px;font-weight:600}.res-status.needs_review{background:#fef3c7;color:#92400e}.res-status.auto,.res-status.resolved{background:#dcfce7;color:#15803d}.res-status.rejected{background:#fee2e2;color:#b91c1c}.res-note{font-size:12px;color:var(--muted);margin:4px 0 6px;line-height:1.5}.cand-multi{margin:8px 0 4px}.cand-multi-label{font-size:11px;color:var(--muted);margin-bottom:6px;font-weight:600}.cand-multi-grid{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.cand-check{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:7px;cursor:pointer;border:1.5px solid transparent;font-size:12.5px;transition:background .1s,border-color .1s}.cand-check:hover{background:var(--panel2);border-color:var(--line)}.cand-check.pre-checked{background:#f0fdf4;border-color:#86efac}.cand-check.pre-checked:hover{background:#dcfce7}.cand-check input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.cand-chk-label{flex:1}.ad-tag{background:#64748b1a;color:var(--muted);font-size:10.5px}.sdf-panel{margin-top:0}.sdf-tabs{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}.sdf-tab-btn{padding:4px 10px;border-radius:6px 6px 0 0;font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--panel2);color:var(--muted);cursor:pointer;border-bottom:none;transition:.12s}.sdf-tab-btn.active{background:var(--panel);color:var(--accent);border-color:var(--accent)}.sdf-table-wrap{border:1px solid var(--line);border-radius:0 8px 8px;overflow:hidden}.sdf-table-wrap.hidden{display:none}.sdf-table-actions{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel2);border-bottom:1px solid var(--line)}.sdf-edit-hint{color:var(--muted)}.sdf-table-container{overflow-x:auto;max-height:320px;overflow-y:auto}.sdf-table{border-collapse:collapse;width:100%;font-size:12px}.sdf-table th{background:var(--panel2);color:var(--muted);font-size:11px;font-weight:700;padding:6px 10px;border:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1}.sdf-table td{padding:5px 10px;border:1px solid var(--line);min-width:80px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdf-table td[contenteditable]:focus{outline:2px solid var(--accent);background:#fffbeb;white-space:normal}.sdf-table tr:nth-child(2n) td{background:var(--panel2)}.sdf-other{padding:8px 0;display:flex;gap:8px}.wb-del{margin-left:auto;flex-shrink:0;width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s}.wb-header:hover .wb-del{opacity:1}.wb-del:hover{background:#fee2e2;color:var(--red)}.wb-del svg{width:11px;height:11px}.conf-note{font-size:11px;color:var(--accent);cursor:help;margin-left:4px}.btn svg{width:13px;height:13px;flex-shrink:0}.all-resolved-tag{display:inline-flex;align-items:center;gap:4px;color:var(--green);font-size:11px;font-weight:700}.all-resolved-tag svg{width:12px;height:12px}details{border:1px solid var(--line);border-radius:8px;background:var(--panel)}details>summary{cursor:pointer;list-style:none;padding:8px 12px;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";width:7px;height:7px;flex-shrink:0;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(-45deg);transition:transform .12s}details[open]>summary:before{transform:rotate(45deg)}details>summary:hover{color:var(--accent)}.explain-stats{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 14px}.estat{flex:1;min-width:110px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-align:center}.estat.danger{border-color:#fecaca;background:#fff5f5}.estat.warn{border-color:#fde68a;background:#fffbeb}.estat-v{display:block;font-family:var(--mono);font-size:19px;font-weight:700;color:var(--text)}.estat.danger .estat-v{color:var(--red)}.estat.warn .estat-v{color:var(--amber)}.estat-l{display:block;font-size:10.5px;color:var(--muted);margin-top:3px;font-weight:500}.explain-adset{margin-bottom:10px;padding:0}.explain-adset>summary{font-weight:700;font-size:13px;padding:10px 12px;background:var(--panel2);border-radius:8px 8px 0 0}.explain-adset[open]>summary{border-bottom:1px solid var(--line);border-radius:8px 8px 0 0}.explain-adset>.explain-table-wrap{border:none}.explain-table-wrap{overflow-x:auto;border-radius:0 0 8px 8px}table.explain-table{width:100%;border-collapse:collapse;font-size:12.5px}table.explain-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:7px 10px;border-bottom:1.5px solid var(--line2);white-space:nowrap}table.explain-table td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.explain-table tr:last-child td{border-bottom:none}table.explain-table tr.needs_review td{background:#fffdf0}.explain-raw{color:var(--muted);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explain-resolved{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.explain-arrow{color:var(--line2);text-align:center;padding:7px 2px!important}.explain-details{border:none;background:transparent}.explain-details>summary{padding:2px 8px;font-size:11px;color:var(--accent);font-weight:600;display:inline-flex}.explain-details>summary:before{border-color:var(--accent)}.explain-chain{padding:8px 10px 4px;font-size:12px;display:flex;flex-direction:column;gap:5px}.explain-cands .candidates{margin-top:4px}.ad-app-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}table.ad-app-table{width:100%;border-collapse:collapse;font-size:12.5px}table.ad-app-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:7px 10px;border-bottom:1.5px solid var(--line2);background:var(--panel2);white-space:nowrap}table.ad-app-table td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.ad-app-table tr:last-child td{border-bottom:none}tr.ad-app-row{cursor:pointer}tr.ad-app-row:hover td{background:var(--panel2)}tr.ad-app-row.needs_review td{background:#fffdf0}tr.ad-app-row.rejected td{color:var(--muted)}.ad-app-caret{width:18px;color:var(--muted);text-align:center;padding:7px 4px!important}.ad-app-name{font-weight:600;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-app-mapped{color:var(--muted);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr.ad-app-detail td{padding:0 10px 10px;border-bottom:1px solid var(--line);background:var(--panel2)}tr.ad-app-detail .res{border:none;box-shadow:none;margin:0}.ad-app-detail-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700;padding:10px 0 4px}.cp-panel{padding-top:4px}.cp-field{font-size:12.5px;padding:3px 0}.cp-label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}.cp-links{margin-top:4px}.link-cand{display:flex;align-items:center;gap:10px;padding:6px 8px;margin:3px 0;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer}.link-cand:hover{border-color:var(--line2)}.link-cand.chosen{border-color:#86efac;background:#f6fef9}.link-cand a{flex-shrink:0;font-weight:600;color:var(--accent);white-space:nowrap}.link-cand-url{flex:1;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-cand-badge{flex-shrink:0;font-size:11px;font-weight:600;color:var(--muted)}.link-cand.chosen .link-cand-badge{color:#16a34a}.link-cand.ok,.link-cand.bad{cursor:default}.link-cand.ok{border-color:#86efac;background:#f6fef9}.link-cand.bad{border-color:#fecaca;background:#fff5f5}.link-cand-badge.good{color:#16a34a}.link-cand-badge.danger{color:var(--red)}.cp-add{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 0 2px}.cp-add .camp-input{flex:1;min-width:260px;font-size:12px}.slot-line{display:flex;gap:6px;flex-wrap:wrap;margin:3px 0}.slot-chip{font-size:11.5px;font-weight:600;border-radius:20px;padding:1px 8px;border:1px solid var(--line)}.slot-chip.ok,.slot-chip.optional{color:#16a34a;border-color:#86efac;background:#f6fef9}.slot-chip.missing{color:var(--red);border-color:#fecaca;background:#fff5f5}.slot-chip.acknowledged{color:var(--amber);border-color:#fde68a;background:#fffbeb}.resolve-section{margin-bottom:20px}.resolve-section-header{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:7px;margin:0 0 12px;font-weight:700}.resolve-section-header:hover{color:var(--text)}.resolve-section-caret{color:var(--line2);font-size:11px;width:10px;flex-shrink:0}.resolve-section-title{font-size:13px;text-transform:none;letter-spacing:normal;color:var(--text);font-weight:700}.resolve-section-body{padding-left:2px}.adset-matrix-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}table.adset-matrix{width:100%;border-collapse:collapse;font-size:12.5px}table.adset-matrix th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:7px 10px;border-bottom:1.5px solid var(--line2);background:var(--panel2);white-space:nowrap}table.adset-matrix td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.adset-matrix tr:last-child td{border-bottom:none}.adset-matrix-name{font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr.adset-matrix-row.has-pending td{background:#fffdf0}.adset-theme-label{padding:6px 10px;font-size:12px;font-weight:600;color:var(--text);background:var(--panel2);border-bottom:1px solid var(--line2);border-top:1px solid var(--line2)}tr.adset-theme-row:first-child .adset-theme-label{border-top:none}.adset-cell{cursor:pointer;white-space:nowrap}.adset-cell:hover{background:var(--panel2)}.adset-cell.na{cursor:default}.adset-cell.na:hover{background:transparent}.cell-na{color:var(--line2)}.cell-caret{color:var(--muted);font-size:10px;margin-right:4px}.cell-concept-tag{font-size:10px;background:var(--chip);color:var(--muted);border-radius:8px;padding:1px 6px;margin-right:5px;font-weight:600;white-space:nowrap}.cell-value{font-weight:500}.adset-cell.needs_review .cell-value{color:#92400e}.adset-cell.rejected .cell-value{color:var(--muted);text-decoration:line-through}.cell-pending-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);margin-left:6px;vertical-align:middle}tr.adset-matrix-detail td{padding:0 10px 10px;border-bottom:1px solid var(--line);background:var(--panel2)}tr.adset-matrix-detail .res{border:none;box-shadow:none;margin:0}.freeform-list{margin:8px 0 4px}.freeform-toggle{gap:6px}.ff-toggle-caret{font-size:10px;color:var(--muted)}.freeform-table-wrap{margin-top:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);padding:8px;max-width:460px}.freeform-table-scroll{max-height:280px;overflow-y:auto;overflow-x:auto}table.freeform-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12.5px;background:var(--panel)}table.freeform-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:4px 6px;border-bottom:1.5px solid var(--line2);background:var(--panel2);position:sticky;top:0}table.freeform-table th:nth-child(2),table.freeform-table td:nth-child(2){width:108px}table.freeform-table th:nth-child(3),table.freeform-table td:nth-child(3){width:26px}table.freeform-table td{padding:2px 6px;border-bottom:1px solid var(--line)}table.freeform-table tr:last-child td{border-bottom:none}.ff-text{width:100%;min-width:0;box-sizing:border-box;border:1px solid transparent;background:transparent;color:var(--text);padding:3px 5px;border-radius:5px;font-size:12.5px;font-family:inherit}.ff-text:hover{border-color:var(--line)}.ff-text:focus{outline:none;border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 2px #2563eb1a}.ff-type{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:2px 4px;border-radius:5px;font-size:11.5px;cursor:pointer}.ff-remove{border:none;background:transparent;color:var(--muted);cursor:pointer;width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center}.ff-remove:hover{background:#fee2e2;color:var(--red)}.ff-remove svg{width:10px;height:10px}.freeform-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.ff-actions-spacer{flex:1}.freeform-actions .btn{width:auto;margin-top:0}.single-value-editor{display:flex;align-items:center;gap:8px;margin-top:4px}.single-value-editor .btn{width:auto;margin-top:0}.single-value-editor .sv-input{flex:1;max-width:220px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;background:var(--panel);color:var(--text)}.mockapi-block{margin-bottom:18px}.mockapi-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.mockapi-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:10px;font-size:12px}.mockapi-ops{display:flex;flex-direction:column;gap:6px}details.mockapi-op summary,details.mockapi-batch>summary{font-size:12.5px}.mockapi-op-idx{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--chip);color:var(--muted);font-size:10px;font-weight:700;flex-shrink:0}.mockapi-op-label{font-weight:600;color:var(--text)}.mockapi-op-key{color:var(--muted);font-size:10.5px;margin-left:auto}details.mockapi-op pre.artifact{margin:0;border-radius:0 0 8px 8px;border-top:none;max-height:280px}details.mockapi-batch{margin-bottom:8px;background:var(--panel2)}details.mockapi-batch>summary{font-weight:700}details.mockapi-batch .mockapi-ops{padding:0 10px 10px}details.mockapi-batch details.mockapi-op{background:var(--panel)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:40px 36px;width:360px}.login-brand{text-align:center;margin-bottom:28px}.login-logo{display:inline-block;width:44px;height:44px;border-radius:10px;background:var(--accent);color:#fff;font-size:22px;font-weight:700;line-height:44px;text-align:center;margin-bottom:8px}.login-brand h1{font-size:20px;margin:0 0 4px}.login-form{display:flex;flex-direction:column;gap:16px}.login-form label{display:flex;flex-direction:column;gap:5px;font-size:13px}.login-form input{padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px}.login-form input:focus{outline:none;border-color:var(--accent)}.login-error{color:var(--danger);font-size:13px;padding:8px;background:#ff505014;border-radius:6px}.app{display:flex;flex-direction:column;height:100vh}.top-bar{display:flex;align-items:center;gap:12px;padding:0 16px;height:44px;border-bottom:1px solid var(--line);background:var(--surface);flex-shrink:0}.brand{font-weight:700;font-size:15px;color:var(--text)}.layout{display:flex;flex:1;overflow:hidden}.main{flex:1;overflow-y:auto;padding:20px}.hidden{display:none!important}details.route-block{margin-bottom:16px}details.route-block>summary{justify-content:space-between;padding:12px 14px;background:var(--panel2);border-radius:8px 8px 0 0}details.route-block[open]>summary{border-bottom:1px solid var(--line);border-radius:8px 8px 0 0}.route-block-title{display:flex;flex-direction:column;gap:2px}.route-block-title .name{font-weight:700;font-size:13.5px;color:var(--text)}.route-block-title .desc{font-size:11px;color:var(--muted);font-weight:400}.route-block-body{padding:14px}.route-block-body .mockapi-block,.route-block-body .mockapi-meta{margin-bottom:0}.app-nav{display:flex;align-items:center;gap:4px;flex:1;margin-left:18px}.nav-link{border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);padding:7px 11px;font:inherit;font-weight:600;cursor:pointer}.nav-link:hover{background:var(--panel2);color:var(--text)}.nav-link[aria-current=page]{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.top-bar-user{display:flex;align-items:center;gap:8px}.signed-in-name{font-size:12px;font-weight:600;color:var(--text)}.role-badges{display:flex;gap:4px}.role-badge{border-radius:12px;background:var(--chip);color:var(--muted);padding:2px 7px;font-size:10px;white-space:nowrap}.app>.admin-page{flex:1;width:100%;max-width:1280px;align-self:center}.admin-page{min-width:0}.admin-page-heading,.detail-heading,.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-page-heading{margin:2px 0 20px}.admin-page-heading h1{font-size:23px}.admin-page-heading .sub{margin:4px 0 0}.primary-action,.dialog-actions .btn,.form-actions .btn,.target-actions .btn{width:auto;margin-top:0}.admin-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:18px;box-shadow:0 1px 2px #0f172a08}.admin-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(170px,1fr);gap:12px;margin-bottom:16px}.account-filters{grid-template-columns:minmax(160px,1fr) minmax(150px,1fr) minmax(220px,2fr)}.admin-filters label,.dialog-card label,.target-account-field{display:flex;flex-direction:column;gap:5px;color:var(--text);font-size:12px;font-weight:600}.admin-filters input,.admin-filters select,.dialog-card input,.dialog-card select,.dialog-card textarea,.target-account-field select{width:100%;min-height:38px;border:1px solid var(--line2);border-radius:7px;background:var(--panel);color:var(--text);padding:8px 10px;font:inherit;font-weight:400}.dialog-card textarea{min-height:96px;resize:vertical}.admin-filters input:focus,.admin-filters select:focus,.dialog-card input:focus,.dialog-card select:focus,.dialog-card textarea:focus,.target-account-field select:focus{outline:2px solid rgba(37,99,235,.22);border-color:var(--accent)}.admin-table{width:100%;border-collapse:collapse;text-align:left}.admin-table th{padding:9px 10px;background:var(--panel2);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.45px}.admin-table td{padding:11px 10px;border-top:1px solid var(--line);vertical-align:middle}.admin-table th:first-child,.admin-table td:first-child{padding-left:12px}.table-scroll{width:100%;overflow-x:auto}.status-pill{display:inline-flex;align-items:center;border-radius:12px;padding:3px 9px;font-size:10px;line-height:1.4;font-weight:700;white-space:nowrap}.status-pill.active{background:#dcfce7;color:#166534}.status-pill.inactive{background:#f1f5f9;color:#475569}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}.btn.ghost{padding:5px 9px;border-color:transparent;background:transparent;color:var(--accent)}.btn.ghost:hover:not(:disabled){background:#eff6ff}.danger-text{color:var(--red)!important}.empty-state{padding:32px 16px;text-align:center;color:var(--muted)}.empty-state h2{color:var(--text);font-size:15px;margin:0 0 5px}.empty-state p{margin:4px 0}.empty-state.compact{padding:16px;border:1px dashed var(--line2);border-radius:8px}.skeleton-rows{display:grid;gap:10px}.skeleton-rows span,.skeleton-line{height:38px;border-radius:6px;background:linear-gradient(90deg,#f1f5f9 25%,#e7edf5,#f1f5f9 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-line{display:flex;align-items:center;height:44px;padding:0 12px;color:var(--muted);font-size:12px}@keyframes skeleton-shimmer{to{background-position:-200% 0}}.breadcrumb{color:var(--muted);font-size:11px;margin:0 0 5px}.detail-heading{align-items:flex-start;margin-bottom:14px}.detail-heading h2{margin:0;font-size:19px}.detail-heading .sub{margin:3px 0 0}.user-settings{border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:20px}.user-settings fieldset{border:0;padding:0;margin:0}.user-settings legend{margin-bottom:8px;font-weight:700}.check-row{display:flex;align-items:flex-start;gap:9px;padding:8px 0}.check-row input{margin-top:3px;accent-color:var(--accent)}.check-row span{display:flex;flex-direction:column;gap:2px}.check-row small{color:var(--muted);font-size:11px;font-weight:400}.form-actions,.dialog-actions,.target-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:14px}.form-hint{margin:5px 0;color:var(--muted);font-size:11px}.section-heading-row{margin:16px 0 10px}.section-heading-row h3{margin:0;font-size:14px}.section-heading-row .form-hint{margin:3px 0 0}.platform-groups{display:grid;gap:12px}.platform-group{border:1px solid var(--line);border-radius:8px;padding:12px}.platform-group h4{margin:0 0 6px;font-size:12px;color:var(--muted)}.assignment-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.assignment-row>div:first-child{display:flex;flex-direction:column;flex:1;gap:2px}.assignment-row .mono{color:var(--muted)}.inline-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;margin:8px 0;border:1px solid;border-radius:7px;font-size:12px}.inline-alert.danger{color:#991b1b;background:#fff5f5;border-color:#fecaca}.inline-alert.warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.inline-alert.info{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.inline-alert .btn{flex-shrink:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:20px;background:#0f172a7a}.dialog-card{width:min(100%,480px);max-height:calc(100vh - 40px);overflow-y:auto;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 20px 55px #0f172a3d}.dialog-card h2{margin:0 0 8px;font-size:18px}.dialog-card p{color:var(--muted);font-size:12px}.dialog-card form{display:grid;gap:13px;margin-top:16px}.dialog-card small{color:var(--muted);font-size:10px;font-weight:400}.dialog-actions{justify-content:flex-end}.target-access-panel{padding:18px;margin:12px 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.target-access-panel .section-heading-row{margin-top:0}.platform-readonly{border-radius:12px;padding:4px 10px;background:var(--chip);color:var(--muted);font-size:11px;font-weight:600}.target-account-field{max-width:600px;margin:14px 0 8px}.selected-target{margin:8px 0;color:var(--muted);font-size:12px}.access-status{margin:10px 0;padding:9px 11px;border-radius:7px;background:var(--panel2);color:var(--muted);font-size:12px}.access-status.allowed{background:#f0fdf4;color:#166534}.access-status.denied,.access-status.unavailable{background:#fff5f5;color:#991b1b}.access-status.checking{background:#eff6ff;color:#1e40af}.target-actions{justify-content:flex-start;margin:10px 0 4px}.activation-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:20px}.activation-result{margin:14px 0;padding:16px;border:1px solid;border-radius:9px}.activation-result h3{margin:0 0 5px;font-size:15px}.activation-result p{margin:5px 0}.activation-result.success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.activation-result.failure{color:#991b1b;background:#fff5f5;border-color:#fecaca}.activation-result.failure .inline-alert{color:#991b1b}.created-resources{margin-top:12px;padding:10px;border-radius:7px;background:#ffffffbf;color:var(--text)}.created-resources h4{margin:0 0 4px;font-size:12px}.created-resources ul,.created-resources-list{margin:7px 0;padding-left:20px;font-family:var(--mono);font-size:11px;overflow-wrap:anywhere}.activation-audit{margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 800px){.top-bar{height:auto;min-height:56px;flex-wrap:wrap;padding:8px 12px}.app-nav{order:3;flex-basis:100%;margin:0}.top-bar-user{margin-left:auto}.app .graph-badge{display:none}.layout{min-height:0;height:auto;overflow:auto}.sidebar{width:250px}.admin-filters,.account-filters{grid-template-columns:1fr 1fr}.admin-filters label:first-child{grid-column:1 / -1}}@media (max-width: 560px){.top-bar-user .role-badges{display:none}.top-bar .brand{font-size:14px}.nav-link{padding:6px 8px;font-size:11px}.app>.admin-page{padding:18px 14px}.admin-page-heading,.section-heading-row{align-items:flex-start;flex-direction:column}.admin-page-heading{gap:10px}.admin-filters,.account-filters{grid-template-columns:1fr}.admin-filters label:first-child{grid-column:auto}.admin-card{padding:12px}.assignment-row{align-items:flex-start;flex-wrap:wrap}.assignment-row .row-actions{width:100%;justify-content:flex-start}.activation-actions{justify-content:stretch}.activation-actions .btn{flex:1}.target-access-panel{padding:13px}}:root{--surface: var(--panel)}.app{background:var(--bg)}.top-bar{height:56px;padding:0 22px;gap:14px;background:var(--panel)}.top-bar .brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:17px;letter-spacing:-.3px}.top-bar .brand:before{content:"";width:32px;height:32px;border-radius:9px;flex-shrink:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 18L12 6L18 18' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='6' r='2.1' fill='white'/%3E%3Ccircle cx='6' cy='18' r='2.1' fill='white'/%3E%3Ccircle cx='18' cy='18' r='2.1' fill='white'/%3E%3C/svg%3E") center / 18px no-repeat,linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 1px 2px #2563eb40}.app .graph-badge{position:fixed;top:13px;right:122px;z-index:30}.sidebar{width:310px;flex-shrink:0}.main{padding:22px 28px}.pipeline-steps>div{display:contents}.sidebar .upload-section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.sidebar .upload-section:before{content:"1 · Ingest";display:block;margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700}.upload-section .drop{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px 12px;border:1.5px dashed var(--line2);border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:.15s;font-size:13px;background:var(--panel2)}.upload-section .drop:hover,.upload-section .drop.drag{border-color:var(--accent);color:var(--accent);background:#eff6ff}.sidebar .upload-section:after{content:"Sheet validation runs first. Any qualifying tabs appear below for processing.";display:block;color:var(--muted);font-size:11.5px;margin-top:10px;line-height:1.55}.sidebar .nav-header{display:flex;align-items:center;gap:8px;padding:14px 14px 10px;background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700}.sidebar .nav-header .badge{background:var(--accent);color:#fff;border-radius:20px;padding:1px 7px;font-size:11px;font-weight:600;letter-spacing:0}.sidebar>.wb-item{margin:0;padding:0 8px;background:var(--panel);border:1px solid var(--line);border-top:0;border-bottom:0}.sidebar>.wb-item:last-of-type{border-bottom:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);padding-bottom:8px}.sidebar>p.muted{margin:0;padding:4px 14px 14px!important;background:var(--panel);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius)}tr.adset-theme-row.unassigned .adset-theme-label{background:#fef2f2;color:var(--red)}.camp-name{cursor:text;font-family:var(--mono);font-size:11.5px;word-break:break-all;border-bottom:1px dashed transparent}.camp-name:hover{border-bottom-color:var(--muted)}.camp-budget{margin-left:12px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.camp-budget.split{color:var(--warn, #b45309)}.budget-level{font-size:12px;margin:4px 0 6px}.budget-allocation{font-size:12px;margin:4px 0 6px;font-variant-numeric:tabular-nums}.budget-allocation .btn{margin-left:8px}.budget-line{display:inline-flex;flex-wrap:wrap;gap:0;margin-left:12px;font-size:11.5px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.adset-theme-label .budget-line{display:flex;margin:3px 0 0}.budget-line .bl-part{padding:0 8px;border-left:1px solid var(--line2)}.budget-line .bl-part:first-child{padding-left:0;border-left:none}.budget-line .bl-daily{color:var(--text);font-weight:600}.bl-edit{cursor:pointer;border-bottom:1px dashed var(--line2)}.bl-edit:hover{color:var(--accent);border-bottom-color:var(--accent)}.bl-ok{color:var(--green)}.bl-warn{color:var(--amber);font-weight:600}.bl-bad{color:var(--red);font-weight:600}.sv-preview{font-size:11.5px;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}.budget-summary{margin:10px 0}.budget-summary .bs-title{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}.bs-table{font-variant-numeric:tabular-nums}.bs-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:600;padding:4px 8px 4px 0}.bs-table td{padding:4px 8px 4px 0;font-size:12px}.bs-table .bs-name{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.budget-line{margin-left:0;display:flex}.bs-table .bs-name{max-width:140px}}.camp-name:after{content:" ✎";color:var(--muted);font-family:var(--sans, inherit);font-size:.9em}.camp-name.missing{color:var(--red);font-style:italic}.rec-camp-name{font-family:inherit;font-size:inherit;word-break:break-word}.rec-title .camp-input{font-family:inherit;font-size:15px;max-width:900px}.rec-count{font-size:.65em;font-weight:500;color:var(--muted);margin-left:8px;white-space:nowrap}.camp-input{width:100%;font-family:var(--mono);font-size:11.5px;padding:3px 6px;border:1px solid var(--accent);border-radius:4px}.camp-ctl{margin-top:3px}.camp-chip{display:inline-block;font-size:10.5px;font-weight:500;color:var(--muted);padding:1px 6px;border:1px solid var(--line2);border-radius:10px;cursor:pointer;max-width:170px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.camp-chip:hover{color:var(--accent);border-color:var(--accent)}.camp-chip.unassigned{color:var(--red);border-color:var(--red)}.camp-select{font-size:11px;max-width:260px}.camp-hint{font-size:10.5px;font-weight:400;color:#92400e;white-space:normal;margin-top:3px}.camp-link{color:var(--accent);cursor:pointer;text-decoration:underline}tr.camp-suspect td.adset-matrix-name{box-shadow:inset 3px 0 0 var(--amber)}.asset-head{font-size:11.5px;color:var(--muted);margin:4px 0 6px}.asset-total{font-weight:700;color:var(--text)}.asset-total.bad{color:var(--red)}.asset-list{list-style:decimal;margin:4px 0 6px 18px;padding:0}.asset-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:3px 4px;border-radius:4px;font-size:12.5px}.asset-item:hover{background:var(--panel2)}.asset-item.dropped .asset-text{color:var(--muted);text-decoration:line-through}.asset-item.bad{background:#fef2f2}.asset-text{flex:1 1 260px;cursor:text;min-width:0;overflow-wrap:anywhere}.asset-input{flex:1 1 260px;font-size:12.5px;padding:2px 6px;border:1px solid var(--accent);border-radius:4px}.asset-count{font-family:var(--mono);font-size:10.5px;color:var(--muted);min-width:40px;text-align:right}.asset-count.over{color:var(--red);font-weight:700}.asset-pin{font-size:10.5px}.asset-tag{font-size:10px;padding:0 5px;border-radius:8px;background:#fffbeb;color:#92400e;border:1px solid #fde68a}.asset-del{cursor:pointer;color:var(--muted);padding:0 4px;font-size:14px;line-height:1}.asset-del:hover{color:var(--red)}.asset-problem{flex-basis:100%;font-size:11px;color:var(--red);padding-left:22px}.asset-foot{display:flex;align-items:center;gap:10px;margin-bottom:4px}.asset-foot .btn{width:auto;flex:0 0 auto}.asset-add{color:var(--accent);cursor:pointer;font-size:12px;white-space:nowrap}.asset-badges{display:inline-flex;align-items:center;gap:6px}.asset-title{font-weight:700;color:var(--text);font-size:12.5px}.asset-shared{font-size:11.5px;color:var(--accent);margin:2px 0 4px}details.asset-shared summary{cursor:pointer}.asset-shared-list{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0 2px;font-size:11px;color:var(--muted)}tr.ad-app-detail .res.asset-card{border:1px solid var(--line);border-radius:8px;margin:6px 0 8px}tr.ad-app-detail .res.asset-card.needs_review{border-color:#fbbf24;border-left:3px solid var(--amber)}tr.ad-app-detail .res.asset-card.resolved{border-color:#86efac}.asset-compact{display:flex;align-items:baseline;gap:8px;padding:5px 8px;margin:2px 0;border-bottom:1px solid var(--line);font-size:12.5px;min-width:0}.ac-label{flex:0 0 120px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}.ac-ok{color:#16a34a;font-weight:700}.ac-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-count,.ac-shared{flex:0 0 auto;font-size:10.5px;color:var(--muted);background:var(--chip);border-radius:8px;padding:1px 7px;white-space:nowrap}.ac-edit,.ac-close{flex:0 0 auto;font-size:11.5px}.ac-close{margin-left:8px}.ad-app-copy{white-space:nowrap;font-size:12px}.copy-seg.bad{color:var(--red);font-weight:600}.copy-seg.pending{color:#92400e}.copy-sep{color:var(--line2);margin:0 6px}.ff-bulk-wrap{margin-top:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);padding:8px;max-width:460px}.ff-bulk-input{width:100%;box-sizing:border-box;resize:vertical;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:6px 8px;border-radius:5px;font-size:12px;font-family:inherit;line-height:1.5}.ff-bulk-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2563eb1a}.fv{cursor:text;border-bottom:1px dashed transparent;white-space:pre-line}.fv:hover{border-bottom-color:var(--muted)}.fv-empty{color:var(--line2);font-style:italic}.fv-inherited{color:var(--muted);font-style:italic;white-space:pre-line}.adset-cell.extra{white-space:nowrap}.pr-v{white-space:pre-line}.explain-row.sheet-row td{background:var(--panel2)}.sheet-tag{margin-left:6px;background:#64748b1f;color:var(--muted)}.site-footer{flex-shrink:0;padding:10px 16px;border-top:1px solid var(--line);background:var(--panel)}.site-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin:0;padding:0;list-style:none;font-size:12.5px;color:var(--muted)}.site-footer-links a{color:inherit;text-decoration:none}.site-footer-links a:hover,.site-footer-links a:focus-visible{color:var(--text);text-decoration:underline}.login-page{flex-direction:column}.login-page>.login-card{margin:auto}.login-page>.site-footer{width:100%}
