/* Virgo Pentest: bright blue-lavender workspace with a deep navy navigation rail. */
.pentest-page {
  --bg: #f1f4ff;
  --surface: #ffffff;
  --surface-2: #f7f8ff;
  --text: #142349;
  --muted: #66769b;
  --border: #e0e7f6;
  --border-strong: #cbd6f0;
  --accent: #286cf6;
  --accent-hover: #1f56d4;
  --accent-text: #ffffff;
  --accent-soft: #e8efff;
  --accent-2: #6958ee;
  --user: #e8efff;
  --shadow: 0 2px 8px rgb(30 58 138 / .05), 0 12px 32px rgb(55 75 140 / .08);
  --glow: rgb(103 120 246 / .16);
  --pt-good: #169b68;
  --pt-good-soft: #e4f6ee;
  --pt-warn: #bd7b16;
  --pt-warn-soft: #fff3d9;
  --pt-danger: #d64a4a;
  --pt-danger-soft: #ffeded;
  --pt-info: #3479d8;
  --pt-info-soft: #eaf2ff;
  font-size: 14px;
}
:root[data-theme="dark"] .pentest-page {
  --pt-good: #59d6a0;
  --pt-good-soft: #143b30;
  --pt-warn: #edbd67;
  --pt-warn-soft: #3b2e18;
  --pt-danger: #ff8585;
  --pt-danger-soft: #442626;
  --pt-info: #83b2ff;
  --pt-info-soft: #1c3150;
}
:root[data-theme="dark"] .pentest-page {
  --bg: #0c1429;
  --surface: #121e39;
  --surface-2: #192747;
  --text: #edf2ff;
  --muted: #a5b4d3;
  --border: #2a3a60;
  --border-strong: #405582;
  --accent: #8fb0ff;
  --accent-hover: #a6c0ff;
  --accent-text: #101a35;
  --accent-soft: #24365f;
  --accent-2: #a18aff;
  --user: #1d3157;
  --shadow: 0 2px 8px rgb(0 0 0 / .22), 0 12px 32px rgb(0 0 0 / .25);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pentest-page {
    --bg: #0c1429;
    --surface: #121e39;
    --surface-2: #192747;
    --text: #edf2ff;
    --muted: #a5b4d3;
    --border: #2a3a60;
    --border-strong: #405582;
    --accent: #8fb0ff;
    --accent-hover: #a6c0ff;
    --accent-text: #101a35;
    --accent-soft: #24365f;
    --accent-2: #a18aff;
    --user: #1d3157;
    --shadow: 0 2px 8px rgb(0 0 0 / .22), 0 12px 32px rgb(0 0 0 / .25);
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pentest-page {
    --pt-good: #59d6a0;
    --pt-good-soft: #143b30;
    --pt-warn: #edbd67;
    --pt-warn-soft: #3b2e18;
    --pt-danger: #ff8585;
    --pt-danger-soft: #442626;
    --pt-info: #83b2ff;
    --pt-info-soft: #1c3150;
  }
}
.pt-shell { display:grid; grid-template-columns:252px minmax(0,1fr); height:100dvh; min-height:0; overflow:hidden; background:var(--bg); }
.pt-sidebar { position:relative; z-index:20; width:auto; height:100dvh; min-height:0; padding:17px 13px 12px; gap:10px; background:var(--sidebar); border-right:1px solid var(--border); }
.pt-sidebar .brand { padding:6px 9px 12px; font:700 1.12rem var(--serif); }
.pt-sidebar .brand img { width:27px; height:27px; }
.pt-sidebar .brand small { margin-left:3px; padding:2px 7px; border:1px solid var(--border); border-radius:20px; font-size:.62rem; }
.pt-sidebar .coder-switch { display:flex; flex-direction:row; align-items:center; gap:5px; padding:5px; border:1px solid var(--border); border-radius:11px; background:var(--surface-2); }
.pt-sidebar .coder-switch a,.pt-sidebar .coder-switch span { flex:1; padding:7px 4px; border-radius:8px; font-size:.76rem; text-align:center; text-decoration:none; color:var(--muted); }
.pt-sidebar .coder-switch .active { background:var(--surface); color:var(--accent); box-shadow:var(--shadow); font-weight:650; }
.pt-sidebar .coder-newchat { min-height:39px; padding:8px 11px; border:1px solid var(--border-strong); border-radius:10px; background:var(--surface); color:var(--text); box-shadow:var(--shadow); font-size:.82rem; }
.pt-sidebar .coder-newchat:hover { border-color:var(--accent); color:var(--accent); }
.pt-sidebar .coder-search-label { margin:2px 0 3px; }
.pt-sidebar .coder-search-label input { width:100%; padding:9px 11px; border:1px solid var(--border); border-radius:9px; background:var(--surface); color:var(--text); font-size:.77rem; }
.pt-sidebar .coder-recent-label { margin:8px 4px 1px; font-size:.63rem; font-weight:700; letter-spacing:.08em; color:var(--muted); }
.pt-sidebar .coder-recent-empty { margin:5px 6px; font-size:.75rem; }
.pt-sidebar .coder-recent { margin:0; padding:0; overflow:auto; }
.pt-sidebar .coder-recent-item { gap:2px; }
.pt-sidebar .coder-recent-item .open { padding:8px; border-radius:9px; }
.pt-sidebar .coder-recent-item.active .open { background:var(--accent-soft); }
.pt-sidebar .coder-recent-title { font-size:.77rem; }
.pt-sidebar .coder-recent-meta { margin-top:3px; font-size:.63rem; }
.pt-sidebar .coder-sidebar-footer { gap:9px; font-size:.67rem; }
.pt-sidebar .coder-theme { display:flex; padding:3px; border:1px solid var(--border); border-radius:9px; background:var(--surface); }
.pt-sidebar .coder-theme button { flex:1; padding:5px 3px; border:0; border-radius:6px; background:transparent; color:var(--muted); font-size:.66rem; }
.pt-sidebar .coder-theme button[aria-checked="true"] { background:var(--accent-soft); color:var(--accent); }
.pt-sidebar-note { display:flex; align-items:flex-start; gap:9px; margin-top:auto; padding:11px 10px; border:1px solid var(--border); border-radius:11px; background:var(--surface); }
.pt-note-icon { display:grid; flex:none; width:23px; height:23px; place-items:center; border-radius:8px; background:var(--pt-good-soft); color:var(--pt-good); font-weight:800; }
.pt-sidebar-note div { display:grid; gap:3px; }
.pt-sidebar-note strong { font-size:.72rem; }
.pt-sidebar-note small { color:var(--muted); font-size:.64rem; line-height:1.5; }

.pt-main-wrap { display:flex; min-width:0; min-height:0; height:100dvh; flex-direction:column; overflow:hidden; }
.pt-head { display:flex; align-items:center; gap:12px; min-height:62px; padding:8px 20px; border-bottom:1px solid var(--border); background:var(--surface); }
.pt-heading { min-width:130px; flex:1; }
.pt-head .coder-eyebrow { display:block; margin-bottom:1px; font-size:.56rem; letter-spacing:.1em; }
.pt-head .coder-title { font-size:.9rem; font-weight:650; }
.pt-security-label { display:inline-flex; align-items:center; gap:7px; padding:6px 10px; border:1px solid var(--border); border-radius:30px; background:var(--surface-2); color:var(--muted); font-size:.68rem; white-space:nowrap; }
.pt-security-label i,.pt-live-dot { width:7px; height:7px; border-radius:50%; background:var(--pt-good); box-shadow:0 0 0 3px var(--pt-good-soft); }
.pt-model-control { display:flex; align-items:center; gap:7px; max-width:min(390px,40vw); min-width:190px; padding:5px 9px; border:1px solid var(--border-strong); border-radius:10px; background:var(--surface-2); }
.pt-model-control svg { flex:none; width:19px; height:19px; color:var(--accent); fill:none; stroke:currentColor; stroke-width:1.6; }
.pt-model-control select { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--text); font-size:.73rem; }
.pt-head .coder-export { padding:7px 10px; border:1px solid var(--border); border-radius:9px; background:var(--surface); color:var(--text); font-size:.69rem; }
.pt-head .coder-export:disabled { opacity:.4; cursor:not-allowed; }

.pt-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; flex:1; min-height:0; overflow:hidden; }
.pt-chat-column { display:flex; min-width:0; min-height:0; flex-direction:column; border-right:1px solid var(--border); }
.pt-chat-scroll { flex:1; min-height:0; padding:26px clamp(16px,3vw,42px) 14px; overflow:auto; scroll-behavior:smooth; }
.pt-welcome { max-width:850px; margin:35px auto 30px; text-align:center; }
.pt-welcome-mark { display:grid; width:54px; height:54px; margin:0 auto 17px; place-items:center; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); }
.pt-welcome-mark img { width:34px; height:34px; }
.pt-kicker { color:var(--accent); font-size:.62rem; font-weight:750; letter-spacing:.12em; }
.pt-welcome h1 { margin:10px 0 9px; font:650 clamp(1.65rem,3vw,2.25rem)/1.2 var(--serif); letter-spacing:-.045em; }
.pt-welcome>p { max-width:590px; margin:0 auto; color:var(--muted); font-size:.87rem; line-height:1.7; }
.pt-prompt-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; max-width:680px; margin:25px auto 19px; text-align:left; }
.pt-prompt { position:relative; display:grid; gap:5px; min-height:82px; padding:15px 42px 14px 15px; border:1px solid var(--border); border-radius:12px; background:var(--surface); text-align:left; box-shadow:var(--shadow); }
.pt-prompt:hover { border-color:var(--accent); transform:translateY(-1px); }
.pt-prompt strong { font-size:.79rem; font-weight:650; }
.pt-prompt span { color:var(--muted); font-size:.68rem; line-height:1.45; }
.pt-prompt b { position:absolute; top:14px; right:15px; color:var(--accent); font-size:.9rem; }
.pt-welcome .pt-welcome-foot { margin-top:17px; font-size:.65rem; letter-spacing:.015em; }
.pt-messages { display:flex; max-width:900px; margin:0 auto; flex-direction:column; gap:20px; }
.pt-message { display:grid; grid-template-columns:31px minmax(0,1fr); align-items:flex-start; gap:11px; }
.pt-message.user { grid-template-columns:minmax(0,1fr); justify-items:end; }
.pt-message-avatar { display:grid; width:29px; height:29px; place-items:center; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--accent); font-size:.8rem; font-weight:750; }
.pt-message.user .pt-message-avatar { display:none; }
.pt-message-body { min-width:0; max-width:100%; }
.pt-message.user .pt-message-body { max-width:min(90%,720px); padding:10px 14px; border:1px solid var(--border); border-radius:14px 14px 3px 14px; background:var(--user); }
.pt-message-meta { display:flex; align-items:center; gap:9px; margin:0 0 5px; }
.pt-message-meta strong { font-size:.73rem; font-weight:700; }
.pt-message-meta small { color:var(--muted); font-size:.62rem; }
.pt-message.user .pt-message-meta { justify-content:flex-end; }
.pt-message-text { color:var(--text); font-size:.88rem; line-height:1.68; overflow-wrap:anywhere; }
.pt-message-text p { margin:0 0 .65em; }
.pt-message-text p:last-child { margin-bottom:0; }
.pt-message-text a { color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.pt-message-text code { padding:.12em .35em; border-radius:4px; background:var(--surface-2); font: .84em "JetBrains Mono",monospace; }
.pt-message-text pre { max-width:100%; padding:12px; overflow:auto; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); }
.pt-message-text pre code { padding:0; background:none; }
.pt-message-text ul,.pt-message-text ol { padding-left:1.4em; }
.pt-thinking { display:flex; align-items:center; gap:5px; max-width:900px; margin:15px auto; color:var(--muted); }
.pt-thinking>span { width:6px; height:6px; border-radius:50%; background:var(--accent); animation:pt-pulse 1s infinite ease-in-out; }
.pt-thinking>span:nth-child(2) { animation-delay:.13s; }
.pt-thinking>span:nth-child(3) { animation-delay:.26s; }
.pt-thinking small { margin-left:5px; font-size:.69rem; }
@keyframes pt-pulse { 0%,80%,100%{opacity:.3;transform:translateY(0)} 40%{opacity:1;transform:translateY(-3px)} }

