:root{
  --bg:#f5f7f7;
  --surface:#ffffff;
  --surface-soft:#f8fbfa;
  --line:#e6ecea;
  --line-strong:#dbe5e2;
  --text:#16211f;
  --text-2:#5e6c68;
  --text-3:#8a9894;
  --brand:#17a88f;
  --brand-2:#2e8fdb;
  --brand-soft:#e9f8f4;
  --danger:#e45545;
  --danger-soft:#fff0ee;
  --warning:#e89a34;
  --warning-soft:#fff6e9;
  --info:#4b86d9;
  --info-soft:#eef5ff;
  --shadow:0 8px 26px rgba(33,63,56,.055), 0 1px 2px rgba(33,63,56,.035);
  --radius:16px;
  --sidebar:196px;
  --topbar:64px;
}

/* Backend action surfaces and explicit unavailable states. */
.action-dialog{
  width:min(720px,calc(100vw - 28px));max-width:none;padding:0;border:1px solid #d7e6e0;
  border-radius:14px;background:#fff;color:#344640;box-shadow:0 24px 70px rgba(25,62,52,.22)
}
.action-dialog::backdrop{background:rgba(22,49,43,.28);backdrop-filter:blur(2px)}
.action-dialog-form{display:flex;flex-direction:column;max-height:min(86vh,760px)}
.action-dialog-form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 15px;border-bottom:1px solid var(--line);background:#fbfdfc}
.action-dialog-form>header h2{margin:4px 0 4px;font-size:18px;color:#253d36}
.action-dialog-form>header p{margin:0;max-width:560px;font-size:12px;line-height:1.55;color:#81908a}
.dialog-close{width:32px;height:32px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:#71807a;font-size:20px;line-height:1;cursor:pointer}
.dialog-close:hover{background:#f2f8f5;color:#2b4d42}
.action-dialog-body{overflow:auto;padding:18px 22px 4px}
.action-dialog-form>footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line);background:#fbfdfc}
.dialog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.dialog-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.dialog-field-wide{grid-column:1/-1}
.dialog-field>span{font-size:12px;font-weight:700;color:#41564e}
.dialog-field>small{font-size:10.5px;color:#98a49f}
.dialog-field input,.dialog-field select,.dialog-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:#344740;font:inherit;font-size:12px;padding:9px 10px;outline:none}
.dialog-field input,.dialog-field select{height:36px;padding-top:0;padding-bottom:0}
.dialog-field textarea{resize:vertical;line-height:1.5;min-height:70px}
.dialog-field input:focus,.dialog-field select:focus,.dialog-field textarea:focus{border-color:#7ac8b7;box-shadow:0 0 0 3px #e9f8f3}
.dialog-check{display:flex;align-items:center;gap:8px;min-height:34px;font-size:12px;color:#53665f}
.dialog-check input{accent-color:#25aa8e}
.dialog-note{margin:14px 0 8px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:#f6faf8;color:#71817a;font-size:11px;line-height:1.55}
.dialog-note.warning{border-color:#efd7bf;background:#fff8ef;color:#9a7045}
.resource-empty{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;color:#8c9a94}
.resource-empty>i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#f0f6f3;color:#7eaaa0;font-style:normal}
.resource-empty>i svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.resource-empty strong{font-size:13px;color:#566861}
.resource-empty span{font-size:11px;line-height:1.5}
.setting-unavailable{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border:1px dashed #d9e3df;border-radius:7px;background:#fafcfb;color:#98a49f;font-size:11px;white-space:nowrap}
.settings-code-block{margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fbfa;color:#60716a;font:11px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow:auto}
.checkpoint-list{display:flex;flex-direction:column;gap:8px;padding:18px 24px}
.checkpoint-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fbfdfc}
.checkpoint-row strong{display:block;font-size:12px;color:#45574f;word-break:break-all}
.checkpoint-row small{display:block;margin-top:4px;font-size:10.5px;color:#93a09a}
@media(max-width:640px){
  .action-dialog{width:calc(100vw - 20px);border-radius:12px}
  .action-dialog-form>header,.action-dialog-body,.action-dialog-form>footer{padding-left:15px;padding-right:15px}
  .dialog-form-grid{grid-template-columns:1fr;gap:12px}
  .dialog-field-wide{grid-column:auto}
  .action-dialog-form>footer{position:sticky;bottom:0}
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,"SF Pro Display","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
button,select{font:inherit}
button{cursor:pointer}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.app-shell{min-height:100vh;display:flex}
.sidebar{width:var(--sidebar);height:100vh;position:fixed;inset:0 auto 0 0;background:#fbfcfc;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}
.brand{height:var(--topbar);display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--line)}
.brand-mark{width:34px;height:38px;display:grid;place-items:center}
.brand-mark svg{width:34px;height:34px;fill:#e8f8f4;stroke:var(--brand);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px rgba(23,168,143,.16))}
.brand strong{display:block;font-size:20px;letter-spacing:.05em;line-height:1}.brand span{display:block;font-size:11.5px;letter-spacing:.14em;color:var(--text-3);margin-top:5px;text-transform:uppercase}
.nav-list{padding:16px 10px;display:flex;flex-direction:column;gap:5px}
.nav-item{height:44px;border:0;background:transparent;border-radius:10px;padding:0 12px;display:flex;align-items:center;gap:11px;color:#40504c;position:relative;transition:.2s ease;text-align:left}
.nav-item svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.nav-item span{font-size:14px;font-weight:530}.nav-item:hover{background:#f1f6f4;color:#253733}.nav-item.active{background:var(--brand-soft);color:#0d8d77;font-weight:650}.nav-item.active::before{content:"";position:absolute;left:-10px;width:3px;height:22px;border-radius:0 4px 4px 0;background:var(--brand)}.nav-item em{margin-left:auto;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--danger);color:white;font-style:normal;font-size:12px;display:grid;place-items:center}
.side-status{margin:auto 14px 16px;padding:12px;border:1px solid var(--line);border-radius:12px;background:white;display:flex;align-items:flex-start;gap:9px}.status-dot{width:8px;height:8px;border-radius:50%;background:#35ba93;box-shadow:0 0 0 5px #e9f8f4;margin-top:4px}.side-status strong{display:block;font-size:13px;font-weight:650}.side-status span{display:block;font-size:12px;color:var(--text-3);margin-top:4px}
.workspace{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-height:100vh}
.topbar{height:var(--topbar);position:sticky;top:0;z-index:15;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar-title{display:flex;align-items:center;gap:10px}.topbar-title>span{font-size:16px;font-weight:670}.topbar-title>i{height:14px;width:1px;background:var(--line-strong)}.topbar-title>small{padding:4px 7px;border:1px solid var(--line);border-radius:6px;color:var(--text-3);font-size:12px;background:#fbfcfc}.topbar-title>small.live{color:#0e8d77;background:#ecfaf6;border-color:#d0efe7}.mobile-menu{display:none;border:0;background:transparent;font-size:20px}.topbar-actions{display:flex;align-items:center;gap:10px}.select-wrap select{appearance:none;border:1px solid var(--line-strong);background:white;height:36px;border-radius:9px;padding:0 32px 0 12px;color:#40504c;outline:none;background-image:linear-gradient(45deg,transparent 50%,#73817d 50%),linear-gradient(135deg,#73817d 50%,transparent 50%);background-position:calc(100% - 16px) 15px,calc(100% - 12px) 15px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.select-wrap.compact select{font-size:13px}.icon-button,.notification-button{width:36px;height:36px;border:1px solid transparent;background:transparent;border-radius:9px;display:grid;place-items:center;position:relative;color:#52615e}.icon-button:hover,.notification-button:hover{background:#f3f7f6}.icon-button svg,.notification-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.notification-button span{position:absolute;right:-2px;top:-4px;background:var(--danger);color:#fff;font-size:11.5px;min-width:16px;height:16px;border-radius:9px;padding:0 4px;display:grid;place-items:center;border:2px solid white}.operator{height:38px;margin-left:4px;border-left:1px solid var(--line);padding-left:14px;display:flex;align-items:center;gap:8px;font-size:13px;color:#3f4e4a}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e8efed;color:#61706c;font-weight:700}.operator b{font-size:13px;color:#8b9794}
.content{padding:30px 30px 44px;max-width:1660px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.eyebrow{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650;color:#118c78;margin-bottom:8px}.eyebrow span{width:5px;height:5px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px #e7f7f3}.page-heading h1{font-size:28px;line-height:1.2;margin:0 0 7px;letter-spacing:-.02em}.page-heading p{margin:0;color:var(--text-2);font-size:13.5px}.heading-actions{display:flex;align-items:center;gap:10px}.segmented{display:flex;background:#eef3f1;padding:3px;border-radius:10px}.segmented button{height:32px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:#6d7a77;font-size:13px}.segmented button.active{background:white;color:#263632;box-shadow:0 1px 6px rgba(26,53,47,.08);font-weight:650}.primary-button{height:38px;padding:0 14px;border:0;border-radius:10px;background:#172c28;color:#fff;font-size:13px;font-weight:650;display:flex;align-items:center;gap:8px;box-shadow:0 6px 16px rgba(23,44,40,.14)}.primary-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px}.metric-card{padding:17px 18px;min-height:112px;position:relative;overflow:hidden}.metric-card::after{content:"";position:absolute;width:78px;height:78px;border-radius:50%;right:-24px;top:-26px;background:linear-gradient(140deg,rgba(23,168,143,.06),rgba(46,143,219,.015))}.metric-top{display:flex;justify-content:space-between;align-items:center}.metric-top span{font-size:13px;color:#687672}.metric-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f1f8f6;color:#258e7b}.metric-icon.danger{background:#fff2ef;color:var(--danger)}.metric-icon.warning{background:#fff7ea;color:var(--warning)}.metric-icon.info{background:#eef5ff;color:var(--info)}.metric-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.metric-main{display:flex;align-items:baseline;gap:8px;margin-top:10px}.metric-main strong{font-size:28px;line-height:1;font-weight:720;letter-spacing:-.035em}.metric-main em{font-style:normal;font-size:12px;color:#14907a;background:#eaf8f4;padding:3px 6px;border-radius:6px}.metric-main em.down{color:#d05d50;background:#fff0ed}.metric-foot{margin-top:8px;color:#93a09d;font-size:12px}
.primary-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(360px,.85fr);gap:12px;margin-bottom:12px}.graph-card{padding:20px 20px 14px;min-height:438px}.trend-card{padding:20px;min-height:438px}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.card-header h2{font-size:16px;margin:0 0 5px;font-weight:680}.card-header p{font-size:12.5px;color:var(--text-3);margin:0}.card-kicker{display:inline-block;font-size:11.5px;letter-spacing:.15em;color:#15a58d;font-weight:800;margin-bottom:7px;text-transform:uppercase}.compact-header{align-items:center}.live-pill{height:26px;padding:0 9px;border:1px solid #d8eee8;border-radius:8px;background:#f3fbf8;color:#148c78;font-size:11.5px;font-weight:750;letter-spacing:.08em;display:flex;align-items:center;gap:6px}.live-pill i{width:6px;height:6px;border-radius:50%;background:#28b994;box-shadow:0 0 0 4px #dff5ef}.graph-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;height:350px;margin-top:8px}.graph-visual{position:relative;min-width:0;overflow:hidden}.graph-visual::before{content:"";position:absolute;inset:20px 20px 0;background:radial-gradient(circle at 50% 48%,rgba(34,181,155,.12),rgba(34,181,155,.035) 27%,transparent 54%)}.graph-lines{position:absolute;inset:0;width:100%;height:100%}.graph-lines .flow{fill:none;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 9;animation:dash 13s linear infinite}.graph-lines .safe{stroke:url(#lineSafe)}.graph-lines .risk{stroke:url(#lineRisk);stroke-width:2.4}.graph-lines .orbit{fill:none;stroke:#cfebe5;stroke-width:1;stroke-dasharray:2 7}.graph-lines .orbit-b{opacity:.65}.orb-shadow{fill:#e1f6f1;opacity:.7;filter:blur(5px)}.orb{fill:url(#orbFill);stroke:#a8dfd5;stroke-width:1.4}.orb-grid{fill:none;stroke:#72cbbb;stroke-width:1;opacity:.6}.shield-core{fill:#fff;stroke:#159c84;stroke-width:2.4;filter:drop-shadow(0 5px 10px rgba(23,168,143,.16))}.shield-check{fill:none;stroke:#159c84;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}@keyframes dash{to{stroke-dashoffset:-180}}
.graph-node{position:absolute;min-width:132px;height:48px;border:1px solid #dce9e6;border-radius:11px;background:rgba(255,255,255,.95);display:flex;align-items:center;gap:8px;padding:0 10px;box-shadow:0 7px 18px rgba(47,78,71,.06)}.graph-node .node-icon{width:28px;height:28px;border-radius:8px;background:#edf8f5;color:#1d9c85;display:grid;place-items:center}.graph-node svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.graph-node strong{font-size:12.5px;display:block}.graph-node small{font-size:11px;color:#8a9894;display:block;margin-top:2px}.graph-node.risk{border-color:#f3d4ca}.graph-node.risk .node-icon{background:#fff0ec;color:#df6955}.node-top{top:1px;left:50%;transform:translateX(-50%)}.node-left-top{left:8px;top:68px}.node-left-bottom{left:0;bottom:23px}.node-right-top{right:0;top:80px}.node-right-bottom{right:5px;bottom:22px}.graph-center-label{position:absolute;left:50%;top:50%;transform:translate(-50%,41px);text-align:center;pointer-events:none}.graph-center-label strong{font-size:12.5px;display:block}.graph-center-label span{font-size:11px;color:#7d8c88;display:block;margin-top:2px;white-space:nowrap}.graph-insight{border-left:1px solid var(--line);margin:16px 0 8px;padding:10px 0 0 18px}.insight-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.insight-title span{font-size:12.5px;color:#66736f}.insight-title strong{font-size:18px}.risk-route{padding:10px;border-radius:10px;background:#fff8f3;border:1px solid #f5e5d8;margin-bottom:14px}.route-labels{display:flex;align-items:center;gap:5px;font-size:11.5px;color:#6b625c}.route-labels i{font-style:normal;color:#b49a87}.route-bar{height:3px;border-radius:3px;background:#f2e6de;margin:9px 0 7px;overflow:hidden}.route-bar b{display:block;height:100%;background:linear-gradient(90deg,#efa74f,#e55f4f);border-radius:3px}.risk-route small{font-size:10.8px;color:#d55f50;word-break:break-all}.mini-stat{padding:10px 0;border-bottom:1px dashed #e5ecea;display:flex;justify-content:space-between;align-items:center}.mini-stat span{font-size:11.5px;color:#7d8b87}.mini-stat strong{font-size:13px}.subtle-link{font-size:12px;color:#8c9895;font-weight:500}.legend{display:flex;gap:14px;margin:20px 0 8px}.legend span{font-size:11.5px;color:#6f7d79;display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%}.legend i.allow{background:#36b99b}.legend i.ask{background:#eba546}.legend i.deny{background:#e35e4d}.trend-chart{height:210px}.trend-chart svg{width:100%;height:100%;overflow:visible}.chart-grid{stroke:#edf1f0;stroke-width:1}.chart-label{fill:#9aa6a3;font-size:11px}.chart-line{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.chart-area{opacity:.07}.line-allow{stroke:#35af96}.line-ask{stroke:#e7a03e}.line-deny{stroke:#e25749}.decision-summary{margin-top:8px;padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.decision-summary div{border-right:1px solid var(--line);padding-right:7px}.decision-summary div:last-child{border:0}.decision-summary span{display:block;font-size:11px;color:#8d9a96}.decision-summary strong{font-size:18px;display:block;margin-top:3px}.decision-summary small{font-size:11px;color:#9ca7a4}
.secondary-grid{display:grid;grid-template-columns:minmax(310px,.8fr) minmax(0,1.8fr);gap:12px;margin-bottom:12px}.risk-card,.events-card,.pending-card,.rules-card{padding:18px 20px}.risk-card,.events-card{min-height:310px}.ghost-button{border:0;background:#f4f7f6;color:#6c7b77;font-size:12px;padding:7px 9px;border-radius:8px}.risk-bars{margin-top:20px}.risk-row{display:grid;grid-template-columns:112px 1fr 42px;gap:11px;align-items:center;margin:17px 0}.risk-row label{font-size:12px;color:#53615e}.risk-row .track{height:6px;border-radius:5px;background:#edf2f0;overflow:hidden}.risk-row .track b{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#63c6b4,#2ca98f)}.risk-row.risk-warn .track b{background:linear-gradient(90deg,#f0c165,#e8a13e)}.risk-row.risk-danger .track b{background:linear-gradient(90deg,#ef9c7b,#e15d4c)}.risk-row strong{text-align:right;font-size:12.5px}.event-table-wrap{overflow:auto;margin-top:12px}.event-table{width:100%;border-collapse:collapse;min-width:700px}.event-table th{text-align:left;font-size:11.5px;font-weight:560;color:#98a39f;padding:10px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.event-table td{font-size:12px;color:#586661;padding:13px 10px;border-bottom:1px solid #edf1f0}.event-table tr{transition:.15s}.event-table tbody tr:hover{background:#fafcfc}.event-table td:nth-child(3){color:#263430;font-weight:560}.tool-chip{display:inline-flex;align-items:center;gap:5px}.tool-chip i{width:21px;height:21px;border-radius:6px;display:grid;place-items:center;background:#eff7f5;color:#2b9d87}.tool-chip svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.risk-tag,.verdict-tag{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:650}.risk-tag.high,.verdict-tag.deny{background:var(--danger-soft);color:#cf5143}.risk-tag.medium,.verdict-tag.ask{background:var(--warning-soft);color:#ce8530}.risk-tag.low,.verdict-tag.allow{background:#eaf8f4;color:#159079}.row-open{width:26px;height:26px;border:0;background:transparent;color:#8b9894;border-radius:7px;display:grid;place-items:center}.row-open:hover{background:#eef3f1}.row-open svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.bottom-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:12px}.pending-card,.rules-card{min-height:246px}.count-badge{font-size:12.5px;min-width:26px;height:26px;border-radius:8px;background:#f1f5f4;display:grid;place-items:center;color:#5c6a66}.pending-list{margin-top:8px}.pending-list button{width:100%;border:0;background:transparent;border-bottom:1px solid var(--line);min-height:56px;padding:7px 2px;display:flex;align-items:center;text-align:left;gap:10px}.pending-list button:last-child{border-bottom:0}.pending-list button:hover{background:#fbfcfc}.pending-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center}.pending-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.pending-icon.danger{background:var(--danger-soft);color:var(--danger)}.pending-icon.warning{background:var(--warning-soft);color:var(--warning)}.pending-icon.info{background:var(--info-soft);color:var(--info)}.pending-list button div{flex:1}.pending-list strong{font-size:12.5px;display:block}.pending-list small{font-size:11.5px;color:#96a19e;display:block;margin-top:4px}.pending-list button>b{font-size:13px}.chevron{width:14px;height:14px;fill:none;stroke:#a1aca9;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.rules-list{margin-top:8px}.rule-row{display:grid;grid-template-columns:26px 1fr 54px 42px;align-items:center;gap:8px;min-height:50px;border-bottom:1px solid var(--line)}.rule-row:last-child{border-bottom:0}.rule-index{font-size:11.5px;color:#a2aca9}.rule-name{font-size:12px;color:#3b4a46;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-hits{text-align:right;font-size:12px;font-weight:700}.rule-rate{text-align:right;font-size:11.5px;color:#80908b}
.drawer-backdrop{position:fixed;inset:0;background:rgba(15,32,28,.18);opacity:0;pointer-events:none;transition:.2s;z-index:40}.drawer-backdrop.open{opacity:1;pointer-events:auto}.event-drawer{position:fixed;right:0;top:0;width:430px;max-width:92vw;height:100vh;background:#fff;z-index:45;box-shadow:-16px 0 50px rgba(32,59,52,.12);transform:translateX(102%);transition:.24s ease;display:flex;flex-direction:column}.event-drawer.open{transform:translateX(0)}.event-drawer header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.drawer-kicker{font-size:11px;letter-spacing:.16em;color:#15927c}.event-drawer h3{margin:3px 0 0;font-size:16px}.event-drawer header button{width:32px;height:32px;border:0;background:#f3f6f5;border-radius:8px;font-size:20px;color:#63716d}.drawer-body{padding:20px 22px;overflow:auto}.drawer-section{margin-bottom:18px}.drawer-section>span{display:block;font-size:11.5px;color:#8d9996;margin-bottom:7px}.drawer-section>strong{font-size:13px}.drawer-code{background:#172823;color:#d7eee8;border-radius:12px;padding:14px;font-size:12px;line-height:1.65;white-space:pre-wrap;word-break:break-word}.drawer-flow{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.drawer-flow span{padding:7px 9px;border-radius:8px;background:#eef7f4;color:#287f70;font-size:11.5px}.drawer-flow i{font-style:normal;color:#a8b3b0}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,12px);background:#172823;color:#fff;padding:10px 14px;border-radius:9px;font-size:12.5px;box-shadow:0 10px 28px rgba(22,42,36,.18);opacity:0;pointer-events:none;transition:.2s;z-index:60}.toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:1280px){:root{--sidebar:174px}.metrics-grid{grid-template-columns:repeat(3,1fr)}.primary-grid{grid-template-columns:1fr}.graph-card,.trend-card{min-height:auto}.trend-card{min-height:390px}.secondary-grid,.bottom-grid{grid-template-columns:1fr}.graph-layout{grid-template-columns:1fr 180px}.content{padding:24px}.topbar{padding:0 24px}}
@media (max-width:820px){:root{--sidebar:0px}.sidebar{transform:translateX(-100%)}.workspace{margin-left:0;width:100%}.mobile-menu{display:block}.topbar{padding:0 14px}.operator span,.select-wrap{display:none}.content{padding:18px 14px 34px}.page-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%;justify-content:space-between}.metrics-grid{grid-template-columns:repeat(2,1fr)}.graph-layout{display:block;height:auto}.graph-visual{height:340px}.graph-insight{border-left:0;border-top:1px solid var(--line);margin-top:4px;padding:14px 0 0}.primary-button{padding:0 11px}.secondary-grid,.bottom-grid{grid-template-columns:1fr}}
@media (max-width:520px){.metrics-grid{grid-template-columns:1fr}.heading-actions{align-items:stretch;flex-direction:column}.segmented{width:max-content}.primary-button{justify-content:center}.graph-card,.trend-card,.risk-card,.events-card,.pending-card,.rules-card{padding:15px}.graph-node{min-width:110px}.graph-node strong{font-size:12px}.graph-node small{font-size:10.5px}.node-left-top,.node-left-bottom{left:0}.node-right-top,.node-right-bottom{right:0}.topbar-title>small{display:none}}

/* ---------------- Attack monitor page ---------------- */
.page-view{display:none}.page-view.active{display:block}.danger-eye{color:#d95f4f}.danger-eye span{background:#e66b5a;box-shadow:0 0 0 5px #fff1ef}
.secondary-button{height:38px;border:1px solid var(--line-strong);background:#fff;color:#465550;border-radius:10px;padding:0 13px;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:620}.secondary-button:hover{background:#f8faf9}.pause-icon{font-size:12.5px;font-weight:800;letter-spacing:-2px;margin-right:2px}.monitor-status{height:38px;border:1px solid #dce9e5;background:#fbfefd;border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 11px;font-size:12px;color:#5b6a65}.monitor-status i{width:8px;height:8px;border-radius:50%;background:#31b795;box-shadow:0 0 0 4px #e7f8f3;animation:monitorPulse 1.8s ease-in-out infinite}.monitor-status b{font-size:12px;color:#93a09c;font-weight:550;padding-left:3px;border-left:1px solid var(--line)}.monitor-status.paused i{background:#e3a047;box-shadow:0 0 0 4px #fff4e5;animation:none}@keyframes monitorPulse{0%,100%{box-shadow:0 0 0 4px #e7f8f3}50%{box-shadow:0 0 0 7px rgba(49,183,149,.08)}}
.attack-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:12px}.attack-metric{padding:16px 17px;min-height:112px;position:relative;overflow:hidden}.attack-metric::after{content:"";position:absolute;right:-20px;top:-28px;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,rgba(23,168,143,.08),transparent 68%);pointer-events:none}.attack-metric.danger::after{background:radial-gradient(circle,rgba(228,85,69,.09),transparent 68%)}.attack-metric.warning::after{background:radial-gradient(circle,rgba(232,154,52,.09),transparent 68%)}.attack-metric-head{display:flex;align-items:center;justify-content:space-between;color:#73817d;font-size:12px}.attack-metric-head i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#eef8f5;color:#1d9e86}.attack-metric.danger .attack-metric-head i{background:var(--danger-soft);color:var(--danger)}.attack-metric.warning .attack-metric-head i{background:var(--warning-soft);color:var(--warning)}.attack-metric-head svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.attack-metric-main{display:flex;align-items:baseline;gap:8px;margin-top:9px}.attack-metric-main strong{font-size:26px;letter-spacing:-.03em}.attack-metric-main em{font-style:normal;font-size:11.5px;font-weight:650;color:#17947e}.attack-metric.danger .attack-metric-main em{color:#d55f50}.attack-metric-foot{font-size:11.5px;color:#9aa5a2;margin-top:5px}
.attack-main-grid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(300px,.72fr);gap:12px;margin-bottom:12px}.attack-chain-card{padding:20px;min-height:548px}.threat-badge{height:28px;border:1px solid #f2d7d2;background:#fff7f5;color:#d65c4d;border-radius:8px;padding:0 9px;display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.03em}.threat-badge span{width:7px;height:7px;border-radius:50%;background:#e26252;box-shadow:0 0 0 4px #ffebe7}.chain-stage{margin-top:15px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fbfdfc 0%,#f8fbfa 100%);padding:18px;min-height:448px;position:relative;overflow:hidden}.chain-stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(126,151,144,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(126,151,144,.045) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,black,transparent 88%);pointer-events:none}.chain-stage-top{display:flex;justify-content:space-between;gap:14px;position:relative;z-index:1}.chain-source-card{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #efdcd7;border-radius:11px;padding:10px 12px;box-shadow:0 4px 14px rgba(50,68,63,.04);max-width:410px}.source-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#fff0ed;color:#de6251;flex:0 0 auto}.source-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.chain-source-card small{display:block;font-size:10.5px;letter-spacing:.11em;color:#d36152;font-weight:720}.chain-source-card strong{display:block;font-size:12.5px;margin-top:2px}.chain-source-card p{margin:4px 0 0;color:#8e7771;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.chain-session-meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.chain-session-meta span{font-size:11px;color:#94a09d}.chain-session-meta strong{font-size:12px;color:#4f5f5a}
.attack-path{display:grid;grid-template-columns:1fr 60px 1fr 60px 1fr 60px 1fr;align-items:center;gap:0;margin:44px 2px 38px;position:relative;z-index:1}.attack-node{min-height:118px;border:1px solid var(--line-strong);border-radius:13px;background:#fff;padding:13px 11px;position:relative;box-shadow:0 4px 16px rgba(31,60,53,.035)}.attack-node>i{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#eef7f4;color:#309c87;font-style:normal;margin-bottom:9px}.attack-node>i svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.attack-node strong{font-size:12px;display:block}.attack-node small{font-size:11px;color:#96a19e;display:block;margin-top:3px}.attack-node em{display:inline-flex;margin-top:10px;font-size:10.5px;font-style:normal;font-weight:750;letter-spacing:.05em;padding:4px 6px;border-radius:5px;background:#edf8f5;color:#188f79}.attack-node.tainted,.attack-node.warning{border-color:#efd8c4}.attack-node.tainted>i,.attack-node.warning>i{background:#fff5e9;color:#d98d36}.attack-node.tainted em,.attack-node.warning em{background:#fff3e5;color:#ce812a}.attack-node.danger{border-color:#efc9c3;box-shadow:0 0 0 3px #fff4f1,0 8px 18px rgba(204,75,58,.06)}.attack-node.danger>i{background:#fff0ed;color:#d95e4e}.attack-node.danger em{background:#ffede9;color:#d25244}.attack-node.sink{border-color:#cfe9e2}.attack-node.sink>i{background:#eaf8f4;color:#16947d}.attack-node.sink em{background:#e6f7f2;color:#138972}.node-step{position:absolute;right:9px;top:9px;font-size:11px;color:#b2bcb9;font-weight:650}.attack-edge{height:2px;background:#dbe6e3;position:relative}.attack-edge::after{content:"";position:absolute;right:-1px;top:-3px;border-left:6px solid #b9c9c5;border-top:4px solid transparent;border-bottom:4px solid transparent}.attack-edge span{position:absolute;left:50%;top:-17px;transform:translateX(-50%);white-space:nowrap;font-size:10.5px;color:#a0aaa7}.attack-edge.hot{background:linear-gradient(90deg,#e8b76a,#df6f55)}.attack-edge.hot::after{border-left-color:#df6f55}.attack-edge.hot span{color:#d17849}.attack-edge.blocked{height:0;border-top:2px dashed #39a98f}.attack-edge.blocked::after{border-left-color:#39a98f}.attack-edge.blocked span{color:#168e79;font-weight:650}.chain-evidence-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;position:relative;z-index:1}.evidence-card{padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.88)}.evidence-card span{display:block;font-size:10.5px;color:#9ba6a3}.evidence-card strong{display:block;margin-top:5px;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence-card small{display:block;margin-top:4px;font-size:10.5px;color:#98a39f;line-height:1.35}.evidence-card.success{border-color:#d4ebe5;background:#f6fcfa}.evidence-card.success strong{color:#148d77}
.attack-side-stack{display:grid;grid-template-rows:1fr auto;gap:12px}.attack-radar-card,.enforcement-card{padding:18px 19px}.attack-radar-card{min-height:380px}.radar-shell{height:225px;display:grid;place-items:center;margin-top:8px}.radar-svg{width:100%;height:100%;overflow:visible}.radar-grid polygon,.radar-grid path{fill:none;stroke:#e6ecea;stroke-width:1}.radar-area{fill:rgba(228,85,69,.1);stroke:#dd6453;stroke-width:1.6}.radar-dots circle{fill:#df6252;stroke:#fff;stroke-width:2}.radar-labels text{font-size:11px;fill:#8a9894}.attack-surface-list{border-top:1px solid var(--line);padding-top:9px}.attack-surface-list div{display:flex;align-items:center;justify-content:space-between;padding:5px 1px;font-size:11.5px}.attack-surface-list span{display:flex;align-items:center;gap:6px;color:#687671}.attack-surface-list i{width:7px;height:7px;border-radius:50%}.attack-surface-list i.red{background:#df6252}.attack-surface-list i.orange{background:#e8a13e}.attack-surface-list i.green{background:#35af96}.attack-surface-list strong{font-size:11.5px}.engine-online{font-size:11px;color:#178e79;display:flex;align-items:center;gap:6px;font-weight:720}.engine-online i{width:7px;height:7px;border-radius:50%;background:#31b795;box-shadow:0 0 0 4px #e7f8f3}.engine-score{display:flex;align-items:baseline;gap:7px;margin:15px 0 13px}.engine-score strong{font-size:25px}.engine-score span{font-size:11px;color:#9aa5a2}.engine-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.engine-grid div{padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.engine-grid span{display:block;font-size:10.5px;color:#9ba6a3}.engine-grid strong{display:block;font-size:11.5px;margin-top:4px}
.attack-feed-card{padding:0;overflow:hidden}.feed-header{padding:18px 20px 15px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.feed-header h2{font-size:14px;margin:3px 0 2px}.feed-header p{margin:0;font-size:11.5px;color:#8d9996}.feed-actions{display:flex;align-items:center;gap:7px}.search-box{height:34px;min-width:230px;border:1px solid var(--line-strong);background:#fff;border-radius:9px;display:flex;align-items:center;padding:0 9px;gap:6px;color:#9ba6a3}.search-box input{border:0;outline:0;background:transparent;width:100%;font-size:12px;color:#394944}.search-box input::placeholder{color:#aeb7b4}.filter-chip{height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#6f7d79;font-size:11.5px}.filter-chip.active{background:#eef8f5;border-color:#d2ece5;color:#118b75;font-weight:650}.attack-feed-head,.attack-feed-row{display:grid;grid-template-columns:78px 150px minmax(230px,1.3fr) minmax(250px,1.25fr) 70px 70px 28px;align-items:center;gap:8px}.attack-feed-head{height:36px;padding:0 20px;background:#fafcfc;border-bottom:1px solid var(--line);font-size:11px;color:#9ca7a4;font-weight:620}.attack-feed-row{min-height:68px;padding:8px 20px;border-bottom:1px solid var(--line);transition:.15s;cursor:pointer}.attack-feed-row:hover{background:#fbfdfc}.attack-feed-row.new-row{animation:newFeed .55s ease-out}@keyframes newFeed{from{background:#fff4ef;transform:translateY(-4px);opacity:.4}to{background:#fff;transform:none;opacity:1}}.feed-time{font-size:11.5px;color:#73817d;font-variant-numeric:tabular-nums}.feed-agent strong{display:block;font-size:11.5px}.feed-agent small{display:block;margin-top:3px;font-size:10.5px;color:#9ba6a3}.feed-event{display:flex;gap:9px;align-items:center}.feed-event>i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#fff1ee;color:#dc6151;flex:0 0 auto}.feed-event>i.ask{background:#fff6e9;color:#d88b32}.feed-event>i.allow{background:#ebf8f4;color:#16947d}.feed-event>i svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.feed-event strong{font-size:11.5px;display:block}.feed-event small{font-size:10.5px;color:#99a4a1;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}.mini-chain{display:flex;align-items:center;gap:4px;overflow:hidden}.mini-chain span{padding:5px 6px;border-radius:6px;background:#f2f6f5;color:#62716c;font-size:10.5px;white-space:nowrap}.mini-chain i{font-style:normal;color:#b1bbb8;font-size:11px}.mini-chain .danger-step{background:#fff0ed;color:#cf5d4f}.mini-chain .safe-step{background:#eaf8f4;color:#168e78}.feed-risk{font-size:11px;font-weight:650}.feed-risk.high{color:#d45647}.feed-risk.medium{color:#cd8732}.feed-risk.low{color:#169079}.feed-open{width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:#9aa5a2;display:grid;place-items:center}.feed-open:hover{background:#eef3f1}.feed-open svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.feed-footer{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.feed-footer span{display:flex;align-items:center;gap:7px;font-size:11px;color:#8e9a97}.feed-footer span i{width:7px;height:7px;border-radius:50%;background:#34b695;box-shadow:0 0 0 4px #e9f8f4}.feed-footer button{border:0;background:transparent;color:#178f79;font-size:11.5px;font-weight:650}
@media(max-width:1400px){.attack-metrics{grid-template-columns:repeat(3,1fr)}.attack-main-grid{grid-template-columns:1fr}.attack-side-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto}.attack-radar-card,.enforcement-card{min-height:0}.attack-feed-head,.attack-feed-row{grid-template-columns:68px 130px minmax(210px,1.2fr) minmax(220px,1fr) 64px 64px 24px}.chain-evidence-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.attack-metrics{grid-template-columns:repeat(2,1fr)}.attack-path{grid-template-columns:1fr;gap:8px;margin:26px 0}.attack-edge{height:28px;width:2px;justify-self:center}.attack-edge::after{right:-3px;top:auto;bottom:-1px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #b9c9c5;border-bottom:0}.attack-edge.hot::after{border-left-color:transparent;border-top-color:#df6f55}.attack-edge.blocked{height:28px;width:0;border-top:0;border-left:2px dashed #39a98f}.attack-edge.blocked::after{border-left-color:transparent;border-top-color:#39a98f}.attack-edge span{top:7px;left:10px;transform:none}.attack-node{min-height:86px}.attack-side-stack{grid-template-columns:1fr}.feed-header{align-items:flex-start;flex-direction:column}.feed-actions{width:100%;flex-wrap:wrap}.search-box{flex:1;min-width:200px}.attack-feed-card{overflow:auto}.attack-feed-head,.attack-feed-row{min-width:900px}.chain-session-meta{display:none}}
@media(max-width:620px){.attack-metrics{grid-template-columns:1fr}.chain-stage-top{display:block}.chain-source-card{max-width:none}.chain-source-card p{max-width:230px}.chain-evidence-grid{grid-template-columns:1fr}.attack-side-stack{display:block}.enforcement-card{margin-top:12px}.attack-heading .heading-actions{gap:8px}.monitor-status{width:100%;justify-content:center}}

/* Event IDs are identifiers, while attack type and outcome carry the scan weight. */
.session-identity strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#227eae}
.session-task strong{color:#1c3931}
.session-risk small{color:#687a73}
html[data-theme="midnight"] .session-identity strong,html[data-theme="graphite"] .session-identity strong{color:#83c8e8}
html[data-theme="midnight"] .session-task strong,html[data-theme="graphite"] .session-task strong{color:#e2eef0}

/* Attack monitor v4: session-first workflow + interactive semantic action graph */
.attack-subview{display:none}.attack-subview.active{display:block}
.session-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px}.session-metric{min-height:106px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.session-metric::after{content:"";position:absolute;width:96px;height:96px;right:-30px;top:-34px;border-radius:50%;background:radial-gradient(circle,rgba(23,168,143,.08),transparent 70%)}.session-metric.danger::after{background:radial-gradient(circle,rgba(228,85,69,.08),transparent 70%)}.session-metric.warning::after{background:radial-gradient(circle,rgba(232,154,52,.08),transparent 70%)}.session-metric>div{position:relative;z-index:1}.session-metric span{display:block;font-size:12.5px;color:#73817d}.session-metric strong{display:block;font-size:28px;line-height:1;margin-top:9px;letter-spacing:-.035em}.session-metric small{display:block;margin-top:8px;font-size:11.5px;color:#9aa5a2}.session-metric>i{width:38px;height:38px;border-radius:11px;background:#eef8f5;color:#17947e;display:grid;place-items:center;position:relative;z-index:1}.session-metric.warning>i{background:#fff6e8;color:#dc9137}.session-metric.danger>i{background:#fff0ed;color:#d95f4f}.session-metric>i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.session-list-card{padding:0;overflow:hidden}.session-list-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:20px 22px 17px;border-bottom:1px solid var(--line)}.session-list-header h2{margin:2px 0 4px;font-size:17px}.session-list-header p{margin:0;font-size:12px;color:#8d9996}.session-list-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.session-search{min-width:260px}.session-search svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.session-table-head,.session-row{display:grid;grid-template-columns:145px 175px minmax(260px,1.55fr) 180px 105px 90px 28px;gap:12px;align-items:center}.session-table-head{height:38px;padding:0 22px;background:#fafcfc;color:#99a4a1;font-size:11px;font-weight:700;letter-spacing:.02em;border-bottom:1px solid var(--line)}.session-row{width:100%;min-height:86px;padding:12px 22px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:inherit;transition:.16s ease;position:relative}.session-row:hover{background:#fbfdfc}.session-row::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:#d9e4e1}.session-row:has(.risk-dot.high)::before{background:#e06a5a}.session-row:has(.risk-dot.medium)::before{background:#e3a146}.session-row:has(.risk-dot.low)::before{background:#35ae93}.session-identity strong{font-size:13px;color:#288bce}.session-identity small,.session-agent small,.session-task small,.session-risk small{display:block;margin-top:5px;color:#9aa5a2;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-agent{display:flex;align-items:center;gap:9px;min-width:0}.session-agent>i{width:31px;height:31px;border-radius:9px;background:#eef7f4;color:#248f7c;display:grid;place-items:center;flex:0 0 auto}.session-agent svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.session-agent strong{font-size:12px}.session-agent span{min-width:0}.session-task{min-width:0}.session-task strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-actions>b{display:block;font-size:11.5px;color:#60706b;margin-bottom:7px}.tool-chip-row{display:flex;gap:4px;overflow:hidden}.tool-chip-row span{font-size:10.5px;padding:4px 6px;border-radius:5px;background:#f0f5f3;color:#6e7c78;white-space:nowrap}.session-risk{position:relative;padding-left:14px}.risk-dot{position:absolute;left:0;top:3px;width:7px;height:7px;border-radius:50%}.risk-dot.high{background:#e15f50;box-shadow:0 0 0 4px #fff0ed}.risk-dot.medium{background:#df9b40;box-shadow:0 0 0 4px #fff5e7}.risk-dot.low{background:#2eaa8e;box-shadow:0 0 0 4px #eaf8f4}.session-risk strong{font-size:11.5px}.session-enter{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;color:#9ba6a3}.session-row:hover .session-enter{background:#eef6f4;color:#158e79}.session-enter svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.session-list-footer{height:50px;padding:0 22px;display:flex;align-items:center;justify-content:space-between}.session-list-footer>span{display:flex;align-items:center;gap:8px;color:#8d9996;font-size:11.5px}.session-list-footer>span i{width:7px;height:7px;border-radius:50%;background:#31b795;box-shadow:0 0 0 4px #e8f8f3}.session-list-footer b{font-weight:550}.session-list-footer button{border:0;background:transparent;color:#118c78;font-size:11.5px;font-weight:680}.session-empty{padding:70px 20px;text-align:center;color:#8f9c98;display:grid;place-items:center;gap:8px}.session-empty svg{width:26px;height:26px;fill:none;stroke:#9cafaa;stroke-width:1.7}.session-empty strong{font-size:13px;color:#60706b}.session-empty span{font-size:11.5px}
.incident-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:13px}.incident-breadcrumb{display:flex;align-items:center;gap:12px}.back-button{height:36px;border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:0 11px;color:#50605b;font-size:12px;display:flex;align-items:center;gap:7px}.back-button:hover{background:#f8faf9}.back-button span{font-size:15px;line-height:1}.breadcrumb-sep{color:#b5bfbc}.incident-breadcrumb>div small{display:block;font-size:11px;color:#98a49f}.incident-breadcrumb>div strong{display:block;font-size:16px;margin-top:2px}.detail-heading-actions{display:flex;align-items:center;gap:8px}.detail-session-select{height:36px;border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:0 30px 0 10px;font-size:12px;color:#50605b}.severity-pill{height:30px;padding:0 10px;border-radius:8px;display:inline-flex;align-items:center;font-size:11.5px;font-weight:750}.severity-pill.high{background:#fff0ed;color:#d45748;border:1px solid #f3d1cb}.severity-pill.medium{background:#fff6e8;color:#cc842d;border:1px solid #f0ddbd}.severity-pill.low{background:#eaf8f4;color:#148b76;border:1px solid #cfe9e2}
.incident-conclusion-light{min-height:76px;padding:12px 15px;display:grid;grid-template-columns:250px 1fr 255px;align-items:center;gap:18px;margin-bottom:12px}.conclusion-kind{display:flex;align-items:center;gap:11px}.risk-square{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:12.5px;font-weight:800}.risk-square.high{background:#fff0ed;color:#d55445;border:1px solid #f2d1cb}.risk-square.medium{background:#fff5e6;color:#cd862f;border:1px solid #efdbba}.risk-square.low{background:#eaf8f4;color:#158d78;border:1px solid #cee9e2}.conclusion-kind small{display:block;font-size:11px;color:#9ba6a2}.conclusion-kind strong{display:block;font-size:12.5px;margin-top:3px}.incident-conclusion-light>p{font-size:12px;line-height:1.55;color:#566660;margin:0;border-left:1px solid var(--line);padding-left:18px}.conclusion-verdict{height:50px;border-radius:11px;padding:0 12px;display:flex;align-items:center;gap:10px;justify-self:end;min-width:235px}.conclusion-verdict.deny{background:#fff4f1;color:#d75c4d;border:1px solid #f0d3cd}.conclusion-verdict.ask{background:#fff7ea;color:#ce862f;border:1px solid #eddcbd}.conclusion-verdict.allow{background:#edf9f6;color:#168e78;border:1px solid #ceeae3}.conclusion-verdict>svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9}.conclusion-verdict div{display:grid;grid-template-columns:1fr auto;grid-template-areas:"small small" "strong code";column-gap:12px;align-items:center;flex:1}.conclusion-verdict small{grid-area:small;font-size:10.5px;opacity:.7}.conclusion-verdict strong{grid-area:strong;font-size:12px;margin-top:2px}.conclusion-verdict span{grid-area:code;font-size:10.5px;font-weight:800;letter-spacing:.08em}
.incident-workbench{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(620px,1.8fr) minmax(280px,.84fr);gap:12px;align-items:stretch}.request-context-card,.semantic-graph-card,.evidence-inspector-card{min-height:610px;overflow:hidden}.workbench-title{min-height:64px;border-bottom:1px solid var(--line);padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.workbench-title h2{margin:2px 0 0;font-size:14px}.workbench-title p{margin:4px 0 0;font-size:11px;color:#94a09c}.context-pin,.inspector-title>span{font-size:10.5px;color:#8f9c98;padding:4px 6px;border-radius:5px;background:#f2f6f5}.detail-request-context{padding:0 13px 15px}.context-block{padding:14px 0;border-bottom:1px solid var(--line)}.context-block header{display:flex;align-items:center;justify-content:space-between;gap:8px}.context-block header span{font-size:11px;color:#7d8b87;font-weight:680}.context-block time{font-size:10.5px;color:#9aa5a2}.context-block p{font-size:11.5px;line-height:1.55;margin:7px 0 0;color:#33443f}.context-tools{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.context-tools code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;background:#f1f6f4;border:1px solid #e2ebe8;padding:4px 6px;border-radius:5px;color:#477067}.attack-detection{margin-top:10px;border:1px solid #f0d7d1;border-radius:10px;padding:10px;background:#fff8f6}.attack-detection.medium{border-color:#eddcbd;background:#fffaf2}.attack-detection.low{border-color:#d4ebe5;background:#f7fcfa}.attack-detection header b{font-size:10.5px;color:#d55a4b}.attack-detection.medium header b{color:#c9812b}.attack-detection.low header b{color:#148a75}.attack-detection>strong{display:block;font-size:12px;margin-top:7px}.attack-detection pre{white-space:pre-wrap;word-break:break-word;margin:8px 0;padding:9px;background:#fff;border:1px solid var(--line);border-radius:7px;font-size:11px;line-height:1.5;color:#6c423b}.attack-detection>small{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:#9b6d65}.context-meta{display:grid;gap:7px;padding-top:13px}.context-meta span{display:flex;justify-content:space-between;font-size:11px;color:#899692}.context-meta b{font-weight:650;color:#53635e}
.graph-workbench-title{align-items:flex-start}.graph-toolbar{display:flex;gap:6px;align-items:center}.graph-tool,.graph-icon-tool{height:30px;border:1px solid var(--line-strong);background:#fff;border-radius:8px;color:#62716c;font-size:11px;display:flex;align-items:center;gap:5px;padding:0 8px}.graph-tool.active{background:#edf8f5;color:#128a75;border-color:#d1eae4}.graph-tool svg,.graph-icon-tool svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.graph-icon-tool{width:30px;padding:0;justify-content:center}.semantic-legend{height:35px;padding:0 14px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);font-size:10.5px;color:#84928e}.semantic-legend span{display:flex;align-items:center;gap:5px}.semantic-legend i{width:7px;height:7px;border-radius:50%}.semantic-legend i.normal{background:#72a8d1}.semantic-legend i.warning{background:#e2a148}.semantic-legend i.danger{background:#df6656}.semantic-legend i.control{background:#2eac90}.semantic-legend b{margin-left:auto;font-size:10.5px;font-weight:620;color:#7d8c87}.semantic-viewport{height:510px;position:relative;overflow:hidden;background:linear-gradient(180deg,#fbfdfc,#f8fbfa);cursor:grab;touch-action:none}.semantic-viewport.dragging{cursor:grabbing}.semantic-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(93,128,118,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(93,128,118,.045) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.semantic-world{position:absolute;left:50%;top:0;width:960px;height:520px;margin-left:-480px;transform-origin:center top}.semantic-edges,.semantic-nodes{position:absolute;inset:0;width:960px;height:520px}.semantic-edge-group path{fill:none;stroke:#a9bbb6;stroke-width:1.5}.semantic-edge-group.tone-warning path{stroke:#dfa04a}.semantic-edge-group.tone-danger path{stroke:#df6a5b;stroke-width:1.8}.semantic-edge-group.tone-control path{stroke:#2eaa8f;stroke-width:1.6}.semantic-edge-group rect{fill:#fff;stroke:#e4ece9;stroke-width:1}.semantic-edge-group text{font-size:10.5px;fill:#7d8b87;font-family:Inter,"PingFang SC",sans-serif}.semantic-edge-group.tone-danger text{fill:#c75e50}.semantic-edge-group.tone-control text{fill:#168d78}.semantic-node{position:absolute;transform:translate(-50%,-50%);width:164px;min-height:63px;border:1px solid #d9e5e1;border-radius:10px;background:#fff;padding:9px 9px;display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;text-align:left;color:#40504b;box-shadow:0 5px 14px rgba(37,68,60,.045);touch-action:none;cursor:grab;transition:box-shadow .13s,border-color .13s,transform .05s}.semantic-node:hover{border-color:#bcd6cf;box-shadow:0 8px 18px rgba(37,68,60,.07)}.semantic-node.dragging{cursor:grabbing;box-shadow:0 12px 28px rgba(37,68,60,.11);z-index:5}.semantic-node.selected{border-color:#3da58f;box-shadow:0 0 0 3px #e8f7f3,0 8px 18px rgba(35,133,112,.09)}.semantic-node.tone-warning{border-color:#eed3aa;background:#fffdfa}.semantic-node.tone-danger{border-color:#efc7c0;background:#fffaf9}.semantic-node.tone-control{border-color:#bfe0d7;background:#f8fdfa}.semantic-node>i{width:30px;height:30px;border-radius:8px;background:#eff6f4;color:#4e8c7f;display:grid;place-items:center;font-style:normal}.semantic-node.tone-warning>i{background:#fff4e4;color:#d18b34}.semantic-node.tone-danger>i{background:#fff0ed;color:#d65a4b}.semantic-node.tone-control>i{background:#e8f7f3;color:#168d78}.semantic-node>i svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.semantic-node>span{min-width:0}.semantic-node small{display:block;font-size:10.3px;letter-spacing:.06em;color:#99a5a1;text-transform:uppercase}.semantic-node strong{display:block;font-size:11.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.semantic-node em{display:block;font-style:normal;font-size:10.2px;color:#8f9c98;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.semantic-node>b{position:absolute;right:6px;top:5px;font-size:9.3px;color:#9aa5a2;font-weight:800;letter-spacing:.05em;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-hint{position:absolute;left:12px;bottom:10px;padding:6px 8px;border-radius:7px;background:rgba(255,255,255,.88);border:1px solid var(--line);font-size:10.5px;color:#9aa5a2;pointer-events:none}
.evidence-inspector-card{display:flex;flex-direction:column}.semantic-inspector{padding:12px;overflow:auto;max-height:545px}.inspector-selection-light{display:flex;align-items:center;justify-content:space-between;padding:0 2px 9px;font-size:10.5px;color:#9aa5a2}.inspector-selection-light strong{font-size:11px;color:#5b6b66}.inspector-summary{border:1px solid var(--line);border-left:3px solid #88aaa1;border-radius:10px;padding:11px;display:flex;gap:9px;background:#fbfdfc}.inspector-summary.tone-danger{border-left-color:#df6253;background:#fff8f6}.inspector-summary.tone-warning{border-left-color:#dda044;background:#fffaf2}.inspector-summary.tone-control{border-left-color:#2ca78c;background:#f5fcfa}.inspector-summary>i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eef6f4;color:#4b8b7e;flex:0 0 auto}.inspector-summary.tone-danger>i{background:#fff0ed;color:#d65a4b}.inspector-summary.tone-warning>i{background:#fff3e2;color:#cf8731}.inspector-summary.tone-control>i{background:#e7f7f2;color:#148b76}.inspector-summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}.inspector-summary small{font-size:10.5px;color:#95a19d}.inspector-summary h3{font-size:12.5px;margin:2px 0 5px}.inspector-summary p{font-size:11px;line-height:1.55;color:#65746f;margin:0}.inspector-section-light{padding:12px 2px;border-bottom:1px solid var(--line)}.inspector-section-light h4{font-size:11px;color:#84928e;margin:0 0 8px;font-weight:720}.inspector-section-light dl{margin:0}.inspector-section-light dl>div{display:grid;grid-template-columns:78px 1fr;gap:9px;padding:6px 0;border-bottom:1px dashed #edf1f0}.inspector-section-light dt{font-size:10.5px;color:#9ba6a2}.inspector-section-light dd{margin:0;font-size:11px;color:#42534e;word-break:break-word}.inspector-section-light>code{display:block;background:#f2f6f5;border:1px solid #e2eae8;border-radius:7px;padding:8px;font-size:10.5px;color:#477067;word-break:break-all}.relation-buttons{display:grid;gap:5px}.relation-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:#55655f}.relation-button:hover{background:#f7fbf9}.relation-button small{display:block;font-size:10.3px;color:#9ba6a2}.relation-button strong{display:block;font-size:11px;margin-top:2px}.relation-button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}.inspector-empty-light{min-height:250px;display:grid;place-items:center;align-content:center;text-align:center;gap:6px;color:#95a19d}.inspector-empty-light strong{font-size:12px;color:#677671}.inspector-empty-light span{font-size:11px}
.incident-timeline-card{margin-top:12px;padding:0;overflow:hidden}.timeline-card-header{padding:15px 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.timeline-card-header h2{font-size:14px;margin:2px 0}.timeline-card-header p{font-size:11px;color:#95a19d;margin:0}.timeline-actions{display:flex;gap:6px}.timeline-actions .secondary-button{height:32px;font-size:11px}.incident-timeline{min-height:104px;padding:24px 22px 22px;display:flex;align-items:flex-start;position:relative;overflow:auto}.incident-timeline::before{content:"";position:absolute;left:42px;right:42px;top:33px;height:1px;background:#dce6e3}.timeline-step{min-width:140px;flex:1;border:0;background:transparent;padding:0 8px;text-align:left;position:relative;z-index:1;color:#5c6c67}.timeline-step>i{display:block;width:12px;height:12px;border-radius:50%;background:#9eb8b1;border:3px solid #fff;box-shadow:0 0 0 1px #cddbd7;margin:3px 0 10px}.timeline-step.tone-danger>i{background:#df6454;box-shadow:0 0 0 1px #efbcb4}.timeline-step.tone-warning>i{background:#df9e42}.timeline-step.tone-control>i{background:#2eaa8f}.timeline-step.active>i{box-shadow:0 0 0 4px #e8f7f3,0 0 0 5px #69bba9}.timeline-step strong{display:block;font-size:11px}.timeline-step small{display:block;margin-top:3px;color:#9ba6a2;font-size:10.5px}
@media(max-width:1450px){.session-table-head,.session-row{grid-template-columns:125px 150px minmax(230px,1.4fr) 160px 95px 80px 24px}.incident-workbench{grid-template-columns:240px minmax(560px,1fr)}.evidence-inspector-card{grid-column:1/-1;min-height:0}.semantic-inspector{max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:12px}.inspector-selection-light{grid-column:1/-1}.request-context-card,.semantic-graph-card{min-height:590px}}
@media(max-width:1150px){.session-metrics{grid-template-columns:repeat(3,1fr)}.session-list-header{align-items:flex-start;flex-direction:column}.session-list-actions{justify-content:flex-start;width:100%}.session-search{flex:1}.session-list-card{overflow:auto}.session-table-head,.session-row{min-width:1040px}.incident-conclusion-light{grid-template-columns:220px 1fr}.conclusion-verdict{grid-column:1/-1;justify-self:stretch;min-width:0}.incident-workbench{grid-template-columns:1fr}.request-context-card,.semantic-graph-card{min-height:0}.semantic-viewport{height:520px}.evidence-inspector-card{grid-column:auto}.semantic-inspector{display:block}}
@media(max-width:760px){.session-metrics{grid-template-columns:1fr 1fr}.incident-detail-heading{align-items:flex-start;flex-direction:column}.detail-heading-actions{width:100%}.detail-session-select{flex:1}.incident-conclusion-light{grid-template-columns:1fr}.incident-conclusion-light>p{border-left:0;border-top:1px solid var(--line);padding:12px 0 0}.graph-workbench-title{flex-direction:column}.graph-toolbar{width:100%;flex-wrap:wrap}.semantic-viewport{height:470px}.semantic-world{transform-origin:center top}.timeline-card-header{align-items:flex-start;flex-direction:column}.incident-timeline{min-width:740px}.session-list-actions .filter-chip{flex:1}.session-search{min-width:100%;width:100%}}
@media(max-width:520px){.session-metrics{grid-template-columns:1fr}.incident-workbench{gap:8px}.semantic-graph-card{border-radius:12px}.semantic-viewport{height:430px}}


/* v5 — 100% 缩放可读性与语义图清晰度 */
body{font-size:14px}
.content{max-width:1760px;padding:32px 34px 48px}
.page-heading h1{font-size:30px}.page-heading p{font-size:14px}
.card-header h2{font-size:17px}.card-header p{font-size:12.5px}
.metric-main strong{font-size:31px}

/* 决策趋势：确保 polyline 始终有清晰描边 */
.trend-chart{height:222px;padding:2px 0}
.trend-chart svg{display:block;shape-rendering:geometricPrecision}
.chart-line{fill:none;stroke-width:2.8;vector-effect:non-scaling-stroke;opacity:.96}
.line-allow{stroke:#35af96}.line-ask{stroke:#e7a03e}.line-deny{stroke:#e25749}
.chart-grid{stroke:#e7eeec;stroke-width:1;vector-effect:non-scaling-stroke}
.chart-hit{fill:none;stroke:transparent;stroke-width:14;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}
.chart-line{transition:opacity .18s ease,stroke-width .18s ease}
.chart-line.active{stroke-width:4;opacity:1;filter:drop-shadow(0 2px 6px rgba(30,120,99,.25))}
svg.has-active .chart-line:not(.active){opacity:.22}
.decision-summary>div{transition:background .18s ease,box-shadow .18s ease}
.decision-summary>div.summary-active{background:#eef7f4;box-shadow:inset 0 0 0 1px #cfe9e2;border-radius:8px}

/* 语义动作图：不要把文本预先栅格化；增强节点、边和标签 */
.semantic-graph-card{overflow:hidden}
.semantic-viewport{height:560px;background:linear-gradient(180deg,#fcfefd,#f7fbf9)}
.semantic-world{will-change:auto;backface-visibility:visible}
.semantic-edges{overflow:visible;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}
.semantic-edge-group path{stroke-width:2.15;vector-effect:non-scaling-stroke}
.semantic-edge-group.tone-warning path{stroke-width:2.3}.semantic-edge-group.tone-danger path{stroke-width:2.65}.semantic-edge-group.tone-control path{stroke-width:2.35}
.semantic-edge-group rect{stroke-width:1;vector-effect:non-scaling-stroke}
.semantic-edge-group text{font-size:10.5px;font-weight:650;paint-order:stroke;stroke:#fff;stroke-width:1.5px;stroke-linejoin:round}
.semantic-node{width:var(--semantic-node-width,188px);min-height:74px;padding:11px 12px;grid-template-columns:34px 1fr;gap:10px;border-width:1.2px;box-shadow:0 7px 18px rgba(37,68,60,.055);transition:opacity .22s ease,box-shadow .15s,border-color .15s,filter .22s ease}
.semantic-node>i{width:34px;height:34px}.semantic-node>i svg{width:17px;height:17px}
.semantic-node small{font-size:10px;letter-spacing:.04em}.semantic-node strong{font-size:13px;margin-top:3px}.semantic-node em{font-size:10.5px;margin-top:4px}.semantic-node>b{font-size:8.5px;right:8px;top:7px;max-width:78px}
.semantic-legend{height:42px;font-size:11px;gap:18px;padding:0 16px}.semantic-legend b{font-size:10.5px}.semantic-legend i{width:8px;height:8px}
.graph-tool,.graph-icon-tool{height:34px;font-size:11px}.graph-icon-tool{width:34px}.graph-tool svg,.graph-icon-tool svg{width:15px;height:15px}
.graph-hint{font-size:10px;padding:7px 10px}

/* 回放：每一步重建当时已经出现的图；新节点/边有明确进入动画 */
.semantic-viewport.replay-active::after{content:"REPLAY";position:absolute;right:14px;top:14px;z-index:8;padding:5px 8px;border-radius:7px;background:rgba(22,33,31,.82);color:#fff;font-size:9px;font-weight:800;letter-spacing:.12em;pointer-events:none}
.semantic-node.replay-past{opacity:.58;filter:saturate(.72)}
.semantic-node.replay-current{z-index:7;opacity:1;animation:semanticNodeEnter .34s cubic-bezier(.2,.8,.2,1),semanticNodePulse 1.15s ease-out .28s}
.semantic-edge-group.replay-active-edge path{stroke-dasharray:7 6;animation:semanticEdgeFlow .85s linear infinite;filter:drop-shadow(0 1px 2px rgba(30,120,99,.15))}
.semantic-edge-group.replay-active-edge rect,.semantic-edge-group.replay-active-edge text{animation:semanticLabelEnter .28s ease-out}
@keyframes semanticNodeEnter{from{opacity:0;filter:blur(4px);transform:translate(-50%,-50%) scale(.9)}to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}}
@keyframes semanticNodePulse{0%{box-shadow:0 0 0 0 rgba(23,168,143,.22),0 8px 18px rgba(35,133,112,.08)}70%{box-shadow:0 0 0 10px rgba(23,168,143,0),0 8px 18px rgba(35,133,112,.08)}100%{box-shadow:0 0 0 0 rgba(23,168,143,0),0 8px 18px rgba(35,133,112,.08)}}
@keyframes semanticEdgeFlow{to{stroke-dashoffset:-26}}
@keyframes semanticLabelEnter{from{opacity:0}to{opacity:1}}

/* 攻击监控在 100% 浏览器缩放下的字号 */
.session-table-head{font-size:11px;height:42px}.session-row{min-height:96px}
.session-identity strong{font-size:13px}.session-identity small,.session-agent small,.session-task small,.session-risk small{font-size:10.5px}
.session-agent strong,.session-task strong{font-size:12.5px}.session-actions>b,.session-risk strong{font-size:11.5px}.tool-chip-row span{font-size:10px}.session-list-footer>span,.session-list-footer button{font-size:11px}
.context-block header span{font-size:11.5px}.context-block time{font-size:10.5px}.context-block p{font-size:12.5px}.context-tools code{font-size:10.5px}.attack-detection header b{font-size:10px}.attack-detection>strong{font-size:13px}.attack-detection pre{font-size:11px}.attack-detection>small{font-size:10px}.context-meta span{font-size:10.5px}
.inspector-selection-light,.inspector-summary small,.inspector-section-light h4{font-size:10.5px}.inspector-summary h3{font-size:14px}.inspector-summary p{font-size:11.5px}.inspector-section-light dt{font-size:10.5px}.inspector-section-light dd{font-size:11.5px}.inspector-section-light>code{font-size:10px}.relation-button small{font-size:9.5px}.relation-button strong{font-size:11.5px}
.timeline-card-header h2{font-size:15px}.timeline-card-header p{font-size:11px}.timeline-actions .secondary-button{font-size:11px}.timeline-step strong{font-size:11.5px}.timeline-step small{font-size:10px}
.timeline-step.elapsed>i{background:#66bdaa;box-shadow:0 0 0 1px #c4e3dc}.timeline-step.future{opacity:.45}.timeline-step.active{opacity:1}
#timelinePlayButton.playing{background:#eaf8f4;color:#118c78;border-color:#cfeae3}

@media(max-width:1150px){.semantic-viewport{height:540px}}
@media(max-width:760px){.semantic-viewport{height:500px}}

@media(max-width:760px){
  .semantic-node{
    min-height:56px;
    padding:6px;
    grid-template-columns:20px minmax(0,1fr);
    gap:4px;
    border-radius:7px;
  }
  .semantic-node>i{width:20px;height:20px;border-radius:5px}
  .semantic-node>i svg{width:12px;height:12px}
  .semantic-node small{font-size:7px;letter-spacing:.02em}
  .semantic-node strong{font-size:9px;margin-top:1px}
  .semantic-node em{font-size:8px;margin-top:2px}
  .semantic-node>b{font-size:7px;right:4px;top:4px;max-width:35px}
  .semantic-edge-group text{font-size:8px}
  .semantic-edge-group rect{opacity:.92}
}


/* v6 — 智能体资产页 */
.asset-heading{align-items:center}.asset-heading-actions{min-width:430px;justify-content:flex-end}.asset-search{min-width:300px;height:38px}.asset-search input{font-size:13px}.asset-heading-actions .secondary-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}
.asset-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px}.asset-metric{min-height:104px;padding:16px 17px;display:flex;align-items:flex-start;justify-content:space-between;position:relative;overflow:hidden}.asset-metric>div>span{display:block;font-size:13px;color:#6a7874}.asset-metric>div>strong{display:block;font-size:29px;line-height:1;margin-top:10px;letter-spacing:-.03em}.asset-metric>div>small{display:block;font-size:11.5px;color:#96a19e;margin-top:7px}.asset-metric>i{width:34px;height:34px;border-radius:10px;background:#edf8f5;color:#1b927d;display:grid;place-items:center}.asset-metric>i svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.asset-metric.danger>i{background:#fff0ed;color:#d85d4e}.asset-metric.warning>i{background:#fff6e9;color:#d79036}.asset-metric.info>i{background:#eef5ff;color:#4b86d9}
.asset-main-grid{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(350px,.72fr);gap:12px;align-items:start}.asset-inventory-card{overflow:hidden;min-height:588px}.asset-panel-header{min-height:86px;padding:17px 18px 14px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.asset-panel-header.compact{min-height:auto;align-items:center}.asset-panel-header h2{font-size:17px;margin:0 0 4px}.asset-panel-header p{font-size:12.5px;margin:0;color:#899793}.asset-panel-header .card-kicker{margin-bottom:5px}.asset-panel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.asset-count{font-size:11.5px;color:#8b9894;margin-right:3px}.asset-count b{font-size:12px;color:#40504b}.asset-table-head,.asset-row{display:grid;grid-template-columns:minmax(220px,1.35fr) 76px 92px minmax(215px,1.25fr) 58px 58px 84px 20px;align-items:center;gap:10px;padding:0 16px}.asset-table-head{height:40px;background:#fafcfc;border-bottom:1px solid var(--line);font-size:11px;color:#98a49f;font-weight:650}.asset-inventory-rows{min-height:455px}.asset-row{width:100%;min-height:82px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:#42514d;transition:background .15s,box-shadow .15s}.asset-row:hover{background:#fbfdfc}.asset-row.selected{background:#f4fbf8;box-shadow:inset 3px 0 0 #27a58c}.asset-identity{display:flex;align-items:center;gap:10px;min-width:0}.asset-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:#eef5ff;color:#4c83c9;border:1px solid #dfeaf7}.asset-avatar.risk-high{background:#fff1ee;color:#d85a4b;border-color:#f4d4ce}.asset-avatar.risk-medium{background:#fff7eb;color:#d38a34;border-color:#f0dfc4}.asset-avatar.risk-low{background:#eaf8f4;color:#178f79;border-color:#d4eee7}.asset-avatar.large{width:42px;height:42px;border-radius:12px}.asset-avatar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.asset-avatar.large svg{width:20px;height:20px}.asset-identity strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-identity small{display:block;font-size:10.8px;color:#97a29f;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-status{font-size:11.5px;color:#6c7a76;display:inline-flex;align-items:center;gap:6px}.asset-status i{width:7px;height:7px;border-radius:50%;background:#9ea9a6}.asset-status.online{color:#178f79}.asset-status.online i{background:#2db592;box-shadow:0 0 0 3px #e7f7f2}.asset-row>span>small{display:block;font-size:10.3px;color:#a0aaa7;margin-top:4px}.asset-risk{display:inline-flex;font-size:10.5px;font-weight:700;border-radius:6px;padding:3px 6px}.asset-risk.risk-high{color:#d45647;background:#fff0ed}.asset-risk.risk-medium{color:#c9832f;background:#fff5e7}.asset-risk.risk-low{color:#168f79;background:#eaf8f4}.asset-tool-stack{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden}.asset-tool-stack code{font-size:9.8px;padding:4px 5px;border-radius:5px;background:#f2f6f5;border:1px solid #e6ecea;color:#60706b;white-space:nowrap}.asset-tool-stack em{font-size:10px;font-style:normal;color:#8c9995;white-space:nowrap}.asset-number strong{display:block;font-size:13px}.asset-number small{display:block;font-size:9.8px!important;margin-top:3px!important;color:#9ba6a2}.asset-number.deny strong{color:#d75c4d}.asset-last{font-size:11px;color:#7d8b87}.asset-chevron{width:14px;height:14px;fill:none;stroke:#a2adaa;stroke-width:2}.asset-empty{min-height:300px;display:grid;place-items:center;align-content:center;gap:5px;color:#8e9a96}.asset-empty strong{font-size:13px;color:#5f6f6a}.asset-empty span{font-size:11.5px}
.asset-detail-card{min-height:588px;padding:18px;position:sticky;top:82px}.asset-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:12px}.asset-detail-title{display:flex;align-items:center;gap:11px;min-width:0}.asset-detail-title>div>span{display:block;color:#15947d;font-size:10.5px;font-weight:700;letter-spacing:.03em}.asset-detail-title h2{font-size:17px;margin:3px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-detail-title p{margin:0;color:#98a39f;font-size:10.5px}.asset-health{font-size:23px;font-weight:750;letter-spacing:-.03em;color:#178f79}.asset-health small{font-size:10px;color:#9ba6a2;font-weight:600;margin-left:2px}.asset-health.risk-high{color:#d75b4c}.asset-health.risk-medium{color:#d18a35}.asset-detail-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:13px 0 14px;border-bottom:1px solid var(--line)}.asset-detail-tags code,.asset-detail-tags>span:not(.asset-status){font-size:10px;padding:4px 6px;border-radius:6px;background:#f3f6f5;color:#65746f;border:1px solid #e6ecea}.asset-detail-section{padding:14px 0;border-bottom:1px solid var(--line)}.asset-detail-section:last-child{border-bottom:0;padding-bottom:0}.asset-detail-section>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.asset-detail-section>header>span{font-size:12px;font-weight:700;color:#50605b}.asset-detail-section>header small{font-size:10px;color:#9ba6a2}.asset-detail-section>header button{border:0;background:transparent;color:#178f79;font-size:10.5px;font-weight:650}.capability-pills{display:flex;gap:5px;flex-wrap:wrap}.capability-pills span{font-size:9.8px;padding:5px 6px;border-radius:6px;background:#eef8f5;color:#1a826f;border:1px solid #d9eee8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.boundary-list{list-style:none;margin:9px 0 0;padding:0;display:grid;gap:6px}.boundary-list li{display:flex;align-items:flex-start;gap:7px;font-size:10.5px;color:#6d7b77;line-height:1.45}.boundary-list svg{width:13px;height:13px;fill:none;stroke:#39a58d;stroke-width:1.8;margin-top:1px;flex:0 0 auto}.asset-tool-detail{display:grid;gap:5px}.asset-tool-detail>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid #edf1f0;border-radius:8px;background:#fbfdfc}.asset-tool-detail>div>i{width:28px;height:28px;border-radius:7px;background:#f0f6f4;color:#498a7d;display:grid;place-items:center}.asset-tool-detail svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.asset-tool-detail strong{font-size:10.8px;display:block}.asset-tool-detail small{font-size:9.2px;color:#9ba6a2;display:block;margin-top:2px}.asset-tool-detail b{font-size:9.5px;color:#188d77;font-weight:700}.asset-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:9px;overflow:hidden}.asset-stat-strip span{padding:8px 6px;text-align:center;border-right:1px solid var(--line)}.asset-stat-strip span:last-child{border-right:0}.asset-stat-strip strong{display:block;font-size:14px}.asset-stat-strip small{display:block;margin-top:2px;font-size:9px;color:#9ba6a2}.asset-stat-strip .danger strong{color:#d85d4e}.asset-recent-list{display:grid;gap:6px}.asset-recent-list p{margin:0;display:flex;align-items:flex-start;gap:7px;font-size:10px;color:#6e7b77;line-height:1.4}.asset-recent-list p i{width:6px;height:6px;border-radius:50%;background:#70b9a8;margin-top:4px;flex:0 0 auto}
.asset-bottom-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin-top:12px}.asset-exposure-card,.asset-changes-card{padding-bottom:14px}.asset-exposure{padding:8px 18px 0}.exposure-row{display:grid;grid-template-columns:30px minmax(150px,1fr) minmax(120px,.8fr) 24px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.exposure-row:last-child{border-bottom:0}.exposure-row>i{width:30px;height:30px;border-radius:8px;background:#f1f7f5;color:#4a897d;display:grid;place-items:center}.exposure-row svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}.exposure-row span strong{display:block;font-size:11.5px}.exposure-row span small{display:block;font-size:10px;color:#9aa5a2;margin-top:2px}.exposure-row>div{height:6px;border-radius:4px;background:#edf2f0;overflow:hidden}.exposure-row>div b{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#55bca7,#2e9f89)}.exposure-row>em{font-style:normal;text-align:right;font-size:11px;color:#65746f}.asset-changes{padding:8px 18px 0}.asset-change{display:grid;grid-template-columns:42px 8px 1fr;gap:8px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line)}.asset-change:last-child{border-bottom:0}.asset-change time{font-size:10px;color:#9aa5a2;font-variant-numeric:tabular-nums}.asset-change>i{width:7px;height:7px;border-radius:50%;background:#5db49f;margin-top:3px}.asset-change>i.warning{background:#dfa04a}.asset-change>i.danger{background:#dc6555}.asset-change strong{display:block;font-size:10.8px}.asset-change p{margin:3px 0 0;font-size:10px;color:#8f9c98}
/* 取消回放聚焦后恢复全部语义节点 */
.semantic-viewport:not(.replay-active) .semantic-node{opacity:1;filter:none}
@media(max-width:1400px){.asset-main-grid{grid-template-columns:1fr}.asset-detail-card{position:static;min-height:0}.asset-table-head,.asset-row{grid-template-columns:minmax(210px,1.25fr) 74px 88px minmax(210px,1.1fr) 56px 56px 82px 20px}.asset-detail-card{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.asset-detail-hero,.asset-detail-tags{grid-column:1/-1}.asset-detail-section{padding-right:10px}.asset-bottom-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1050px){.asset-metrics{grid-template-columns:repeat(3,1fr)}.asset-heading{align-items:flex-start;flex-direction:column}.asset-heading-actions{width:100%;min-width:0;justify-content:flex-start}.asset-search{flex:1}.asset-inventory-card{overflow:auto}.asset-table-head,.asset-row{min-width:980px}.asset-panel-header{align-items:flex-start;flex-direction:column}.asset-panel-actions{justify-content:flex-start}.asset-bottom-grid{grid-template-columns:1fr}}
@media(max-width:720px){.asset-metrics{grid-template-columns:1fr 1fr}.asset-heading-actions{flex-wrap:wrap}.asset-search{min-width:100%;width:100%}.asset-detail-card{display:block}.asset-bottom-grid{grid-template-columns:1fr}}

/* v7 — typography pass + search icon bugfix */
.search-box>svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
html,body{font-size:16px}
.nav-item span{font-size:15px}.side-status strong{font-size:14px}.side-status span{font-size:13px}
.topbar-title>span{font-size:17px}.topbar-title>small{font-size:13px}.select-wrap.compact select,.operator{font-size:14px}.operator span{font-size:14px}
.content{max-width:1740px}.eyebrow{font-size:13.5px}.page-heading h1{font-size:31px}.page-heading p{font-size:15px;line-height:1.65}
.segmented button,.primary-button,.secondary-button,.ghost-button,.filter-chip{font-size:13px}
.metric-top span,.asset-metric>div>span,.session-metric>div>span{font-size:14px}.metric-foot,.asset-metric>div>small,.session-metric>div>small{font-size:13px}
.card-header h2,.asset-panel-header h2,.timeline-card-header h2{font-size:17px}.card-header p,.asset-panel-header p,.timeline-card-header p{font-size:13px;line-height:1.55}.card-kicker{font-size:12px}
.search-box input{font-size:13.5px}
.asset-table-head{font-size:12.5px}.asset-identity strong{font-size:14.5px}.asset-identity small{font-size:12px}.asset-status{font-size:13px}.asset-risk{font-size:12px}.asset-tool-stack code{font-size:11px}.asset-tool-stack em{font-size:11.5px}.asset-number strong{font-size:14px}.asset-number small{font-size:11px!important}.asset-last{font-size:12.5px}.asset-count,.asset-count b{font-size:12.5px}
.asset-detail-title>div>span{font-size:11.5px}.asset-detail-title h2{font-size:19px}.asset-detail-title p{font-size:12.5px}.asset-detail-tags{font-size:12px}.asset-detail-section>header>span{font-size:13px}.asset-detail-section>header>small{font-size:11.5px}.capability-pills span,.boundary-list li,.asset-tool-detail strong,.asset-tool-detail small,.asset-recent-list p{font-size:12px}.asset-stat-strip strong{font-size:17px}.asset-stat-strip small{font-size:11.5px}
.session-row{font-size:13px}.session-identity strong,.session-agent strong,.session-task strong,.session-actions b,.session-risk strong{font-size:13px}.session-identity small,.session-agent small,.session-task small,.session-risk small{font-size:11.5px}.tool-chip-row span{font-size:10.8px}.verdict-tag{font-size:11px}
.semantic-node strong{font-size:13px}.semantic-node span{font-size:12px}.semantic-node em{font-size:11px}.semantic-node>b{font-size:10px}.semantic-legend span,.graph-meta,.graph-hint{font-size:11.5px}.inspector-title h2{font-size:17px}.inspector-section,.inspector-section p,.inspector-kv,.timeline-step strong{font-size:12.5px}.timeline-step small{font-size:11.5px}

/* v7 — 策略管理 */
.policy-heading{align-items:center}.policy-heading-actions{min-width:500px;justify-content:flex-end}.policy-search{min-width:330px;height:40px}.policy-heading-actions .primary-button{height:40px}
.policy-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px}.policy-metric{min-height:108px;padding:17px 18px;display:flex;justify-content:space-between;align-items:flex-start;overflow:hidden;position:relative}.policy-metric>div>span{display:block;color:#697773;font-size:14px}.policy-metric>div>strong{display:block;font-size:30px;line-height:1;margin-top:11px;letter-spacing:-.03em}.policy-metric>div>small{display:block;margin-top:8px;color:#94a09d;font-size:12.5px}.policy-metric>i{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#edf8f5;color:#178f79}.policy-metric>i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.policy-metric.danger>i{background:#fff0ed;color:#d95b4b}.policy-metric.warning>i{background:#fff6e9;color:#d58b35}.policy-metric.info>i{background:#eef5ff;color:#4d82cb}
.policy-main-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(370px,.72fr);gap:12px;align-items:start}.policy-list-card{overflow:hidden;min-height:660px}.policy-panel-header{min-height:92px;padding:18px 19px 15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.policy-panel-header.compact{min-height:auto;align-items:center}.policy-panel-header h2{font-size:18px;margin:0 0 5px}.policy-panel-header p{font-size:13px;line-height:1.5;color:#889692;margin:0}.policy-filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.policy-table-head,.policy-row{display:grid;grid-template-columns:minmax(280px,1.55fr) minmax(135px,.72fr) 75px 75px 80px 80px 18px;gap:10px;align-items:center;padding:0 18px}.policy-table-head{height:42px;background:#fafcfc;border-bottom:1px solid var(--line);font-size:12.5px;color:#95a19d;font-weight:650}.policy-row{width:100%;min-height:76px;background:#fff;border:0;border-bottom:1px solid var(--line);text-align:left;color:#40504c;transition:.16s}.policy-row:hover{background:#fbfdfc}.policy-row.selected{background:#f3faf7;box-shadow:inset 3px 0 0 #20a28a}.policy-name{display:flex;align-items:center;gap:11px;min-width:0}.policy-name>span{min-width:0}.policy-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:#edf8f5;color:#168f78;border:1px solid #d9eee8}.policy-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9}.policy-icon.severity-high{background:#fff1ee;color:#d85a4b;border-color:#f2d5cf}.policy-icon.severity-medium{background:#fff7eb;color:#ce8731;border-color:#f0dfc3}.policy-name strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.policy-name code{display:block;margin-top:4px;font-size:10.8px;color:#84918d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.policy-domain{font-size:12.5px;color:#52615d}.policy-domain small{display:block;margin-top:4px;font-size:10.8px;color:#99a4a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.policy-decision{display:inline-flex;align-items:center;justify-content:center;min-width:50px;height:25px;border-radius:7px;padding:0 7px;font-size:10.5px;font-weight:800;letter-spacing:.04em}.policy-decision.deny{background:#fff0ed;color:#d75547}.policy-decision.ask{background:#fff6e9;color:#c9812d}.policy-decision.allow{background:#eaf8f4;color:#168e78}.policy-decision.large{height:31px;min-width:60px;font-size:12px}.policy-status{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#6d7a77}.policy-status i{width:7px;height:7px;border-radius:50%;background:#a4aeab}.policy-status.enabled{color:#178e78}.policy-status.enabled i{background:#28b590;box-shadow:0 0 0 3px #e7f7f2}.policy-hit strong,.policy-assets strong{display:block;font-size:14px}.policy-hit small,.policy-assets small{display:block;margin-top:3px;font-size:10.5px;color:#9aa5a2}.policy-chevron{width:14px;height:14px;fill:none;stroke:#9aa6a2;stroke-width:2}.policy-empty{min-height:330px;display:grid;place-items:center;align-content:center;gap:7px;color:#8d9995}.policy-empty svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}.policy-empty strong{font-size:14px;color:#5f6d69}.policy-empty span{font-size:12.5px}
.policy-detail-card{min-height:660px;padding:19px;position:sticky;top:82px}.policy-detail-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.policy-detail-kicker{font-size:11.5px;color:#148f79;font-weight:700}.policy-detail-hero h2{font-size:20px;line-height:1.3;margin:5px 0 4px}.policy-detail-hero code{font-size:11px;color:#7e8b87}.policy-detail-summary{margin:16px 0 14px;padding:13px 14px;border-radius:11px;background:#f7faf9;border:1px solid var(--line);font-size:13px;line-height:1.65;color:#55645f}.policy-detail-meta{display:grid;grid-template-columns:1.25fr .75fr .75fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;margin-bottom:3px}.policy-detail-meta span{padding:0 10px;border-right:1px solid var(--line);min-width:0}.policy-detail-meta span:first-child{padding-left:0}.policy-detail-meta span:last-child{border:0}.policy-detail-meta small{display:block;font-size:10.8px;color:#99a4a1}.policy-detail-meta strong{display:block;margin-top:4px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.policy-detail-section{padding:15px 0;border-bottom:1px solid var(--line)}.policy-detail-section header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.policy-detail-section header span{font-size:13px;font-weight:700}.policy-detail-section header small{font-size:11px;color:#9aa5a2}.policy-detail-section>p{margin:0;color:#65736f;font-size:12.5px;line-height:1.7}.policy-condition-list{display:flex;flex-direction:column;gap:7px}.policy-condition-list>div{display:flex;align-items:center;gap:8px;background:#f8fbfa;border:1px solid var(--line);border-radius:8px;padding:8px 9px}.policy-condition-list i{width:20px;height:20px;border-radius:6px;background:#eaf8f4;color:#158d77;display:grid;place-items:center;font-size:10px;font-style:normal;font-weight:750}.policy-condition-list code{font-size:11.5px;color:#52615d}.policy-agent-pills{display:flex;flex-wrap:wrap;gap:6px}.policy-agent-pills span{padding:6px 8px;border-radius:7px;background:#f0f6f4;border:1px solid #e2ebe8;color:#5c6b66;font-size:11.5px}.policy-test-box{margin-top:15px;padding:12px;border-radius:11px;background:#fff8ee;border:1px solid #f1dfc3;display:flex;align-items:center;justify-content:space-between;gap:12px}.policy-test-box span{display:block;font-size:12.5px;font-weight:700}.policy-test-box small{display:block;font-size:10.8px;color:#9b866c;margin-top:3px}.policy-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.policy-detail-actions button{width:100%;justify-content:center}
.policy-bottom-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr);gap:12px;margin-top:12px}.enforcement-card,.policy-activity-card{overflow:hidden}.profile-live{font-size:12px;color:#178e78;display:flex;align-items:center;gap:7px}.profile-live i{width:7px;height:7px;border-radius:50%;background:#28b590;box-shadow:0 0 0 4px #e7f7f2}.profile-lanes{padding:9px 18px 18px}.profile-lane{width:100%;min-height:64px;border:0;border-bottom:1px solid var(--line);background:#fff;display:grid;grid-template-columns:42px minmax(0,1fr) 80px;align-items:center;gap:10px;text-align:left;color:#40504c}.profile-lane:last-child{border-bottom:0}.profile-lane:hover{background:#fbfdfc}.profile-lane.active{background:#f3faf7}.profile-index{font-size:11px;color:#9ca7a4}.profile-copy strong{display:flex;align-items:center;gap:8px;font-size:13.5px}.profile-copy code{font-size:10.5px;font-weight:500;color:#8d9995}.profile-copy small{display:block;margin-top:4px;font-size:11.5px;color:#8b9793}.profile-lane>b{justify-self:end;font-size:10.5px;color:#71807b;border:1px solid var(--line);padding:5px 7px;border-radius:6px}.profile-lane.active>b{color:#168f78;border-color:#cfe9e2;background:#eaf8f4}.policy-activity{padding:7px 18px 15px}.policy-activity-row{min-height:58px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:58px 10px minmax(0,1fr) 55px;align-items:center;gap:8px}.policy-activity-row:last-child{border-bottom:0}.policy-activity-row time{font-size:11.5px;color:#8c9995;font-variant-numeric:tabular-nums}.policy-activity-row>i{width:7px;height:7px;border-radius:50%}.policy-activity-row>i.deny{background:#dc6051}.policy-activity-row>i.ask{background:#d9953b}.policy-activity-row span strong{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.policy-activity-row span small{display:block;margin-top:3px;font-size:10.8px;color:#96a19e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:1200px){.policy-metrics{grid-template-columns:repeat(3,1fr)}.policy-heading{align-items:flex-start;flex-direction:column}.policy-heading-actions{min-width:0;width:100%;justify-content:flex-start}.policy-search{flex:1}.policy-main-grid{grid-template-columns:1fr}.policy-detail-card{position:static;min-height:0}.policy-bottom-grid{grid-template-columns:1fr}.policy-list-card{overflow:auto}.policy-table-head,.policy-row{min-width:960px}}
@media(max-width:720px){.policy-metrics{grid-template-columns:1fr 1fr}.policy-heading-actions{flex-wrap:wrap}.policy-search{width:100%;min-width:100%}.policy-panel-header{align-items:flex-start;flex-direction:column}.policy-filter-row{justify-content:flex-start}.policy-detail-meta{grid-template-columns:1fr}.policy-detail-meta span{border-right:0;border-bottom:1px solid var(--line);padding:8px 0}.policy-detail-meta span:last-child{border-bottom:0}.policy-bottom-grid{grid-template-columns:1fr}.profile-lane{grid-template-columns:34px minmax(0,1fr) 70px}}


/* ===== v8 · remaining product pages ===== */
.tool-heading,.alert-heading,.audit-heading,.settings-heading{align-items:center}
.tool-heading-actions,.alert-heading-actions,.audit-heading-actions{min-width:480px;justify-content:flex-end}
.tool-search,.alert-search,.audit-search{min-width:320px}
.tool-metrics,.alert-metrics,.audit-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px}
.ops-metric{min-height:108px;padding:16px 17px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ops-metric>div>span{display:block;font-size:13px;color:#71807b}.ops-metric strong{display:block;font-size:27px;line-height:1;margin-top:10px;letter-spacing:-.03em}.ops-metric small{display:block;margin-top:8px;font-size:12px;color:#96a19e}.ops-metric>i{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#edf8f5;color:#188f79}.ops-metric>i.warning{background:#fff6e9;color:#d88e34}.ops-metric>i.danger{background:#fff0ed;color:#dc5d4f}.ops-metric>i.info{background:#eef5ff;color:#4d82ca}.ops-metric svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ops-panel-header{padding:17px 18px 14px;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.ops-panel-header.compact{align-items:center}.ops-panel-header h2{font-size:17px;margin:2px 0 4px}.ops-panel-header p{font-size:12.5px;color:#8b9894;margin:0}.ops-panel-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.secondary-button{height:36px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:#4f5f5a;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12.5px}.secondary-button:hover{background:#f7faf9}.secondary-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* tools */
.capability-inventory{margin-bottom:12px}.capability-inventory-card{overflow:hidden}.capability-inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 18px 18px}.capability-kind{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fbfdfc;padding:13px}.capability-kind.reserved{border-style:dashed;background:#fafbfb}.capability-kind header{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center}.capability-kind header>i{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#eaf8f4;color:#168e78}.capability-kind.reserved header>i{background:#f0f3f2;color:#7e8b87}.capability-kind svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.capability-kind header strong{display:block;font-size:13px}.capability-kind header small{display:block;margin-top:3px;font-size:10.5px;color:#8f9b97}.capability-kind header>b{font-size:24px;line-height:1;color:#188f79}.capability-kind.reserved header>b{color:#899590}.capability-kind>p{min-height:36px;margin:10px 0 9px;font-size:11px;line-height:1.55;color:#7f8c88}.capability-kind>div{display:flex;gap:5px;flex-wrap:wrap}.capability-kind>div code,.capability-kind>div span{max-width:100%;padding:4px 6px;border-radius:5px;background:#eef4f2;color:#60706a;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capability-kind.reserved>div span{background:#f0f2f2;color:#89948f}
.tool-main-grid{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(390px,.72fr);gap:12px}.tool-list-card{overflow:hidden}.tool-table-head,.tool-row{display:grid;grid-template-columns:minmax(170px,1.45fr) 92px minmax(150px,1.2fr) 64px 64px 88px 22px;gap:8px;align-items:center}.tool-table-head{height:39px;padding:0 18px;background:#fafcfc;border-bottom:1px solid var(--line);font-size:11.5px;font-weight:700;color:#98a39f}.tool-row{width:100%;min-height:78px;padding:10px 18px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:inherit;min-width:0;overflow:hidden;transition:background .18s ease,box-shadow .18s ease;position:relative}.tool-row:hover{background:#fbfdfc}.tool-row.selected{background:#f2faf7}.tool-row.selected::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.tool-identity{display:flex;gap:10px;align-items:center;min-width:0}.tool-icon-box{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#edf7f4;color:#168c76;flex:0 0 auto}.tool-icon-box.high{background:#fff1ee;color:#da5a4c}.tool-icon-box.medium{background:#fff6ea;color:#d78b34}.tool-icon-box svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.85}.tool-identity strong{font-size:13px;display:block}.tool-identity small{font-size:11.5px;color:#95a09d;display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-risk{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700}.tool-risk i{width:7px;height:7px;border-radius:50%}.tool-risk.high{color:#d35849}.tool-risk.high i{background:#df6253}.tool-risk.medium{color:#cc8733}.tool-risk.medium i{background:#dea049}.tool-risk.low{color:#178e78}.tool-risk.low i{background:#2eae90}.tool-source strong,.tool-agents strong,.tool-calls strong{font-size:12.5px;display:block}.tool-source small,.tool-agents small,.tool-calls small{font-size:11px;color:#9ba5a2;display:block;margin-top:4px}.side-effect-tags{display:flex;flex-wrap:wrap;gap:4px}.side-effect-tags span{font-size:10.8px;padding:4px 6px;border-radius:5px;background:#f2f6f5;color:#64726e;border:1px solid #e7ecea}.integrity-pill{height:24px;padding:0 7px;border-radius:7px;display:inline-flex;align-items:center;gap:5px;font-size:10.8px;font-weight:700}.integrity-pill.ok{background:#eaf8f4;color:#168e78}.integrity-pill.review{background:#fff5e8;color:#d08831}.integrity-pill.bad{background:#fff0ed;color:#d35548}.integrity-pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.tool-row .asset-chevron{width:14px;height:14px;fill:none;stroke:#a2aeaa;stroke-width:2;transition:transform .18s ease,stroke .18s ease}
.tool-row:hover{box-shadow:inset 0 0 0 1px #e3f2ee}.tool-row:hover .asset-chevron{transform:translateX(3px);stroke:var(--brand)}
.tool-row:active{background:#f5fbf9}
.tool-row>.tool-identity,.tool-row>.tool-risk,.tool-row>.side-effect-tags,.tool-row>.tool-agents,.tool-row>.tool-calls,.tool-row>.integrity-pill{min-width:0;overflow:hidden}
.tool-row>.tool-agents,.tool-row>.tool-calls{overflow:visible}
.tool-agents strong,.tool-calls strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tool-row>.integrity-pill{max-width:100%}
@keyframes toolRowIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#toolRows .tool-row{animation:toolRowIn .32s cubic-bezier(.2,.8,.25,1) both}
#toolRows .tool-row:nth-child(2){animation-delay:.04s}#toolRows .tool-row:nth-child(3){animation-delay:.08s}#toolRows .tool-row:nth-child(4){animation-delay:.12s}#toolRows .tool-row:nth-child(5){animation-delay:.16s}#toolRows .tool-row:nth-child(6){animation-delay:.2s}#toolRows .tool-row:nth-child(7){animation-delay:.24s}#toolRows .tool-row:nth-child(8){animation-delay:.28s}
@keyframes toolRowSelect{0%{background:#e2f6f0}100%{background:#f2faf7}}
.tool-row.selected{animation:toolRowSelect .5s ease}
.tool-row>.tool-identity>.tool-icon-box{transition:transform .18s ease}
.tool-row:hover>.tool-identity>.tool-icon-box{transform:scale(1.07)}
#toolMetrics .ops-metric{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
#toolMetrics .ops-metric:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(33,63,56,.08)}
.tool-heading .filter-chip,.ops-panel-actions .filter-chip{transition:background .16s ease,color .16s ease,border-color .16s ease,transform .12s ease}
.filter-chip:active{transform:scale(.95)}
.integrity-item .mini-progress b{transition:width .6s cubic-bezier(.2,.8,.2,1)}
.tool-usage-row div b{transition:width .6s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion: reduce){#toolRows .tool-row,.tool-row.selected{animation:none}}
.tool-detail-card{min-height:690px;padding:19px;position:sticky;top:82px}.tool-detail-hero{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tool-detail-name{display:flex;gap:11px;align-items:center}.tool-detail-name .tool-icon-box{width:42px;height:42px}.tool-detail-name h2{font-size:20px;margin:0 0 4px}.tool-detail-name p{font-size:11.5px;color:#8f9b97;margin:0}.manifest-score{font-size:25px;font-weight:760;letter-spacing:-.03em;color:#188f79}.manifest-score small{font-size:11px;color:#95a19d;font-weight:600}.tool-detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.tool-detail-tags span,.tool-detail-tags code{font-size:11px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#f8faf9;color:#64726e}.tool-detail-section{padding:14px 0;border-top:1px solid var(--line)}.tool-detail-section header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.tool-detail-section header span{font-size:13.5px;font-weight:700}.tool-detail-section header small{font-size:11px;color:#96a19e}.manifest-kv{display:grid;grid-template-columns:1fr 1fr;gap:7px}.manifest-kv>div{padding:9px 10px;border-radius:8px;background:#f8fbfa;border:1px solid var(--line)}.manifest-kv span{font-size:10.8px;color:#8d9995;display:block}.manifest-kv strong,.manifest-kv code{font-size:11.5px;display:block;margin-top:4px;color:#465550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-scope-list,.tool-control-list{display:flex;flex-direction:column;gap:6px}.tool-scope-list div,.tool-control-list div{display:flex;align-items:flex-start;gap:8px;padding:8px 9px;border-radius:8px;background:#f9fbfa;border:1px solid var(--line)}.tool-scope-list svg,.tool-control-list svg{width:14px;height:14px;fill:none;stroke:#1c987f;stroke-width:1.9;flex:0 0 auto;margin-top:1px}.tool-scope-list span,.tool-control-list span{font-size:12px;line-height:1.45;color:#586762}.tool-agent-chips{display:flex;gap:6px;flex-wrap:wrap}.tool-agent-chips span{font-size:11.5px;padding:6px 8px;border-radius:7px;background:#eff6f4;border:1px solid #e2ebe8;color:#576762}.tool-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.tool-detail-actions button{width:100%}
.tool-bottom-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:12px;margin-top:12px}.integrity-board,.tool-usage-card{overflow:hidden}.integrity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:15px 18px 18px}.integrity-item{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fbfdfc}.integrity-item header{display:flex;justify-content:space-between;align-items:center}.integrity-item header strong{font-size:13px}.integrity-item header span{font-size:11px;color:#178f79}.integrity-item p{margin:7px 0 0;font-size:11.5px;color:#8e9a96;line-height:1.5}.integrity-item .mini-progress{height:5px;background:#edf2f0;border-radius:4px;margin-top:10px;overflow:hidden}.integrity-item .mini-progress b{display:block;height:100%;border-radius:4px;background:#2db394}.tool-usage-list{padding:8px 18px 16px}.tool-usage-row{display:grid;grid-template-columns:minmax(160px,1fr) 1.2fr 52px;gap:12px;align-items:center;min-height:44px}.tool-usage-row span{font-size:12.5px}.tool-usage-row div{height:7px;border-radius:5px;background:#edf2f0;overflow:hidden}.tool-usage-row div b{display:block;height:100%;border-radius:5px;background:#61b8a8}.tool-usage-row strong{font-size:12px;text-align:right}

/* alerts */
.alert-main-grid{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(400px,.76fr);gap:12px}.alert-list-card{overflow:hidden}.alert-toolbar{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);background:#fcfdfd}.alert-toolbar-left,.alert-toolbar-right{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.alert-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;min-height:88px;padding:12px 18px;display:grid;grid-template-columns:38px minmax(260px,1.55fr) 145px 105px 105px 82px 24px;gap:10px;align-items:center;text-align:left;color:inherit;transition:.15s;position:relative}.alert-row:hover{background:#fbfdfc}.alert-row.selected{background:#f4faf8}.alert-sev-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center}.alert-sev-icon.high{background:#fff0ed;color:#dc5c4d}.alert-sev-icon.medium{background:#fff6e9;color:#d88f35}.alert-sev-icon.low{background:#eef7ff;color:#4d88d4}.alert-sev-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}.alert-copy strong{font-size:13px;display:block}.alert-copy p{font-size:11.5px;color:#929e9a;margin:5px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-agent strong,.alert-rule code{font-size:11.8px;display:block}.alert-agent small,.alert-rule small{display:block;font-size:10.8px;color:#9ba6a2;margin-top:4px}.alert-status{font-size:11px;font-weight:700;padding:5px 7px;border-radius:6px;width:max-content}.alert-status.open{background:#fff1ee;color:#d2584a}.alert-status.investigating{background:#fff6e9;color:#d2872f}.alert-status.resolved{background:#eaf8f4;color:#168d77}.alert-status.suppressed{background:#f0f3f2;color:#788580}.alert-time strong{font-size:11.5px;display:block}.alert-time small{font-size:10.5px;color:#9aa5a2;display:block;margin-top:4px}.alert-row>.asset-chevron{width:14px;height:14px;fill:none;stroke:#9ba6a2;stroke-width:2}.alert-empty{padding:70px 20px;text-align:center;color:#8e9b97}.alert-empty strong{font-size:13.5px}.alert-empty p{font-size:12px;margin:6px 0 0}
.alert-detail-card{padding:19px;min-height:690px;position:sticky;top:82px}.alert-detail-hero{display:flex;gap:11px;align-items:flex-start}.alert-detail-hero>i{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto}.alert-detail-hero>i.high{background:#fff0ed;color:#db5b4d}.alert-detail-hero>i.medium{background:#fff6e9;color:#d58c33}.alert-detail-hero svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9}.alert-detail-hero h2{font-size:19px;line-height:1.35;margin:0 0 5px}.alert-detail-hero p{font-size:11.5px;color:#8c9995;margin:0}.alert-detail-summary{margin:14px 0;padding:12px 13px;background:#f8fbfa;border:1px solid var(--line);border-radius:10px;font-size:12.5px;line-height:1.65;color:#56655f}.alert-detail-section{padding:14px 0;border-top:1px solid var(--line)}.alert-detail-section header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.alert-detail-section header span{font-size:13.5px;font-weight:700}.alert-detail-section header small{font-size:11px;color:#96a19d}.alert-kv{display:grid;grid-template-columns:1fr 1fr;gap:7px}.alert-kv div{padding:8px 9px;background:#fafcfc;border-radius:8px;border:1px solid var(--line)}.alert-kv span{font-size:10.5px;color:#95a09c;display:block}.alert-kv strong,.alert-kv code{display:block;font-size:11.5px;margin-top:4px;color:#4d5d57}.alert-evidence{padding:10px;border:1px solid #f0d9d2;background:#fff7f5;border-radius:9px;font:11.5px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:#8d4d43;white-space:pre-wrap;word-break:break-word}.alert-chain{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.alert-chain span{font-size:10.8px;padding:5px 6px;border-radius:6px;background:#f0f5f3;color:#61706b}.alert-chain i{font-style:normal;color:#a5afac}.alert-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.alert-detail-actions button{width:100%}
.alert-bottom-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:12px;margin-top:12px}.alert-summary-card,.alert-routing-card{overflow:hidden}.alert-summary-bars{padding:14px 18px 18px}.alert-summary-bar{display:grid;grid-template-columns:120px 1fr 46px;gap:10px;align-items:center;min-height:42px}.alert-summary-bar span{font-size:12px}.alert-summary-bar div{height:7px;background:#eef2f1;border-radius:5px;overflow:hidden}.alert-summary-bar b{display:block;height:100%;border-radius:5px}.alert-summary-bar b.high{background:#df6557}.alert-summary-bar b.medium{background:#e2a14a}.alert-summary-bar b.low{background:#54adcf}.alert-summary-bar strong{font-size:12px;text-align:right}.routing-list{padding:9px 18px 16px}.routing-row{min-height:58px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:34px 1fr 76px;gap:9px;align-items:center}.routing-row:last-child{border-bottom:0}.routing-row i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#edf7f4;color:#188f78}.routing-row i svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.routing-row strong{font-size:12.5px;display:block}.routing-row small{font-size:10.8px;color:#95a19d;display:block;margin-top:3px}.routing-row b{font-size:10.5px;border:1px solid var(--line);padding:5px 7px;border-radius:6px;text-align:center;color:#667570}

/* audit */
.audit-integrity-banner{min-height:78px;margin-bottom:12px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(105deg,#f1fbf8,#fff);border:1px solid #dbece7;border-radius:14px}.audit-integrity-copy{display:flex;align-items:center;gap:12px}.audit-integrity-copy>i{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#e3f7f1;color:#168e77}.audit-integrity-copy svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9}.audit-integrity-copy strong{font-size:14px;display:block}.audit-integrity-copy small{font-size:11.5px;color:#82908b;display:block;margin-top:4px}.audit-integrity-meta{display:flex;gap:22px}.audit-integrity-meta span{text-align:right}.audit-integrity-meta small{display:block;font-size:10.8px;color:#94a09c}.audit-integrity-meta strong{display:block;font-size:13px;margin-top:4px}
.audit-main-grid{display:grid;grid-template-columns:minmax(0,1.64fr) minmax(390px,.68fr);gap:12px}.audit-log-card{overflow:hidden}.audit-toolbar{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.audit-table-head,.audit-row{display:grid;grid-template-columns:92px 120px minmax(230px,1.2fr) 130px 92px 105px 104px 28px;gap:10px;align-items:center}.audit-table-head{height:38px;background:#fafcfc;padding:0 18px;border-bottom:1px solid var(--line);font-size:11.2px;color:#98a39f;font-weight:700}.audit-row{width:100%;min-height:70px;padding:9px 18px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:inherit}.audit-row:hover{background:#fbfdfc}.audit-row.selected{background:#f3faf7}.audit-time strong{font-size:11.5px;display:block;font-variant-numeric:tabular-nums}.audit-time small{font-size:10.5px;color:#9aa5a1;display:block;margin-top:3px}.audit-type{font-size:11px;font-weight:700;padding:5px 7px;border-radius:6px;width:max-content}.audit-type.action{background:#eef6ff;color:#4c7ebf}.audit-type.policy{background:#eef9f5;color:#188e78}.audit-type.config{background:#fff6e9;color:#cc8633}.audit-type.auth{background:#f3f0ff;color:#7659c6}.audit-subject strong{font-size:12.5px;display:block}.audit-subject small{font-size:10.8px;color:#97a29e;display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-actor strong{font-size:11.5px;display:block}.audit-actor small{font-size:10.5px;color:#9ba5a2;display:block;margin-top:3px}.audit-hash{font:10.8px ui-monospace,SFMono-Regular,Menlo,monospace;color:#6c7b76}.audit-row>.asset-chevron{width:14px;height:14px;fill:none;stroke:#9aa5a2;stroke-width:2}.audit-detail-card{padding:19px;min-height:670px;position:sticky;top:82px}.audit-detail-kicker{font-size:11.5px;color:#168e78;font-weight:750}.audit-detail-card h2{font-size:19px;line-height:1.35;margin:5px 0 4px}.audit-detail-card>p{font-size:11.5px;color:#8e9a96;margin:0 0 14px}.audit-detail-section{padding:14px 0;border-top:1px solid var(--line)}.audit-detail-section>span,.audit-detail-section header span{font-size:13px;font-weight:700}.audit-detail-section header{display:flex;justify-content:space-between;align-items:center}.audit-detail-section header small{font-size:10.8px;color:#97a29e}.audit-detail-kv{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.audit-detail-kv div{padding:8px 9px;background:#fafcfc;border:1px solid var(--line);border-radius:8px}.audit-detail-kv small{font-size:10.5px;color:#96a19d;display:block}.audit-detail-kv strong,.audit-detail-kv code{font-size:11.5px;display:block;margin-top:4px;word-break:break-word}.audit-json{margin-top:9px;padding:10px;border-radius:8px;background:#17231f;color:#dce9e5;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;max-height:190px;overflow:auto}.audit-chain-check{display:flex;align-items:center;gap:8px;margin-top:9px;color:#178e78;font-size:12px}.audit-chain-check i{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:#e7f8f3;font-style:normal}.audit-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}

/* settings */
.settings-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}.settings-nav{padding:9px;position:sticky;top:82px}.settings-nav button{width:100%;height:44px;border:0;background:transparent;border-radius:9px;display:flex;align-items:center;gap:10px;padding:0 11px;color:#5a6964;text-align:left;font-size:13px}.settings-nav button:hover{background:#f4f8f7}.settings-nav button.active{background:#eaf8f4;color:#118b75;font-weight:700}.settings-nav button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}.settings-nav footer{border-top:1px solid var(--line);margin-top:8px;padding:12px 10px 4px}.settings-nav footer strong{font-size:11.5px;display:block}.settings-nav footer span{font-size:10.8px;color:#95a09d;display:block;margin-top:4px}.settings-content-card{overflow:hidden;min-height:710px}.settings-section-view{display:none}.settings-section-view.active{display:block}.settings-section-header{padding:22px 24px 17px;border-bottom:1px solid var(--line)}.settings-section-header span{font-size:11.5px;color:#158e78;font-weight:750;letter-spacing:.08em}.settings-section-header h2{font-size:20px;margin:5px 0 5px}.settings-section-header p{font-size:12.5px;color:#84918d;margin:0}.settings-group{padding:5px 24px}.setting-row{min-height:76px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.72fr);gap:24px;align-items:center}.setting-copy strong{font-size:13.5px;display:block}.setting-copy p{font-size:11.8px;line-height:1.55;color:#8b9793;margin:5px 0 0;max-width:720px}.setting-control{justify-self:end;width:100%;max-width:330px;display:flex;align-items:center;justify-content:flex-end;gap:9px}.setting-control input[type="text"],.setting-control input[type="number"],.setting-control input[type="password"],.setting-control select{height:36px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;padding:0 10px;color:#455550;outline:none;font-size:12px;width:100%}.setting-control input:focus,.setting-control select:focus{border-color:#9fd7cc;box-shadow:0 0 0 3px #ebf8f4}.toggle{width:42px;height:24px;border:0;border-radius:13px;background:#dfe7e4;padding:3px;display:flex;align-items:center;transition:.18s;flex:0 0 auto}.toggle i{width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(31,55,49,.18);transition:.18s}.toggle.on{background:#25aa8e}.toggle.on i{transform:translateX(18px)}.settings-note{margin:15px 24px;padding:12px 13px;border-radius:9px;background:#f6faf8;border:1px solid var(--line);font-size:11.8px;color:#687670;line-height:1.6}.settings-note.warning{background:#fff9ef;border-color:#f2e2c9;color:#8c724e}.settings-footer{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;background:#fcfdfd}.settings-footer span{font-size:11.5px;color:#93a09c}.settings-footer div{display:flex;gap:8px}.setting-danger-row{margin:16px 24px;padding:15px;border:1px solid #f0d5cf;border-radius:11px;background:#fff8f6;display:flex;align-items:center;justify-content:space-between;gap:18px}.setting-danger-row strong{font-size:13px;display:block;color:#a3473c}.setting-danger-row p{font-size:11.5px;color:#a97970;margin:4px 0 0}.danger-button{height:36px;border:1px solid #edc6be;border-radius:9px;background:#fff;color:#c34e40;padding:0 12px;font-size:12px;font-weight:650}

@media(max-width:1280px){.tool-main-grid,.alert-main-grid,.audit-main-grid{grid-template-columns:1fr}.tool-detail-card,.alert-detail-card,.audit-detail-card{position:static;min-height:0}.tool-table-head,.tool-row{min-width:920px}.tool-list-card{overflow:auto}.alert-row{min-width:980px}.alert-list-card{overflow:auto}.audit-table-head,.audit-row{min-width:1010px}.audit-log-card{overflow:auto}.tool-heading-actions,.alert-heading-actions,.audit-heading-actions{min-width:0}.settings-layout{grid-template-columns:210px 1fr}}
@media(max-width:1280px){
  .tool-heading{align-items:flex-start;flex-direction:column}
  .tool-heading-actions{width:100%;min-width:0;justify-content:flex-start}
  .tool-search{flex:1 1 320px;min-width:220px}
  .tool-heading-actions>button{flex:0 0 auto;white-space:nowrap}
}
@media(max-width:1100px){.capability-inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.tool-metrics,.alert-metrics,.audit-metrics{grid-template-columns:repeat(2,1fr)}.tool-bottom-grid,.alert-bottom-grid{grid-template-columns:1fr}.integrity-grid{grid-template-columns:1fr}.settings-layout{grid-template-columns:1fr}.settings-nav{position:static;display:flex;overflow:auto}.settings-nav button{min-width:150px}.settings-nav footer{display:none}.setting-row{grid-template-columns:1fr;gap:10px;padding:12px 0}.setting-control{justify-self:stretch;max-width:none;justify-content:flex-start}.tool-heading,.alert-heading,.audit-heading,.settings-heading{align-items:flex-start;flex-direction:column}.tool-heading-actions,.alert-heading-actions,.audit-heading-actions{width:100%;justify-content:flex-start}.tool-search,.alert-search,.audit-search{flex:1;min-width:250px}}
@media(max-width:650px){.capability-inventory-grid{grid-template-columns:1fr}.tool-metrics,.alert-metrics,.audit-metrics{grid-template-columns:1fr}.tool-heading-actions,.alert-heading-actions,.audit-heading-actions{flex-wrap:wrap}.tool-search,.alert-search,.audit-search{width:100%;min-width:100%}.audit-integrity-banner{align-items:flex-start;flex-direction:column}.audit-integrity-meta{width:100%;justify-content:space-between}.audit-integrity-meta span{text-align:left}.settings-section-header,.settings-group,.settings-footer{padding-left:16px;padding-right:16px}.settings-note,.setting-danger-row{margin-left:16px;margin-right:16px}}


/* ===== v9 · UI polish requested ===== */
/* Sidebar: keep engine status, remove profile/mode caption. */
.side-status{align-items:center}
.side-status .status-dot{margin-top:0}
.side-status span{display:none}

/* Overview: make navigation affordances obvious without adding visual noise. */
.overview-clickable{outline:none}
.metric-card.overview-clickable,.graph-node.overview-clickable,.risk-route.overview-clickable,
.mini-stat.overview-clickable,.decision-summary .overview-clickable,.rule-row.overview-clickable{
  cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease
}
.metric-card.overview-clickable:hover,.metric-card.overview-clickable:focus-visible{
  border-color:#cfe4de;box-shadow:0 10px 28px rgba(33,63,56,.09);transform:translateY(-1px)
}
.metric-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.metric-foot b{font-size:10.8px;color:#168e78;font-weight:680;opacity:.78}
.graph-node{font:inherit;color:inherit;text-align:left}
.graph-node.overview-clickable:hover,.graph-node.overview-clickable:focus-visible{border-color:#a9d8cd;box-shadow:0 9px 22px rgba(32,92,78,.1)}
.graph-node.risk.overview-clickable:hover,.graph-node.risk.overview-clickable:focus-visible{border-color:#e8aa9d}
.graph-node.node-injection.overview-clickable:hover,.graph-node.node-injection.overview-clickable:focus-visible{border-color:#d9933e}
.graph-node.node-persistence.overview-clickable:hover,.graph-node.node-persistence.overview-clickable:focus-visible{border-color:#7667bd}
.graph-node.node-hijack.overview-clickable:hover,.graph-node.node-hijack.overview-clickable:focus-visible{border-color:#df6253}
.risk-route{width:100%;text-align:left;font:inherit;color:inherit}
.risk-route.overview-clickable:hover,.risk-route.overview-clickable:focus-visible{border-color:#efcdb7;background:#fff5ed}
.mini-stat.overview-clickable:hover,.mini-stat.overview-clickable:focus-visible{background:#f7fbfa}
.decision-summary .overview-clickable{padding:7px 8px;margin:-7px 0;border-radius:8px}
.decision-summary .overview-clickable:hover,.decision-summary .overview-clickable:focus-visible{background:#f5f9f8}
.rule-row{width:100%;border-left:0;border-right:0;border-top:0;background:transparent;color:inherit;text-align:left;padding:0}
.rule-row.overview-clickable:hover,.rule-row.overview-clickable:focus-visible{background:#f7fbfa}

/* Audit event payload: light code surface instead of a black panel. */
.audit-json{
  background:#f7faf9;color:#40514b;border:1px solid #e1e9e6;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85)
}

/* Alert queue: long rule codes and narrow list columns no longer collide with status badges. */
.alert-main-grid{grid-template-columns:minmax(0,1.58fr) minmax(360px,.72fr)}
.alert-list-card,.alert-row,.alert-copy,.alert-agent,.alert-rule,.alert-time{min-width:0}
.alert-row{
  grid-template-columns:34px minmax(170px,1.45fr) minmax(96px,.72fr) minmax(118px,.9fr) 76px 70px 16px;
  gap:8px;padding:12px 14px
}
.alert-copy strong,.alert-agent strong,.alert-agent small,.alert-rule code,.alert-rule small{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%
}
.alert-status{white-space:nowrap}
.alert-row>.asset-chevron{justify-self:end}
@media(max-width:1280px){
  .alert-main-grid{grid-template-columns:1fr}
  .alert-row{min-width:0}
  .alert-list-card{overflow:hidden}
}
@media(max-width:820px){
  .sidebar{width:196px;transform:translateX(-105%)}
}
@media(max-width:720px){
  .alert-toolbar{align-items:flex-start;flex-direction:column}
  .alert-toolbar-left,.alert-toolbar-right{width:100%}
  .alert-row{
    grid-template-columns:34px minmax(0,1fr) auto;
    grid-template-rows:auto auto auto;
    min-height:116px;padding:13px 14px;column-gap:9px;row-gap:7px
  }
  .alert-sev-icon{grid-column:1;grid-row:1/3;align-self:start}
  .alert-copy{grid-column:2;grid-row:1}
  .alert-copy strong{white-space:normal;line-height:1.35}
  .alert-status{grid-column:3;grid-row:1;justify-self:end}
  .alert-agent{grid-column:2;grid-row:2}
  .alert-time{grid-column:3;grid-row:2;justify-self:end;text-align:right}
  .alert-rule{grid-column:2/4;grid-row:3}
  .alert-row>.asset-chevron{display:none}
}

/* Responsive navigation and compact route labels for the dashboard shell. */
.sidebar-scrim{display:none}
.route-labels{min-width:0}
.route-labels span{min-width:0;max-width:100%;flex:1 1 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.route-labels i{flex:0 0 auto}
.risk-route small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.live-pill.unavailable,.profile-live.unavailable{color:#8d9895;background:#f5f7f6;border-color:#e5ebe8}
.pending-list button div{min-width:0}
.pending-list small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.session-identity{min-width:0}
.session-identity strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-menu{width:36px;height:36px;padding:0;display:none;place-items:center;flex:0 0 36px}
.mobile-menu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.topbar-title>span{white-space:nowrap}
.primary-grid>*,.secondary-grid>*,.bottom-grid>*,.metrics-grid>*{min-width:0}
.event-table-wrap{max-width:100%}

@media(max-width:820px){
  .sidebar{width:196px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:8px 0 24px rgba(25,54,47,.08)}
  .app-shell.nav-open .sidebar{transform:translateX(0)}
  .sidebar-scrim{position:fixed;inset:0;z-index:19;border:0;background:rgba(22,43,38,.22);backdrop-filter:blur(1px)}
  .app-shell.nav-open .sidebar-scrim{display:block}
  .mobile-menu{display:grid}
  .topbar-actions{min-width:0;gap:4px}
  .operator{margin-left:0;padding-left:6px}
}

/* Final responsive polish for live rule data and the incident workbench. */
.rule-row{grid-template-columns:26px minmax(0,1fr) 54px minmax(72px,max-content)}
.rule-row>em{white-space:nowrap;word-break:keep-all;text-align:right}

@media(max-width:760px){
  .detail-heading-actions{min-width:0}
  .detail-session-select{min-width:0;max-width:calc(100% - 50px)}
  .severity-pill{flex:0 0 auto;white-space:nowrap;word-break:keep-all}
  .semantic-legend{
    height:auto;
    min-height:52px;
    padding:7px 8px;
    gap:5px 10px;
    flex-wrap:wrap;
    align-content:center;
  }
  .semantic-legend span{
    flex:0 0 auto;
    gap:4px;
    white-space:nowrap;
    font-size:9px;
  }
  .semantic-legend b{
    flex:1 0 100%;
    min-width:0;
    margin-left:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9px;
  }
  .graph-hint{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .incident-timeline{width:100%;min-width:0;overflow-x:auto}
  .timeline-step{flex:0 0 140px}
}

@media(max-width:1050px){
  .asset-main-grid{grid-template-columns:minmax(0,1fr)}
  .asset-main-grid>*,.asset-bottom-grid>*{min-width:0}
  .asset-inventory-card{width:100%;max-width:100%}
}

@media(max-width:720px){
  .exposure-row{grid-template-columns:30px minmax(0,1fr) minmax(54px,.65fr) 24px;gap:6px}
}

/* ===== v10 · dark theme completeness (midnight / graphite) ===== */
html[data-theme="midnight"],html[data-theme="graphite"]{--danger-soft:rgba(228,85,69,.16);--warning-soft:rgba(232,154,52,.16);--info-soft:rgba(75,134,217,.16);--brand-soft:rgba(99,201,189,.14)}
html[data-theme="midnight"] .eyebrow,html[data-theme="graphite"] .eyebrow{color:var(--brand)}
html[data-theme="midnight"] .eyebrow span,html[data-theme="graphite"] .eyebrow span{box-shadow:0 0 0 4px var(--brand-soft)}
html[data-theme="midnight"] .segmented,html[data-theme="graphite"] .segmented{background:#0d1c28}
html[data-theme="midnight"] .segmented button,html[data-theme="graphite"] .segmented button{color:var(--text-2)}
html[data-theme="midnight"] .segmented button.active,html[data-theme="graphite"] .segmented button.active{background:#1c3547;color:var(--text);box-shadow:none}
html[data-theme="midnight"] .ghost-button,html[data-theme="graphite"] .ghost-button{background:#122433;color:var(--text-2)}
html[data-theme="midnight"] .topbar-title>small,html[data-theme="graphite"] .topbar-title>small{background:#122433}
html[data-theme="midnight"] .topbar-title>small.live,html[data-theme="graphite"] .topbar-title>small.live{background:var(--brand-soft);color:var(--brand);border-color:var(--line-strong)}
html[data-theme="midnight"] .icon-button,html[data-theme="graphite"] .icon-button,html[data-theme="midnight"] .notification-button,html[data-theme="graphite"] .notification-button{color:var(--text-2)}
html[data-theme="midnight"] .icon-button:hover,html[data-theme="graphite"] .icon-button:hover,html[data-theme="midnight"] .notification-button:hover,html[data-theme="graphite"] .notification-button:hover{background:#122433}
html[data-theme="midnight"] .notification-button span,html[data-theme="graphite"] .notification-button span{border-color:var(--surface)}
html[data-theme="midnight"] .avatar,html[data-theme="graphite"] .avatar{background:#1c3547;color:var(--text-2)}
html[data-theme="midnight"] .operator,html[data-theme="graphite"] .operator{color:var(--text-2)}
html[data-theme="midnight"] .live-pill,html[data-theme="graphite"] .live-pill{background:var(--brand-soft);border-color:var(--line-strong);color:var(--brand)}
html[data-theme="midnight"] .live-pill i,html[data-theme="graphite"] .live-pill i{box-shadow:0 0 0 4px transparent}
html[data-theme="midnight"] .graph-node .node-icon,html[data-theme="graphite"] .graph-node .node-icon{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .graph-node small,html[data-theme="graphite"] .graph-node small{color:var(--text-3)}
html[data-theme="midnight"] .graph-node.risk,html[data-theme="graphite"] .graph-node.risk{border-color:#5a3a33}
html[data-theme="midnight"] .graph-node.risk .node-icon,html[data-theme="graphite"] .graph-node.risk .node-icon{background:rgba(224,106,90,.15);color:#ff8d80}
html[data-theme="midnight"] .graph-lines .orbit,html[data-theme="graphite"] .graph-lines .orbit{stroke:#23485a}
html[data-theme="midnight"] .orb-shadow,html[data-theme="graphite"] .orb-shadow{fill:#0e2a3a;opacity:.85}
html[data-theme="midnight"] .orb,html[data-theme="graphite"] .orb{stroke:#2e6d7e}
html[data-theme="midnight"] .shield-core,html[data-theme="graphite"] .shield-core{fill:#0f2230;stroke:var(--brand)}
html[data-theme="midnight"] .shield-check,html[data-theme="graphite"] .shield-check{stroke:var(--brand)}
html[data-theme="midnight"] .chart-grid,html[data-theme="graphite"] .chart-grid{stroke:#1d3646}
html[data-theme="midnight"] .chart-label,html[data-theme="graphite"] .chart-label{fill:var(--text-3)}
html[data-theme="midnight"] .decision-summary>div.summary-active,html[data-theme="graphite"] .decision-summary>div.summary-active{background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--line-strong)}
html[data-theme="midnight"] .risk-row label,html[data-theme="graphite"] .risk-row label{color:var(--text-2)}
html[data-theme="midnight"] .risk-row .track,html[data-theme="graphite"] .risk-row .track{background:#17303f}
html[data-theme="midnight"] .event-table td,html[data-theme="graphite"] .event-table td{color:var(--text-2)}
html[data-theme="midnight"] .event-table td:nth-child(3),html[data-theme="graphite"] .event-table td:nth-child(3){color:var(--text)}
html[data-theme="midnight"] .tool-chip i,html[data-theme="graphite"] .tool-chip i{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .risk-tag.high,html[data-theme="graphite"] .risk-tag.high,html[data-theme="midnight"] .verdict-tag.deny,html[data-theme="graphite"] .verdict-tag.deny{color:#ff9d90}
html[data-theme="midnight"] .risk-tag.medium,html[data-theme="graphite"] .risk-tag.medium,html[data-theme="midnight"] .verdict-tag.ask,html[data-theme="graphite"] .verdict-tag.ask{color:#f0b469}
html[data-theme="midnight"] .risk-tag.low,html[data-theme="graphite"] .risk-tag.low,html[data-theme="midnight"] .verdict-tag.allow,html[data-theme="graphite"] .verdict-tag.allow{color:#5fd3bb}
html[data-theme="midnight"] .row-open:hover,html[data-theme="graphite"] .row-open:hover,html[data-theme="midnight"] .feed-open:hover,html[data-theme="graphite"] .feed-open:hover{background:#122433}
html[data-theme="midnight"] .count-badge,html[data-theme="graphite"] .count-badge{background:#122433;color:var(--text-2)}
html[data-theme="midnight"] .rule-name,html[data-theme="graphite"] .rule-name{color:var(--text-2)}
html[data-theme="midnight"] .risk-route,html[data-theme="graphite"] .risk-route{background:rgba(224,106,90,.07);border-color:#4a332c}
html[data-theme="midnight"] .route-labels,html[data-theme="graphite"] .route-labels{color:var(--text-2)}
html[data-theme="midnight"] .route-bar,html[data-theme="graphite"] .route-bar{background:#33261f}
html[data-theme="midnight"] .risk-route small,html[data-theme="graphite"] .risk-route small{color:#ff9d90}
html[data-theme="midnight"] .mini-stat,html[data-theme="graphite"] .mini-stat{border-color:var(--line)}
html[data-theme="midnight"] .mini-stat strong,html[data-theme="graphite"] .mini-stat strong{color:var(--text)}
html[data-theme="midnight"] .attack-feed-row,html[data-theme="graphite"] .attack-feed-row,html[data-theme="midnight"] .session-row,html[data-theme="graphite"] .session-row,html[data-theme="midnight"] .asset-row,html[data-theme="graphite"] .asset-row,html[data-theme="midnight"] .tool-row,html[data-theme="graphite"] .tool-row,html[data-theme="midnight"] .alert-row,html[data-theme="graphite"] .alert-row,html[data-theme="midnight"] .audit-row,html[data-theme="graphite"] .audit-row,html[data-theme="midnight"] .profile-lane,html[data-theme="graphite"] .profile-lane{background:transparent;color:var(--text)}
html[data-theme="midnight"] .attack-feed-row:hover,html[data-theme="graphite"] .attack-feed-row:hover,html[data-theme="midnight"] .session-row:hover,html[data-theme="graphite"] .session-row:hover,html[data-theme="midnight"] .asset-row:hover,html[data-theme="graphite"] .asset-row:hover,html[data-theme="midnight"] .tool-row:hover,html[data-theme="graphite"] .tool-row:hover,html[data-theme="midnight"] .alert-row:hover,html[data-theme="graphite"] .alert-row:hover,html[data-theme="midnight"] .audit-row:hover,html[data-theme="graphite"] .audit-row:hover,html[data-theme="midnight"] .profile-lane:hover,html[data-theme="graphite"] .profile-lane:hover,html[data-theme="midnight"] .pending-list button:hover,html[data-theme="graphite"] .pending-list button:hover{background:rgba(99,201,189,.06)}
html[data-theme="midnight"] .tool-row.selected,html[data-theme="graphite"] .tool-row.selected,html[data-theme="midnight"] .alert-row.selected,html[data-theme="graphite"] .alert-row.selected,html[data-theme="midnight"] .audit-row.selected,html[data-theme="graphite"] .audit-row.selected,html[data-theme="midnight"] .asset-row.selected,html[data-theme="graphite"] .asset-row.selected,html[data-theme="midnight"] .session-row.selected,html[data-theme="graphite"] .session-row.selected,html[data-theme="midnight"] .profile-lane.active,html[data-theme="graphite"] .profile-lane.active{background:var(--brand-soft)}
html[data-theme="midnight"] .session-table-head,html[data-theme="graphite"] .session-table-head,html[data-theme="midnight"] .asset-table-head,html[data-theme="graphite"] .asset-table-head,html[data-theme="midnight"] .tool-table-head,html[data-theme="graphite"] .tool-table-head,html[data-theme="midnight"] .audit-table-head,html[data-theme="graphite"] .audit-table-head{background:#0d1c28;color:var(--text-3)}
html[data-theme="midnight"] .tool-chip-row span,html[data-theme="graphite"] .tool-chip-row span,html[data-theme="midnight"] .mini-chain span,html[data-theme="graphite"] .mini-chain span,html[data-theme="midnight"] .asset-tool-stack code,html[data-theme="graphite"] .asset-tool-stack code,html[data-theme="midnight"] .side-effect-tags span,html[data-theme="graphite"] .side-effect-tags span,html[data-theme="midnight"] .tool-agent-chips span,html[data-theme="graphite"] .tool-agent-chips span,html[data-theme="midnight"] .alert-chain span,html[data-theme="graphite"] .alert-chain span,html[data-theme="midnight"] .tool-detail-tags span,html[data-theme="graphite"] .tool-detail-tags span,html[data-theme="midnight"] .tool-detail-tags code,html[data-theme="graphite"] .tool-detail-tags code{background:#122433;border-color:var(--line);color:var(--text-2)}
html[data-theme="midnight"] .mini-chain .danger-step,html[data-theme="graphite"] .mini-chain .danger-step{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .mini-chain .safe-step,html[data-theme="graphite"] .mini-chain .safe-step{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .integrity-pill.ok,html[data-theme="graphite"] .integrity-pill.ok{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .integrity-pill.review,html[data-theme="graphite"] .integrity-pill.review{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .integrity-pill.bad,html[data-theme="graphite"] .integrity-pill.bad{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .alert-status.open,html[data-theme="graphite"] .alert-status.open{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .alert-status.investigating,html[data-theme="graphite"] .alert-status.investigating{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .alert-status.resolved,html[data-theme="graphite"] .alert-status.resolved{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .alert-status.suppressed,html[data-theme="graphite"] .alert-status.suppressed{background:#122433;color:var(--text-3)}
html[data-theme="midnight"] .audit-type.action,html[data-theme="graphite"] .audit-type.action{background:var(--info-soft);color:#8fb6ea}
html[data-theme="midnight"] .audit-type.policy,html[data-theme="graphite"] .audit-type.policy{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .audit-type.config,html[data-theme="graphite"] .audit-type.config{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .audit-type.auth,html[data-theme="graphite"] .audit-type.auth{background:rgba(118,89,198,.16);color:#b7a2f0}
html[data-theme="midnight"] .feed-event>i,html[data-theme="graphite"] .feed-event>i{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .feed-event>i.ask,html[data-theme="graphite"] .feed-event>i.ask{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .feed-event>i.allow,html[data-theme="graphite"] .feed-event>i.allow{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .session-agent>i,html[data-theme="graphite"] .session-agent>i{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .risk-dot.high,html[data-theme="graphite"] .risk-dot.high{box-shadow:0 0 0 4px var(--danger-soft)}
html[data-theme="midnight"] .risk-dot.medium,html[data-theme="graphite"] .risk-dot.medium{box-shadow:0 0 0 4px var(--warning-soft)}
html[data-theme="midnight"] .risk-dot.low,html[data-theme="graphite"] .risk-dot.low{box-shadow:0 0 0 4px var(--brand-soft)}
html[data-theme="midnight"] .asset-avatar,html[data-theme="graphite"] .asset-avatar{background:var(--info-soft);border-color:var(--line);color:#8fb6ea}
html[data-theme="midnight"] .asset-avatar.risk-high,html[data-theme="graphite"] .asset-avatar.risk-high{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .asset-avatar.risk-medium,html[data-theme="graphite"] .asset-avatar.risk-medium{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .asset-avatar.risk-low,html[data-theme="graphite"] .asset-avatar.risk-low{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .ops-metric>i,html[data-theme="graphite"] .ops-metric>i{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .ops-metric>i.warning,html[data-theme="graphite"] .ops-metric>i.warning{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .ops-metric>i.danger,html[data-theme="graphite"] .ops-metric>i.danger{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .ops-metric>i.info,html[data-theme="graphite"] .ops-metric>i.info{background:var(--info-soft);color:#8fb6ea}
html[data-theme="midnight"] .integrity-item,html[data-theme="graphite"] .integrity-item,html[data-theme="midnight"] .capability-kind,html[data-theme="graphite"] .capability-kind{background:#0d1c28;border-color:var(--line)}
html[data-theme="midnight"] .capability-kind header>i,html[data-theme="graphite"] .capability-kind header>i{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .capability-kind.reserved header>i,html[data-theme="graphite"] .capability-kind.reserved header>i{background:#122433;color:var(--text-3)}
html[data-theme="midnight"] .capability-kind>div code,html[data-theme="graphite"] .capability-kind>div code,html[data-theme="midnight"] .capability-kind>div span,html[data-theme="graphite"] .capability-kind>div span{background:#122433;color:var(--text-2)}
html[data-theme="midnight"] .integrity-item .mini-progress,html[data-theme="graphite"] .integrity-item .mini-progress,html[data-theme="midnight"] .tool-usage-row div,html[data-theme="graphite"] .tool-usage-row div{background:#17303f}
html[data-theme="midnight"] .manifest-kv>div,html[data-theme="graphite"] .manifest-kv>div,html[data-theme="midnight"] .tool-scope-list div,html[data-theme="graphite"] .tool-scope-list div,html[data-theme="midnight"] .tool-control-list div,html[data-theme="graphite"] .tool-control-list div,html[data-theme="midnight"] .alert-kv div,html[data-theme="graphite"] .alert-kv div{background:#0d1c28;border-color:var(--line)}
html[data-theme="midnight"] .alert-detail-summary,html[data-theme="graphite"] .alert-detail-summary{background:#0d1c28;border-color:var(--line);color:var(--text-2)}
html[data-theme="midnight"] .alert-evidence,html[data-theme="graphite"] .alert-evidence{background:rgba(224,85,69,.07);border-color:#4a332c;color:#e8a79d}
html[data-theme="midnight"] .resource-empty>i,html[data-theme="graphite"] .resource-empty>i{background:#122433;color:var(--brand)}
html[data-theme="midnight"] .resource-empty strong,html[data-theme="graphite"] .resource-empty strong{color:var(--text)}
html[data-theme="midnight"] .event-drawer,html[data-theme="graphite"] .event-drawer{background:var(--surface)}
html[data-theme="midnight"] .event-drawer header button,html[data-theme="graphite"] .event-drawer header button{background:#122433;color:var(--text-2)}
html[data-theme="midnight"] .drawer-flow span,html[data-theme="graphite"] .drawer-flow span{background:var(--brand-soft);color:#5fd3bb}
html[data-theme="midnight"] .filter-chip.active,html[data-theme="graphite"] .filter-chip.active{background:var(--brand-soft);border-color:var(--line-strong);color:var(--brand)}
html[data-theme="midnight"] .tool-icon-box,html[data-theme="graphite"] .tool-icon-box{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .tool-icon-box.high,html[data-theme="graphite"] .tool-icon-box.high{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .tool-icon-box.medium,html[data-theme="graphite"] .tool-icon-box.medium{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .alert-sev-icon.high,html[data-theme="graphite"] .alert-sev-icon.high{background:var(--danger-soft);color:#ff9d90}
html[data-theme="midnight"] .alert-sev-icon.medium,html[data-theme="graphite"] .alert-sev-icon.medium{background:var(--warning-soft);color:#f0b469}
html[data-theme="midnight"] .alert-sev-icon.low,html[data-theme="graphite"] .alert-sev-icon.low{background:var(--info-soft);color:#8fb6ea}
html[data-theme="midnight"] .routing-row i,html[data-theme="graphite"] .routing-row i{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .audit-integrity-banner,html[data-theme="graphite"] .audit-integrity-banner{background:linear-gradient(105deg,#0d2130,#101f2b);border-color:var(--line)}
html[data-theme="midnight"] .audit-integrity-copy>i,html[data-theme="graphite"] .audit-integrity-copy>i{background:var(--brand-soft);color:var(--brand)}
html[data-theme="midnight"] .settings-nav button:hover,html[data-theme="graphite"] .settings-nav button:hover{background:#122433}
html[data-theme="midnight"] .settings-nav button.active,html[data-theme="graphite"] .settings-nav button.active{background:var(--brand-soft);color:var(--brand)}
.graph-center-label.graph-brand-label{transform:translate(-50%,42px)}
.graph-center-label.graph-brand-label strong{font-size:13px;color:#168f79;letter-spacing:.12em}
html[data-theme="midnight"] .graph-center-label.graph-brand-label strong,html[data-theme="graphite"] .graph-center-label.graph-brand-label strong{color:var(--brand)}

/* ===== v11 · brand icon swap + motion polish ===== */
.brand-mark img{width:34px;height:34px;border-radius:9px;object-fit:cover;display:block;box-shadow:0 4px 10px rgba(23,168,143,.18)}
html[data-theme="midnight"] .brand-mark img,html[data-theme="graphite"] .brand-mark img{box-shadow:0 4px 12px rgba(0,0,0,.35)}
.graph-center-orb{position:absolute;left:50%;top:50%;width:118px;height:118px;border-radius:50%;object-fit:cover;object-position:center;transform:translate(-50%,-50%);border:3px solid rgba(255,255,255,.75);z-index:2;animation:orbBreath 3.2s ease-in-out infinite}
@keyframes orbBreath{0%,100%{box-shadow:0 10px 28px rgba(23,168,143,.22),0 0 0 0 rgba(23,168,143,.18)}50%{box-shadow:0 10px 28px rgba(23,168,143,.22),0 0 0 14px rgba(23,168,143,0)}}
html[data-theme="midnight"] .graph-center-orb,html[data-theme="graphite"] .graph-center-orb{border-color:rgba(99,201,189,.35);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.status-dot{animation:dotBreath 2.4s ease-in-out infinite}
@keyframes dotBreath{0%,100%{box-shadow:0 0 0 4px rgba(53,186,147,.22);transform:scale(1)}50%{box-shadow:0 0 0 9px rgba(53,186,147,0);transform:scale(1.12)}}
.live-pill i{animation:dotBreath 2.4s ease-in-out infinite}
.metrics-grid .metric-card{animation:metricIn .5s cubic-bezier(.2,.8,.25,1) both}
.metrics-grid .metric-card:nth-child(2){animation-delay:.05s}
.metrics-grid .metric-card:nth-child(3){animation-delay:.1s}
.metrics-grid .metric-card:nth-child(4){animation-delay:.15s}
.metrics-grid .metric-card:nth-child(5){animation-delay:.2s}
@keyframes metricIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.page-view{animation:pageIn .28s ease both}
@keyframes pageIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.graph-center-orb,.status-dot,.live-pill i,.metrics-grid .metric-card,.page-view{animation:none!important}}
.graph-center-orb{pointer-events:none}
.graph-center-label.graph-brand-label{transform:translate(-50%,76px)}
html[data-theme="midnight"] .brand-mark img,html[data-theme="graphite"] .brand-mark img{border:1px solid rgba(255,255,255,.14)}
.brand-lockup{height:40px;width:auto;max-width:100%;display:block;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(23,168,143,.18))}
html[data-theme="midnight"] .brand-lockup,html[data-theme="graphite"] .brand-lockup{filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}
.brand-mark img{display:none}

/* ===== v12 · solo shield brand + orb breathing ===== */
.brand-lockup{height:40px;width:40px;display:block;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(23,168,143,.18))}
html[data-theme="midnight"] .brand-lockup,html[data-theme="graphite"] .brand-lockup{filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}
.graph-lines .orb,.graph-lines .orb-shadow{transform-box:fill-box;transform-origin:center;animation:orbBreathe 3.4s ease-in-out infinite}
.graph-lines .orb-shadow{filter:blur(5px)}
@keyframes orbBreathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.07);opacity:.78}}
@media (prefers-reduced-motion:reduce){.graph-lines .orb,.graph-lines .orb-shadow{animation:none!important}}

/* ===== v13 · proper-ratio brand lockup + full graph motion ===== */
.brand-lockup{height:34px;width:auto;max-width:calc(var(--sidebar) - 40px);display:block;object-fit:contain;filter:none}
html[data-theme="midnight"] .brand-lockup,html[data-theme="graphite"] .brand-lockup{filter:none}
.dashboard-brand-logo{display:block;width:140px;height:auto;max-height:46px;object-fit:contain;background:#fff;filter:none}
html[data-theme="midnight"] .dashboard-brand-logo,html[data-theme="graphite"] .dashboard-brand-logo{background:#fff;filter:none}
.graph-brand-icon{overflow:visible;transform-box:fill-box;transform-origin:center;animation:brandIconBreath 3.4s ease-in-out infinite;filter:drop-shadow(0 4px 10px rgba(23,168,143,.18))}
@keyframes brandIconBreath{0%,100%{transform:scale(.97);opacity:.92}50%{transform:scale(1.04);opacity:1;filter:drop-shadow(0 6px 18px rgba(23,168,143,.36))}}
html[data-theme="midnight"] .graph-brand-icon,html[data-theme="graphite"] .graph-brand-icon{filter:drop-shadow(0 5px 14px rgba(0,0,0,.4))}
@media (prefers-reduced-motion:reduce){.graph-brand-icon{animation:none!important}}
/* link lines: flowing dash, staggered */
.graph-lines .flow{animation:dash 5.5s linear infinite}
.graph-lines .flow:nth-of-type(2){animation-delay:-1.4s}
.graph-lines .flow:nth-of-type(3){animation-delay:-2.8s}
.graph-lines .flow:nth-of-type(4){animation-delay:-4.2s}
.graph-lines .flow:nth-of-type(5){animation-delay:-2.1s}
.graph-lines .memory-bridge{fill:none;stroke:#4bb7a6;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:7 9;animation:memoryBridgeFlow 1.35s linear infinite;filter:drop-shadow(0 0 3px rgba(75,183,166,.35))}
@keyframes memoryBridgeFlow{to{stroke-dashoffset:-32}}
/* orbit rings: slow rotation, opposite directions */
.graph-lines .orbit{transform-box:fill-box;transform-origin:center;animation:orbitSpin 46s linear infinite}
.graph-lines .orbit-b{animation:orbitSpinB 64s linear infinite}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@keyframes orbitSpinB{to{transform:rotate(-360deg)}}
/* shield: gentle glow pulse + check draw loop */
.graph-lines .shield-core{animation:shieldPulse 3.4s ease-in-out infinite}
@keyframes shieldPulse{0%,100%{filter:drop-shadow(0 5px 10px rgba(23,168,143,.16))}50%{filter:drop-shadow(0 6px 16px rgba(23,168,143,.42))}}
.graph-lines .shield-check{stroke-dasharray:46;animation:checkDraw 4.6s ease-in-out infinite}
@keyframes checkDraw{0%,52%{stroke-dashoffset:0;opacity:1}64%{stroke-dashoffset:46;opacity:1}72%{stroke-dashoffset:46;opacity:0}76%{stroke-dashoffset:0;opacity:0}88%,100%{stroke-dashoffset:0;opacity:1}}
/* nodes: floating entrance + gentle idle bob (hover lift still wins) */
.graph-node{animation:nodeEnter .55s cubic-bezier(.2,.8,.25,1) both,nodeBob 5.6s ease-in-out 1.3s infinite}
.node-top{animation-delay:.1s,1.3s}
.node-left-top{animation-delay:.2s,2.1s}
.node-left-bottom{animation-delay:.3s,2.9s}
.node-right-top{animation-delay:.4s,3.7s}
.node-right-bottom{animation-delay:.5s,4.5s}
@keyframes nodeEnter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes nodeBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
/* insight panel entrance */
.graph-insight{animation:nodeEnter .6s .3s cubic-bezier(.2,.8,.25,1) both}
@media (prefers-reduced-motion:reduce){.graph-lines .flow,.graph-lines .memory-bridge,.graph-lines .orbit,.graph-lines .shield-core,.graph-lines .shield-check,.graph-node,.graph-insight{animation:none!important}}

/* v21: three attack-surface model */
.attack-surface-node{width:184px;min-width:184px;height:58px;padding:0 12px;border-radius:10px;animation:nodeEnter .55s cubic-bezier(.2,.8,.25,1) both}
.attack-surface-node .node-icon{width:32px;height:32px;flex:0 0 32px}
.attack-surface-node strong{font-size:13px;white-space:nowrap}
.attack-surface-node small{max-width:124px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.graph-node.node-injection{left:10px;bottom:14px;border-color:#f0c89b}
.graph-node.node-persistence{top:1px;left:calc(50% - 92px);border-color:#c9c1e8}
.graph-node.node-hijack{right:8px;bottom:14px;border-color:#efb6ab}
.attack-surface-node.node-injection .node-icon{background:#fff5e7;color:#c97820}
.attack-surface-node.node-persistence .node-icon{background:#f1effb;color:#6556ae}
.attack-surface-node.node-hijack .node-icon{background:#fff0ed;color:#d65446}
.attack-surface-node.clear{border-color:#c9e5de}
.attack-surface-node.clear .node-icon{background:#edf8f5;color:#1d9c85}
.graph-lines .risk-injection{stroke:#d9933e}
.graph-lines .risk-persistence{stroke:#7667bd}
.graph-lines .risk-hijack{stroke:#df6253}
.attack-surface-stat span{font-size:11.5px}
.attack-surface-stat strong{color:#34443f}
html[data-theme="midnight"] .graph-node.node-injection,html[data-theme="graphite"] .graph-node.node-injection{border-color:#79562f}
html[data-theme="midnight"] .graph-node.node-persistence,html[data-theme="graphite"] .graph-node.node-persistence{border-color:#51487a}
html[data-theme="midnight"] .graph-node.node-hijack,html[data-theme="graphite"] .graph-node.node-hijack{border-color:#70433c}
html[data-theme="midnight"] .attack-surface-node.node-injection .node-icon,html[data-theme="graphite"] .attack-surface-node.node-injection .node-icon{background:rgba(201,120,32,.16);color:#efb05d}
html[data-theme="midnight"] .attack-surface-node.node-persistence .node-icon,html[data-theme="graphite"] .attack-surface-node.node-persistence .node-icon{background:rgba(101,86,174,.18);color:#b5a9ee}
html[data-theme="midnight"] .attack-surface-node.node-hijack .node-icon,html[data-theme="graphite"] .attack-surface-node.node-hijack .node-icon{background:rgba(214,84,70,.17);color:#ff9387}
html[data-theme="midnight"] .attack-surface-stat strong,html[data-theme="graphite"] .attack-surface-stat strong{color:var(--text)}
@media (max-width:520px){.attack-surface-node{width:126px;min-width:126px;height:56px;padding:0 7px;gap:5px}.attack-surface-node .node-icon{width:26px;height:26px;flex-basis:26px}.attack-surface-node strong{font-size:11px;white-space:normal;line-height:1.2}.attack-surface-node small{max-width:82px;font-size:9px;white-space:nowrap}.graph-node.node-persistence{left:calc(50% - 63px)}.graph-node.node-injection{left:0}.graph-node.node-hijack{right:0}}

/* v22: request context conversation and evidence hierarchy */
.detail-request-context{padding:15px;display:flex;flex-direction:column;gap:13px}
.context-conversation{display:flex;flex-direction:column;gap:12px}
.context-message{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:start}
.context-message-model{grid-template-columns:minmax(0,1fr) 30px}
.context-message-model .context-message-avatar{grid-column:2;grid-row:1}
.context-message-model .context-message-body{grid-column:1;grid-row:1}
.context-message-avatar{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#edf7f4;border:1px solid #d8e9e4;color:#218c79}
.context-message-avatar svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.context-message-model .context-message-avatar{background:#edf4f8;border-color:#d8e6ec;color:#327d9f}
.context-message-body{position:relative;padding:11px 12px;border:1px solid #dfe9e6;border-radius:4px 8px 8px 8px;background:#fbfdfc;box-shadow:0 3px 10px rgba(33,59,52,.035)}
.context-message-model .context-message-body{border-color:#dce7ec;border-radius:8px 4px 8px 8px;background:#f7fafc}
.context-message-body::before{content:"";position:absolute;top:10px;left:-5px;width:8px;height:8px;background:#fbfdfc;border-left:1px solid #dfe9e6;border-bottom:1px solid #dfe9e6;transform:rotate(45deg)}
.context-message-model .context-message-body::before{left:auto;right:-5px;background:#f7fafc;border:0;border-top:1px solid #dce7ec;border-right:1px solid #dce7ec}
.context-message-body header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.context-message-body header>div{min-width:0}
.context-message-body header small{display:block;font-size:8.5px;line-height:1.1;color:#86a099;font-weight:760;letter-spacing:.08em}
.context-message-model .context-message-body header small{color:#7697a7}
.context-message-body header strong{display:block;margin-top:3px;font-size:11.5px;color:#263a34}
.context-message-body header time,.context-message-body header>span{font-size:9.5px;line-height:1.3;color:#9aa6a2;white-space:nowrap}
.context-message-body p{margin:8px 0 0;font-size:12px;line-height:1.62;color:#3e514b;white-space:pre-wrap;overflow-wrap:anywhere}
.context-capabilities{padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.context-capabilities>header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.context-capabilities>header>div{display:flex;align-items:center;gap:7px;color:#6f817b}
.context-capabilities>header svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9}
.context-capabilities>header span{font-size:11px;font-weight:720}
.context-capabilities>header b{min-width:20px;height:20px;padding:0 6px;border-radius:5px;display:grid;place-items:center;background:#edf7f4;color:#1b8a75;font-size:10px}
.context-tools{margin-top:9px;gap:6px}
.context-tools code{padding:5px 7px;border-radius:5px;background:#f3f7f6;border-color:#dfe9e6;color:#416a61;overflow-wrap:anywhere}
.attack-detection{margin-top:0;padding:12px;border-radius:8px;border-left-width:3px;background:#fff9f7;box-shadow:0 4px 12px rgba(126,54,44,.035)}
.attack-detection.medium{background:#fffbf4}
.attack-detection.low{background:#f7fcfa}
.attack-detection>header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.attack-detection-title{display:flex;align-items:center;gap:8px}
.attack-detection-title>i{width:29px;height:29px;border-radius:7px;display:grid;place-items:center;background:#ffebe7;color:#d65849}
.attack-detection.medium .attack-detection-title>i{background:#fff1dc;color:#c9812b}
.attack-detection.low .attack-detection-title>i{background:#e7f7f2;color:#148a75}
.attack-detection-title svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.attack-detection-title small{display:block;font-size:8.5px;line-height:1.1;color:#a38680;font-weight:760;letter-spacing:.08em}
.attack-detection-title strong{display:block;margin-top:3px;font-size:11.5px;color:#3b302d}
.attack-detection>header>b{padding:4px 6px;border-radius:5px;background:#ffebe7;color:#d65849;font-size:9px;letter-spacing:.06em}
.attack-detection.medium>header>b{background:#fff1dc;color:#c9812b}
.attack-detection.low>header>b{background:#e7f7f2;color:#148a75}
.attack-detection-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(207,145,133,.24)}
.attack-detection-summary span{font-size:10px;color:#98736c}
.attack-detection-summary strong{font-size:12px;text-align:right;color:#613e37;overflow-wrap:anywhere}
.context-payload-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px}
.context-payload-label span{font-size:10px;color:#8c746f;font-weight:680}
.context-payload-label small{font-size:8px;color:#b29c97;letter-spacing:.07em}
.attack-detection pre{max-height:138px;overflow:auto;margin:6px 0 0;padding:10px;border-radius:6px;background:#fff;border-color:#eadedb;color:#684841;font-size:10.5px;line-height:1.55}
.attack-detection footer{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-top:9px}
.attack-detection footer>span{font-size:9.5px;color:#9b817c;white-space:nowrap}
.attack-detection footer code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9.5px;color:#ae4e42;text-align:right;overflow-wrap:anywhere}
.context-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0;border-top:0}
.context-meta>span{min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#fafcfc}
.context-meta>span:last-child{grid-column:1/-1}
.context-meta small{display:block;font-size:9px;color:#98a49f}
.context-meta b{display:block;margin-top:3px;font-size:10.5px;color:#40514c;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
html[data-theme="midnight"] .context-message-avatar,html[data-theme="graphite"] .context-message-avatar{background:var(--brand-soft);border-color:var(--line);color:#5fd3bb}
html[data-theme="midnight"] .context-message-model .context-message-avatar,html[data-theme="graphite"] .context-message-model .context-message-avatar{background:var(--info-soft);color:#8fb6ea}
html[data-theme="midnight"] .context-message-body,html[data-theme="graphite"] .context-message-body{background:#102230;border-color:var(--line);box-shadow:none}
html[data-theme="midnight"] .context-message-model .context-message-body,html[data-theme="graphite"] .context-message-model .context-message-body{background:#10202d;border-color:var(--line)}
html[data-theme="midnight"] .context-message-body::before,html[data-theme="graphite"] .context-message-body::before{background:#102230;border-color:var(--line)}
html[data-theme="midnight"] .context-message-model .context-message-body::before,html[data-theme="graphite"] .context-message-model .context-message-body::before{background:#10202d;border-color:var(--line)}
html[data-theme="midnight"] .context-message-body header strong,html[data-theme="graphite"] .context-message-body header strong,html[data-theme="midnight"] .context-message-body p,html[data-theme="graphite"] .context-message-body p{color:var(--text)}
html[data-theme="midnight"] .context-capabilities,html[data-theme="graphite"] .context-capabilities{background:#0f202d;border-color:var(--line)}
html[data-theme="midnight"] .context-tools code,html[data-theme="graphite"] .context-tools code{background:#122a34;border-color:var(--line);color:#84cfc0}
html[data-theme="midnight"] .attack-detection,html[data-theme="graphite"] .attack-detection{background:#251b1d;border-color:#74463f;box-shadow:none}
html[data-theme="midnight"] .attack-detection.medium,html[data-theme="graphite"] .attack-detection.medium{background:#241f19;border-color:#70582f}
html[data-theme="midnight"] .attack-detection.low,html[data-theme="graphite"] .attack-detection.low{background:#11241f;border-color:#285c50}
html[data-theme="midnight"] .attack-detection-title strong,html[data-theme="graphite"] .attack-detection-title strong,html[data-theme="midnight"] .attack-detection-summary strong,html[data-theme="graphite"] .attack-detection-summary strong{color:var(--text)}
html[data-theme="midnight"] .attack-detection pre,html[data-theme="graphite"] .attack-detection pre{background:#0c1924;border-color:var(--line);color:#e6b4aa}
html[data-theme="midnight"] .context-meta>span,html[data-theme="graphite"] .context-meta>span{background:#0f202d;border-color:var(--line)}
html[data-theme="midnight"] .context-meta b,html[data-theme="graphite"] .context-meta b{color:var(--text)}
@media(max-width:520px){.detail-request-context{padding:12px}.context-message{grid-template-columns:27px minmax(0,1fr);gap:7px}.context-message-model{grid-template-columns:minmax(0,1fr) 27px}.context-message-avatar{width:27px;height:27px}.context-message-body{padding:10px}.context-message-body header{display:block}.context-message-body header time,.context-message-body header>span{display:block;margin-top:4px;white-space:normal}.attack-detection-summary{display:block}.attack-detection-summary strong{display:block;margin-top:4px;text-align:left}.attack-detection footer{display:block}.attack-detection footer code{display:block;margin-top:4px;text-align:left}.context-meta{grid-template-columns:1fr}.context-meta>span:last-child{grid-column:auto}}

/* v23: orthogonal control lines for flow, authority and lifecycle state */
.control-graph-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;min-height:350px;margin-top:8px}
.control-graph-stage{position:relative;min-width:0;min-height:350px;overflow:hidden}
.control-graph-stage::before{content:"";position:absolute;inset:18px 18px 5px;background-image:linear-gradient(rgba(83,122,111,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(83,122,111,.045) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(to bottom,black,transparent 94%);pointer-events:none}
.control-graph-lines{position:absolute;inset:0;width:100%;height:100%}
.control-graph-lines .orbit{fill:none;stroke:#cfebe5;stroke-width:1;stroke-dasharray:2 7}
.control-graph-lines .orbit-b{opacity:.65}
.control-flow{fill:none;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 9;animation:dash 10s linear infinite}
.control-flow-taint{stroke:#2da990}
.control-flow-auth{stroke:#4f89ca;animation-delay:-3s}
.control-flow-state{stroke:#d69a3f;animation-delay:-6s}
.control-center-label{position:absolute;left:50%;top:50%;transform:translate(-50%,52px);text-align:center;pointer-events:none;z-index:2}
.control-center-label strong{display:block;font-size:11.5px;color:#33463f}
.control-center-label span{display:block;margin-top:3px;font-size:9.5px;color:#8b9994;white-space:nowrap}
.control-line-card{position:absolute;width:224px;min-height:83px;display:grid;grid-template-columns:26px 35px minmax(0,1fr);gap:8px;align-items:start;padding:10px 11px;border:1px solid var(--line-strong);border-radius:8px;background:rgba(255,255,255,.97);color:inherit;text-align:left;box-shadow:0 7px 18px rgba(35,66,58,.055);animation:nodeEnter .5s cubic-bezier(.2,.8,.25,1) both;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.control-line-card:hover,.control-line-card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(35,66,58,.1);outline:none}
.control-line-card.line-taint{left:5px;top:18px;border-top:3px solid #2da990}
.control-line-card.line-auth{right:5px;top:18px;border-top:3px solid #4f89ca;animation-delay:.08s}
.control-line-card.line-state{left:50%;bottom:8px;transform:translateX(-50%);border-top:3px solid #d69a3f;animation-delay:.16s}
.control-line-card.line-state:hover,.control-line-card.line-state:focus-visible{transform:translate(-50%,-2px)}
.control-line-index{font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#9aa7a2;padding-top:4px}
.control-line-card .node-icon{width:35px;height:35px;border-radius:8px;display:grid;place-items:center;background:#eaf8f4;color:#1b907b}
.control-line-card.line-auth .node-icon{background:#edf4fb;color:#397cae}
.control-line-card.line-state .node-icon{background:#fff5e7;color:#bd7c24}
.control-line-card svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.control-line-copy{display:block;min-width:0}
.control-line-copy>small{display:block;font-size:9px;line-height:1.1;font-weight:800;letter-spacing:.08em;color:#1a8f79}
.line-auth .control-line-copy>small{color:#397cae}
.line-state .control-line-copy>small{color:#b77821}
.control-line-copy>strong{display:block;margin-top:3px;font-size:12px;color:#283a34}
.control-line-copy>em{display:block;margin-top:4px;font-size:9.5px;line-height:1.25;font-style:normal;color:#8b9793;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.control-line-stat{display:block;margin-top:6px;font-size:9.5px;font-weight:650;color:#697873;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.control-line-card.clear{border-color:#cfe5df;background:#fbfefd}
.control-line-card.clear .control-line-stat{color:#218d79}
.control-insight{border-left:1px solid var(--line);margin:16px 0 8px;padding:10px 0 0 18px;animation:nodeEnter .6s .25s cubic-bezier(.2,.8,.25,1) both}
.control-focus{width:100%;min-height:92px;padding:11px;border:1px solid #dce9e5;border-left:3px solid #2da990;border-radius:8px;background:#f8fcfa;color:inherit;text-align:left;margin-bottom:12px}
.control-focus:hover,.control-focus:focus-visible{border-color:#bcded5;background:#f3faf7;outline:none}
.control-focus-kicker{display:flex;align-items:center;gap:6px;font-size:9.5px;color:#72817c}
.control-focus-kicker i{width:6px;height:6px;border-radius:50%;background:#df6656;box-shadow:0 0 0 4px #fff0ed}
.control-focus>strong{display:block;margin-top:8px;font-size:11.5px;color:#31443d;line-height:1.35}
.control-focus>small{display:block;margin-top:5px;font-size:9.5px;color:#889691;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.control-focus.empty .control-focus-kicker i{background:#35ae93;box-shadow:0 0 0 4px #e8f7f3}
.control-stat span{font-size:11.5px}
.control-stat strong{color:#34443f}
html[data-theme="midnight"] .control-line-card,html[data-theme="graphite"] .control-line-card{background:#102230;border-color:var(--line);color:var(--text)}
html[data-theme="midnight"] .control-line-copy>strong,html[data-theme="graphite"] .control-line-copy>strong,html[data-theme="midnight"] .control-center-label strong,html[data-theme="graphite"] .control-center-label strong{color:var(--text)}
html[data-theme="midnight"] .control-line-card .node-icon,html[data-theme="graphite"] .control-line-card .node-icon{background:rgba(45,169,144,.15);color:#65d1bb}
html[data-theme="midnight"] .control-line-card.line-auth .node-icon,html[data-theme="graphite"] .control-line-card.line-auth .node-icon{background:rgba(79,137,202,.16);color:#8fbce8}
html[data-theme="midnight"] .control-line-card.line-state .node-icon,html[data-theme="graphite"] .control-line-card.line-state .node-icon{background:rgba(214,154,63,.16);color:#e8b567}
html[data-theme="midnight"] .control-line-card.clear,html[data-theme="graphite"] .control-line-card.clear{background:#10251f;border-color:#285c50}
html[data-theme="midnight"] .control-focus,html[data-theme="graphite"] .control-focus{background:#10231f;border-color:#285348;color:var(--text)}
html[data-theme="midnight"] .control-focus>strong,html[data-theme="graphite"] .control-focus>strong,html[data-theme="midnight"] .control-stat strong,html[data-theme="graphite"] .control-stat strong{color:var(--text)}
@media(max-width:1280px){.control-graph-layout{grid-template-columns:minmax(0,1fr) 205px}}
@media(max-width:820px){.control-graph-layout{display:block}.control-graph-stage{min-height:350px}.control-insight{border-left:0;border-top:1px solid var(--line);margin-top:4px;padding:14px 0 0}}
@media(max-width:560px){.control-graph-stage{min-height:386px;padding-top:2px;display:flex;flex-direction:column;gap:8px}.control-graph-lines,.control-center-label{display:none}.control-line-card,.control-line-card.line-taint,.control-line-card.line-auth,.control-line-card.line-state{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:100%;min-height:112px;transform:none;grid-template-columns:28px 38px minmax(0,1fr);padding:12px}.control-line-card.line-state:hover,.control-line-card.line-state:focus-visible{transform:translateY(-2px)}.control-line-card .node-icon{width:38px;height:38px}.control-line-copy>strong{font-size:12.5px}.control-line-copy>em{font-size:10px;white-space:normal}.control-line-stat{font-size:10px}.control-insight{margin-top:8px}}

/* v24: compact parallel control rails */
.control-rails{margin-top:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fbfcfc}
.control-rails-head{height:30px;display:grid;grid-template-columns:minmax(220px,.88fr) minmax(300px,1.35fr) minmax(190px,.72fr);align-items:center;gap:18px;padding:0 16px;background:#f5f8f7;border-bottom:1px solid var(--line);font-size:9.5px;font-weight:760;letter-spacing:.08em;color:#98a49f;text-transform:uppercase}
.control-rail{position:relative;width:100%;min-height:78px;display:grid;grid-template-columns:minmax(220px,.88fr) minmax(300px,1.35fr) minmax(190px,.72fr);align-items:center;gap:18px;padding:11px 16px;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left;transition:background .16s ease,box-shadow .16s ease}
.control-rail::before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:0 3px 3px 0;background:#2da990}
.control-rail.rail-auth::before{background:#4f89ca}
.control-rail.rail-state::before{background:#d69a3f}
.control-rail:hover,.control-rail:focus-visible{background:#f8fbfa;box-shadow:inset 0 0 0 1px rgba(45,169,144,.14);outline:none}
.rail-identity{display:flex;align-items:center;gap:11px;min-width:0}
.rail-identity>i{width:36px;height:36px;flex:0 0 36px;border-radius:8px;display:grid;place-items:center;background:#eaf8f4;color:#178d77}
.rail-auth .rail-identity>i{background:#edf4fb;color:#397cae}
.rail-state .rail-identity>i{background:#fff5e7;color:#bd7c24}
.rail-identity svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rail-identity>span{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"small small" "strong em";column-gap:9px;align-items:baseline;min-width:0}
.rail-identity small{grid-area:small;font:750 8.5px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;color:#8fa09a}
.rail-identity strong{grid-area:strong;margin-top:4px;font-size:16px;letter-spacing:.03em;color:#243932}
.rail-identity em{grid-area:em;font-size:10.5px;font-style:normal;color:#899691;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-path{display:flex;align-items:center;min-width:0}
.rail-path>span{min-width:74px;height:30px;padding:0 10px;border:1px solid #dce8e4;border-radius:6px;background:#f8fbfa;display:grid;place-items:center;font-size:10.5px;font-weight:650;color:#4e625b;white-space:nowrap}
.rail-auth .rail-path>span{border-color:#dce7ef;background:#f7fafc}
.rail-state .rail-path>span{border-color:#eee1cc;background:#fffbf5;min-width:58px}
.rail-path>i{position:relative;width:25px;height:1px;flex:1 1 25px;min-width:14px;background:#c8d9d4;font-size:0}
.rail-path>i::after{content:"";position:absolute;right:0;top:-3px;border-left:5px solid #a9c2bb;border-top:3.5px solid transparent;border-bottom:3.5px solid transparent}
.rail-auth .rail-path>i{background:#cad9e5}.rail-auth .rail-path>i::after{border-left-color:#9bb4c8}
.rail-state .rail-path>i{background:#dfcfb5}.rail-state .rail-path>i::after{border-left-color:#c6a975}
.rail-result{justify-self:stretch;min-width:0;padding-left:14px;border-left:1px solid var(--line)}
.rail-result .control-line-stat{display:block;margin:0;font-size:11px;font-weight:720;color:#344b43;white-space:normal;line-height:1.35}
.rail-result>small{display:flex;align-items:center;gap:4px;margin-top:6px;font-size:9.5px;color:#8f9c98}
.rail-result>small svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2}
.control-rail.clear .rail-result .control-line-stat{color:#168c76}
.control-rails-foot{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 16px;background:#f7faf9}
.control-rails-foot>span{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;color:#476159;white-space:nowrap}
.control-rails-foot>span i{width:7px;height:7px;border-radius:50%;background:#2da990;box-shadow:0 0 0 4px rgba(45,169,144,.1)}
.control-rails-foot p{margin:0;font-size:10.5px;color:#8b9893;text-align:right}
html[data-theme="midnight"] .control-rails,html[data-theme="graphite"] .control-rails{background:#0e1d29;border-color:var(--line)}
html[data-theme="midnight"] .control-rails-head,html[data-theme="graphite"] .control-rails-head,html[data-theme="midnight"] .control-rails-foot,html[data-theme="graphite"] .control-rails-foot{background:#0d1c28;border-color:var(--line)}
html[data-theme="midnight"] .control-rail,html[data-theme="graphite"] .control-rail{background:#102230;border-color:var(--line);color:var(--text)}
html[data-theme="midnight"] .control-rail:hover,html[data-theme="graphite"] .control-rail:hover{background:#132735}
html[data-theme="midnight"] .rail-identity strong,html[data-theme="graphite"] .rail-identity strong,html[data-theme="midnight"] .rail-result .control-line-stat,html[data-theme="graphite"] .rail-result .control-line-stat{color:var(--text)}
html[data-theme="midnight"] .rail-path>span,html[data-theme="graphite"] .rail-path>span{background:#132833;border-color:var(--line);color:var(--text-2)}
html[data-theme="midnight"] .rail-identity>i,html[data-theme="graphite"] .rail-identity>i{background:rgba(45,169,144,.15);color:#65d1bb}
html[data-theme="midnight"] .rail-auth .rail-identity>i,html[data-theme="graphite"] .rail-auth .rail-identity>i{background:rgba(79,137,202,.16);color:#8fbce8}
html[data-theme="midnight"] .rail-state .rail-identity>i,html[data-theme="graphite"] .rail-state .rail-identity>i{background:rgba(214,154,63,.16);color:#e8b567}
@media(max-width:1080px){.control-rails-head,.control-rail{grid-template-columns:minmax(190px,.8fr) minmax(250px,1.25fr) minmax(160px,.7fr);gap:12px}.rail-path>span{min-width:66px;padding:0 7px}.rail-state .rail-path>span{min-width:48px}.rail-result{padding-left:10px}}
@media(max-width:720px){.control-rails-head{display:none}.control-rail{grid-template-columns:1fr;gap:11px;padding:14px 15px}.rail-identity>span{grid-template-columns:auto 1fr}.rail-path{width:100%;overflow:hidden}.rail-path>span{min-width:0;flex:1 1 0;padding:0 5px;font-size:9.5px}.rail-state .rail-path>span{min-width:0}.rail-path>i{width:16px;min-width:9px;flex:0 1 16px}.rail-result{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0 0;border-left:0;border-top:1px solid var(--line)}.rail-result>small{margin:0;white-space:nowrap}.control-rails-foot{align-items:flex-start;flex-direction:column;gap:5px}.control-rails-foot p{text-align:left;line-height:1.45}}
@media(max-width:390px){.rail-identity em{display:none}.rail-result{display:block}.rail-result>small{margin-top:5px}.control-rails-foot>span{white-space:normal}}
