:root {
  --app-bg: #ee8040;
  --surface-1: rgba(20, 20, 24, 0.82);
  --surface-2: rgba(255, 255, 255, 0.045);
  --surface-3: rgba(255, 255, 255, 0.08);
  --ink: #f5f3ef;
  --ink-soft: #b8b3aa;
  --ink-muted: #7a746a;
  --line: rgba(255, 255, 255, 0.16);
  --line-soft: rgba(255, 255, 255, 0.1);
  --charcoal: #1a1a1c;
  --orange: #ff6a1a;
  --orange-soft: rgba(255, 106, 26, 0.14);
  --red: #e1063a;
  --green: #18d27d;
  --blue: #ff8a3d;
  --purple: #f5d547;
  --radius: 0;
  --shadow-soft: inset 1px 1px 0 rgba(255, 255, 255, 0.08), 4px 4px 0 rgba(0, 0, 0, 0.45), 14px 14px 34px rgba(0, 0, 0, 0.28);
  --transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  color-scheme: dark;
}

* { box-sizing: border-box; letter-spacing: 0; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--app-bg) !important; color: var(--ink); font: 14px/1.55 'Plus Jakarta Sans', sans-serif; overflow-x: hidden; }
button, input, textarea { font: inherit; }
button { color: inherit; }
.aurora { position: fixed; inset: 0; z-index: -2; background: linear-gradient(rgba(0, 0, 0, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.045) 1px, transparent 1px), linear-gradient(145deg, #f09856 0%, #ee8040 42%, #ce5f2b 78%, #9b3d18 100%); background-size: 36px 36px, 36px 36px, auto; }
.dot-grid { position: fixed; inset: 0; z-index: -1; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.09)); }
.app-topbar { position: sticky; top: 0; z-index: 20; min-height: 86px; padding: 11px clamp(18px, 3.8vw, 48px); display: flex; align-items: center; justify-content: space-between; gap: 24px; background: linear-gradient(135deg, #2a2a2f 0%, #1f1f23 50%, #17171a 100%) !important; border-bottom: 1px solid rgba(255,255,255,.08); box-shadow: none; }
.brand-lockup { display: flex; align-items: center; gap: 14px; min-width: 0; }
.brand-mark { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 0; background: rgba(255,255,255,.055); color: var(--ink); border: 1px solid rgba(255,255,255,.16); font: 800 16px/1 'Sora', sans-serif; box-shadow: inset 0 -4px 0 rgba(255,106,26,.78); clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px); }
.eyebrow { margin: 0 0 4px; font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; color: var(--orange); }
h1, h2, h3, h4 { font-family: 'Sora', sans-serif; margin: 0; line-height: 1.15; color: var(--ink); }
h1 { font-size: 22px; text-transform: uppercase; }
h4 { font-size: 13px; text-transform: uppercase; margin-bottom: 10px; }
.app-topbar h1,
.app-topbar .eyebrow {
  color: #f5f3ef !important;
}
.topbar-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; font: 700 11px/1 'JetBrains Mono', monospace; text-transform: uppercase; color: rgba(32,35,43,.78); }
.topbar-meta span, .topbar-meta a, .theme-toggle { padding: 10px 12px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.055); border-radius: 0; color: var(--ink-soft); text-decoration: none; clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px); }
.theme-toggle { cursor: pointer; font: inherit; text-transform: inherit; }
.workspace { width: min(1840px, calc(100% - 32px)); margin: 22px auto 48px; }
.intro-band { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; border-radius: var(--radius); background: linear-gradient(165deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.04) 48%, rgba(255,255,255,.02) 100%); border: 1px solid rgba(255,255,255,.12); box-shadow: var(--shadow-soft); backdrop-filter: blur(24px); }
.intro-band h2 { color: #fff; font-size: clamp(25px, 3vw, 42px); max-width: 880px; }
.intro-band p:not(.eyebrow) { max-width: 840px; color: rgba(255,255,255,.74); margin: 10px 0 0; }
.intro-actions, .import-actions, .export-stack, .json-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.export-stack { flex-direction: column; padding: 0 18px 18px; }
.btn { border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.055); border-radius: var(--radius); padding: 10px 14px; font-weight: 800; cursor: pointer; transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition); min-height: 38px; color: var(--ink); backdrop-filter: blur(12px); }
.btn:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(28,32,36,.12); }
.btn.primary { background: var(--orange); border-color: rgba(242,157,29,.84); color: #fff; }
.btn.secondary { background: var(--surface-2); }
.btn.tiny { padding: 6px 9px; font-size: 12px; min-height: 30px; }
.btn:disabled { cursor: not-allowed; opacity: .48; box-shadow: none; transform: none; }
.metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.metrics article { padding: 15px; border: 1px solid var(--line); background: var(--surface-1); border-radius: var(--radius); box-shadow: var(--shadow-soft); min-height: 86px; }
.metrics span { display: block; color: var(--ink-muted); font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.metrics strong { display: block; margin-top: 8px; font: 800 28px/1 'Sora', sans-serif; }
.workspace-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 16px; }
.tab-button { text-align: left; display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-1); box-shadow: var(--shadow-soft); cursor: pointer; min-height: 74px; }
.tab-button:hover { border-color: rgba(232,97,10,.45); }
.tab-button.active { background: var(--charcoal); border-color: var(--charcoal); color: #fff; box-shadow: inset 0 -3px 0 var(--orange), var(--shadow-soft); }
.tab-button span { font-weight: 800; line-height: 1.25; }
.tab-button small { color: var(--ink-muted); font-size: 12px; line-height: 1.3; }
.tab-button.active small { color: rgba(255,255,255,.68); }
.workflow-panel[hidden] { display: none; }
.workflow-panel.active { display: block; }
.step-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.step-strip span { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-1); color: var(--ink-soft); font-weight: 800; box-shadow: var(--shadow-soft); }
.step-strip strong { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 999px; background: var(--charcoal); color: #fff; font: 800 12px/1 'Sora', sans-serif; }
.scope-summary { margin: 0 0 16px; padding: 13px 15px; border: 1px solid rgba(0,120,184,.18); border-radius: var(--radius); background: rgba(0,120,184,.06); color: var(--ink-soft); font-weight: 700; }
.builder-grid { display: grid; grid-template-columns: 300px minmax(620px, 1fr) 420px; gap: 16px; align-items: start; margin-bottom: 0; }
.main-grid { display: grid; grid-template-columns: 370px minmax(0, 1fr) 330px; gap: 16px; align-items: start; }
.builder-grid > *, .main-grid > *, .metrics > *, .detail-grid > *, .import-grid > *, .side-stack > * { min-width: 0; }
.panel { background: var(--surface-1); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.panel-head { padding: 18px; border-bottom: 1px solid var(--line-soft); display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.panel-head.compact { align-items: center; }
.panel-head h3 { font-size: 18px; }
.panel-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.policy-nav, .side-stack { position: sticky; top: 14px; }
.side-stack { display: grid; gap: 16px; }
.choice-stack { padding: 16px; display: grid; gap: 20px; }
.choice-list { display: grid; gap: 10px; }
.choice-card { width: 100%; text-align: left; display: grid; gap: 7px; padding: 13px; border: 1px solid var(--line); background: var(--surface-2); border-radius: 7px; cursor: pointer; min-height: 98px; }
.choice-card:hover { border-color: rgba(232,97,10,.45); background: #fff; }
.choice-card.active { border-color: var(--orange); background: var(--orange-soft); box-shadow: inset 3px 0 0 var(--orange); }
.choice-title { font-weight: 800; line-height: 1.25; }
.choice-desc { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.choice-risk { justify-self: start; border-radius: 999px; padding: 4px 8px; font: 700 10px/1 'JetBrains Mono', monospace; text-transform: uppercase; border: 1px solid var(--line); }
.choice-risk.medium { color: #075f87; background: rgba(0,120,184,.1); border-color: rgba(0,120,184,.26); }
.choice-risk.high { color: #8b3805; background: rgba(232,97,10,.13); border-color: rgba(232,97,10,.3); }
.choice-risk.critical { color: #9d1730; background: rgba(216,23,69,.1); border-color: rgba(216,23,69,.28); }
.threat-panel { min-height: 100%; }
.threat-list { padding: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); gap: 10px; }
.threat-card { text-align: left; min-height: 198px; display: grid; grid-template-rows: auto auto auto 1fr auto auto; gap: 7px; padding: 13px; border: 1px solid var(--line); border-radius: 7px; background: #fff; cursor: pointer; }
.threat-card:hover { border-color: rgba(0,120,184,.38); background: #fbfdff; }
.threat-card.active { border-color: var(--blue); background: rgba(0,120,184,.08); box-shadow: inset 3px 0 0 var(--blue); }
.threat-card.suggested { border-color: rgba(232,97,10,.45); background: #fff8ee; box-shadow: inset 3px 0 0 var(--orange); }
.threat-top, .policy-card-top { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.technique { padding: 4px 7px; border-radius: 5px; background: var(--surface-3); color: var(--ink-soft); font: 800 10px/1 'JetBrains Mono', monospace; }
.threat-name { font-weight: 800; line-height: 1.25; }
.threat-meta, .threat-desc, .threat-controls, .threat-reason { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.threat-reason { font-weight: 800; color: #7a4c00; }
.threat-card.active .threat-reason { color: #075f87; }
.threat-controls { color: var(--blue); font-weight: 700; }
.coverage-summary { padding: 16px 16px 0; }
.risk-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.risk-strip div { border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); padding: 12px; }
.risk-strip span { display: block; color: var(--ink-muted); font: 700 9px/1 'JetBrains Mono', monospace; text-transform: uppercase; }
.risk-strip strong { display: block; margin-top: 7px; font: 800 24px/1 'Sora', sans-serif; }
.coverage-note { color: var(--ink-soft); font-size: 12px; padding: 12px 0 0; }
.control-list { padding: 16px; display: grid; gap: 9px; }
.control-row { --control-color: var(--blue); display: grid; grid-template-columns: 9px minmax(0, 1fr); gap: 10px; align-items: start; padding: 11px; border: 1px solid var(--line-soft); background: #fff; border-radius: 7px; }
.control-mfa, .control-admin_mfa, .control-guest_access, .control-service_account_protection { --control-color: var(--blue); }
.control-phish_mfa, .control-agent_risk { --control-color: var(--purple); }
.control-legacy_auth, .control-trusted_location, .control-agent_compliant_network { --control-color: var(--orange); }
.control-auth_flows, .control-unknown_platforms, .control-agent_identity_block, .control-agent_users_block, .control-users_agent_resources_block { --control-color: var(--red); }
.control-device_compliance, .control-app_protection, .control-agent_compliant_device { --control-color: var(--green); }
.control-sign_in_risk, .control-user_risk, .control-agent_user_risk { --control-color: #c2175b; }
.control-session_controls, .control-persistent_browser, .control-admin_session, .control-selected_app_block { --control-color: #4254b5; }
.control-row strong { display: block; color: var(--ink); line-height: 1.25; }
.control-row span:not(.control-dot) { display: block; color: var(--ink-soft); font-size: 12px; line-height: 1.35; margin-top: 4px; }
.control-dot { width: 9px; height: 100%; min-height: 36px; border-radius: 99px; background: var(--control-color); }
.strategy-builder-grid { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 16px; align-items: start; }
.strategy-input-panel { position: sticky; top: 14px; }
.strategy-form { padding: 16px; display: grid; gap: 12px; }
.strategy-field { display: grid; gap: 7px; }
.strategy-field span, .strategy-toggle strong { color: var(--ink); font-weight: 800; line-height: 1.25; }
.strategy-field > span { color: var(--ink-muted); font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.strategy-field select, .strategy-field input { width: 100%; border: 1px solid var(--line); border-radius: 6px; background: #fff; padding: 10px; color: var(--ink); font-weight: 800; }
.strategy-field small { color: var(--ink-soft); line-height: 1.35; font-size: 12px; }
.strategy-toggle { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; padding: 11px; border: 1px solid var(--line-soft); border-radius: 7px; background: var(--surface-2); cursor: pointer; }
.strategy-toggle:hover { border-color: rgba(232,97,10,.35); background: #fff; }
.strategy-toggle input { margin-top: 3px; accent-color: var(--orange); }
.strategy-toggle span { display: grid; gap: 3px; }
.strategy-toggle small { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.strategy-output { display: grid; gap: 16px; }
.strategy-mode-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 14px 16px 0; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.strategy-mode-bar button { border: 0; border-right: 1px solid var(--line); padding: 10px 12px; background: #fff; cursor: pointer; font-weight: 800; }
.strategy-mode-bar button:last-child { border-right: 0; }
.strategy-mode-bar button.active { background: var(--charcoal); color: #fff; }
.strategy-summary { padding: 16px; display: grid; gap: 12px; }
.strategy-score-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.strategy-score-grid article { padding: 13px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); min-width: 0; }
.strategy-score-grid span { display: block; color: var(--ink-muted); font: 700 9px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.strategy-score-grid strong { display: block; margin-top: 7px; font: 800 24px/1 'Sora', sans-serif; overflow-wrap: anywhere; }
.strategy-score-grid em { display: block; margin-top: 6px; color: var(--ink-soft); font-style: normal; font-size: 12px; line-height: 1.35; }
.strategy-summary p { margin: 0; color: var(--ink-soft); }
.strategy-applied { padding: 10px 12px; border: 1px solid rgba(0,143,97,.24); border-left: 3px solid var(--green); border-radius: 0 6px 6px 0; background: rgba(0,143,97,.08); color: #055f42; font-weight: 800; }
.strategy-empty-callout { display: grid; gap: 5px; padding: 13px; border: 1px dashed var(--line); border-radius: 7px; background: var(--surface-2); }
.strategy-empty-callout strong, .strategy-build-order > strong { color: var(--ink); font: 800 13px/1.25 'Sora', sans-serif; }
.strategy-empty-callout span { color: var(--ink-soft); line-height: 1.4; }
.strategy-build-order { display: grid; gap: 12px; padding: 14px; border: 1px solid rgba(255,106,26,.34); border-left: 4px solid var(--orange); border-radius: 0; background: rgba(255,106,26,.09); }
.strategy-build-order ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.strategy-build-order li { display: grid; gap: 2px; padding: 9px; border: 1px solid var(--line-soft); border-radius: 6px; background: #fff; }
.strategy-build-order li span { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.strategy-build-list { display: grid; gap: 12px; }
.strategy-build-order .strategy-policy-card { padding: 16px; }
.strategy-build-order .strategy-policy-card dl { grid-template-columns: 138px minmax(180px, 1fr) 138px minmax(180px, 1fr); gap: 8px 14px; }
.strategy-build-order .strategy-policy-card .btn { justify-self: start; min-width: 180px; }
.strategy-plan-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.strategy-plan-grid.lower { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
.strategy-card-list, .mitre-list { padding: 14px; display: grid; gap: 10px; }
.strategy-policy-card, .strategy-note, .mitre-row { border: 1px solid var(--line-soft); border-radius: 7px; background: #fff; padding: 12px; min-width: 0; }
.strategy-policy-card { display: grid; gap: 10px; }
.strategy-policy-top { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.strategy-policy-top > div { display: grid; gap: 3px; min-width: 0; }
.strategy-policy-top strong { overflow-wrap: anywhere; line-height: 1.25; }
.strategy-step-label { color: var(--orange); font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.strategy-policy-card dl { margin: 0; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 6px 10px; }
.strategy-policy-card dt { color: var(--ink-muted); font: 700 10px/1.35 'JetBrains Mono', monospace; text-transform: uppercase; }
.strategy-policy-card dd { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.strategy-note { display: grid; gap: 6px; border-left: 3px solid var(--blue); border-radius: 0 7px 7px 0; }
.strategy-note.important { border-left-color: var(--orange); background: #fff8ee; }
.strategy-note strong { color: var(--ink); line-height: 1.25; }
.strategy-note p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.strategy-note span { color: var(--ink-muted); font: 700 10px/1.35 'JetBrains Mono', monospace; overflow-wrap: anywhere; }
.represented-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; }
.represented-list li { display: grid; gap: 2px; padding: 7px 8px; border: 1px solid var(--line-soft); border-radius: 6px; background: #fff; }
.represented-list strong { color: var(--orange); font: 800 10px/1.2 'JetBrains Mono', monospace; }
.scenario-grid { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 16px; align-items: start; }
.scenario-input-panel { position: sticky; top: 14px; }
.scenario-form { padding: 16px; display: grid; gap: 16px; }
.scenario-template-list { display: grid; gap: 9px; }
.scenario-template-card { display: grid; gap: 5px; text-align: left; padding: 11px; border: 1px solid var(--line-soft); background: var(--surface-2); color: var(--ink); cursor: pointer; }
.scenario-template-card:hover { border-color: rgba(245,213,71,.55); background: rgba(245,213,71,.08); }
.scenario-template-card.active { background: linear-gradient(135deg, #fff2a6 0%, #f5d547 44%, #f0c030 100%); border-color: #f5d547; color: #0e0e10; box-shadow: inset 4px 0 0 #0e0e10, 4px 4px 0 rgba(0,0,0,.35); }
.scenario-template-card strong { font: 800 13px/1.25 'Sora', sans-serif; }
.scenario-template-card span { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.scenario-template-card.active span, .scenario-template-card.active strong { color: #0e0e10; }
.scenario-custom-grid { display: grid; gap: 12px; }
.scenario-output { display: grid; gap: 16px; }
.scenario-summary { padding: 16px; display: grid; gap: 12px; }
.scenario-summary p { margin: 0; color: var(--ink-soft); }
.scenario-object-warning { display: grid; gap: 6px; padding: 12px; border: 1px solid rgba(255,106,26,.38); border-left: 4px solid var(--orange); background: rgba(255,106,26,.11); }
.scenario-object-warning strong { color: var(--ink); font: 800 12px/1.25 'Sora', sans-serif; }
.scenario-object-warning span { color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.scenario-choice-help { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(245,213,71,.24); border-left: 4px solid rgba(245,213,71,.86); background: linear-gradient(135deg, rgba(245,213,71,.12), rgba(255,106,26,.06)); }
.scenario-choice-help-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.scenario-choice-help-head strong { color: var(--ink); font: 800 12px/1.25 'Sora', sans-serif; }
.scenario-choice-help p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.scenario-choice-help dl { margin: 0; display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 6px 8px; }
.scenario-choice-help dt { color: var(--ink-muted); font: 700 9px/1.35 'JetBrains Mono', monospace; text-transform: uppercase; }
.scenario-choice-help dd { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.scenario-policy-pack { padding: 14px; display: grid; gap: 12px; }
.scenario-policy-card .btn:disabled { opacity: .42; }
.scenario-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.scenario-setting-card { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.035); box-shadow: inset 3px 0 0 rgba(245,213,71,.72); }
.scenario-setting-card strong { color: var(--ink); font: 800 12px/1.25 'Sora', sans-serif; }
.scenario-setting-card dl { margin: 0; display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 5px 8px; }
.scenario-setting-card dt { color: var(--ink-muted); font: 700 9px/1.35 'JetBrains Mono', monospace; text-transform: uppercase; }
.scenario-setting-card dd { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.scenario-support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.scenario-check-list { padding: 14px; }
.represented-list span { color: var(--ink-soft); font: 600 11px/1.35 'Plus Jakarta Sans', sans-serif; }
.mitre-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; border-left: 3px solid var(--ink-muted); border-radius: 0 7px 7px 0; }
.mitre-row strong { display: block; line-height: 1.25; }
.mitre-row span { color: var(--ink-soft); font-size: 12px; }
.mitre-row em { align-self: start; border-radius: 999px; padding: 6px 8px; background: var(--surface-2); color: var(--ink-soft); font: 700 10px/1 'JetBrains Mono', monospace; text-transform: uppercase; font-style: normal; white-space: nowrap; }
.mitre-row p { grid-column: 1 / -1; margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.mitre-strongly-mitigated { border-left-color: var(--green); }
.mitre-partially-mitigated { border-left-color: var(--orange); }
.mitre-requires-another-control { border-left-color: var(--purple); }
.mitre-not-addressed-by-conditional-access { border-left-color: var(--red); }
.policy-plan-summary { margin: 14px; padding: 13px; border: 1px solid rgba(0,120,184,.18); border-radius: var(--radius); background: rgba(0,120,184,.06); display: grid; gap: 10px; }
.plan-summary-title { display: grid; gap: 4px; }
.plan-summary-title strong { font: 800 15px/1.25 'Sora', sans-serif; color: var(--ink); }
.plan-summary-title span { color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.plan-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.plan-summary-grid span { padding: 9px; border: 1px solid var(--line-soft); border-radius: 6px; background: #fff; color: var(--ink-soft); font-size: 12px; }
.plan-summary-grid strong { display: block; color: var(--ink); font: 800 18px/1 'Sora', sans-serif; margin-bottom: 3px; }
.policy-plan-summary p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.review-guide { margin: 0 14px 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.review-guide span { padding: 9px 10px; border: 1px solid var(--line-soft); border-radius: 6px; background: var(--surface-2); color: var(--ink-soft); font-size: 12px; font-weight: 800; }
.advanced-filters { margin: 0 14px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.advanced-filters summary { cursor: pointer; padding: 11px 12px; color: var(--ink); font-weight: 800; list-style-position: inside; }
.advanced-filters[open] summary { border-bottom: 1px solid var(--line-soft); background: var(--surface-2); }
.filter-label { padding: 0 14px 10px; display: grid; gap: 4px; color: var(--ink-muted); }
.filter-label span { font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; color: var(--orange); }
.filter-label small { font-size: 12px; line-height: 1.35; }
.filters { padding: 0 14px 14px; display: flex; gap: 8px; flex-wrap: wrap; border-bottom: 1px solid var(--line-soft); }
.filter-chip, .count-pill, .status-chip, .risk-pill { border-radius: 999px; padding: 6px 10px; font: 700 11px/1 'JetBrains Mono', monospace; text-transform: uppercase; border: 1px solid var(--line); background: var(--surface-2); white-space: nowrap; }
.filter-chip { cursor: pointer; }
.filter-chip.active { background: var(--charcoal); color: white; border-color: var(--charcoal); }
.segmented { display: inline-flex; border: 1px solid var(--line); background: #fff; border-radius: 7px; overflow: hidden; }
.segmented.stacked { display: grid; grid-template-columns: repeat(3, 1fr); margin: 14px; }
.segmented button { border: 0; border-right: 1px solid var(--line); padding: 9px 12px; background: transparent; cursor: pointer; font-weight: 800; min-width: 0; }
.segmented button:last-child { border-right: 0; }
.segmented button.active { background: var(--charcoal); color: white; }
.search-box { display: block; padding: 14px; border-bottom: 1px solid var(--line-soft); color: var(--ink-muted); font: 700 10px/1 'JetBrains Mono', monospace; text-transform: uppercase; }
.search-box input { width: 100%; margin-top: 8px; border: 1px solid var(--line); border-radius: 6px; padding: 10px; background: #fff; color: var(--ink); }
.policy-list { max-height: calc(100vh - 385px); overflow: auto; padding: 8px; display: grid; gap: 12px; }
.policy-purpose-group { display: grid; gap: 8px; }
.purpose-head { display: flex; justify-content: space-between; align-items: start; gap: 10px; padding: 10px 8px 4px; border-bottom: 1px solid var(--line-soft); }
.purpose-head h4 { margin-bottom: 4px; font-size: 12px; }
.purpose-head p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.purpose-policy-list { display: grid; gap: 6px; }
.policy-card { width: 100%; text-align: left; padding: 12px; border: 1px solid transparent; background: transparent; border-radius: 6px; cursor: pointer; display: grid; gap: 8px; }
.policy-card:hover { background: var(--surface-2); }
.policy-card.active { background: var(--orange-soft); border-color: rgba(232,97,10,.35); }
.policy-title { font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.policy-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.policy-reason { color: var(--ink-soft); font-size: 12px; line-height: 1.3; }
.policy-reason.primary { color: #7a4c00; font-weight: 800; background: #fff8ee; border: 1px solid rgba(232,97,10,.22); border-radius: 6px; padding: 8px; }
.policy-answer { display: grid; gap: 3px; padding: 8px; border: 1px solid var(--line-soft); border-radius: 6px; background: #fff; color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.policy-answer strong { color: var(--ink); font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.status-chip.include { background: rgba(0,143,97,.12); color: #006b47; border-color: rgba(0,143,97,.28); }
.status-chip.monitor { background: rgba(232,97,10,.13); color: #794000; border-color: rgba(232,97,10,.3); }
.status-chip.exclude { background: #eef2f4; color: var(--ink-muted); }
.status-chip.import-exact { background: rgba(0,143,97,.12); color: #006b47; }
.status-chip.import-partial { background: rgba(232,97,10,.13); color: #794000; }
.status-chip.import-missing { background: rgba(216,23,69,.10); color: #9d1730; }
.status-chip.beta { background: rgba(114,81,181,.13); color: #4f347f; border-color: rgba(114,81,181,.3); }
.status-chip.generated { background: rgba(0,120,184,.1); color: #075f87; border-color: rgba(0,120,184,.26); }
.risk-pill.medium { background: rgba(0,120,184,.10); border-color: rgba(0,120,184,.25); color: #075f87; }
.risk-pill.high { background: rgba(232,97,10,.12); border-color: rgba(232,97,10,.3); color: #8b3805; }
.risk-pill.critical { background: rgba(216,23,69,.10); border-color: rgba(216,23,69,.28); color: #9d1730; }
.summary { padding: 18px; margin: 0; color: var(--ink-soft); font-size: 15px; }
.detail-panel .panel-head h3 { font-size: clamp(20px, 2vw, 30px); line-height: 1.15; overflow-wrap: anywhere; }
.selected-guidance { padding: 0 18px 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.selected-guidance article { border: 1px solid var(--line-soft); border-radius: var(--radius); background: var(--surface-2); padding: 12px; display: grid; gap: 6px; }
.selected-guidance span { color: var(--orange); font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.selected-guidance strong { color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.decision-card { margin: 0 18px 18px; padding: 14px; display: flex; justify-content: space-between; gap: 16px; background: var(--surface-2); border: 1px solid var(--line-soft); border-radius: var(--radius); }
.decision-card p { margin: 0; color: var(--ink-soft); max-width: 560px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 0 18px 18px; }
.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.check-list li { padding: 9px 10px; border: 1px solid var(--line-soft); border-radius: 6px; background: #fff; color: var(--ink-soft); }
.compare-box { margin: 0 18px 18px; padding: 12px; border-radius: 6px; background: #fff8ee; color: #7a4c00; border: 1px solid rgba(232,97,10,.35); display: none; }
.compare-box.show { display: block; }
.manual-guide-panel { margin: 0 18px 18px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; }
.manual-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.manual-guide { padding: 12px; display: grid; gap: 12px; }
.manual-callout { display: grid; gap: 5px; padding: 12px; border-radius: 7px; border: 1px solid rgba(114,81,181,.28); background: rgba(114,81,181,.08); color: #4f347f; }
.manual-callout strong { font: 800 13px/1.2 'Sora', sans-serif; color: #4f347f; }
.manual-callout span { color: #5f4c7d; font-size: 12px; line-height: 1.4; }
.manual-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.manual-section { min-width: 0; border: 1px solid var(--line-soft); border-radius: 7px; background: var(--surface-2); overflow: hidden; }
.manual-section-head { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: start; padding: 12px; border-bottom: 1px solid var(--line-soft); background: #fff; }
.manual-section-head > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 999px; background: var(--charcoal); color: #fff; font: 800 11px/1 'JetBrains Mono', monospace; }
.manual-section-head h5 { margin: 0; font: 800 14px/1.2 'Sora', sans-serif; color: var(--ink); }
.manual-section-head p { margin: 5px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.manual-rows { margin: 0; display: grid; }
.manual-row { display: grid; grid-template-columns: minmax(130px, .38fr) minmax(0, 1fr); gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line-soft); }
.manual-row:last-child { border-bottom: 0; }
.manual-row dt { color: var(--ink-muted); font: 700 10px/1.35 'JetBrains Mono', monospace; text-transform: uppercase; overflow-wrap: anywhere; }
.manual-row dd { margin: 0; display: grid; gap: 5px; min-width: 0; }
.manual-row dd span { color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.4; }
.manual-row dd em { color: var(--ink-soft); font-style: normal; font-size: 11px; line-height: 1.35; }
.manual-row.empty dd span { color: var(--ink-muted); }
.manual-object { display: grid; gap: 2px; padding: 7px 8px; border: 1px solid var(--line-soft); border-radius: 6px; background: #fff; }
.manual-object strong { color: var(--ink); font-size: 12px; line-height: 1.3; }
.manual-object small { color: var(--ink-muted); font: 700 10px/1.35 'JetBrains Mono', monospace; overflow-wrap: anywhere; }
.manual-lookup-required { padding: 7px 8px; border: 1px solid rgba(232,97,10,.32); border-left: 3px solid var(--orange); border-radius: 0 6px 6px 0; background: #fff8ee; color: #7a4c00; font-weight: 800; }
.override-panel { margin: 0 18px 18px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.section-head { padding: 12px; background: var(--surface-2); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.section-head h4 { margin-bottom: 0; }
.override-grid { padding: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.override-field { display: grid; gap: 7px; min-width: 0; }
.override-field span { color: var(--ink-muted); font: 700 10px/1 'JetBrains Mono', monospace; text-transform: uppercase; }
.override-field textarea { min-height: 76px; resize: vertical; }
.json-card { margin: 0 18px 18px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.json-head { padding: 10px 12px; background: var(--surface-2); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.json-head h4 { margin-bottom: 3px; }
.fine-inline { color: var(--ink-muted); font: 700 10px/1 'JetBrains Mono', monospace; text-transform: uppercase; }
pre { margin: 0; padding: 14px; max-height: 430px; overflow: auto; background: #1f2229; color: #f7f8f8; font: 12px/1.55 'JetBrains Mono', monospace; }
.fine-print { color: var(--ink-muted); margin: 12px 18px 18px; font-size: 12px; }
.warning-list, .source-list { padding: 0 18px 18px; margin: 0; }
.warning { padding: 10px 12px; border-left: 3px solid var(--orange); background: var(--surface-2); border-radius: 0 6px 6px 0; color: var(--ink-soft); margin-bottom: 10px; }
.warning.critical { border-left-color: var(--red); background: rgba(216,23,69,.06); }
.source-list { display: grid; grid-template-columns: 94px 1fr; gap: 8px 12px; }
.source-list dt { color: var(--ink-muted); font: 700 10px/1.4 'JetBrains Mono', monospace; text-transform: uppercase; }
.source-list dd { margin: 0; word-break: break-word; overflow-wrap: anywhere; }
.import-panel { margin-top: 0; }
.import-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .7fr); gap: 16px; padding: 18px; }
textarea { width: 100%; min-height: 245px; border: 1px solid var(--line); border-radius: 6px; padding: 12px; background: #fff; color: var(--ink); font: 12px/1.5 'JetBrains Mono', monospace; }
.dropzone { position: relative; margin-top: 10px; padding: 20px; text-align: center; border: 2px dashed var(--line); border-radius: var(--radius); color: var(--ink-muted); background: var(--surface-2); cursor: pointer; }
.dropzone.drag { border-color: var(--orange); background: var(--orange-soft); }
.dropzone input { display: none; }
.status-box { padding: 14px; border-radius: var(--radius); background: var(--surface-2); border: 1px solid var(--line); color: var(--ink-soft); }
.import-dashboard { margin-top: 12px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.import-dashboard article { border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: 11px; }
.import-dashboard span { display: block; color: var(--ink-muted); font: 700 9px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.import-dashboard strong { display: block; margin-top: 6px; font: 800 22px/1 'Sora', sans-serif; }
.import-filter-bar { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.finding-list { margin-top: 12px; display: grid; gap: 14px; }
.finding { padding: 12px; border: 1px solid var(--line-soft); border-left: 3px solid var(--orange); border-radius: 0 6px 6px 0; background: #fff; }
.finding strong { display: block; margin-bottom: 4px; }
.comparison-section { display: grid; gap: 8px; }
.comparison-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line-soft); padding-bottom: 6px; }
.comparison-section-head h4 { margin-bottom: 0; }
.comparison-card { border: 1px solid var(--line); border-left: 4px solid var(--orange); border-radius: 7px; background: #fff; overflow: hidden; }
.comparison-card summary { cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; }
.comparison-card summary strong { overflow-wrap: anywhere; }
.comparison-card summary em { color: var(--ink-soft); font-style: normal; font-weight: 800; font-size: 12px; }
.comparison-card.status-exact { border-left-color: var(--green); }
.comparison-card.status-different, .comparison-card.status-likely { border-left-color: var(--orange); }
.comparison-card.status-missing, .comparison-card.status-risk { border-left-color: var(--red); }
.comparison-card.status-extra { border-left-color: var(--blue); }
.comparison-body { border-top: 1px solid var(--line-soft); padding: 12px; display: grid; gap: 10px; }
.comparison-body dl { margin: 0; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 6px 10px; }
.comparison-body dt { color: var(--ink-muted); font: 700 10px/1.4 'JetBrains Mono', monospace; text-transform: uppercase; }
.comparison-body dd { margin: 0; color: var(--ink-soft); overflow-wrap: anywhere; }
.comparison-body p { margin: 0; color: var(--ink-soft); }
.diff-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.diff-list li { display: grid; gap: 4px; padding: 9px; border: 1px solid var(--line-soft); border-radius: 6px; background: var(--surface-2); }
.diff-list strong { color: var(--ink); }
.diff-list span { color: var(--ink-soft); overflow-wrap: anywhere; }
.status-chip.import-different, .status-chip.import-likely { background: rgba(232,97,10,.13); color: #794000; }
.status-chip.import-extra { background: rgba(0,120,184,.1); color: #075f87; }
.status-chip.import-risk { background: rgba(216,23,69,.10); color: #9d1730; }
.empty-state { color: var(--ink-muted); background: var(--surface-2); border: 1px dashed var(--line); border-radius: 7px; padding: 14px; text-align: center; }
.toast { position: fixed; right: 20px; bottom: 20px; transform: translateY(20px); opacity: 0; transition: .2s ease; background: var(--charcoal); color: white; border-radius: 7px; padding: 12px 14px; box-shadow: 0 16px 30px rgba(0,0,0,.22); z-index: 10; pointer-events: none; }
.toast.show { transform: translateY(0); opacity: 1; }

/* XDR Centre Prod current tools theme */
.workspace-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panel, .metrics article, .tab-button, .manual-guide-panel, .override-panel, .json-card, .advanced-filters, .advanced-threat-model, .strategy-secondary-details, .comparison-card {
  background: linear-gradient(155deg, rgba(54, 54, 64, 0.9) 0%, rgba(36, 36, 40, 0.95) 52%, rgba(20, 20, 24, 0.98) 100%);
  border-color: rgba(255, 255, 255, 0.16);
  border-radius: 0;
  box-shadow: var(--shadow-soft);
  backdrop-filter: none;
}
.panel-head, .section-head, .json-head, .manual-section-head, .advanced-filters[open] summary {
  background: rgba(255,255,255,.035);
  border-color: rgba(255,255,255,.1);
}
.metrics article, .strategy-score-grid article, .risk-strip div, .import-dashboard article, .plan-summary-grid span {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.1);
  border-radius: 0;
}
.metrics strong, .metric-value { color: var(--ink); font-family: 'Sora', sans-serif; }
.tab-button { color: var(--ink); }
.tab-button:hover, .btn:hover, .choice-card:hover, .strategy-toggle:hover, .scenario-template-card:hover, .policy-card:hover {
  border-color: var(--orange);
  background: rgba(255,106,26,.14);
}
.tab-button.active, .segmented button.active, .strategy-mode-bar button.active, .filter-chip.active {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
  box-shadow: inset 4px 0 0 rgba(14,14,16,.22), 4px 4px 0 rgba(0,0,0,.35);
}
.tab-button.active small { color: rgba(255,255,255,.78); }
.tab-button, .btn, .strategy-mode-bar, .segmented, .filter-chip, .count-pill, .status-chip, .risk-pill { border-radius: 0 !important; }
.btn {
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.055) !important;
  color: var(--ink);
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  text-transform: uppercase;
  font-family: 'Sora', sans-serif;
  font-size: 12px;
}
.btn.primary {
  background: var(--orange) !important;
  border-color: var(--orange) !important;
  border-radius: 0 !important;
  color: #fff !important;
}
.btn.primary:hover { background: #ff8a3d !important; }
.btn.secondary, .strategy-field select, .strategy-field input, textarea, .search-box input {
  background: rgba(17,17,19,.86);
  border-color: rgba(255,255,255,.14);
  color: var(--ink);
  border-radius: 0;
}
.strategy-field select option { background: #1a1a1c; color: var(--ink); }
.choice-card, .threat-card, .control-row, .strategy-toggle, .scenario-template-card, .strategy-policy-card, .scenario-setting-card, .strategy-note, .mitre-row, .strategy-build-order li, .represented-list li, .policy-answer, .check-list li, .manual-section, .manual-object, .finding, .diff-list li {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.1);
  border-radius: 0;
  color: var(--ink);
}
.choice-card.active, .threat-card.active, .policy-card.active {
  background: rgba(255,106,26,.14);
  border-color: var(--orange);
  box-shadow: inset 4px 0 0 var(--orange);
}
.threat-card.suggested, .policy-reason.primary, .strategy-note.important, .compare-box, .manual-lookup-required {
  color: #ffd9bf;
  background: rgba(255,106,26,.14);
  border-color: rgba(255,106,26,.38);
}
.technique, .filter-chip, .count-pill, .status-chip, .risk-pill, .choice-risk, .mitre-row em {
  background: rgba(255,255,255,.055);
  border-color: rgba(255,255,255,.16);
  color: var(--ink-soft);
  border-radius: 0;
}
.status-chip.include, .status-chip.import-exact, .risk-pill.medium { background: rgba(24,210,125,.14); color: var(--green); border-color: rgba(24,210,125,.34); }
.status-chip.monitor, .status-chip.import-different, .status-chip.import-likely, .risk-pill.high { background: rgba(255,106,26,.14); color: #ffb287; border-color: rgba(255,106,26,.38); }
.status-chip.exclude { background: rgba(255,255,255,.035); color: var(--ink-muted); }
.status-chip.beta { background: rgba(245,213,71,.12); color: #f5d547; border-color: rgba(245,213,71,.34); }
.risk-pill.critical, .status-chip.import-missing, .status-chip.import-risk { background: rgba(225,6,58,.16); color: #ff7e9a; border-color: rgba(225,6,58,.44); }
.manual-callout { background: rgba(245,213,71,.1); border-color: rgba(245,213,71,.3); color: #f5d547; border-radius: 0; }
.manual-callout strong { color: #f5d547; }
.manual-callout span { color: #e5d88a; }
.manual-callout.guide-only { background: rgba(255,106,26,.14); border-color: rgba(255,106,26,.42); }
.manual-callout.guide-only strong { color: #ffb287; }
.manual-callout.guide-only span { color: var(--ink-soft); }
.manual-section-head > span, .step-strip strong { background: #1a1a1c; color: var(--ink); border: 1px solid rgba(255,255,255,.16); border-radius: 0; }
.segmented, .strategy-mode-bar { background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.16); border-radius: 0; }
.segmented button, .strategy-mode-bar button { background: transparent; color: var(--ink); border-color: rgba(255,255,255,.16); }
pre { background: #111113; color: #f5f3ef; border-top: 1px solid rgba(255,255,255,.08); }
.toast { background: #1a1a1c; border: 1px solid rgba(255,255,255,.16); color: var(--ink); box-shadow: var(--shadow-soft); border-radius: 0; }
.strategy-attack-panel { margin-bottom: 16px; }
.attack-vector-band { padding: 14px; display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 12px; align-items: stretch; }
.attack-vector-summary { display: grid; align-content: center; gap: 8px; padding: 14px; border: 1px solid var(--line-soft); border-radius: var(--radius); background: rgba(77,201,246,.08); }
.attack-vector-summary { background: rgba(255,106,26,.14); border-color: rgba(255,106,26,.34); }
.attack-vector-summary strong { color: #ff8a3d; font: 800 32px/1 'JetBrains Mono', monospace; }
.attack-vector-summary p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
.attack-vector-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.attack-vector-card { display: grid; gap: 7px; padding: 11px; border: 1px solid rgba(255,255,255,.1); border-left: 4px solid var(--ink-muted); border-radius: 0; background: rgba(255,255,255,.04); min-width: 0; }
.attack-vector-card strong { color: var(--ink); line-height: 1.25; }
.attack-vector-card span, .attack-vector-card p, .attack-vector-card small { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.attack-vector-card p { margin: 0; }
.attack-vector-top, .attack-vector-meta { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.attack-vector-meta em { color: var(--ink); font: 700 10px/1 'JetBrains Mono', monospace; text-transform: uppercase; font-style: normal; }
.mitre-coverage-split { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 12px; min-width: 0; }
.mitre-coverage-split section { display: grid; align-content: start; gap: 10px; min-width: 0; }
.mitre-split-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border: 1px solid rgba(255,255,255,.12); background: rgba(17,17,19,.72); }
.mitre-split-head strong { color: var(--ink); font: 800 12px/1.2 'Sora', sans-serif; }
.mitre-split-head span { color: var(--yellow); font: 800 12px/1 'JetBrains Mono', monospace; }
.mitre-gap-list { display: grid; gap: 8px; }
.mitre-gap-card { display: grid; gap: 6px; padding: 10px; border: 1px solid rgba(245,213,71,.24); border-left: 4px solid rgba(245,213,71,.85); background: linear-gradient(135deg, rgba(245,213,71,.13), rgba(255,106,26,.07)); min-width: 0; }
.mitre-gap-card div { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.mitre-gap-card strong { color: var(--ink); font-size: 12px; line-height: 1.25; }
.mitre-gap-card span, .mitre-gap-card p { color: var(--ink-soft); font-size: 11px; line-height: 1.35; margin: 0; }
.attack-strongly-mitigated { border-left-color: var(--green); }
.attack-partially-mitigated { border-left-color: var(--orange); }
.attack-requires-another-control { border-left-color: var(--purple); }
.attack-not-addressed-by-conditional-access { border-left-color: var(--red); }
.advanced-threat-model { padding: 0; overflow: hidden; }
.advanced-threat-model > summary { cursor: pointer; display: grid; gap: 4px; padding: 14px 16px; border-bottom: 1px solid var(--line-soft); }
.advanced-threat-model > summary span { color: var(--ink); font: 800 15px/1.25 'Sora', sans-serif; }
.advanced-threat-model > summary small { color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.advanced-threat-model .step-strip, .advanced-threat-model .scope-summary, .advanced-threat-model .builder-grid { margin: 14px; }
.advanced-threat-model .builder-grid { grid-template-columns: 280px minmax(420px, 1fr) 340px; }
.strategy-secondary-stack { display: grid; gap: 10px; }
.strategy-secondary-details { overflow: hidden; }
.strategy-secondary-details > summary {
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 14px 16px;
}
.strategy-secondary-details[open] > summary {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.035);
}
.strategy-secondary-details > summary span {
  color: var(--ink);
  font: 800 15px/1.25 'Sora', sans-serif;
}
.strategy-secondary-details > summary small {
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.35;
}
.strategy-secondary-details .mitre-list + .strategy-card-list {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 0;
}

.intro-band {
  background: linear-gradient(155deg, rgba(54, 54, 64, 0.9) 0%, rgba(36, 36, 40, 0.95) 52%, rgba(20, 20, 24, 0.98) 100%);
  border-color: rgba(255, 255, 255, 0.16);
  border-radius: 0;
  box-shadow: var(--shadow-soft);
}
.intro-band p:not(.eyebrow), .summary, .choice-desc, .threat-meta, .threat-desc, .threat-controls, .control-row span:not(.control-dot), .strategy-summary p, .strategy-empty-callout span, .strategy-build-order li span, .strategy-policy-card dd, .strategy-note p, .represented-list span, .mitre-row span, .mitre-row p, .plan-summary-title span, .policy-plan-summary p, .filter-label small, .policy-reason, .policy-answer, .selected-guidance strong, .decision-card p, .manual-section-head p, .manual-row dd em, .warning, .status-box, .comparison-body dd, .comparison-body p, .diff-list span {
  color: var(--ink-soft);
}
.scope-summary, .policy-plan-summary, .strategy-build-order {
  background: rgba(255, 106, 26, 0.12);
  border-color: rgba(255, 106, 26, 0.34);
  border-left-color: var(--orange);
  border-radius: 0;
}
.strategy-applied {
  background: rgba(24, 210, 125, 0.13);
  border-color: rgba(24, 210, 125, 0.34);
  border-left-color: var(--green);
  border-radius: 0;
  color: var(--green);
}
.strategy-empty-callout, .empty-state, .dropzone, .status-box, .review-guide span {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.14);
  border-radius: 0;
}
.choice-card:hover, .threat-card:hover, .strategy-toggle:hover, .scenario-template-card:hover {
  background: rgba(255, 106, 26, 0.14);
}
.threat-card.active .threat-reason, .threat-controls, .control-row strong, .strategy-empty-callout strong, .strategy-build-order > strong, .strategy-note strong, .mitre-row strong, .plan-summary-title strong, .plan-summary-grid strong, .policy-answer strong, .selected-guidance span, .detail-panel .panel-head h3, .check-list li, .manual-row dd span, .manual-object strong, .diff-list strong {
  color: var(--ink);
}
.choice-risk.medium, .risk-pill.medium, .status-chip.generated, .status-chip.import-extra {
  background: rgba(245, 213, 71, 0.12);
  color: #f5d547;
  border-color: rgba(245, 213, 71, 0.34);
}
.choice-risk.high, .status-chip.monitor, .status-chip.import-partial, .status-chip.import-different, .status-chip.import-likely, .risk-pill.high {
  background: rgba(255, 106, 26, 0.14);
  color: #ffb287;
  border-color: rgba(255, 106, 26, 0.38);
}
.choice-risk.critical, .risk-pill.critical, .status-chip.import-missing, .status-chip.import-risk {
  background: rgba(225, 6, 58, 0.16);
  color: #ff7e9a;
  border-color: rgba(225, 6, 58, 0.44);
}
.status-chip.include, .status-chip.import-exact {
  background: rgba(24, 210, 125, 0.14);
  color: var(--green);
  border-color: rgba(24, 210, 125, 0.34);
}
.status-chip.exclude {
  background: rgba(255, 255, 255, 0.035);
  color: var(--ink-muted);
}
.status-chip.beta {
  background: rgba(245, 213, 71, 0.12);
  color: #f5d547;
  border-color: rgba(245, 213, 71, 0.34);
}
.choice-risk, .technique, .filter-chip, .count-pill, .status-chip, .risk-pill, .mitre-row em, .comparison-card, .empty-state, .manual-object, .manual-lookup-required, .dropzone, .warning, .warning.critical, .compare-box, .strategy-note, .strategy-note.important, .attack-vector-summary, .attack-vector-card {
  border-radius: 0;
}
.manual-guide-panel, .advanced-filters, .segmented, .strategy-mode-bar, .search-box input, textarea, .strategy-field select, .strategy-field input {
  background: rgba(17, 17, 19, 0.86);
}
.manual-guide-panel, .override-panel, .json-card, .advanced-filters {
  border-color: rgba(255, 255, 255, 0.16);
}
.manual-row, .comparison-body, .comparison-card summary, .source-list dt, .source-list dd {
  border-color: rgba(255, 255, 255, 0.1);
}
.manual-row dt, .source-list dt, .fine-inline, .fine-print, .strategy-score-grid span, .risk-strip span, .import-dashboard span, .filter-label, .search-box, .manual-object small, .comparison-body dt {
  color: var(--ink-muted);
}
.manual-section-head {
  background: rgba(255, 255, 255, 0.04);
}
.manual-section-head > span, .step-strip strong {
  clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px);
}
.manual-lookup-required, .compare-box {
  background: rgba(255, 106, 26, 0.14);
  border-color: rgba(255, 106, 26, 0.38);
  border-left-color: var(--orange);
  color: #ffd9bf;
}
.warning {
  background: rgba(255, 106, 26, 0.11);
  border-left-color: var(--orange);
}
.warning.critical {
  background: rgba(225, 6, 58, 0.13);
  border-left-color: var(--red);
}
.control-phish_mfa, .control-agent_risk, .control-session_controls, .control-persistent_browser, .control-admin_session, .control-selected_app_block { --control-color: var(--purple); }
.control-sign_in_risk, .control-user_risk, .control-agent_user_risk, .control-auth_flows, .control-unknown_platforms, .control-agent_identity_block, .control-agent_users_block, .control-users_agent_resources_block { --control-color: var(--red); }
.control-mfa, .control-admin_mfa, .control-guest_access, .control-service_account_protection, .control-legacy_auth, .control-trusted_location, .control-agent_compliant_network { --control-color: var(--orange); }
.control-device_compliance, .control-app_protection, .control-agent_compliant_device { --control-color: var(--green); }

.policy-card.active {
  background: linear-gradient(135deg, #fff2a6 0%, #f5d547 44%, #f0c030 100%) !important;
  border-color: #f5d547 !important;
  box-shadow: inset 4px 0 0 #0e0e10, 4px 4px 0 rgba(0, 0, 0, 0.35);
  color: #0e0e10;
}
.policy-card.active .policy-title,
.policy-card.active .policy-reason,
.policy-card.active .policy-answer,
.policy-card.active .policy-answer strong {
  color: #0e0e10;
}
.policy-card.active .policy-reason.primary,
.policy-card.active .policy-answer {
  background: rgba(14, 14, 16, 0.08);
  border-color: rgba(14, 14, 16, 0.18);
}
.policy-card.active .status-chip,
.policy-card.active .risk-pill {
  background: rgba(14, 14, 16, 0.1);
  border-color: rgba(14, 14, 16, 0.24);
  color: #0e0e10;
}
.strategy-policy-card,
.represented-list li {
  border-color: #f5d547 !important;
  box-shadow: inset 4px 0 0 #f5d547;
}
.strategy-policy-card {
  border-width: 1px;
}
.represented-list li {
  background: rgba(245, 213, 71, 0.08);
}
.represented-list strong {
  color: #f5d547;
}
.strategy-toggle:has(input:checked) {
  background: linear-gradient(135deg, #fff2a6 0%, #f5d547 44%, #f0c030 100%) !important;
  border-color: #f5d547 !important;
  box-shadow: inset 4px 0 0 #0e0e10, 4px 4px 0 rgba(0, 0, 0, 0.35);
  color: #0e0e10;
}
.strategy-toggle:has(input:checked) strong,
.strategy-toggle:has(input:checked) small {
  color: #0e0e10;
}
.strategy-toggle:has(input:checked) input {
  accent-color: #0e0e10;
}
.strategy-toggle:has(input:checked):hover {
  background: linear-gradient(135deg, #fff7c7 0%, #f8dc5c 44%, #f5d547 100%) !important;
  border-color: #fff2a6 !important;
}
.metrics article {
  position: relative;
  overflow: hidden;
  min-height: 104px;
  padding: 18px 18px 16px;
  background: linear-gradient(155deg, #363640 0%, #242428 52%, #141418 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-bottom-color: rgba(14, 14, 16, 0.7) !important;
  box-shadow:
    inset 1px 1px 0 rgba(255, 255, 255, 0.08),
    5px 5px 0 rgba(0, 0, 0, 0.5),
    16px 16px 32px rgba(0, 0, 0, 0.28) !important;
}
.metrics article::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, #ff6a1a 0%, #f5d547 62%, #fff2a6 100%);
}
.metrics article::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: 12px;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(245, 213, 71, 0.24);
  background: linear-gradient(135deg, rgba(245, 213, 71, 0.18), rgba(255, 106, 26, 0.06));
  clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);
}
.metrics span {
  position: relative;
  z-index: 1;
  color: #f5d547;
  letter-spacing: 1.2px;
}
.metrics strong {
  position: relative;
  z-index: 1;
  margin-top: 9px;
  color: #f5f3ef;
  font-size: 34px;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.28);
}
.metrics article:nth-child(2)::before {
  background: linear-gradient(90deg, #f5d547 0%, #fff2a6 100%);
}
.metrics article:nth-child(3)::before {
  background: linear-gradient(90deg, #18d27d 0%, #f5d547 100%);
}
.metrics article:nth-child(5)::before {
  background: linear-gradient(90deg, #e1063a 0%, #ff6a1a 58%, #f5d547 100%);
}

html[data-theme="light"] {
  --app-bg: #f3eee6;
  --surface-1: rgba(255, 255, 255, 0.94);
  --surface-2: rgba(255, 255, 255, 0.76);
  --surface-3: rgba(14, 14, 16, 0.06);
  --ink: #17171a;
  --ink-soft: #4e4a44;
  --ink-muted: #746d62;
  --line: rgba(38, 34, 30, 0.18);
  --line-soft: rgba(38, 34, 30, 0.1);
  --charcoal: #242428;
  --orange-soft: rgba(255, 106, 26, 0.12);
  --shadow-soft: inset 1px 1px 0 rgba(255, 255, 255, 0.75), 4px 4px 0 rgba(41, 35, 29, 0.16), 14px 14px 34px rgba(86, 62, 38, 0.12);
  color-scheme: light;
}

html[data-theme="light"] body {
  background: var(--app-bg) !important;
  color: var(--ink);
}

html[data-theme="light"] .aurora {
  background:
    linear-gradient(rgba(93, 71, 50, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(93, 71, 50, 0.09) 1px, transparent 1px),
    linear-gradient(145deg, #fff8ec 0%, #f4e4d1 42%, #ffd0a8 74%, #f49a56 100%);
  background-size: 36px 36px, 36px 36px, auto;
}

html[data-theme="light"] .dot-grid {
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.08));
}

html[data-theme="light"] .app-topbar,
html[data-theme="light"] .intro-band,
html[data-theme="light"] .panel,
html[data-theme="light"] .tab-button,
html[data-theme="light"] .manual-guide-panel,
html[data-theme="light"] .override-panel,
html[data-theme="light"] .json-card,
html[data-theme="light"] .advanced-filters,
html[data-theme="light"] .advanced-threat-model,
html[data-theme="light"] .strategy-secondary-details,
html[data-theme="light"] .comparison-card {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 248, 238, 0.94) 52%, rgba(246, 232, 215, 0.98) 100%);
  border-color: rgba(38, 34, 30, 0.16);
  box-shadow: var(--shadow-soft);
}

html[data-theme="light"] .app-topbar h1,
html[data-theme="light"] .app-topbar .eyebrow,
html[data-theme="light"] .brand-mark,
html[data-theme="light"] .intro-band h2,
html[data-theme="light"] h1,
html[data-theme="light"] h2,
html[data-theme="light"] h3,
html[data-theme="light"] h4 {
  color: var(--ink) !important;
}

html[data-theme="light"] .brand-mark,
html[data-theme="light"] .topbar-meta span,
html[data-theme="light"] .topbar-meta a,
html[data-theme="light"] .theme-toggle {
  background: rgba(255, 255, 255, 0.72);
  border-color: rgba(38, 34, 30, 0.16);
  color: var(--ink-soft);
}

html[data-theme="light"] .theme-toggle[aria-pressed="true"] {
  background: var(--orange);
  border-color: var(--orange);
  color: #0e0e10;
}

html[data-theme="light"] .intro-band p:not(.eyebrow),
html[data-theme="light"] .summary,
html[data-theme="light"] .choice-desc,
html[data-theme="light"] .threat-meta,
html[data-theme="light"] .threat-desc,
html[data-theme="light"] .threat-controls,
html[data-theme="light"] .control-row span:not(.control-dot),
html[data-theme="light"] .strategy-summary p,
html[data-theme="light"] .strategy-empty-callout span,
html[data-theme="light"] .strategy-build-order li span,
html[data-theme="light"] .strategy-policy-card dd,
html[data-theme="light"] .strategy-note p,
html[data-theme="light"] .represented-list span,
html[data-theme="light"] .mitre-row span,
html[data-theme="light"] .mitre-row p,
html[data-theme="light"] .plan-summary-title span,
html[data-theme="light"] .policy-plan-summary p,
html[data-theme="light"] .filter-label small,
html[data-theme="light"] .policy-reason,
html[data-theme="light"] .policy-answer,
html[data-theme="light"] .selected-guidance strong,
html[data-theme="light"] .decision-card p,
html[data-theme="light"] .manual-section-head p,
html[data-theme="light"] .manual-row dd em,
html[data-theme="light"] .warning,
html[data-theme="light"] .status-box,
html[data-theme="light"] .comparison-body dd,
html[data-theme="light"] .comparison-body p,
html[data-theme="light"] .diff-list span {
  color: var(--ink-soft);
}

html[data-theme="light"] .panel-head,
html[data-theme="light"] .section-head,
html[data-theme="light"] .json-head,
html[data-theme="light"] .manual-section-head,
html[data-theme="light"] .advanced-filters[open] summary {
  background: rgba(255, 255, 255, 0.58);
  border-color: rgba(38, 34, 30, 0.1);
}

html[data-theme="light"] .choice-card,
html[data-theme="light"] .threat-card,
html[data-theme="light"] .control-row,
html[data-theme="light"] .strategy-toggle,
html[data-theme="light"] .scenario-template-card,
html[data-theme="light"] .strategy-policy-card,
html[data-theme="light"] .scenario-setting-card,
html[data-theme="light"] .strategy-note,
html[data-theme="light"] .mitre-row,
html[data-theme="light"] .strategy-build-order li,
html[data-theme="light"] .represented-list li,
html[data-theme="light"] .policy-answer,
html[data-theme="light"] .check-list li,
html[data-theme="light"] .manual-section,
html[data-theme="light"] .manual-object,
html[data-theme="light"] .finding,
html[data-theme="light"] .diff-list li,
html[data-theme="light"] .metrics article,
html[data-theme="light"] .strategy-score-grid article,
html[data-theme="light"] .risk-strip div,
html[data-theme="light"] .import-dashboard article,
html[data-theme="light"] .plan-summary-grid span,
html[data-theme="light"] .strategy-empty-callout,
html[data-theme="light"] .empty-state,
html[data-theme="light"] .dropzone,
html[data-theme="light"] .status-box,
html[data-theme="light"] .review-guide span {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(38, 34, 30, 0.12);
  color: var(--ink);
}

html[data-theme="light"] .metrics article {
  background: linear-gradient(155deg, #ffffff 0%, #fff8ee 52%, #f5e7d6 100%) !important;
  border: 1px solid rgba(38, 34, 30, 0.16) !important;
  border-bottom-color: rgba(38, 34, 30, 0.28) !important;
  box-shadow:
    inset 1px 1px 0 rgba(255, 255, 255, 0.85),
    5px 5px 0 rgba(41, 35, 29, 0.18),
    16px 16px 32px rgba(86, 62, 38, 0.12) !important;
}

html[data-theme="light"] .metrics article::after {
  border-color: rgba(255, 106, 26, 0.18);
  background: linear-gradient(135deg, rgba(255, 106, 26, 0.14), rgba(245, 213, 71, 0.18));
}

html[data-theme="light"] .metrics span {
  color: #9b3d18;
}

html[data-theme="light"] .metrics strong,
html[data-theme="light"] .metric-value {
  color: var(--ink);
  text-shadow: none;
}

html[data-theme="light"] .btn,
html[data-theme="light"] .btn.secondary,
html[data-theme="light"] .segmented,
html[data-theme="light"] .strategy-mode-bar,
html[data-theme="light"] .filter-chip,
html[data-theme="light"] .count-pill,
html[data-theme="light"] .status-chip,
html[data-theme="light"] .risk-pill,
html[data-theme="light"] .choice-risk,
html[data-theme="light"] .technique,
html[data-theme="light"] .mitre-row em {
  background: rgba(255, 255, 255, 0.72) !important;
  border-color: rgba(38, 34, 30, 0.16);
  color: var(--ink-soft);
}

html[data-theme="light"] .btn.primary,
html[data-theme="light"] .tab-button.active,
html[data-theme="light"] .segmented button.active,
html[data-theme="light"] .strategy-mode-bar button.active,
html[data-theme="light"] .filter-chip.active {
  background: var(--orange) !important;
  border-color: var(--orange) !important;
  color: #fff !important;
}

html[data-theme="light"] .tab-button:hover,
html[data-theme="light"] .btn:hover,
html[data-theme="light"] .choice-card:hover,
html[data-theme="light"] .strategy-toggle:hover,
html[data-theme="light"] .scenario-template-card:hover,
html[data-theme="light"] .policy-card:hover {
  background: rgba(255, 106, 26, 0.12);
  border-color: var(--orange);
}

html[data-theme="light"] .strategy-field select,
html[data-theme="light"] .strategy-field input,
html[data-theme="light"] textarea,
html[data-theme="light"] .search-box input,
html[data-theme="light"] .manual-guide-panel,
html[data-theme="light"] .advanced-filters {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(38, 34, 30, 0.16);
  color: var(--ink);
}

html[data-theme="light"] .strategy-field select option {
  background: #ffffff;
  color: var(--ink);
}

html[data-theme="light"] pre {
  background: #fff8ee;
  color: var(--ink);
  border-top-color: rgba(38, 34, 30, 0.12);
}

html[data-theme="light"] .scope-summary,
html[data-theme="light"] .policy-plan-summary,
html[data-theme="light"] .strategy-build-order,
html[data-theme="light"] .warning {
  background: rgba(255, 106, 26, 0.1);
  border-color: rgba(255, 106, 26, 0.28);
  border-left-color: var(--orange);
  color: var(--ink-soft);
}

html[data-theme="light"] .strategy-applied,
html[data-theme="light"] .status-chip.include,
html[data-theme="light"] .status-chip.import-exact,
html[data-theme="light"] .risk-pill.medium {
  background: rgba(0, 143, 97, 0.1) !important;
  color: #006b47;
  border-color: rgba(0, 143, 97, 0.26);
}

html[data-theme="light"] .choice-risk.high,
html[data-theme="light"] .status-chip.monitor,
html[data-theme="light"] .status-chip.import-partial,
html[data-theme="light"] .status-chip.import-different,
html[data-theme="light"] .status-chip.import-likely,
html[data-theme="light"] .risk-pill.high {
  background: rgba(255, 106, 26, 0.12) !important;
  color: #8b3805;
  border-color: rgba(255, 106, 26, 0.28);
}

html[data-theme="light"] .choice-risk.critical,
html[data-theme="light"] .risk-pill.critical,
html[data-theme="light"] .status-chip.import-missing,
html[data-theme="light"] .status-chip.import-risk,
html[data-theme="light"] .warning.critical {
  background: rgba(225, 6, 58, 0.1) !important;
  color: #9d1730;
  border-color: rgba(225, 6, 58, 0.24);
}

html[data-theme="light"] .status-chip.exclude {
  background: rgba(38, 34, 30, 0.06) !important;
  color: var(--ink-muted);
}

html[data-theme="light"] .status-chip.beta,
html[data-theme="light"] .choice-risk.medium,
html[data-theme="light"] .status-chip.generated,
html[data-theme="light"] .status-chip.import-extra,
html[data-theme="light"] .manual-callout {
  background: rgba(245, 213, 71, 0.18) !important;
  color: #6f5700;
  border-color: rgba(170, 130, 0, 0.24);
}

html[data-theme="light"] .manual-callout strong,
html[data-theme="light"] .manual-callout span,
html[data-theme="light"] .represented-list strong {
  color: #6f5700;
}

html[data-theme="light"] .threat-card.suggested,
html[data-theme="light"] .policy-reason.primary,
html[data-theme="light"] .strategy-note.important,
html[data-theme="light"] .compare-box,
html[data-theme="light"] .manual-lookup-required {
  color: #7a330f;
  background: rgba(255, 106, 26, 0.11);
  border-color: rgba(255, 106, 26, 0.28);
}

html[data-theme="light"] .toast {
  background: #fff8ee;
  border-color: rgba(38, 34, 30, 0.16);
  color: var(--ink);
}

@media (max-width: 1380px) {
  .workspace-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .builder-grid { grid-template-columns: 300px minmax(0, 1fr); }
  .advanced-threat-model .builder-grid { grid-template-columns: 300px minmax(0, 1fr); }
  .strategy-panel { position: static; grid-column: 1 / -1; }
  .strategy-builder-grid { grid-template-columns: 320px minmax(0, 1fr); }
  .scenario-grid { grid-template-columns: 320px minmax(0, 1fr); }
  .strategy-plan-grid { grid-template-columns: 1fr; }
  .strategy-plan-grid.lower { grid-template-columns: 1fr; }
  .control-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; }
  .main-grid { grid-template-columns: 340px minmax(0, 1fr); }
  .side-stack { position: static; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .import-dashboard { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .workspace-tabs, .step-strip, .builder-grid, .advanced-threat-model .builder-grid, .main-grid, .detail-grid, .import-grid, .side-stack, .override-grid, .control-list, .selected-guidance, .manual-section-grid, .manual-row, .strategy-builder-grid, .scenario-grid, .scenario-support-grid, .scenario-settings-grid, .strategy-score-grid, .attack-vector-band, .mitre-coverage-split { grid-template-columns: 1fr; }
  .strategy-build-order .strategy-policy-card dl { grid-template-columns: 130px minmax(0, 1fr); }
  .scope-panel, .policy-nav, .detail-panel, .strategy-input-panel, .scenario-input-panel { position: static; }
  .policy-list, .threat-list { max-height: none; }
  .intro-band, .decision-card, .json-head, .section-head, .panel-head.compact { align-items: stretch; flex-direction: column; }
  .panel-actions { justify-content: stretch; }
  .panel-actions .btn { flex: 1 1 180px; }
  .manual-actions { justify-content: stretch; }
  .manual-actions .btn { flex: 1 1 140px; }
  .import-dashboard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .workspace { width: min(100% - 20px, 1840px); }
  .app-topbar { align-items: stretch; flex-direction: column; padding: 14px 18px; }
  .topbar-meta { justify-content: flex-start; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .import-dashboard { grid-template-columns: 1fr; }
  .comparison-card summary, .comparison-body dl { grid-template-columns: 1fr; }
  .intro-band { padding: 18px; }
  .intro-band h2 { font-size: 27px; }
  .threat-list { grid-template-columns: 1fr; }
  .plan-summary-grid { grid-template-columns: 1fr; }
  .review-guide { grid-template-columns: 1fr; }
  .strategy-policy-card dl, .strategy-build-order .strategy-policy-card dl, .mitre-row { grid-template-columns: 1fr; }
  .mitre-row em { justify-self: start; }
  .segmented.stacked { grid-template-columns: 1fr; }
  .strategy-mode-bar { grid-template-columns: 1fr; }
  .strategy-mode-bar button { border-right: 0; border-bottom: 1px solid var(--line); }
  .strategy-mode-bar button:last-child { border-bottom: 0; }
  .segmented.stacked button { border-right: 0; border-bottom: 1px solid var(--line); }
  .segmented.stacked button:last-child { border-bottom: 0; }
  .json-actions, .intro-actions, .import-actions { flex-direction: column; }
  .btn { width: 100%; }
}

/* Sign-in log analysis */
.log-severity { text-transform: uppercase; }
.log-top-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 8px; }
.log-top-lists ul, .log-samples ul, .log-warnings { margin: 4px 0 0; padding-left: 16px; }
.log-top-lists li, .log-samples li, .log-warnings li { color: var(--ink-soft); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.log-samples { margin-top: 8px; }
.log-warnings { margin-top: 8px; font-size: 12px; }
.log-policy-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.log-cta { margin-top: 10px; display: grid; gap: 8px; }
.log-cta .btn { justify-self: start; }
.log-source-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.log-source-grid:empty { display: none; }
.log-source-tile { padding: 10px; border: 1px solid var(--line); background: var(--surface-2); display: grid; gap: 4px; }
.log-source-tile.missing { opacity: .62; border-style: dashed; }
.log-source-tile span { color: var(--ink-muted); font: 700 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-source-tile strong { color: var(--ink); font: 800 20px/1.1 'Sora', sans-serif; }
.log-source-tile em { justify-self: start; font-style: normal; font-size: 9px; padding: 3px 6px; }
.log-file-list { margin: 8px 0 0; padding-left: 16px; }
.log-file-list li { color: var(--ink-soft); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.import-filter-bar .filter-chip:disabled { opacity: .4; cursor: not-allowed; }
@media (max-width: 680px) { .log-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Sign-in log remediation guidance */
.log-block { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-soft); }
.log-block h5 { margin: 0 0 8px; color: var(--ink); font: 800 11px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .04em; }
.log-block p { margin: 0; color: var(--ink-soft); line-height: 1.55; }
.log-block-fix { border-top-width: 2px; border-top-color: var(--orange); }
.log-callout { margin: 0 0 10px !important; padding: 9px 11px; border-left: 3px solid var(--orange); background: rgba(255,106,26,.08); color: var(--ink) !important; font-size: 13px; }
.log-fix-steps { margin: 0; padding-left: 20px; display: grid; gap: 9px; }
.log-fix-steps li { color: var(--ink-soft); line-height: 1.55; }
.log-fix-steps li::marker { color: var(--orange); font-weight: 800; }

/* Sign-in path: shows where the break is */
.log-flow { display: grid; gap: 6px; margin: 12px 0 8px; }
.log-flow-step { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 9px; align-items: center; padding: 8px 10px; border: 1px solid var(--line-soft); border-left: 4px solid var(--ink-muted); background: var(--surface-2); font-size: 13px; line-height: 1.4; position: relative; }
.log-flow-step + .log-flow-step::before { content: ""; position: absolute; left: 13px; top: -6px; height: 6px; width: 2px; background: var(--line); }
.log-flow-index { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 999px; background: var(--surface-3); color: var(--ink-soft); font: 800 10px/1 'JetBrains Mono', monospace; }
.log-flow-label { color: var(--ink-soft); }
.log-flow-ok { border-left-color: var(--green); }
.log-flow-ok .log-flow-index { background: rgba(24,210,125,.16); color: var(--green); }
.log-flow-gap { border-left-color: var(--red); background: rgba(225,6,58,.07); }
.log-flow-gap .log-flow-index { background: rgba(225,6,58,.18); color: #ff7e9a; }
.log-flow-gap .log-flow-label { color: var(--ink); font-weight: 700; }
.log-flow-result { border-left-color: var(--orange); }
.log-flow-result .log-flow-index { background: rgba(255,106,26,.16); color: #ffb287; }
.log-flow-key { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 !important; font-size: 11px; color: var(--ink-muted) !important; }
.log-flow-key .log-flow-swatch { width: 10px; height: 10px; display: inline-block; border-radius: 2px; margin-left: 8px; }
.log-flow-key .log-flow-swatch:first-child { margin-left: 0; }
.log-flow-swatch.log-flow-ok { background: var(--green); }
.log-flow-swatch.log-flow-gap { background: var(--red); }
.log-flow-swatch.log-flow-result { background: var(--orange); }

/* Per-policy real settings */
.log-policy-fixes { margin-top: 14px; display: grid; gap: 7px; }
.log-policy-fixes h6 { margin: 0 0 2px; color: var(--ink-muted); font: 800 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-policy-fix { border: 1px solid var(--line-soft); background: var(--surface-2); }
.log-policy-fix > summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 9px 11px; }
.log-policy-fix > summary strong { color: var(--ink); font-size: 13px; }
.log-policy-fix > summary em { color: var(--ink-muted); font-style: normal; font-size: 12px; }
/* Needs .comparison-body scoping: `.comparison-body dl` sets a 120px/1fr grid that
   otherwise crushes these rows into a single narrow column. */
.comparison-body .log-policy-settings { margin: 0; padding: 0 11px 11px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; }
.comparison-body .log-policy-settings > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; }
.log-policy-settings dt { color: var(--ink-muted); font: 700 10px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-policy-settings dd { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.log-policy-settings dd em { display: block; margin-top: 3px; color: var(--ink-muted); font-style: normal; font-size: 11px; }
@media (max-width: 680px) { .comparison-body .log-policy-settings > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }

/* Evidence table — device and location context for triage */
.log-evidence-scroll { overflow: auto; max-height: 420px; margin-top: 6px; border: 1px solid var(--line-soft); }
.log-evidence thead th { position: sticky; top: 0; background: var(--surface-2); z-index: 1; }
.log-evidence { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 620px; }
.log-evidence th { text-align: left; padding: 6px 9px; border-bottom: 1px solid var(--line); color: var(--ink-muted); font: 700 9px/1.3 'JetBrains Mono', monospace; text-transform: uppercase; white-space: nowrap; }
.log-evidence td { padding: 7px 9px; border-bottom: 1px solid var(--line-soft); color: var(--ink-soft); vertical-align: top; line-height: 1.35; overflow-wrap: anywhere; }
.log-evidence tr:last-child td { border-bottom: 0; }
.log-evidence td em { display: block; margin-top: 2px; color: var(--ink-muted); font-style: normal; font-size: 10.5px; }
.log-evidence-note { display: block; margin-top: 6px; color: var(--ink-muted); font-style: normal; font-size: 11px; }
.log-callout-info { border-left-color: var(--blue); background: rgba(255,138,61,.08); }
.log-top-lists { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 680px) { .log-top-lists { grid-template-columns: 1fr; } }

/* Per-finding diagnosis: why these specific sign-ins were uncovered */
.log-diagnosis { border-top-color: var(--red); border-top-width: 2px; }
.log-diagnosis-split { margin: 10px 0 0; padding-left: 18px; display: grid; gap: 9px; }
.log-diagnosis-split li { color: var(--ink-soft); line-height: 1.5; }
.log-diagnosis-split li strong { color: var(--ink); }
.log-diagnosis-split li em { font-style: normal; color: var(--ink); font-weight: 700; }
.log-diagnosis-lead { margin: 12px 0 5px !important; color: var(--ink-muted) !important; font: 700 10px/1.3 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-diagnosis-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 5px; }
.log-diagnosis-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: start; color: var(--ink-soft); font-size: 13px; line-height: 1.45; }
.log-diagnosis-list .count-pill { padding: 2px 8px; font-size: 10px; }

/* Per-event triage: expandable evidence rows */
.log-evidence-hint { display: block; margin: 2px 0 0; color: var(--ink-muted); font-style: normal; font-size: 11px; }
tr.log-evidence-row { cursor: pointer; }
tr.log-evidence-row:hover td, tr.log-evidence-row:focus-visible td { background: var(--surface-3); }
tr.log-evidence-row:focus-visible { outline: 2px solid var(--orange); outline-offset: -2px; }
.log-explain-cell { white-space: nowrap; color: var(--orange); font: 700 10px/1.4 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-chevron { display: inline-block; transition: transform .15s ease; }
tr.log-evidence-row[aria-expanded="true"] .log-chevron { transform: rotate(180deg); }
tr.log-event-detail > td { padding: 0 !important; background: var(--surface-2); border-left: 3px solid var(--orange); }
.log-triage { padding: 14px; display: grid; gap: 12px; }
.log-triage h6 { margin: 0 0 6px; color: var(--ink-muted); font: 800 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .04em; }
.log-triage p { margin: 0 0 7px; color: var(--ink-soft); line-height: 1.55; font-size: 13px; }
.log-triage p:last-child { margin-bottom: 0; }
.log-triage-cause { font-size: 13px; }
.log-triage-cause strong, .log-triage-headline strong { color: var(--ink); }
.log-triage-chip { font-size: 9px; padding: 3px 7px; margin-right: 6px; }
.log-triage-fix { border-top: 1px solid var(--line-soft); padding-top: 10px; }
.log-sim { border-top: 1px solid var(--line-soft); padding-top: 10px; }
.log-sim-verdict { color: var(--ink) !important; font-weight: 600; }
.log-sim-would-not-apply { color: var(--ink-muted) !important; font-weight: 400; }
.log-sim-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 520px; }
.log-sim-table th { text-align: left; padding: 5px 8px; border-bottom: 1px solid var(--line); color: var(--ink-muted); font: 700 9px/1.3 'JetBrains Mono', monospace; text-transform: uppercase; white-space: nowrap; }
.log-sim-table td { padding: 6px 8px; border-bottom: 1px solid var(--line-soft); color: var(--ink-soft); vertical-align: top; line-height: 1.4; overflow-wrap: anywhere; }
.log-sim-table tr:last-child td { border-bottom: 0; }
.log-sim-table td em { display: block; margin-top: 2px; color: var(--ink-muted); font-style: normal; font-size: 10.5px; }
td.log-sim-yes { color: var(--green); font-weight: 800; }
td.log-sim-no { color: var(--red); font-weight: 800; }
td.log-sim-unknown { color: var(--ink-muted); font-weight: 800; }

/* Per-finding action plan */
.log-action-plan ol { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: log-action; }
.log-action-plan li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.log-action-plan li strong { color: var(--ink); }
.log-action-plan li em { flex-basis: 100%; margin-left: 2px; color: var(--ink-muted); font-style: normal; font-size: 11px; }
.log-action-plan .count-pill { padding: 2px 8px; font-size: 10px; }

/* Deployed Conditional Access policy inventory */
.log-policy-panel { margin-top: 12px; }
.log-policy-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 14px; }
.log-policy-coverage { margin: 10px 14px 0; display: grid; gap: 5px; }
.log-policy-coverage p { margin: 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
.log-policy-coverage strong { color: var(--ink); }
.log-policy-missing { padding: 8px 10px; border-left: 3px solid var(--orange); background: rgba(255,106,26,.08); }
.log-policy-list { margin: 12px 14px 0; display: grid; gap: 7px; }
.log-policy-usage { border: 1px solid var(--line-soft); background: var(--surface-2); }
.log-policy-usage > summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 11px; }
.log-policy-usage > summary strong { flex: 1 1 240px; color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.log-policy-usage > summary em { color: var(--ink-muted); font-style: normal; font: 700 10px/1.3 'JetBrains Mono', monospace; white-space: nowrap; }
.log-policy-usage[open] > summary { border-bottom: 1px solid var(--line-soft); }
.log-policy-state { font-size: 9px; padding: 3px 7px; }
.log-policy-usage-body { padding: 11px; display: grid; gap: 10px; }
.log-policy-usage-body .log-policy-settings { margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; }
.log-policy-usage-body .log-policy-settings > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; }
.log-policy-evidence-head { color: var(--ink-muted); font: 800 10px/1.2 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-policy-usage-body .log-evidence { min-width: 480px; }
.log-policy-empty { margin-top: 12px; }
@media (max-width: 680px) {
  .log-policy-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .log-policy-usage-body .log-policy-settings > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
.log-policy-config { border-top: 1px solid var(--line-soft); padding-top: 10px; display: grid; gap: 7px; }
.log-recommended-panel { margin-top: 10px; }
.log-policy-recommended > summary strong { flex: 1 1 260px; }
.log-policy-purpose { margin: 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }

/* Relevance blocks: why a policy is recommended, and what its coverage number really means. */
.log-policy-driver,
.log-policy-relevance {
  border-left: 3px solid var(--orange);
  background: var(--surface-2);
  border-radius: 0 6px 6px 0;
  padding: 9px 12px;
  display: grid;
  gap: 5px;
}
.log-policy-relevance { border-left-color: var(--line); }
.log-policy-driver > strong,
.log-policy-relevance > strong {
  font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-soft);
}
.log-policy-driver ul { margin: 0; padding-left: 16px; display: grid; gap: 4px; }
.log-policy-driver li { font-size: 12.5px; line-height: 1.5; color: var(--ink); }
.log-policy-driver li .status-chip { margin-right: 6px; vertical-align: baseline; }
.log-policy-relevance p { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--ink-soft); }

/* What the analysis could and could not see — governs how much weight the findings carry. */
.log-confidence { margin-bottom: 12px; display: grid; gap: 7px; }
.log-confidence ul { margin: 0; padding-left: 17px; display: grid; gap: 4px; }
.log-confidence li { color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
.log-confidence p { margin: 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.55; }

/* Declaration step: the questions a sign-in log cannot answer. */
.log-declaration-panel { margin-top: 10px; }
/* Two columns on wide screens: six stacked questions was most of the page's scroll. */
.log-declaration-list { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.log-declaration {
  display: grid; gap: 8px; align-content: start;
  padding: 10px 12px; border: 1px solid var(--line-soft); border-radius: 7px; background: var(--surface-2);
}
.log-declaration strong { display: block; font-size: 12.5px; line-height: 1.35; color: var(--ink); }
.log-declaration p { margin: 3px 0 0; color: var(--ink-muted); font-size: 11px; line-height: 1.4; }
@media (max-width: 1100px) {
  .log-declaration-list { grid-template-columns: minmax(0, 1fr); }
}
.log-declaration-answers { display: flex; gap: 0; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.log-declaration-btn {
  border: 0; background: transparent; color: var(--ink); opacity: 0.72; cursor: pointer;
  padding: 7px 13px; font: 700 11px/1 'JetBrains Mono', monospace; text-transform: uppercase;
  letter-spacing: 0.04em; transition: background var(--transition), color var(--transition);
  white-space: nowrap;
}
.log-declaration-btn + .log-declaration-btn { border-left: 1px solid var(--line); }
.log-declaration-btn:hover { background: var(--surface-3); opacity: 1; }
.log-declaration-btn.active { background: var(--orange); color: #1a1a1c; opacity: 1; }
.log-declaration-answers { justify-self: start; }

/* Legend for the basis tags, so the chips on each policy mean something. */
.log-basis-legend { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 5px; }
.log-basis-legend li { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.log-basis-legend li > span:last-child { color: var(--ink-soft); font-size: 12px; line-height: 1.45; }

/* Collapsed file list and parse notes. */
.log-status-detail { margin-top: 6px; }
.log-status-detail > summary {
  cursor: pointer; color: var(--ink-muted); font-size: 11.5px; list-style: revert;
}
.log-status-detail > summary:hover { color: var(--ink-soft); }

/* Basis chip: why a policy is in the list at all. */
.log-basis-chip { margin-left: 2px; }
.log-policy-basis-detail {
  margin: 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.55;
}
.log-policy-basis-detail .log-basis-chip { margin-right: 7px; vertical-align: baseline; }

/* Identity-type sections in the recommended policy list. */
.log-policy-group { display: grid; gap: 8px; }
.log-policy-group + .log-policy-group { margin-top: 18px; }
.log-policy-group-head { border-bottom: 1px solid var(--line); padding-bottom: 6px; display: grid; gap: 3px; }
.log-policy-group-head h4 {
  margin: 0; display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap;
  font: 800 12px/1.3 'JetBrains Mono', monospace;
  text-transform: uppercase; letter-spacing: 0.06em;
}
/* Coloured on the span, not the h4: the light theme forces every heading to --ink with
   !important, which would otherwise flatten the section label. */
.log-policy-group-head h4 .log-policy-group-label { color: var(--orange); }
.log-policy-group-head h4 .log-policy-group-count {
  color: var(--ink-muted); font-weight: 700; font-size: 10px; letter-spacing: 0.04em;
}
.log-policy-group-head p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.45; }

/* Tenant-specific values read from the logs — the numbers the reader types into Entra. */
.log-policy-tailoring {
  border: 1px solid var(--line); border-radius: 6px; padding: 10px 12px; display: grid; gap: 7px;
}
.log-policy-tailoring > strong {
  font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--orange);
}
.log-policy-tailoring dl { margin: 0; display: grid; gap: 8px; }
.log-policy-tailoring dl > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; }
.log-policy-tailoring dt { color: var(--ink-muted); font: 700 9.5px/1.4 'JetBrains Mono', monospace; text-transform: uppercase; }
.log-policy-tailoring dd { margin: 0; color: var(--ink); font-size: 12.5px; line-height: 1.5; overflow-wrap: anywhere; }
.log-policy-tailoring dd em { display: block; margin-top: 3px; font-style: normal; color: var(--ink-muted); font-size: 11.5px; }
@media (max-width: 680px) {
  .log-policy-tailoring dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
.log-policy-check { color: var(--ink-muted); font-size: 11.5px; font-style: italic; }

/* Replacement disposition and the uncovered-baseline disclosure. */
.log-policy-disposition,
.log-policy-gaps { margin-top: 10px; display: grid; gap: 7px; }
.log-policy-disposition p,
.log-policy-gaps p { margin: 0; font-size: 12.5px; line-height: 1.55; }
.log-policy-gaps .log-evidence-scroll { max-height: 260px; }
/* Baseline display names are long enough to push the control column off-screen; fix the
   layout so both stay readable instead of relying on horizontal scroll. */
.log-policy-gaps .log-evidence { min-width: 360px; table-layout: fixed; }
.log-policy-gaps .log-evidence th:last-child,
.log-policy-gaps .log-evidence td:last-child { width: 34%; }
.log-policy-gaps .log-evidence th { white-space: normal; }
.log-policy-gaps td em { display: block; font-style: normal; color: var(--ink-muted); font-size: 11px; margin-top: 2px; }

/* Policy families the user switched off — a decision, kept visible. */
.log-policy-declined { margin-top: 10px; display: grid; gap: 6px; }
.log-policy-declined ul { margin: 0; padding-left: 17px; display: grid; gap: 5px; }
.log-policy-declined li { color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
.log-basis-legend li.empty { opacity: 0.55; }
/* After a successful analysis the dropzone stops being the focus of the page. */
.dropzone.compact { padding: 9px 12px; font-size: 11.5px; margin-top: 8px; }