.pt-composer-wrap { flex:none; padding:10px clamp(13px,3vw,40px) 9px; background:linear-gradient(180deg,transparent,var(--bg) 18%); }
.pt-composer { max-width:900px; margin:0 auto; padding:10px 12px 8px; border:1px solid var(--border-strong); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); }
.pt-composer:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft),var(--shadow); }
.pt-composer textarea { display:block; width:100%; min-height:49px; max-height:180px; padding:5px 7px 9px; resize:none; border:0; outline:0; background:transparent; color:var(--text); font-size:.9rem; line-height:1.55; }
.pt-composer textarea::placeholder { color:var(--muted); }
.pt-composer-bar { display:flex; align-items:center; gap:9px; min-height:31px; padding:3px 3px 0; }
.pt-composer-context { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:.64rem; }
.pt-composer-context svg { width:15px; height:15px; fill:none; stroke:var(--pt-good); stroke-width:1.8; }
.pt-composer-shortcut { margin-left:auto; color:var(--muted); font-size:.61rem; }
.pt-composer .coder-send { display:grid; width:31px; height:31px; flex:none; place-items:center; border:0; border-radius:9px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--accent-text); }
.pt-composer .coder-send:disabled { opacity:.55; cursor:wait; }
.pt-composer .coder-send .icon { width:17px; height:17px; }
.pt-status { min-height:0; margin:5px 5px 0; color:var(--muted); font-size:.69rem; }
.pt-status:empty { display:none; }
.pt-status.error { color:var(--pt-danger); }
.pt-footer-note { max-width:900px; margin:7px auto 0; color:var(--muted); text-align:center; font-size:.61rem; line-height:1.45; }

.pt-inspector { min-width:0; min-height:0; padding:16px 14px 18px; overflow:auto; background:var(--surface); }
.pt-inspector-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:2px 2px 13px; }
.pt-inspector-head>div { display:grid; gap:4px; }
.pt-inspector-head .pt-kicker { font-size:.55rem; }
.pt-inspector-head strong { font-size:.85rem; }
.pt-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; padding:3px; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); }
.pt-tabs button { padding:7px 4px; border:0; border-radius:6px; background:transparent; color:var(--muted); font-size:.68rem; }
.pt-tabs button.active { background:var(--surface); color:var(--accent); box-shadow:var(--shadow); font-weight:700; }
.pt-inspector-content { display:grid; gap:11px; padding-top:12px; }
.pt-inspector-empty { display:grid; justify-items:center; gap:8px; padding:38px 13px; text-align:center; }
.pt-inspector-empty>span { display:grid; width:43px; height:43px; place-items:center; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); color:var(--accent); font-size:1.3rem; }
.pt-inspector-empty strong { font-size:.78rem; }
.pt-inspector-empty p { margin:0; color:var(--muted); font-size:.67rem; line-height:1.6; }
.pt-inspector-target { display:flex; align-items:center; gap:9px; padding:11px; border:1px solid var(--border); border-radius:11px; background:var(--surface-2); }
.pt-inspector-target-icon { display:grid; width:30px; height:30px; flex:none; place-items:center; border-radius:10px; background:var(--pt-good-soft); color:var(--pt-good); font-size:1rem; font-weight:800; }
.pt-inspector-target div { display:grid; min-width:0; gap:3px; }
.pt-inspector-target strong { overflow-wrap:anywhere; font-size:.71rem; }
.pt-inspector-target small { color:var(--muted); font-size:.62rem; }
.pt-inspector-score { display:flex; align-items:center; gap:12px; padding:15px 12px; border:1px solid var(--border); border-radius:11px; }
.pt-inspector-score>div:last-child { display:grid; gap:3px; }
.pt-inspector-score strong { font-size:.87rem; }
.pt-inspector-score span { color:var(--muted); font-size:.64rem; }
.pt-inspector-score-ring { display:grid; width:60px; height:60px; flex:none; place-content:center; border:5px solid var(--pt-good); border-radius:50%; text-align:center; }
.pt-inspector-score-ring b { font-size:1.03rem; line-height:1.1; }
.pt-inspector-score-ring small { color:var(--muted); font-size:.52rem; }
.pt-inspector-section { padding:12px; border:1px solid var(--border); border-radius:11px; }
.pt-inspector-section-title { margin-bottom:9px; font-size:.73rem; font-weight:750; }
.pt-inspector-severity { display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:7px; margin:7px 0; font-size:.68rem; }
.pt-inspector-severity>span:nth-child(2) { color:var(--muted); text-transform:capitalize; }
.pt-inspector-severity b { font-size:.68rem; }
.pt-severity-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#9daab4; }
.pt-severity-dot.critical { background:#d94343; }
.pt-severity-dot.high { background:#e97842; }
.pt-severity-dot.medium { background:#e6a128; }
.pt-severity-dot.low { background:#24a66b; }
.pt-severity-dot.info { background:#4789d7; }
.pt-inspector-copy { margin:0 0 9px; color:var(--muted); font-size:.66rem; line-height:1.55; }
.pt-inline-status { display:inline-block; padding:5px 8px; border-radius:7px; background:var(--pt-good-soft); color:var(--pt-good); font-size:.62rem; font-weight:650; }
.pt-full-btn { width:100%; }
.pt-inspector-foot { margin:2px 3px; color:var(--muted); font-size:.6rem; line-height:1.6; }
.pt-evidence-item { display:grid; gap:6px; padding:11px; border:1px solid var(--border); border-radius:10px; }
.pt-evidence-item>strong { font-size:.7rem; }
.pt-evidence-item p { margin:0; color:var(--muted); font-size:.65rem; line-height:1.5; }
.pt-evidence-item div { display:grid; gap:4px; padding-top:6px; border-top:1px solid var(--border); }
.pt-evidence-item small { color:var(--muted); font-size:.6rem; }
.pt-evidence-item code { overflow-wrap:anywhere; font-size:.63rem; white-space:pre-wrap; }
.pt-about-list { display:grid; gap:0; }
.pt-about-list>div { display:grid; gap:4px; padding:10px 3px; border-bottom:1px solid var(--border); }
.pt-about-list span { color:var(--muted); font-size:.62rem; }
.pt-about-list strong { overflow-wrap:anywhere; font-size:.68rem; font-weight:650; }
.pt-about-list p { margin:0; color:var(--muted); font-size:.65rem; line-height:1.55; }

/* Inline chat action cards */
.pt-action-card { display:flex; gap:11px; max-width:770px; margin:12px 0 3px; padding:14px; border:1px solid var(--border); border-radius:13px; background:var(--surface); box-shadow:var(--shadow); }
.pt-action-icon { display:grid; width:31px; height:31px; flex:none; place-items:center; border-radius:10px; background:var(--accent-soft); color:var(--accent); font-size:1.05rem; }
.pt-action-copy { display:grid; min-width:0; flex:1; gap:9px; }
.pt-action-copy>strong { font-size:.8rem; }
.pt-action-copy>p { margin:0; color:var(--muted); font-size:.7rem; line-height:1.55; }
.pt-consent { display:flex; align-items:flex-start; gap:8px; padding:10px; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); font-size:.67rem; line-height:1.5; }
.pt-consent input { flex:none; margin:2px 0 0; accent-color:var(--accent); }
.pt-consent b { overflow-wrap:anywhere; }
.pt-dns-row { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:7px; padding:8px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); }
.pt-dns-row span { color:var(--muted); font-size:.62rem; }
.pt-dns-row code { overflow-wrap:anywhere; font: .67rem/1.45 "JetBrains Mono",monospace; }
.pt-dns-row button { padding:4px 6px; border:1px solid var(--border); border-radius:6px; background:var(--surface); font-size:.59rem; }
.pt-primary-btn,.pt-outline-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:33px; padding:7px 11px; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); font-size:.68rem; font-weight:650; }
.pt-primary-btn { border-color:var(--accent); background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--accent-text); }
.pt-primary-btn:disabled,.pt-outline-btn:disabled { opacity:.45; cursor:not-allowed; }
.pt-outline-btn:hover { border-color:var(--accent); color:var(--accent); }
.pt-scan-buttons { display:flex; flex-wrap:wrap; gap:7px; }
.pt-report-card { max-width:860px; margin:14px 0 4px; padding:14px; border:1px solid var(--border-strong); border-radius:15px; background:var(--surface); box-shadow:var(--shadow); }
.pt-report-card-head { display:flex; align-items:center; gap:10px; padding:1px 0 13px; border-bottom:1px solid var(--border); }
.pt-report-shield { display:grid; width:36px; height:36px; flex:none; place-items:center; border-radius:12px; background:var(--pt-good-soft); color:var(--pt-good); font-size:1rem; font-weight:800; }
.pt-report-head-copy { display:grid; min-width:0; flex:1; gap:2px; }
.pt-report-head-copy>span { color:var(--pt-good); font-size:.55rem; font-weight:800; letter-spacing:.09em; }
.pt-report-head-copy>strong { overflow-wrap:anywhere; font-size:.81rem; }
.pt-report-head-copy>small { color:var(--muted); font-size:.62rem; }
.pt-risk-badge { flex:none; padding:6px 9px; border:1px solid transparent; border-radius:30px; font-size:.63rem; font-weight:750; }
.pt-risk-badge.good { background:var(--pt-good-soft); color:var(--pt-good); }
.pt-risk-badge.medium { background:var(--pt-warn-soft); color:var(--pt-warn); }
.pt-risk-badge.high,.pt-risk-badge.critical { background:var(--pt-danger-soft); color:var(--pt-danger); }
.pt-report-metrics { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:8px; margin:11px 0; }
.pt-score-metric,.pt-metric { display:flex; align-items:center; gap:10px; min-width:0; padding:11px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); }
.pt-score-ring { display:grid; width:48px; height:48px; flex:none; place-items:center; border:4px solid var(--pt-good); border-radius:50%; font-size:.93rem; font-weight:800; }
.pt-score-ring.good { border-color:var(--pt-good); color:var(--pt-good); }
.pt-score-ring.medium { border-color:var(--pt-warn); color:var(--pt-warn); }
.pt-score-ring.high,.pt-score-ring.critical { border-color:var(--pt-danger); color:var(--pt-danger); }
.pt-score-metric>div:last-child,.pt-metric>div { display:grid; min-width:0; gap:3px; }
.pt-score-metric strong,.pt-metric strong { font-size:.75rem; }
.pt-score-metric small,.pt-metric small { color:var(--muted); font-size:.6rem; }
.pt-metric-icon { display:grid; width:34px; height:34px; flex:none; place-items:center; border-radius:10px; background:var(--accent-soft); color:var(--accent); font-size:1.05rem; }
.pt-report-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:0 0 13px; }
.pt-report-subpanel { padding:11px; border:1px solid var(--border); border-radius:10px; }
.pt-panel-title { margin-bottom:8px; font-size:.69rem; font-weight:750; }
.pt-severity-line { display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:7px; margin:6px 0; font-size:.65rem; text-transform:capitalize; }
.pt-severity-line>b { font-size:.66rem; }
.pt-detail-line { display:flex; justify-content:space-between; gap:8px; margin:7px 0; font-size:.63rem; }
.pt-detail-line span { color:var(--muted); }
.pt-detail-line b { text-align:right; font-weight:650; }
.pt-report-section-title { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 1px 8px; }
.pt-report-section-title strong { font-size:.73rem; }
.pt-report-section-title span { color:var(--muted); font-size:.62rem; }
.pt-findings-list { display:grid; gap:6px; }
.pt-finding-row { display:grid; grid-template-columns:62px minmax(0,1fr); align-items:start; gap:9px; padding:9px; border:1px solid var(--border); border-radius:9px; }
.pt-severity { display:inline-flex; align-items:center; justify-content:center; width:max-content; max-width:100%; padding:4px 7px; border-radius:6px; font-size:.57rem; font-weight:750; text-transform:uppercase; letter-spacing:.02em; }
.pt-severity.critical { background:#ffe5e5; color:#a92929; }
.pt-severity.high { background:#ffeadf; color:#a7471d; }
.pt-severity.medium { background:#fff2d5; color:#90600b; }
.pt-severity.low { background:#e1f5ea; color:#147445; }
.pt-severity.info { background:#e6efff; color:#2b60a9; }
.pt-finding-row strong { font-size:.69rem; }
.pt-finding-row p { margin:3px 0; color:var(--muted); font-size:.64rem; line-height:1.48; }
.pt-finding-row small { display:block; margin-top:4px; color:var(--muted); font-size:.58rem; line-height:1.45; overflow-wrap:anywhere; }
.pt-clean-result,.pt-more-findings { color:var(--muted); font-size:.67rem; }
.pt-report-actions { display:flex; flex-wrap:wrap; gap:7px; margin:12px 0; }
.pt-ai-plan { margin-top:12px; padding:11px; border:1px solid var(--accent-soft); border-radius:10px; background:var(--surface-2); }
.pt-ai-plan-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:8px; }
.pt-ai-plan-head strong { font-size:.73rem; }
.pt-ai-plan-head p { margin:4px 0; color:var(--muted); font-size:.65rem; line-height:1.5; }
.pt-ai-plan-head>span { color:var(--accent); font-size:.57rem; }
.pt-ai-plan article { padding:9px 0; border-top:1px solid var(--border); }
.pt-ai-plan article strong { font-size:.67rem; }
.pt-ai-plan article p { margin:4px 0; font-size:.65rem; line-height:1.5; }
.pt-ai-plan article small { color:var(--muted); font-size:.59rem; }
.pt-disclaimer { margin:10px 1px 0; color:var(--muted); font-size:.59rem; line-height:1.55; }

@media (max-width:1120px) {
  .pt-layout { grid-template-columns:minmax(0,1fr) 275px; }
  .pt-head { padding:8px 13px; gap:8px; }
  .pt-security-label { display:none; }
  .pt-model-control { min-width:155px; }
}
@media (max-width:900px) {
  .pt-layout { grid-template-columns:minmax(0,1fr); }
  .pt-inspector { display:none; }
  .pt-chat-column { border-right:0; }
}
@media (max-width:700px) {
  .pt-shell { grid-template-columns:1fr; }
  .pt-sidebar { position:fixed; inset:0 auto 0 0; width:min(290px,86vw); height:100dvh; transform:translateX(-105%); transition:transform .18s ease; box-shadow:none; }
  .pt-sidebar.open { transform:translateX(0); box-shadow:var(--shadow); }
  .pt-main-wrap { width:100%; }
  .pt-head { min-height:54px; padding:6px 9px; }
  .pt-heading { min-width:0; }
  .pt-head .coder-eyebrow { display:none; }
  .pt-head .coder-title { max-width:135px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.78rem; }
  .pt-model-control { max-width:45vw; min-width:100px; padding:5px 6px; }
  .pt-model-control select { font-size:.65rem; }
  .pt-head .coder-export { display:none; }
  .pt-chat-scroll { padding:17px 12px 10px; }
  .pt-welcome { margin:21px auto; }
  .pt-welcome h1 { font-size:1.55rem; }
  .pt-welcome>p { font-size:.77rem; }
  .pt-prompt-grid { gap:7px; margin:20px auto 13px; }
  .pt-prompt { min-height:78px; padding:11px 25px 10px 10px; }
  .pt-prompt strong { font-size:.68rem; }
  .pt-prompt span { font-size:.6rem; }
  .pt-message { grid-template-columns:26px minmax(0,1fr); gap:8px; }
  .pt-message-avatar { width:25px; height:25px; border-radius:8px; }
  .pt-message-text { font-size:.82rem; }
  .pt-message.user .pt-message-body { max-width:94%; }
  .pt-composer-wrap { padding:7px 9px max(8px,env(safe-area-inset-bottom)); }
  .pt-composer { padding:8px 9px 7px; border-radius:13px; }
  .pt-composer textarea { min-height:43px; font-size:16px; }
  .pt-composer-shortcut { display:none; }
  .pt-composer-context { font-size:.59rem; }
  .pt-footer-note { font-size:.56rem; }
  .pt-report-card { padding:10px; }
  .pt-report-metrics { grid-template-columns:1fr 1fr; }
  .pt-score-metric { grid-column:1/-1; }
  .pt-report-grid { grid-template-columns:1fr; }
  .pt-report-actions>* { flex:1 1 120px; }
  .pt-action-card { padding:10px; }
  .pt-scan-buttons>* { flex:1 1 105px; }
}
@media (max-width:420px) {
  .pt-model-control { max-width:40vw; min-width:85px; }
  .pt-model-control svg { display:none; }
  .pt-prompt-grid { grid-template-columns:1fr; }
  .pt-prompt { min-height:66px; }
  .pt-finding-row { grid-template-columns:1fr; }
  .pt-risk-badge { padding:5px 7px; font-size:.56rem; }
}
@media (prefers-reduced-motion:reduce) {
  .pt-pentest-page *, .pentest-page *, .pentest-page *::before, .pentest-page *::after { animation:none; transition:none; scroll-behavior:auto; }
}

.pt-test-model { flex:none; padding:7px 9px; border:1px solid var(--border); border-radius:9px; background:var(--surface); color:var(--muted); font-size:.66rem; font-weight:650; white-space:nowrap; }
.pt-test-model:hover:not(:disabled) { border-color:var(--accent); color:var(--accent); }
.pt-test-model:disabled { opacity:.5; cursor:wait; }
@media(max-width:700px) {
  .pt-test-model { padding:6px 7px; font-size:.6rem; }
}

/* Preview-inspired details: persistent navy rail, cool surfaces, blue/violet actions and green success. */
.pt-sidebar {
  --surface: #172345;
  --surface-2: #1e2c50;
  --text: #edf3ff;
  --muted: #a4b4d5;
  --border: #2b3b63;
  --border-strong: #405582;
  --accent: #9db8ff;
  --accent-text: #111a35;
  --accent-soft: #263966;
  --shadow: 0 4px 15px rgb(0 0 0 / .18);
  color: #edf3ff;
  background: linear-gradient(180deg,#111a35 0%,#101a38 58%,#0d1730 100%);
  border-right-color: #25365d;
}
.pt-sidebar .brand { color:#f5f7ff; }
.pt-sidebar .brand small { color:#b8c6e5; border-color:#40517b; background:#1b2a4e; }
.pt-sidebar .coder-switch { border-color:#2b3d68; background:#121e3e; }
.pt-sidebar .coder-switch a,.pt-sidebar .coder-switch span { color:#9baed4; }
.pt-sidebar .coder-switch .active { color:#fff; background:linear-gradient(105deg,#2955bd,#334e9b); box-shadow:0 6px 18px rgb(31 74 173 / .25); }
.pt-sidebar .coder-newchat { color:#f3f6ff; border-color:#3c5181; background:#1a294e; box-shadow:none; }
.pt-sidebar .coder-newchat:hover { border-color:#7da4ff; background:#20345f; color:#fff; }
.pt-sidebar .coder-search-label input { color:#eff3ff; border-color:#30436e; background:#152242; }
.pt-sidebar .coder-search-label input::placeholder { color:#93a6cc; }
.pt-sidebar .coder-recent-label { color:#8fa4ce; }
.pt-sidebar .coder-recent-empty { color:#9cadcf; }
.pt-sidebar .coder-recent-item .open:hover { background:#1b2b51; }
.pt-sidebar .coder-recent-item.active .open { background:linear-gradient(105deg,#233e79,#1d315e); box-shadow:inset 2px 0 #77a5ff; }
.pt-sidebar .coder-recent-title { color:#eaf0ff; }
.pt-sidebar .coder-recent-meta { color:#9cafcf; }
.pt-sidebar .coder-theme { border-color:#2b3d68; background:#152242; }
.pt-sidebar .coder-theme button { color:#a8b8d7; }
.pt-sidebar .coder-theme button[aria-checked="true"] { background:#2a4174; color:#fff; }
.pt-sidebar-note { border-color:#2b3d68; background:linear-gradient(135deg,#17264a,#1a3152); }
.pt-sidebar-note strong { color:#f1f5ff; }
.pt-sidebar-note small { color:#aabbdc; }

.pt-head { background:linear-gradient(105deg,#fff 0%,#f8f9ff 72%,#eff2ff 100%); }
.pt-security-label { border-color:#dce5fa; background:#f1f5ff; color:#47608f; }
.pt-security-label i { background:#1fbd7b; box-shadow:0 0 0 3px #dcf8eb; }
.pt-model-control { border-color:#ccd8f5; background:#f1f5ff; box-shadow:0 3px 12px rgb(52 84 166 / .06); }
.pt-model-control svg { color:#4d65d9; }
.pt-model-control select { color:#1d2d56; }
.pt-head .coder-export { border-color:#d3ddf5; background:#fff; color:#344b7d; }
.pt-head .coder-export:hover:not(:disabled) { border-color:#6c8df0; color:#275bdd; }

.pt-welcome-mark { border-color:#dce5fa; background:linear-gradient(145deg,#fff,#eef3ff); box-shadow:0 8px 24px rgb(75 101 178 / .10); }
.pt-welcome h1 { color:#142349; }
.pt-welcome>p { color:#66769b; }
.pt-prompt { border-color:#dfe6f7; background:linear-gradient(145deg,#fff,#f8faff); box-shadow:0 5px 18px rgb(56 79 147 / .06); }
.pt-prompt:hover { background:linear-gradient(145deg,#fff,#eef3ff); box-shadow:0 10px 24px rgb(57 88 169 / .12); }
.pt-prompt strong { color:#1d2d55; }
.pt-prompt span { color:#68799d; }
.pt-prompt b { color:#506be3; }
.pt-message-avatar { border-color:#dce5fa; background:linear-gradient(145deg,#fff,#eef3ff); color:#4765da; }
.pt-message.user .pt-message-body { border-color:#d5e1fc; background:linear-gradient(130deg,#e9efff,#edf1ff); color:#17294f; }
.pt-message.user .pt-message-meta strong { color:#334d8d; }
.pt-message-text a { color:#2563eb; }
.pt-thinking>span { background:#5b69e8; }

.pt-composer { border-color:#ccd8f5; box-shadow:0 7px 25px rgb(54 79 157 / .08); }
.pt-composer:focus-within { border-color:#7797f3; box-shadow:0 0 0 3px rgb(92 123 242 / .14),0 10px 30px rgb(54 79 157 / .10); }
.pt-composer-context { color:#65769a; }
.pt-composer-context svg { stroke:#18a66f; }
.pt-composer .coder-send { background:linear-gradient(135deg,#2775ff,#6658ec); box-shadow:0 5px 12px rgb(54 93 221 / .22); }
.pt-footer-note { color:#7180a3; }

.pt-inspector { background:linear-gradient(180deg,#fff 0%,#fbfcff 100%); border-left:1px solid #e4e9f8; }
.pt-inspector-head strong { color:#1b2b52; }
.pt-tabs { border-color:#e0e7f6; background:#f2f5ff; }
.pt-tabs button.active { color:#345fdd; }
.pt-inspector-empty>span { border-color:#dbe4fa; background:#eef3ff; color:#536bdc; }
.pt-inspector-target { border-color:#dfebf4; background:linear-gradient(120deg,#f6fffa,#f5f8ff); }
.pt-inspector-target-icon { background:#def8e9; color:#159b66; }
.pt-inspector-score { border-color:#dfe8fa; background:linear-gradient(120deg,#f7faff,#f0f4ff); }
.pt-inspector-score-ring.good { border-color:#24bd7d; color:#169b68; }
.pt-inspector-section { border-color:#e1e8f7; background:#fff; }
.pt-inline-status { background:#e2f8ec; color:#138958; }

.pt-report-card { border-color:#d9e2f7; box-shadow:0 8px 30px rgb(56 77 146 / .08); }
.pt-report-card-head { margin:-14px -14px 12px; padding:15px 14px 13px; border-radius:15px 15px 0 0; background:linear-gradient(112deg,#e4f8ef 0%,#eaf2ff 62%,#f0edff 100%); }
.pt-report-shield { background:linear-gradient(145deg,#20c77e,#0e9e67); color:#fff; box-shadow:0 5px 13px rgb(20 168 104 / .18); }
.pt-report-head-copy>span { color:#129b68; }
.pt-report-head-copy>strong { color:#182b55; }
.pt-report-head-copy>small { color:#627399; }
.pt-risk-badge.good { background:#d8f6e6; color:#138451; border-color:#bdebd1; }
.pt-risk-badge.medium { background:#ffedc7; color:#a66408; border-color:#f8dca1; }
.pt-risk-badge.high,.pt-risk-badge.critical { background:#ffe1e1; color:#b83232; border-color:#f5c5c5; }
.pt-score-metric,.pt-metric { border-color:#e0e8fa; background:linear-gradient(145deg,#f8faff,#eff4ff); }
.pt-score-ring.good { border-color:#20bd7a; color:#149a64; }
.pt-score-ring.medium { border-color:#efb23f; color:#b97a14; }
.pt-score-ring.high,.pt-score-ring.critical { border-color:#e36a6a; color:#c03e3e; }
.pt-metric-icon { background:#e5edff; color:#3d6fe0; }
.pt-report-subpanel { border-color:#e2e9f8; background:#fff; }
.pt-panel-title { color:#20335f; }
.pt-severity-line { color:#384d79; }
.pt-finding-row { border-color:#e5eaf7; background:#fff; }
.pt-finding-row strong { color:#1e315d; }
.pt-ai-plan { border-color:#dce5ff; background:linear-gradient(145deg,#f7f9ff,#f1f3ff); }
.pt-ai-plan-head strong { color:#243b75; }
.pt-primary-btn { background:linear-gradient(115deg,#2877ff,#6658ed); border-color:#3e70ed; box-shadow:0 4px 12px rgb(62 95 208 / .16); }
.pt-outline-btn { border-color:#ccd8f5; background:#fff; color:#34517e; }
.pt-outline-btn:hover { border-color:#819cf0; background:#f2f5ff; color:#2d5ed8; }
.pt-action-card { border-color:#dce5f6; box-shadow:0 6px 22px rgb(53 77 148 / .07); }
.pt-consent { border-color:#dfe7f6; background:#f6f8ff; color:#324774; }
.pt-dns-row { border-color:#dfe7f6; background:#f5f7ff; }

:root[data-theme="dark"] .pt-head,
:root[data-theme="dark"] .pt-inspector { background:#111d39; }
:root[data-theme="dark"] .pt-report-card-head { background:linear-gradient(112deg,#163c38 0%,#1c3155 62%,#30284f 100%); }
:root[data-theme="dark"] .pt-report-head-copy>strong,
:root[data-theme="dark"] .pt-inspector-head strong,
:root[data-theme="dark"] .pt-panel-title,
:root[data-theme="dark"] .pt-finding-row strong { color:#edf2ff; }
:root[data-theme="dark"] .pt-prompt { background:#152341; border-color:#2b3b61; }
:root[data-theme="dark"] .pt-prompt strong { color:#edf2ff; }
:root[data-theme="dark"] .pt-message.user .pt-message-body { background:#1e3157; color:#edf2ff; border-color:#344a76; }
:root[data-theme="dark"] .pt-model-control { background:#1a294a; border-color:#405582; }
:root[data-theme="dark"] .pt-model-control select { color:#edf2ff; }
:root[data-theme="dark"] .pt-score-metric,
:root[data-theme="dark"] .pt-metric,
:root[data-theme="dark"] .pt-report-subpanel,
:root[data-theme="dark"] .pt-finding-row,
:root[data-theme="dark"] .pt-inspector-section,
:root[data-theme="dark"] .pt-action-card { background:#162442; border-color:#2c3f68; }


/* Dark mode: the Pentest page has local light tokens, so explicitly replace them here.
   Keep both the saved Dark choice and the OS-following System choice in sync. */
:root[data-theme="dark"] .pentest-page {
    --bg: #0b1224;
    --surface: #121d36;
    --surface-2: #192746;
    --text: #edf2ff;
    --muted: #a7b6d3;
    --border: #29395d;
    --border-strong: #405481;
    --accent: #91b0ff;
    --accent-hover: #b4c8ff;
    --accent-text: #101a35;
    --accent-soft: #24365f;
    --accent-2: #a08aff;
    --user: #1d3157;
    --shadow: 0 2px 8px rgb(0 0 0 / .24), 0 12px 32px rgb(0 0 0 / .28);
    --glow: rgb(104 123 245 / .13);
    --pt-good: #61dfa6;
    --pt-good-soft: #143a30;
    --pt-warn: #f0c16c;
    --pt-warn-soft: #3e301a;
    --pt-danger: #ff9292;
    --pt-danger-soft: #45272d;
    --pt-info: #91baff;
    --pt-info-soft: #1b3154;
    color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pentest-page {
    --bg: #0b1224;
    --surface: #121d36;
    --surface-2: #192746;
    --text: #edf2ff;
    --muted: #a7b6d3;
    --border: #29395d;
    --border-strong: #405481;
    --accent: #91b0ff;
    --accent-hover: #b4c8ff;
    --accent-text: #101a35;
    --accent-soft: #24365f;
    --accent-2: #a08aff;
    --user: #1d3157;
    --shadow: 0 2px 8px rgb(0 0 0 / .24), 0 12px 32px rgb(0 0 0 / .28);
    --glow: rgb(104 123 245 / .13);
    --pt-good: #61dfa6;
    --pt-good-soft: #143a30;
    --pt-warn: #f0c16c;
    --pt-warn-soft: #3e301a;
    --pt-danger: #ff9292;
    --pt-danger-soft: #45272d;
    --pt-info: #91baff;
    --pt-info-soft: #1b3154;
    color-scheme: dark;
  }
}

/* Header, model picker, empty state and conversational surfaces. */
:root[data-theme="dark"] .pt-head,
:root[data-theme="dark"] .pt-inspector,
:root[data-theme="dark"] .pt-welcome-mark,
:root[data-theme="dark"] .pt-prompt,
:root[data-theme="dark"] .pt-message-avatar,
:root[data-theme="dark"] .pt-composer,
:root[data-theme="dark"] .pt-report-card,
:root[data-theme="dark"] .pt-report-subpanel,
:root[data-theme="dark"] .pt-finding-row,
:root[data-theme="dark"] .pt-inspector-section,
:root[data-theme="dark"] .pt-action-card,
:root[data-theme="dark"] .pt-score-metric,
:root[data-theme="dark"] .pt-metric {
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
:root[data-theme="dark"] .pt-head,
:root[data-theme="dark"] .pt-inspector {
  background: #111c35;
}
:root[data-theme="dark"] .pt-head .coder-title,
:root[data-theme="dark"] .pt-welcome h1,
:root[data-theme="dark"] .pt-inspector-head strong,
:root[data-theme="dark"] .pt-panel-title,
:root[data-theme="dark"] .pt-finding-row strong,
:root[data-theme="dark"] .pt-report-head-copy>strong,
:root[data-theme="dark"] .pt-score-metric strong,
:root[data-theme="dark"] .pt-metric strong,
:root[data-theme="dark"] .pt-detail-line b,
:root[data-theme="dark"] .pt-action-copy>strong {
  color: var(--text);
}
:root[data-theme="dark"] .pt-welcome>p,
:root[data-theme="dark"] .pt-welcome-foot,
:root[data-theme="dark"] .pt-prompt span,
:root[data-theme="dark"] .pt-footer-note,
:root[data-theme="dark"] .pt-composer-context,
:root[data-theme="dark"] .pt-composer-shortcut,
:root[data-theme="dark"] .pt-report-head-copy>small,
:root[data-theme="dark"] .pt-finding-row p,
:root[data-theme="dark"] .pt-finding-row small,
:root[data-theme="dark"] .pt-detail-line span,
:root[data-theme="dark"] .pt-inspector-copy,
:root[data-theme="dark"] .pt-inspector-empty p,
:root[data-theme="dark"] .pt-disclaimer,
:root[data-theme="dark"] .pt-action-copy>p,
:root[data-theme="dark"] .pt-inspector-foot {
  color: var(--muted);
}
:root[data-theme="dark"] .pt-prompt,
:root[data-theme="dark"] .pt-message-avatar,
:root[data-theme="dark"] .pt-inspector-empty>span {
  background: linear-gradient(145deg,#172748,#1b2b4c);
}
:root[data-theme="dark"] .pt-prompt strong { color: #f0f4ff; }
:root[data-theme="dark"] .pt-message.user .pt-message-body {
  color: #eff4ff;
  border-color: #3c5688;
  background: linear-gradient(130deg,#20375f,#26365d);
}
:root[data-theme="dark"] .pt-message.user .pt-message-meta strong { color: #d5e2ff; }
:root[data-theme="dark"] .pt-message-text { color: var(--text); }
:root[data-theme="dark"] .pt-message-text code,
:root[data-theme="dark"] .pt-message-text pre {
  color: #e4ebff;
  border-color: var(--border);
  background: #0d1830;
}
:root[data-theme="dark"] .pt-model-control,
:root[data-theme="dark"] .pt-head .coder-export,
:root[data-theme="dark"] .pt-test-model,
:root[data-theme="dark"] .pt-tabs,
:root[data-theme="dark"] .pt-consent,
:root[data-theme="dark"] .pt-dns-row {
  color: var(--text);
  border-color: var(--border-strong);
  background: #172644;
}
:root[data-theme="dark"] .pt-model-control select { color: var(--text); }
:root[data-theme="dark"] .pt-test-model:hover:not(:disabled),
:root[data-theme="dark"] .pt-head .coder-export:hover:not(:disabled) {
  color: #dfe8ff;
  border-color: #829fff;
  background: #22365d;
}
:root[data-theme="dark"] .pt-tabs button { color: #aab9d7; }
:root[data-theme="dark"] .pt-tabs button.active {
  color: #eaf0ff;
  background: #263a66;
  box-shadow: none;
}
:root[data-theme="dark"] .pt-inspector-target {
  border-color: #315447;
  background: linear-gradient(120deg,#142e2d,#172947);
}
:root[data-theme="dark"] .pt-inspector-score {
  border-color: var(--border);
  background: linear-gradient(120deg,#172746,#1b2b4e);
}
:root[data-theme="dark"] .pt-report-card-head {
  background: linear-gradient(112deg,#163c38 0%,#1c3155 62%,#30284f 100%);
}
:root[data-theme="dark"] .pt-report-head-copy>span { color: #6ce1ae; }
:root[data-theme="dark"] .pt-score-ring.good,
:root[data-theme="dark"] .pt-inspector-score-ring.good { color: #6ce1ae; border-color: #45cc91; }
:root[data-theme="dark"] .pt-score-ring.medium,
:root[data-theme="dark"] .pt-inspector-score-ring.medium { color: #ffd17d; border-color: #d9a642; }
:root[data-theme="dark"] .pt-score-ring.high,
:root[data-theme="dark"] .pt-score-ring.critical,
:root[data-theme="dark"] .pt-inspector-score-ring.high,
:root[data-theme="dark"] .pt-inspector-score-ring.critical { color: #ffaaaa; border-color: #df7373; }
:root[data-theme="dark"] .pt-risk-badge.good { color: #80e8b7; background: #174b3a; border-color: #28684f; }
:root[data-theme="dark"] .pt-risk-badge.medium { color: #ffdb91; background: #4a391e; border-color: #73572b; }
:root[data-theme="dark"] .pt-risk-badge.high,
:root[data-theme="dark"] .pt-risk-badge.critical { color: #ffb0b0; background: #502c36; border-color: #79424b; }
:root[data-theme="dark"] .pt-severity.critical { color: #ffb2b2; background: #542a34; }
:root[data-theme="dark"] .pt-severity.high { color: #ffc09e; background: #503326; }
:root[data-theme="dark"] .pt-severity.medium { color: #ffdb91; background: #4a391e; }
:root[data-theme="dark"] .pt-severity.low { color: #8ce8b9; background: #174b3a; }
:root[data-theme="dark"] .pt-severity.info { color: #a9caff; background: #1d385f; }
:root[data-theme="dark"] .pt-severity-dot.critical { background: #ff8585; }
:root[data-theme="dark"] .pt-severity-dot.high { background: #ffa078; }
:root[data-theme="dark"] .pt-severity-dot.medium { background: #f1c56f; }
:root[data-theme="dark"] .pt-severity-dot.low { background: #62dda4; }
:root[data-theme="dark"] .pt-severity-dot.info { background: #8cb8ff; }
:root[data-theme="dark"] .pt-ai-plan {
  border-color: #354777;
  background: linear-gradient(145deg,#172746,#202b50);
}
:root[data-theme="dark"] .pt-ai-plan-head strong,
:root[data-theme="dark"] .pt-ai-plan article strong,
:root[data-theme="dark"] .pt-ai-plan article p { color: #edf2ff; }
:root[data-theme="dark"] .pt-ai-plan-head p,
:root[data-theme="dark"] .pt-ai-plan article small { color: #a7b6d3; }
:root[data-theme="dark"] .pt-inline-status { color: #82e7b6; background: #174b3a; }
:root[data-theme="dark"] .pt-primary-btn {
  color: #fff;
  background: linear-gradient(115deg,#2877ff,#6658ed);
  border-color: #668cff;
}
:root[data-theme="dark"] .pt-outline-btn,
:root[data-theme="dark"] .pt-dns-row button {
  color: #e5edff;
  border-color: #405481;
  background: #1a2a4b;
}
:root[data-theme="dark"] .pt-outline-btn:hover {
  color: #fff;
  border-color: #91acff;
  background: #263c68;
}
:root[data-theme="dark"] .pt-composer {
  border-color: #475b88;
  background: #121e39;
  box-shadow: 0 8px 30px rgb(0 0 0 / .25);
}
:root[data-theme="dark"] .pt-composer textarea { color: #f0f4ff; caret-color: #a7bcff; }
:root[data-theme="dark"] .pt-composer textarea::placeholder { color: #93a6ca; opacity: 1; }

/* The send action uses a white glyph in both themes; currentColor was dark in dark mode. */
.pt-composer .coder-send {
  color: #fff;
  background: linear-gradient(135deg,#2775ff,#6658ec);
  border: 1px solid rgb(255 255 255 / .17);
  box-shadow: 0 5px 13px rgb(42 83 207 / .3);
}
.pt-composer .coder-send .icon {
  color: #fff;
  stroke: #fff;
  width: 18px;
  height: 18px;
}
.pt-composer .coder-send:hover:not(:disabled) {
  filter: brightness(1.12);
  transform: translateY(-1px);
}

/* System theme dark-mode companion rules for the explicitly styled surfaces above. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pt-head,
  :root:not([data-theme="light"]) .pt-inspector { background: #111c35; }
  :root:not([data-theme="light"]) .pt-welcome h1,
  :root:not([data-theme="light"]) .pt-inspector-head strong,
  :root:not([data-theme="light"]) .pt-panel-title,
  :root:not([data-theme="light"]) .pt-finding-row strong,
  :root:not([data-theme="light"]) .pt-report-head-copy>strong,
  :root:not([data-theme="light"]) .pt-score-metric strong,
  :root:not([data-theme="light"]) .pt-metric strong,
  :root:not([data-theme="light"]) .pt-action-copy>strong { color:var(--text); }
  :root:not([data-theme="light"]) .pt-welcome>p,
  :root:not([data-theme="light"]) .pt-welcome-foot,
  :root:not([data-theme="light"]) .pt-prompt span,
  :root:not([data-theme="light"]) .pt-footer-note,
  :root:not([data-theme="light"]) .pt-composer-context,
  :root:not([data-theme="light"]) .pt-composer-shortcut,
  :root:not([data-theme="light"]) .pt-report-head-copy>small,
  :root:not([data-theme="light"]) .pt-finding-row p,
  :root:not([data-theme="light"]) .pt-finding-row small,
  :root:not([data-theme="light"]) .pt-detail-line span,
  :root:not([data-theme="light"]) .pt-inspector-copy,
  :root:not([data-theme="light"]) .pt-inspector-empty p,
  :root:not([data-theme="light"]) .pt-disclaimer,
  :root:not([data-theme="light"]) .pt-action-copy>p,
  :root:not([data-theme="light"]) .pt-inspector-foot { color:var(--muted); }
  :root:not([data-theme="light"]) .pt-prompt,
  :root:not([data-theme="light"]) .pt-message-avatar,
  :root:not([data-theme="light"]) .pt-inspector-empty>span {
    background:linear-gradient(145deg,#172748,#1b2b4c);
  }
  :root:not([data-theme="light"]) .pt-message.user .pt-message-body {
    background:linear-gradient(130deg,#20375f,#26365d); color:#eff4ff; border-color:#3c5688;
  }
  :root:not([data-theme="light"]) .pt-message-text,
  :root:not([data-theme="light"]) .pt-head .coder-title { color:var(--text); }
  :root:not([data-theme="light"]) .pt-model-control,
  :root:not([data-theme="light"]) .pt-head .coder-export,
  :root:not([data-theme="light"]) .pt-test-model,
  :root:not([data-theme="light"]) .pt-tabs,
  :root:not([data-theme="light"]) .pt-consent {
    color:var(--text); border-color:var(--border-strong); background:#172644;
  }
  :root:not([data-theme="light"]) .pt-model-control select { color:var(--text); }
  :root:not([data-theme="light"]) .pt-tabs button { color:#aab9d7; }
  :root:not([data-theme="light"]) .pt-tabs button.active { color:#eaf0ff; background:#263a66; }
  :root:not([data-theme="light"]) .pt-report-card-head { background:linear-gradient(112deg,#163c38 0%,#1c3155 62%,#30284f 100%); }
  :root:not([data-theme="light"]) .pt-report-head-copy>span { color:#6ce1ae; }
  :root:not([data-theme="light"]) .pt-severity.critical { color:#ffb2b2; background:#542a34; }
  :root:not([data-theme="light"]) .pt-severity.high { color:#ffc09e; background:#503326; }
  :root:not([data-theme="light"]) .pt-severity.medium { color:#ffdb91; background:#4a391e; }
  :root:not([data-theme="light"]) .pt-severity.low { color:#8ce8b9; background:#174b3a; }
  :root:not([data-theme="light"]) .pt-severity.info { color:#a9caff; background:#1d385f; }
  :root:not([data-theme="light"]) .pt-risk-badge.good { color:#80e8b7; background:#174b3a; border-color:#28684f; }
  :root:not([data-theme="light"]) .pt-risk-badge.medium { color:#ffdb91; background:#4a391e; border-color:#73572b; }
  :root:not([data-theme="light"]) .pt-risk-badge.high,
  :root:not([data-theme="light"]) .pt-risk-badge.critical { color:#ffb0b0; background:#502c36; border-color:#79424b; }
  :root:not([data-theme="light"]) .pt-ai-plan { border-color:#354777; background:linear-gradient(145deg,#172746,#202b50); }
  :root:not([data-theme="light"]) .pt-ai-plan-head strong,
  :root:not([data-theme="light"]) .pt-ai-plan article strong,
  :root:not([data-theme="light"]) .pt-ai-plan article p { color:#edf2ff; }
  :root:not([data-theme="light"]) .pt-ai-plan-head p,
  :root:not([data-theme="light"]) .pt-ai-plan article small { color:#a7b6d3; }
  :root:not([data-theme="light"]) .pt-inline-status { color:#82e7b6; background:#174b3a; }
  :root:not([data-theme="light"]) .pt-primary-btn {
    color:#fff; background:linear-gradient(115deg,#2877ff,#6658ed); border-color:#668cff;
  }
  :root:not([data-theme="light"]) .pt-outline-btn,
  :root:not([data-theme="light"]) .pt-dns-row button {
    color:#e5edff; border-color:#405481; background:#1a2a4b;
  }
  :root:not([data-theme="light"]) .pt-outline-btn:hover { color:#fff; border-color:#91acff; background:#263c68; }
  :root:not([data-theme="light"]) .pt-composer { border-color:#475b88; background:#121e39; }
  :root:not([data-theme="light"]) .pt-composer textarea { color:#f0f4ff; caret-color:#a7bcff; }
  :root:not([data-theme="light"]) .pt-composer textarea::placeholder { color:#93a6ca; opacity:1; }
}

/* Match saved Dark mode when Appearance is set to System and the OS is dark. */
@media (prefers-color-scheme: dark) {
/* Header, model picker, empty state and conversational surfaces. */
:root:not([data-theme="light"]) .pt-head,
:root:not([data-theme="light"]) .pt-inspector,
:root:not([data-theme="light"]) .pt-welcome-mark,
:root:not([data-theme="light"]) .pt-prompt,
:root:not([data-theme="light"]) .pt-message-avatar,
:root:not([data-theme="light"]) .pt-composer,
:root:not([data-theme="light"]) .pt-report-card,
:root:not([data-theme="light"]) .pt-report-subpanel,
:root:not([data-theme="light"]) .pt-finding-row,
:root:not([data-theme="light"]) .pt-inspector-section,
:root:not([data-theme="light"]) .pt-action-card,
:root:not([data-theme="light"]) .pt-score-metric,
:root:not([data-theme="light"]) .pt-metric {
  background-color: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
:root:not([data-theme="light"]) .pt-head,
:root:not([data-theme="light"]) .pt-inspector {
  background: #111c35;
}
:root:not([data-theme="light"]) .pt-head .coder-title,
:root:not([data-theme="light"]) .pt-welcome h1,
:root:not([data-theme="light"]) .pt-inspector-head strong,
:root:not([data-theme="light"]) .pt-panel-title,
:root:not([data-theme="light"]) .pt-finding-row strong,
:root:not([data-theme="light"]) .pt-report-head-copy>strong,
:root:not([data-theme="light"]) .pt-score-metric strong,
:root:not([data-theme="light"]) .pt-metric strong,
:root:not([data-theme="light"]) .pt-detail-line b,
:root:not([data-theme="light"]) .pt-action-copy>strong {
  color: var(--text);
}
:root:not([data-theme="light"]) .pt-welcome>p,
:root:not([data-theme="light"]) .pt-welcome-foot,
:root:not([data-theme="light"]) .pt-prompt span,
:root:not([data-theme="light"]) .pt-footer-note,
:root:not([data-theme="light"]) .pt-composer-context,
:root:not([data-theme="light"]) .pt-composer-shortcut,
:root:not([data-theme="light"]) .pt-report-head-copy>small,
:root:not([data-theme="light"]) .pt-finding-row p,
:root:not([data-theme="light"]) .pt-finding-row small,
:root:not([data-theme="light"]) .pt-detail-line span,
:root:not([data-theme="light"]) .pt-inspector-copy,
:root:not([data-theme="light"]) .pt-inspector-empty p,
:root:not([data-theme="light"]) .pt-disclaimer,
:root:not([data-theme="light"]) .pt-action-copy>p,
:root:not([data-theme="light"]) .pt-inspector-foot {
  color: var(--muted);
}
:root:not([data-theme="light"]) .pt-prompt,
:root:not([data-theme="light"]) .pt-message-avatar,
:root:not([data-theme="light"]) .pt-inspector-empty>span {
  background: linear-gradient(145deg,#172748,#1b2b4c);
}
:root:not([data-theme="light"]) .pt-prompt strong { color: #f0f4ff; }
:root:not([data-theme="light"]) .pt-message.user .pt-message-body {
  color: #eff4ff;
  border-color: #3c5688;
  background: linear-gradient(130deg,#20375f,#26365d);
}
:root:not([data-theme="light"]) .pt-message.user .pt-message-meta strong { color: #d5e2ff; }
:root:not([data-theme="light"]) .pt-message-text { color: var(--text); }
:root:not([data-theme="light"]) .pt-message-text code,
:root:not([data-theme="light"]) .pt-message-text pre {
  color: #e4ebff;
  border-color: var(--border);
  background: #0d1830;
}
:root:not([data-theme="light"]) .pt-model-control,
:root:not([data-theme="light"]) .pt-head .coder-export,
:root:not([data-theme="light"]) .pt-test-model,
:root:not([data-theme="light"]) .pt-tabs,
:root:not([data-theme="light"]) .pt-consent,
:root:not([data-theme="light"]) .pt-dns-row {
  color: var(--text);
  border-color: var(--border-strong);
  background: #172644;
}
:root:not([data-theme="light"]) .pt-model-control select { color: var(--text); }
:root:not([data-theme="light"]) .pt-test-model:hover:not(:disabled),
:root:not([data-theme="light"]) .pt-head .coder-export:hover:not(:disabled) {
  color: #dfe8ff;
  border-color: #829fff;
  background: #22365d;
}
:root:not([data-theme="light"]) .pt-tabs button { color: #aab9d7; }
:root:not([data-theme="light"]) .pt-tabs button.active {
  color: #eaf0ff;
  background: #263a66;
  box-shadow: none;
}
:root:not([data-theme="light"]) .pt-inspector-target {
  border-color: #315447;
  background: linear-gradient(120deg,#142e2d,#172947);
}
:root:not([data-theme="light"]) .pt-inspector-score {
  border-color: var(--border);
  background: linear-gradient(120deg,#172746,#1b2b4e);
}
:root:not([data-theme="light"]) .pt-report-card-head {
  background: linear-gradient(112deg,#163c38 0%,#1c3155 62%,#30284f 100%);
}
:root:not([data-theme="light"]) .pt-report-head-copy>span { color: #6ce1ae; }
:root:not([data-theme="light"]) .pt-score-ring.good,
:root:not([data-theme="light"]) .pt-inspector-score-ring.good { color: #6ce1ae; border-color: #45cc91; }
:root:not([data-theme="light"]) .pt-score-ring.medium,
:root:not([data-theme="light"]) .pt-inspector-score-ring.medium { color: #ffd17d; border-color: #d9a642; }
:root:not([data-theme="light"]) .pt-score-ring.high,
:root:not([data-theme="light"]) .pt-score-ring.critical,
:root:not([data-theme="light"]) .pt-inspector-score-ring.high,
:root:not([data-theme="light"]) .pt-inspector-score-ring.critical { color: #ffaaaa; border-color: #df7373; }
:root:not([data-theme="light"]) .pt-risk-badge.good { color: #80e8b7; background: #174b3a; border-color: #28684f; }
:root:not([data-theme="light"]) .pt-risk-badge.medium { color: #ffdb91; background: #4a391e; border-color: #73572b; }
:root:not([data-theme="light"]) .pt-risk-badge.high,
:root:not([data-theme="light"]) .pt-risk-badge.critical { color: #ffb0b0; background: #502c36; border-color: #79424b; }
:root:not([data-theme="light"]) .pt-severity.critical { color: #ffb2b2; background: #542a34; }
:root:not([data-theme="light"]) .pt-severity.high { color: #ffc09e; background: #503326; }
:root:not([data-theme="light"]) .pt-severity.medium { color: #ffdb91; background: #4a391e; }
:root:not([data-theme="light"]) .pt-severity.low { color: #8ce8b9; background: #174b3a; }
:root:not([data-theme="light"]) .pt-severity.info { color: #a9caff; background: #1d385f; }
:root:not([data-theme="light"]) .pt-severity-dot.critical { background: #ff8585; }
:root:not([data-theme="light"]) .pt-severity-dot.high { background: #ffa078; }
:root:not([data-theme="light"]) .pt-severity-dot.medium { background: #f1c56f; }
:root:not([data-theme="light"]) .pt-severity-dot.low { background: #62dda4; }
:root:not([data-theme="light"]) .pt-severity-dot.info { background: #8cb8ff; }
:root:not([data-theme="light"]) .pt-ai-plan {
  border-color: #354777;
  background: linear-gradient(145deg,#172746,#202b50);
}
:root:not([data-theme="light"]) .pt-ai-plan-head strong,
:root:not([data-theme="light"]) .pt-ai-plan article strong,
:root:not([data-theme="light"]) .pt-ai-plan article p { color: #edf2ff; }
:root:not([data-theme="light"]) .pt-ai-plan-head p,
:root:not([data-theme="light"]) .pt-ai-plan article small { color: #a7b6d3; }
:root:not([data-theme="light"]) .pt-inline-status { color: #82e7b6; background: #174b3a; }
:root:not([data-theme="light"]) .pt-primary-btn {
  color: #fff;
  background: linear-gradient(115deg,#2877ff,#6658ed);
  border-color: #668cff;
}
:root:not([data-theme="light"]) .pt-outline-btn,
:root:not([data-theme="light"]) .pt-dns-row button {
  color: #e5edff;
  border-color: #405481;
  background: #1a2a4b;
}
:root:not([data-theme="light"]) .pt-outline-btn:hover {
  color: #fff;
  border-color: #91acff;
  background: #263c68;
}
:root:not([data-theme="light"]) .pt-composer {
  border-color: #475b88;
  background: #121e39;
  box-shadow: 0 8px 30px rgb(0 0 0 / .25);
}
:root:not([data-theme="light"]) .pt-composer textarea { color: #f0f4ff; caret-color: #a7bcff; }
:root:not([data-theme="light"]) .pt-composer textarea::placeholder { color: #93a6ca; opacity: 1; }


}


/* Small screens: expose the desktop assessment inspector as a dismissible side drawer. */
.pt-inspector-toggle { display: none; }
.pt-inspector-head-actions { display: flex; align-items: center; gap: 10px; }
.pt-inspector-close { display: none; }
.pt-inspector-scrim[hidden] { display: none; }
@media (max-width: 900px) {
  .pt-inspector-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 32px;
    padding: 6px 9px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: var(--surface);
    color: var(--text);
    font-size: .68rem;
    white-space: nowrap;
  }
  .pt-inspector-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; }
  .pt-inspector.open {
    display: block;
    position: fixed;
    z-index: 41;
    inset: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px) auto;
    width: min(390px, calc(100vw - 18px));
    max-width: 100vw;
    height: auto;
    min-height: 0;
    max-height: 100dvh;
    padding: 14px 13px max(16px, env(safe-area-inset-bottom));
    overflow: auto;
    overscroll-behavior: contain;
    background: var(--surface);
    border-left: 1px solid var(--border);
    box-shadow: -14px 0 40px rgb(0 0 0 / .24);
  }
  .pt-inspector.open .pt-inspector-close {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex: none;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: var(--surface-2);
    color: var(--text);
  }
  .pt-inspector-close svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
  .pt-inspector-scrim:not([hidden]) {
    display: block;
    position: fixed;
    z-index: 40;
    inset: 0;
    background: rgb(5 12 28 / .52);
    backdrop-filter: blur(2px);
  }
}
@media (max-width: 700px) {
  .pt-head { gap: 6px; padding-left: 8px; padding-right: 8px; }
  .pt-heading { min-width: 0; flex: 1 1 auto; }
  .pt-head .coder-title { min-width: 0; max-width: 100%; }
  .pt-model-control { flex: 0 1 36vw; max-width: 36vw; min-width: 78px; }
  .pt-head .coder-export,
  .pt-test-model,
  .pt-inspector-toggle {
    display: grid;
    place-items: center;
    flex: none;
    width: 31px;
    min-width: 31px;
    height: 31px;
    padding: 0;
    border-radius: 9px;
    font-size: 0;
  }
  .pt-head .coder-export svg,
  .pt-test-model svg,
  .pt-inspector-toggle svg { display: block; width: 17px; height: 17px; }
  .pt-head .coder-export span,
  .pt-test-model span,
  .pt-inspector-toggle span { display: none; }
}
@media (max-width: 420px) {
  .pt-head { gap: 5px; }
  .pt-head .coder-title { font-size: .72rem; }
  .pt-model-control { flex-basis: 33vw; max-width: 33vw; min-width: 74px; }
  .pt-model-control svg { display: none; }
  .pt-head .coder-menu { width: 29px; min-width: 29px; height: 30px; }
  .pt-head .coder-export,
  .pt-test-model,
  .pt-inspector-toggle { width: 29px; min-width: 29px; height: 30px; }
}
@media (max-width: 360px) {
  .pt-model-control { flex-basis: 30vw; max-width: 30vw; min-width: 70px; }
  .pt-head .coder-title { font-size: .68rem; }
}

@media (max-width: 700px) {
  .pt-sidebar {
    padding-top: max(17px, env(safe-area-inset-top));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .pt-head { padding-top: max(6px, env(safe-area-inset-top)); }
  .pt-composer-wrap { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
}


/* 390px phones: keep the header intentional instead of squeezing the title/model/actions. */
@media (max-width: 420px) {
  .pt-head {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 30px 30px 30px;
    grid-template-rows: 32px 34px;
    align-items: center;
    gap: 6px;
    min-height: 0;
    padding: max(7px, env(safe-area-inset-top)) 9px 8px;
  }
  .pt-head .coder-menu { grid-column: 1; grid-row: 1; }
  .pt-heading { grid-column: 2; grid-row: 1; min-width: 0; }
  .pt-head .coder-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pt-test-model { grid-column: 3; grid-row: 1; }
  .pt-inspector-toggle { grid-column: 4; grid-row: 1; }
  .pt-head .coder-export { grid-column: 5; grid-row: 1; }
  .pt-model-control {
    grid-column: 2 / -1;
    grid-row: 2;
    width: 100%;
    max-width: none;
    min-width: 0;
    height: 32px;
    box-sizing: border-box;
    padding: 4px 9px;
  }
  .pt-model-control svg { display: block; width: 16px; height: 16px; }
  .pt-security-label { display: none; }
}

/* Delete is a compact, accessible × action, always visible on touch devices. */
.pentest-page .coder-recent-item .del {
  display: grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  margin-right: 4px;
  padding: 0;
  border-radius: 8px;
  font: 500 18px/1 var(--sans);
}
.pentest-page .coder-recent-item .del:focus-visible {
  opacity: 1;
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
@media (hover: none), (max-width: 820px) {
  .pentest-page .coder-recent-item .del { opacity: 1; }
}


/* Keep Test model visually secondary and compact in the Pentest toolbar. */
.pt-head > #pt-test-model {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: auto;
  min-width: 0;
  min-height: 30px;
  height: 30px;
  padding: 5px 9px;
  line-height: 1;
  font-size: .64rem;
}
.pt-head > #pt-test-model svg {
  display: block;
  width: 14px;
  height: 14px;
  flex: none;
}
.pt-head > #pt-test-model span { display: inline; }
@media (max-width: 700px) {
  .pt-head > #pt-test-model {
    display: grid;
    place-items: center;
    width: 31px;
    min-width: 31px;
    min-height: 31px;
    height: 31px;
    padding: 0;
    font-size: 0;
  }
  .pt-head > #pt-test-model svg { width: 16px; height: 16px; }
  .pt-head > #pt-test-model span { display: none; }
}
@media (max-width: 420px) {
  .pt-head > #pt-test-model {
    width: 29px;
    min-width: 29px;
    min-height: 30px;
    height: 30px;
  }
}


/* Assessment process trace and in-flight feedback. */
.pt-process-card { margin:14px 0 16px; padding:14px; border:1px solid var(--border); border-radius:14px; background:var(--surface, var(--panel)); }
.pt-process-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.pt-process-head > div { display:grid; gap:3px; }
.pt-process-head strong { font-size:.88rem; color:var(--text); }
.pt-process-complete { border-radius:999px; padding:4px 8px; background:rgba(22,163,74,.12); color:#16a34a; font-size:.68rem; font-weight:750; }
.pt-process-list { list-style:none; margin:0; padding:0; display:grid; gap:0; }
.pt-process-step { display:grid; grid-template-columns:25px minmax(0,1fr) auto; align-items:start; gap:9px; padding:9px 0; position:relative; }
.pt-process-step:not(:last-child):before { content:""; position:absolute; left:11px; top:31px; bottom:-8px; width:1px; background:var(--border); }
.pt-process-node { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:rgba(22,163,74,.13); color:#16a34a; font-size:.68rem; font-weight:800; z-index:1; }
.pt-process-step > div { display:grid; gap:3px; min-width:0; }
.pt-process-step strong { color:var(--text); font-size:.76rem; line-height:1.35; }
.pt-process-step small { color:var(--muted); font-size:.68rem; line-height:1.45; overflow-wrap:anywhere; }
.pt-process-state { color:#16a34a; font-size:.65rem; font-weight:750; }
.pt-process-foot { margin:9px 0 0; padding-top:9px; border-top:1px solid var(--border); color:var(--muted); font-size:.65rem; line-height:1.45; }
.pt-live-process { display:flex; align-items:flex-start; gap:10px; margin-top:12px; padding:11px; border-radius:10px; border:1px solid var(--accent-border, var(--border)); background:var(--surface-2, var(--panel)); }
.pt-live-process > div { display:grid; gap:3px; }
.pt-live-process strong { font-size:.76rem; color:var(--text); }
.pt-live-process small,.pt-scan-safety { color:var(--muted); font-size:.68rem; line-height:1.45; }
.pt-live-spinner { width:17px; height:17px; flex:0 0 17px; border:2px solid var(--border); border-top-color:var(--accent); border-radius:50%; animation:pt-spin .8s linear infinite; }
.pt-scan-safety { display:block; margin-top:10px; }
@keyframes pt-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .pt-live-spinner { animation:none; border-top-color:var(--border); } }
@media (max-width:420px) {
  .pt-process-card { padding:11px; }
  .pt-process-step { grid-template-columns:23px minmax(0,1fr); }
  .pt-process-state { grid-column:2; }
  .pt-process-step:not(:last-child):before { left:10px; }
}


/* Modern motion layer: restrained aurora, tactile controls, and clear scan feedback. */
.pentest-page {
  background-image:
    radial-gradient(ellipse at 18% 8%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 36%),
    radial-gradient(ellipse at 88% 88%, color-mix(in srgb, var(--accent-2) 7%, transparent), transparent 34%);
}
.pt-head {
  position:relative;
  isolation:isolate;
  box-shadow:0 5px 22px rgb(35 57 112 / .045);
}
.pt-head:after {
  content:"";
  position:absolute;
  inset:auto 0 -1px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),var(--accent-2),transparent);
  opacity:.38;
  pointer-events:none;
}
.pt-welcome {
  position:relative;
  isolation:isolate;
  padding:14px 12px 10px;
}
.pt-welcome:before {
  content:"";
  position:absolute;
  z-index:-1;
  width:min(620px,90vw);
  height:300px;
  top:-30px;
  left:50%;
  transform:translateX(-50%);
  background:radial-gradient(ellipse, color-mix(in srgb, var(--accent) 12%, transparent), transparent 68%);
  filter:blur(12px);
  pointer-events:none;
  animation:pt-aurora 9s ease-in-out infinite alternate;
}
.pt-welcome-mark {
  position:relative;
  animation:pt-float 5s ease-in-out infinite;
}
.pt-welcome-mark:after {
  content:"";
  position:absolute;
  inset:-5px;
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  border-radius:22px;
  opacity:0;
  animation:pt-mark-pulse 3.2s ease-out infinite;
  pointer-events:none;
}
.pt-prompt,
.pt-action-card,
.pt-report-card,
.pt-inspector-section,
.pt-evidence-item {
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.pt-prompt:hover,
.pt-action-card:hover,
.pt-report-card:hover {
  transform:translateY(-2px);
}
.pt-prompt:hover {
  box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 13%, transparent);
}
.pt-message {
  animation:pt-message-in .32s cubic-bezier(.2,.75,.25,1) both;
}
.pt-message:nth-child(2n) { animation-delay:.035s; }
.pt-report-card {
  overflow:hidden;
  animation:pt-report-in .45s cubic-bezier(.18,.8,.25,1) both;
}
.pt-report-card-head {
  position:relative;
  overflow:hidden;
}
.pt-report-card-head:after {
  content:"";
  position:absolute;
  top:-80%;
  left:-35%;
  width:25%;
  height:260%;
  transform:rotate(24deg);
  background:linear-gradient(90deg,transparent,rgb(255 255 255 / .24),transparent);
  animation:pt-sheen 5.5s ease-in-out 1s infinite;
  pointer-events:none;
}
.pt-score-ring,
.pt-inspector-score-ring {
  animation:pt-score-in .65s cubic-bezier(.2,.8,.2,1) both;
}
.pt-process-card {
  position:relative;
  overflow:hidden;
  animation:pt-message-in .38s ease both;
}
.pt-process-card:before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:2px;
  background:linear-gradient(180deg,var(--accent),var(--accent-2),var(--pt-good));
  opacity:.7;
}
.pt-process-step {
  animation:pt-step-in .3s ease both;
}
.pt-process-step:nth-child(2) { animation-delay:.04s; }
.pt-process-step:nth-child(3) { animation-delay:.08s; }
.pt-process-step:nth-child(4) { animation-delay:.12s; }
.pt-process-step:nth-child(5) { animation-delay:.16s; }
.pt-process-step:nth-child(6) { animation-delay:.2s; }
.pt-process-node {
  box-shadow:0 0 0 3px color-mix(in srgb, var(--pt-good) 10%, transparent);
}
.pt-live-process {
  position:relative;
  overflow:hidden;
  border-color:color-mix(in srgb, var(--accent) 38%, var(--border));
  background:linear-gradient(110deg,var(--surface-2),color-mix(in srgb,var(--accent) 7%,var(--surface)));
  animation:pt-message-in .25s ease both;
}
.pt-live-process:after {
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 8%,transparent),transparent);
  animation:pt-scan-sweep 2.4s ease-in-out infinite;
  pointer-events:none;
}
.pt-live-spinner {
  border-width:2px;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent);
}
.pt-test-model,
.pt-inspector-toggle,
.pt-head .coder-export,
.pt-primary-btn,
.pt-outline-btn,
.pt-composer .coder-send {
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,filter .16s ease;
}
.pt-test-model:hover:not(:disabled),
.pt-inspector-toggle:hover,
.pt-head .coder-export:hover:not(:disabled),
.pt-primary-btn:hover:not(:disabled),
.pt-outline-btn:hover:not(:disabled),
.pt-composer .coder-send:hover:not(:disabled) {
  transform:translateY(-1px);
  box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 15%,transparent);
}
.pentest-page button:focus-visible,
.pentest-page a:focus-visible,
.pentest-page select:focus-visible,
.pentest-page textarea:focus-visible,
.pentest-page input:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.pt-inspector-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:32px;
  padding:6px 9px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  color:var(--text);
  font-size:.68rem;
  font-weight:650;
}
.pt-inspector-toggle svg { width:16px; height:16px; flex:none; }
.pt-inspector-toggle[aria-expanded="true"] {
  border-color:var(--accent);
  color:var(--accent);
  background:var(--accent-soft);
}
.pt-sidebar .coder-recent-item .del {
  opacity:.62;
  transition:opacity .16s ease,background .16s ease;
}
.pt-sidebar .coder-recent-item:hover .del,
.pt-sidebar .coder-recent-item .del:focus-visible { opacity:1; }
.pt-status:not(:empty) { animation:pt-status-in .18s ease both; }

@keyframes pt-aurora {
  from { opacity:.55; transform:translateX(-50%) scale(.92); }
  to { opacity:1; transform:translateX(-50%) scale(1.08); }
}
@keyframes pt-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
@keyframes pt-mark-pulse { 0% { opacity:.55; transform:scale(.94); } 85%,100% { opacity:0; transform:scale(1.18); } }
@keyframes pt-message-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes pt-report-in { from { opacity:0; transform:translateY(13px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes pt-score-in { from { opacity:.35; transform:scale(.78) rotate(-12deg); } to { opacity:1; transform:scale(1) rotate(0); } }
@keyframes pt-step-in { from { opacity:0; transform:translateX(7px); } to { opacity:1; transform:translateX(0); } }
@keyframes pt-sheen { 0%,35% { left:-35%; opacity:0; } 48% { opacity:.8; } 68%,100% { left:130%; opacity:0; } }
@keyframes pt-scan-sweep { 0% { transform:translateX(-100%); } 70%,100% { transform:translateX(100%); } }
@keyframes pt-status-in { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:translateY(0); } }

@media (max-width:700px) {
  .pt-welcome { padding:8px 3px 5px; }
  .pt-report-card:hover,.pt-action-card:hover,.pt-prompt:hover { transform:none; }
  .pt-inspector-toggle { min-width:34px; min-height:34px; padding:7px; }
}
@media (max-width:420px) {
  .pt-head { gap:6px; }
  .pt-heading { flex:1 1 auto; }
  .pt-head .coder-title { max-width:90px; }
  .pt-model-control { flex:0 1 39vw; max-width:39vw; min-width:76px; }
  .pt-test-model { display:grid; width:31px; height:31px; min-width:31px; padding:0; place-items:center; }
  .pt-test-model span,.pt-inspector-toggle span { display:none; }
  .pt-inspector-toggle { width:31px; min-width:31px; height:31px; min-height:31px; padding:6px; }
  .pt-test-model svg,.pt-inspector-toggle svg { width:16px; height:16px; }
  .pt-report-card-head { flex-wrap:wrap; }
  .pt-report-head-copy { flex-basis:calc(100% - 58px); }
  .pt-risk-badge { margin-left:46px; }
}
@media (prefers-reduced-motion:reduce) {
  .pentest-page *,
  .pentest-page *:before,
  .pentest-page *:after {
    animation-duration:.01ms;
    animation-iteration-count:1;
    scroll-behavior:auto;
    transition-duration:.01ms;
  }
}


/* Stronger Virgo blue-violet theme: intentionally distinct from the general chat palette. */
.pentest-page {
  --accent:#5865f2;
  --accent-hover:#4853dc;
  --accent-text:#fff;
  --accent-soft:#e9eaff;
  --accent-2:#9b5cf6;
  --glow:rgb(104 92 245 / .18);
  background:
    radial-gradient(ellipse at 14% 0%,rgb(88 101 242 / .12),transparent 36%),
    radial-gradient(ellipse at 88% 22%,rgb(155 92 246 / .10),transparent 32%),
    var(--bg);
}
:root[data-theme="dark"] .pentest-page {
  --accent:#9aa4ff;
  --accent-hover:#bac0ff;
  --accent-text:#10132e;
  --accent-soft:#25284e;
  --accent-2:#c09aff;
  --glow:rgb(132 118 255 / .18);
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) .pentest-page {
    --accent:#9aa4ff;
    --accent-hover:#bac0ff;
    --accent-text:#10132e;
    --accent-soft:#25284e;
    --accent-2:#c09aff;
    --glow:rgb(132 118 255 / .18);
  }
}
.pentest-page .pt-head {
  background:color-mix(in srgb,var(--surface) 88%,var(--accent) 12%);
  border-bottom:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));
  box-shadow:0 8px 28px rgb(55 65 160 / .10);
  backdrop-filter:blur(16px) saturate(1.25);
}
.pentest-page .pt-welcome {
  padding-top:26px;
}
.pentest-page .pt-welcome-mark {
  display:grid;
  place-items:center;
  width:66px;
  height:66px;
  margin:0 auto 14px;
  border:1px solid color-mix(in srgb,var(--accent) 36%,var(--border));
  border-radius:22px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 18%,var(--surface)),color-mix(in srgb,var(--accent-2) 17%,var(--surface)));
  box-shadow:0 12px 34px color-mix(in srgb,var(--accent) 20%,transparent),inset 0 1px rgb(255 255 255 / .55);
}
.pentest-page .pt-welcome h1 {
  background:linear-gradient(100deg,var(--text) 12%,var(--accent) 58%,var(--accent-2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.pentest-page .pt-prompt,
.pentest-page .pt-action-card,
.pentest-page .pt-report-card,
.pentest-page .pt-process-card,
.pentest-page .pt-inspector-section,
.pentest-page .pt-evidence-item {
  border-color:color-mix(in srgb,var(--accent) 18%,var(--border));
  box-shadow:0 8px 24px rgb(30 45 100 / .055);
}
.pentest-page .pt-prompt {
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent) 5%,var(--surface)));
}
.pentest-page .pt-prompt:hover,
.pentest-page .pt-action-card:hover,
.pentest-page .pt-report-card:hover {
  border-color:color-mix(in srgb,var(--accent) 55%,var(--border));
  box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 15%,transparent);
}
.pentest-page .pt-primary-btn,
.pentest-page .pt-composer .coder-send {
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  border-color:transparent;
  color:#fff;
  box-shadow:0 5px 16px color-mix(in srgb,var(--accent) 22%,transparent);
}
.pentest-page .pt-report-card-head {
  background:linear-gradient(112deg,color-mix(in srgb,var(--accent) 13%,var(--surface)),color-mix(in srgb,var(--accent-2) 12%,var(--surface)));
}
.pentest-page .pt-score-ring {
  box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 12%,transparent),0 8px 24px color-mix(in srgb,var(--accent) 18%,transparent);
}
.pentest-page .pt-process-card {
  background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--accent) 5%,var(--surface)));
}
.pentest-page .pt-inspector {
  border-left-color:color-mix(in srgb,var(--accent) 22%,var(--border));
}
.pentest-page .pt-composer {
  border-color:color-mix(in srgb,var(--accent) 30%,var(--border-strong));
  box-shadow:0 10px 32px rgb(35 45 110 / .09),0 0 0 3px color-mix(in srgb,var(--accent) 5%,transparent);
}
.pentest-page .pt-composer:focus-within {
  border-color:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 15%,transparent),0 12px 34px rgb(35 45 110 / .12);
}
.pentest-page .pt-inspector-toggle[aria-expanded="true"] {
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 15%,var(--surface)),color-mix(in srgb,var(--accent-2) 12%,var(--surface)));
}
@media (max-width:700px) {
  .pentest-page .pt-head { backdrop-filter:none; }
  .pentest-page .pt-welcome { padding-top:12px; }
  .pentest-page .pt-prompt { min-height:100px; }
  .pentest-page .pt-inspector-toggle,
  .pentest-page .pt-test-model { min-width:40px; min-height:40px; }
}
@media (max-width:420px) {
  .pentest-page .pt-head { gap:5px; padding-inline:8px; }
  .pentest-page .pt-security-label { display:none; }
  .pentest-page .pt-model-control { max-width:34vw; min-width:68px; }
  .pentest-page .pt-test-model { width:38px; height:38px; min-width:38px; }
  .pentest-page .pt-inspector-toggle { width:38px; height:38px; min-width:38px; min-height:38px; }
  .pentest-page .pt-heading .coder-eyebrow { display:none; }
  .pentest-page .pt-head .coder-title { max-width:82px; font-size:.78rem; }
  .pentest-page .pt-report-metrics { grid-template-columns:1fr 1fr; }
  .pentest-page .pt-score-metric { grid-column:1 / -1; }
}
@media (prefers-reduced-motion:reduce) {
  .pentest-page .pt-welcome-mark,
  .pentest-page .pt-welcome:before,
  .pentest-page .pt-report-card-head:after { animation:none; }
}


/* Pentest UI hardening: keep the model picker full-width on narrow phones,
   preserve readable tap targets, and make keyboard focus obvious. */
.pentest-page :focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);
}
@media (max-width: 420px) {
  .pentest-page .pt-head {
    grid-template-columns: 40px minmax(0, 1fr) 40px 40px 40px;
    grid-template-rows: 40px 38px;
    gap: 5px;
    padding-inline: 8px;
  }
  .pentest-page .pt-head .coder-menu,
  .pentest-page .pt-head .coder-export,
  .pentest-page .pt-test-model,
  .pentest-page .pt-inspector-toggle {
    width: 40px;
    min-width: 40px;
    min-height: 40px;
    height: 40px;
    box-sizing: border-box;
  }
  .pentest-page .pt-model-control {
    grid-column: 2 / -1;
    grid-row: 2;
    width: 100%;
    max-width: none;
    min-width: 0;
    flex: none;
    height: 36px;
    box-sizing: border-box;
  }
  .pentest-page .pt-model-control select {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
@media (max-width: 360px) {
  .pentest-page .pt-head {
    grid-template-columns: 40px minmax(0, 1fr) 36px 36px 36px;
    gap: 4px;
  }
  .pentest-page .pt-head .coder-export,
  .pentest-page .pt-test-model,
  .pentest-page .pt-inspector-toggle {
    width: 36px;
    min-width: 36px;
    min-height: 36px;
    height: 36px;
  }
}
