/* Architecture Review Lab — scoped for native /labs/architecture-review/ */
.sc-arc-review-lab{
  /* SecurityCipher dark brand palette — matches the other SecurityCipher
     mockups (premium-concept / homepage-revamp / roadmap-flowchart) so this
     lab reads as the same product, not a bolted-on tool. */
  /* Untitled UI–inspired neutrals + restrained accents (no loud footer bars) */
  --bg:#0c0e12; --canvas:#111318; --panel:#16181f; --panel-2:#1c1f28; --panel-3:#22252f; --dot:rgba(255,255,255,.04);
  --ink:#f4f4f5; --muted:#94969c; --muted-2:#70737c; --line:#2e3138;
  --border:rgba(255,255,255,.08); --border-hover:#6366f1;
  --ring:0 0 0 1px rgba(255,255,255,.08);
  --ring-hover:0 0 0 1px rgba(99,102,241,.55), 0 12px 28px rgba(0,0,0,.35);
  --blue:#53b1fd; --blue-light:rgba(83,177,253,.12);
  --green:#3dd68c; --green-light:rgba(61,214,140,.12);
  --purple:#7c86ff; --purple-light:rgba(124,134,255,.12);
  --cyan:#45d5c4; --cyan-light:rgba(69,213,196,.12);
  --amber:#f5a524; --amber-light:rgba(245,165,36,.12);
  --red:#f97066; --red-light:rgba(249,112,102,.12);
  --sans: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --display: "Poppins", "Nunito", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --radius:12px; --ease:cubic-bezier(.22,.61,.36,1);
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}
.sc-arc-review-lab *{ box-sizing:border-box; }
.sc-arc-review-lab h1,
.sc-arc-review-lab .pv-name,
.sc-arc-review-lab .rh-grade,
.sc-arc-review-lab .side-card h3,
.sc-arc-review-lab .results-section h4{ font-family:var(--display); }
/* ---------------------------------------------------------------- toolbar */
/* ---------------------------------------------------------------- toolbar */
.sc-arc-review-lab [hidden]{ display:none !important; }
.sc-arc-review-lab .toolbar{
  background:var(--panel);
  border-bottom:1px solid var(--border);
  position:relative;
  z-index:40;
  flex:0 0 auto;
}
.sc-arc-review-lab .toolbar-inner{
  max-width:none;
  margin:0;
  padding:10px 18px 12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.sc-arc-review-lab .tb-head{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:12px 16px;
  width:100%;
}
.sc-arc-review-lab .tb-title-row{ min-width:0; }
.sc-arc-review-lab .toolbar h1{
  font-size:18px; font-weight:800; margin:0; letter-spacing:-.25px; font-family:var(--display); line-height:1.25; color:var(--ink);
}
.sc-arc-review-lab .tb-meta-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.sc-arc-review-lab .tb-app-tag{
  font-size:11.5px;
  color:var(--muted);
  font-family:var(--sans);
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.sc-arc-review-lab .tb-briefing-btn{
  background:rgba(99,102,241,.14);
  border:1px solid rgba(99,102,241,.32);
  color:#c7d2fe;
  font-family:var(--sans);
  font-size:11px;
  font-weight:700;
  padding:3px 10px;
  border-radius:99px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:5px;
  transition:all .15s var(--ease);
}
.sc-arc-review-lab .tb-briefing-btn:hover{
  background:rgba(99,102,241,.28);
  border-color:rgba(99,102,241,.55);
  color:#fff;
  transform:translateY(-1px);
}
.chip{ font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace); font-size:10px; font-weight:700; padding:3px 9px; border-radius:99px; letter-spacing:.3px; text-transform:uppercase; display:inline-flex; align-items:center; gap:5px; }
.chip-dot{ width:5px; height:5px; border-radius:50%; background:currentColor; }
.chip.difficulty{ background:var(--amber-light); color:var(--amber); border:1px solid rgba(251,191,36,.35); }
.chip.category{ background:var(--blue-light); color:var(--blue); border:1px solid rgba(83,177,253,.35); }
.sc-arc-review-lab .toolbar .sub{ font-size:12.5px; color:var(--muted); margin:0; line-height:1.5; max-width:960px; }
.sc-arc-review-lab .toolbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}

.sc-arc-review-lab .stat-pill{
  font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace);
  font-size:11.5px; font-weight:600; color:var(--ink);
  background:var(--panel-2); border:1px solid var(--border);
  padding:6px 12px; border-radius:99px;
  display:inline-flex; align-items:center; gap:6px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.stat-pill svg{ width:14px; height:14px; stroke:var(--muted); flex:none; }
.stat-pill b{ color:var(--blue); font-weight:700; }
.stat-pill.timer b{ color:var(--cyan); min-width:40px; display:inline-block; }
.stat-pill.flags b{ color:var(--amber); }
.stat-pill .flag-max{ color:var(--muted-2); font-size:10px; margin-left:-2px; }

.sc-arc-review-lab .tb-btn{
  font-size:12px; font-weight:600; color:var(--ink);
  background:var(--panel-2); border:1px solid var(--border);
  padding:7px 13px; border-radius:8px; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;
  transition:all .15s var(--ease);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.tb-btn:hover{ border-color:var(--border-hover); color:var(--ink); background:var(--panel-3); }
.tb-btn:disabled{ opacity:.4; cursor:not-allowed; }
.sc-arc-review-lab .tb-btn.primary{
  background:linear-gradient(135deg,#6366f1 0%,#7c86ff 100%);
  color:#fff; border:none;
  box-shadow:0 6px 18px rgba(99,102,241,.32);
}
.tb-btn.primary:hover{ color:#fff; filter:brightness(1.1); transform:translateY(-1px); box-shadow:0 8px 24px rgba(99,102,241,.45); }
.tb-btn.primary:disabled{ box-shadow:none; transform:none; }
.tb-btn.ghost{ background:transparent; }
.hint-badge{
  font-family:var(--mono); font-size:9.5px; font-weight:800;
  background:var(--amber-light); color:var(--amber);
  border:1px solid rgba(251,191,36,.3);
  padding:1px 6px; border-radius:99px;
}

/* --------------------------------------------------------------- layout */
.sc-arc-review-lab .lab-shell{ display:flex; gap:0; align-items:stretch; background:var(--canvas); flex:1 1 auto; min-height:0; overflow:hidden; }

.sc-arc-review-lab .canvas-pane{
  flex:1; min-width:0; min-height:0; padding:14px 16px 16px; overflow:auto; position:relative;
  display:flex; flex-direction:column;
  -webkit-overflow-scrolling:touch;
  background:linear-gradient(180deg, #0e1017 0%, var(--canvas) 100%);
}
.sc-arc-review-lab .canvas-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap; flex:0 0 auto; }
.sc-arc-review-lab .canvas-toolbar .legend{ display:flex; gap:6px; flex-wrap:wrap; font-family:var(--sans); font-size:11px; }
.sc-arc-review-lab .legend-item{
  background:var(--panel-2); border:1px solid var(--border); border-radius:7px;
  padding:4px 10px; color:var(--muted); cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:600; font-family:var(--sans);
  transition:all .15s var(--ease);
}
.sc-arc-review-lab .legend-item:hover{ border-color:var(--border-hover); color:var(--ink); background:var(--panel-3); }
.sc-arc-review-lab .legend-item.active{
  background:rgba(99,102,241,.16); border-color:rgba(99,102,241,.55); color:var(--ink);
}
.sc-arc-review-lab .legend-dot{ width:8px; height:8px; border-radius:50%; flex:none; }

.sc-arc-review-lab .canvas-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sc-arc-review-lab .subnet-jumps{
  display:inline-flex; align-items:center; gap:2px; background:var(--panel-2);
  border:1px solid var(--border); border-radius:9px; padding:2px 4px;
}
.sc-arc-review-lab .jump-lbl{
  font-family:var(--mono); font-size:9.5px; font-weight:700; color:var(--muted-2);
  text-transform:uppercase; padding:0 4px; letter-spacing:.3px;
}
.sc-arc-review-lab .jump-btn{
  background:transparent; border:none; color:var(--muted); font-size:11px;
  font-weight:700; font-family:var(--sans); padding:3px 7px; border-radius:6px;
  cursor:pointer; transition:all .15s var(--ease);
}
.sc-arc-review-lab .jump-btn:hover{ color:var(--ink); background:rgba(255,255,255,.06); }
.sc-arc-review-lab .jump-btn.active{ color:#818cf8; background:rgba(99,102,241,.18); }



.sc-arc-review-lab .zoom-controls{ display:flex; align-items:center; gap:3px; background:var(--panel); border:1px solid var(--border); border-radius:99px; padding:3px; }
.sc-arc-review-lab .zoom-controls button{ width:26px; height:26px; border:none; background:transparent; color:var(--muted); border-radius:50%; cursor:pointer; font-size:14px; font-weight:700; display:grid; place-items:center; font-family:var(--sans); transition:all .15s var(--ease); }
.sc-arc-review-lab .zoom-controls button:hover{ background:var(--panel-2); color:var(--ink); }
.sc-arc-review-lab .zoom-controls .zoom-val{ font-family:var(--mono); font-size:10.5px; color:var(--muted); width:38px; text-align:center; }

.sc-arc-review-lab .diagram-scroll{
  flex:1; min-height:0; overflow:hidden; cursor:grab; touch-action:none;
  border-radius:14px;
  box-shadow:var(--ring), 0 12px 36px rgba(0,0,0,.3);
  background:
    radial-gradient(circle at 20% 0%, rgba(99,102,241,.12), transparent 45%),
    radial-gradient(rgba(255, 255, 255, 0.08) 1.2px, transparent 1.2px),
    linear-gradient(180deg, #12151e 0%, #0c0e14 100%);
  background-size: 100% 100%, 24px 24px, 100% 100%;
}
.sc-arc-review-lab .diagram-scroll.is-panning{ cursor:grabbing; }
.sc-arc-review-lab .diagram{
  position:relative; width:990px; height:530px; transform-origin:0 0;
  font-family:var(--sans);
}
.sc-arc-review-lab .boundary .b-label,
.sc-arc-review-lab .cloud-node{
  font-family:var(--mono);
}
.sc-arc-review-lab .canvas-pane:fullscreen{
  background:var(--canvas);
  padding:12px;
}
.sc-arc-review-lab .canvas-pane:fullscreen .diagram-scroll{
  border-radius:10px;
  height:100%;
}

/* boundary boxes — decorative architectural grouping */
.sc-arc-review-lab .boundary{
  position:absolute;
  border:1px dashed rgba(255,255,255,.14);
  border-radius:16px;
  pointer-events:none;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.sc-arc-review-lab .boundary .b-label{
  position:absolute; top:-12px; left:16px;
  background:#141722; padding:3px 10px;
  font-family:var(--mono); font-size:10px; font-weight:700;
  color:var(--muted); letter-spacing:.3px; text-transform:uppercase;
  border-radius:6px; border:1px solid rgba(255,255,255,.08);
  display:inline-flex; align-items:center; gap:5px;
}
.sc-arc-review-lab .boundary.vpc{
  border-color:rgba(124,134,255,.34);
  background:rgba(124,134,255,.025);
  box-shadow:inset 0 0 40px rgba(124,134,255,.02);
}
.sc-arc-review-lab .boundary.vpc > .b-label{
  color:var(--purple);
  border-color:rgba(124,134,255,.35);
  background:#171928;
}
.sc-arc-review-lab .boundary.subnet:nth-of-type(2){
  border-color:rgba(245,165,36,.28);
  background:rgba(245,165,36,.02);
}
.sc-arc-review-lab .boundary.subnet:nth-of-type(2) > .b-label{
  color:var(--amber);
  border-color:rgba(245,165,36,.3);
  background:#1c1913;
}
.sc-arc-review-lab .boundary.subnet:nth-of-type(3){
  border-color:rgba(83,177,253,.28);
  background:rgba(83,177,253,.02);
}
.sc-arc-review-lab .boundary.subnet:nth-of-type(3) > .b-label{
  color:var(--blue);
  border-color:rgba(83,177,253,.3);
  background:#111926;
}
.sc-arc-review-lab .boundary.subnet:nth-of-type(4){
  border-color:rgba(69,213,196,.28);
  background:rgba(69,213,196,.02);
}
.sc-arc-review-lab .boundary.subnet:nth-of-type(4) > .b-label{
  color:var(--cyan);
  border-color:rgba(69,213,196,.3);
  background:#0f1b1b;
}
.sc-arc-review-lab .boundary.shared-zone{
  border-color:rgba(61,214,140,.28);
  background:rgba(61,214,140,.02);
}
.sc-arc-review-lab .boundary.shared-zone > .b-label{
  color:var(--green);
  border-color:rgba(61,214,140,.3);
  background:#0e1c15;
}

.sc-arc-review-lab .cloud-node{
  position:absolute; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  color:var(--ink); font-family:var(--sans); font-size:11px; font-weight:700;
}
.sc-arc-review-lab .cloud-icon-wrap{
  width:42px; height:42px; border-radius:12px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  display:grid; place-items:center;
  box-shadow:0 8px 16px rgba(0,0,0,.35);
}
.sc-arc-review-lab .cloud-icon-wrap svg{ width:22px; height:22px; stroke:var(--blue); }
.sc-arc-review-lab .cloud-label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.02em; color:var(--muted); }

/* Modern Cyber Traffic Flow Lines */
svg.connectors{
  position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; z-index:4;
}
svg.connectors .flow-track{
  fill:none; stroke:rgba(255,255,255,.08); stroke-width:3; stroke-linecap:round; stroke-linejoin:round;
}
svg.connectors .flow-line{
  fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:7 6;
  animation:flowPulse 1.4s linear infinite;
}
@keyframes flowPulse{
  from{ stroke-dashoffset:26; }
  to{ stroke-dashoffset:0; }
}
svg.connectors .flow-cyan{
  stroke:#38bdf8;
  filter:drop-shadow(0 0 5px rgba(56,189,248,.65));
}
svg.connectors .flow-amber{
  stroke:#f59e0b;
  filter:drop-shadow(0 0 5px rgba(245,158,11,.6));
}
svg.connectors .flow-emerald{
  stroke:#34d399;
  filter:drop-shadow(0 0 5px rgba(52,211,153,.6));
}
svg.connectors .flow-violet{
  stroke:#c084fc;
  filter:drop-shadow(0 0 5px rgba(192,132,252,.6));
}

/* -------------------------------------------------------------- arch node (card) */
.sc-arc-review-lab .arch-node{
  position:absolute;
  border-radius:12px;
  background:linear-gradient(180deg, #1b1e29 0%, #141620 100%);
  box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 8px 20px rgba(0,0,0,.35);
  border:none;
  padding:0;
  cursor:pointer;
  transition:box-shadow .2s var(--ease), transform .2s var(--ease), opacity .2s var(--ease), filter .2s var(--ease);
  display:flex;
  align-items:stretch;
  z-index:5;
  user-select:none;
  min-height:72px;
  font-family:var(--sans);
  overflow:hidden;
}
.sc-arc-review-lab .arch-node::before,
.sc-arc-review-lab .arch-node::after{ content:none !important; display:none !important; }
.sc-arc-review-lab .arch-node .an-accent{
  width:4px;
  flex:none;
  background:var(--muted-2);
  border-radius:12px 0 0 12px;
}
.sc-arc-review-lab .arch-node .an-content{
  flex:1; min-width:0; padding:8px 10px 8px 9px; display:flex; flex-direction:column; justify-content:center;
}
.sc-arc-review-lab .arch-node .an-row{ display:flex; align-items:flex-start; gap:9px; width:100%; }
.sc-arc-review-lab .arch-node .an-ic{
  width:32px; height:32px; border-radius:9px; display:grid; place-items:center; flex:none;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
}
.sc-arc-review-lab .arch-node .an-ic svg{ width:17px; height:17px; }
.sc-arc-review-lab .arch-node .an-text{ min-width:0; flex:1; padding-right:0; }
.sc-arc-review-lab .arch-node.flagged .an-text{ padding-right:26px; }
.sc-arc-review-lab .arch-node .an-name{
  font-family:var(--sans); font-size:12px; font-weight:700; line-height:1.25; color:var(--ink);
  letter-spacing:-.1px; word-break:normal; overflow-wrap:break-word;
}
.sc-arc-review-lab .arch-node .an-meta{
  font-family:var(--mono); font-size:9.5px; color:var(--muted); margin-top:3px;
  letter-spacing:.02em; line-height:1.3;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sc-arc-review-lab .arch-node .an-flag-badge{
  display:none;
  position:absolute;
  top:6px; right:6px;
  background:rgba(239,68,68,.24);
  border:1px solid rgba(248,113,113,.55);
  color:#fca5a5;
  font-family:var(--mono);
  font-size:9.5px;
  font-weight:700;
  padding:2px 5px;
  border-radius:99px;
  letter-spacing:.2px;
  align-items:center;
  gap:2px;
  animation:popIn .2s var(--ease);
  box-shadow:0 2px 8px rgba(239,68,68,.25);
  z-index:10;
  pointer-events:none;
  line-height:1.2;
}
.sc-arc-review-lab .arch-node.flagged .an-flag-badge{
  display:inline-flex;
}

.sc-arc-review-lab .arch-node[data-cat="compute"] .an-accent{ background:var(--blue); }
.sc-arc-review-lab .arch-node[data-cat="compute"] .an-ic{ color:var(--blue); background:var(--blue-light); border-color:rgba(83,177,253,.25); }
.sc-arc-review-lab .arch-node[data-cat="network"] .an-accent{ background:var(--purple); }
.sc-arc-review-lab .arch-node[data-cat="network"] .an-ic{ color:var(--purple); background:var(--purple-light); border-color:rgba(124,134,255,.25); }
.sc-arc-review-lab .arch-node[data-cat="database"] .an-accent{ background:var(--cyan); }
.sc-arc-review-lab .arch-node[data-cat="database"] .an-ic{ color:var(--cyan); background:var(--cyan-light); border-color:rgba(69,213,196,.25); }
.sc-arc-review-lab .arch-node[data-cat="storage"] .an-accent{ background:var(--cyan); }
.sc-arc-review-lab .arch-node[data-cat="storage"] .an-ic{ color:var(--cyan); background:var(--cyan-light); border-color:rgba(69,213,196,.25); }
.sc-arc-review-lab .arch-node[data-cat="security"] .an-accent{ background:var(--green); }
.sc-arc-review-lab .arch-node[data-cat="security"] .an-ic{ color:var(--green); background:var(--green-light); border-color:rgba(61,214,140,.25); }
.sc-arc-review-lab .arch-node[data-cat="monitoring"] .an-accent{ background:var(--muted-2); }
.sc-arc-review-lab .arch-node[data-cat="monitoring"] .an-ic{ color:var(--muted); background:rgba(255,255,255,.05); }

.sc-arc-review-lab .arch-node:hover{ box-shadow:0 0 0 1px var(--border-hover), 0 14px 32px rgba(0,0,0,.45); transform:translateY(-2px); z-index:20; }
.sc-arc-review-lab .arch-node.active{ box-shadow:0 0 0 2px #6366f1, 0 0 24px rgba(99,102,241,.35), 0 12px 28px rgba(0,0,0,.45); transform:translateY(-1px); z-index:25; }
.sc-arc-review-lab .arch-node.dimmed{ opacity:0.25; filter:grayscale(60%); }

.sc-arc-review-lab .arch-node.flagged{
  box-shadow:0 0 0 1.5px rgba(249,112,102,.6), 0 8px 24px rgba(249,112,102,.15);
}
.sc-arc-review-lab .arch-node.flagged::after{
  content:"" !important;
  display:block !important;
  position:absolute;
  top:8px; right:8px;
  width:8px; height:8px;
  border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 3px rgba(249,112,102,.25);
}
@keyframes flagPop{ from{ transform:scale(0); } to{ transform:scale(1); } }
.sc-arc-review-lab .arch-node.flagged::after{ animation:flagPop .28s var(--ease); }

.sc-arc-review-lab .diagram.locked .arch-node{ cursor:default; }
.sc-arc-review-lab .diagram.locked .arch-node:hover{ transform:none; box-shadow:var(--ring); }
.sc-arc-review-lab .diagram.locked .arch-node.correct{ box-shadow:0 0 0 1px rgba(61,214,140,.55); }
.sc-arc-review-lab .diagram.locked .arch-node.correct::after{
  content:"✓" !important; display:grid !important; place-items:center;
  top:7px; right:7px; width:18px; height:18px; font-size:10px; font-weight:800; color:#052e1c;
  background:var(--green); border-radius:50%; box-shadow:none;
}
.sc-arc-review-lab .diagram.locked .arch-node.missed{ box-shadow:0 0 0 1px rgba(245,165,36,.55); animation:missedPulse 1.8s ease-in-out infinite; }
.sc-arc-review-lab .diagram.locked .arch-node.missed::after{
  content:"?" !important; display:grid !important; place-items:center;
  top:7px; right:7px; width:18px; height:18px; font-size:11px; font-weight:800;
  background:var(--amber); color:#3b2506; border-radius:50%;
}
.sc-arc-review-lab .diagram.locked .arch-node.false-pos::after{
  content:"×" !important; display:grid !important; place-items:center;
  top:7px; right:7px; width:18px; height:18px; font-size:12px;
  background:var(--muted-2); color:var(--ink); border-radius:50%;
}
@keyframes missedPulse{ 0%,100%{ box-shadow:0 0 0 1px rgba(245,165,36,.45); } 50%{ box-shadow:0 0 0 3px rgba(245,165,36,.15); } }

/* Portal nodes (popover / results) mount on body — carry their own design tokens */
.sc-arc-lab-popover,
.sc-arc-lab-overlay{
  --bg:#0a0a0f; --canvas:#0e0f15; --panel:#14151d; --panel-2:#1b1e28; --panel-3:#20222e;
  --ink:#eef0fa; --muted:#9098ab; --muted-2:#6b7280; --line:#33364a;
  --border:#262838; --border-hover:#6d7bff;
  --blue:#6d7bff; --blue-light:rgba(109,123,255,.14);
  --green:#4ade80; --green-light:rgba(74,222,128,.14);
  --purple:#a855f7; --amber:#fbbf24; --amber-light:rgba(251,191,36,.14);
  --red:#f87171; --red-light:rgba(248,113,113,.14);
  --sans:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --display:"Poppins", "Nunito", sans-serif;
  --mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ------------------------------------------------------------------ popover */
.sc-arc-lab-popover,
.sc-arc-review-lab .sc-arc-lab-popover{
  position:fixed;
  z-index:100050;
  width:334px;
  max-width:min(334px, calc(100vw - 24px));
  box-sizing:border-box;
  background:#13141f;
  border:1px solid rgba(109,123,255,.45);
  font-family:var(--sans);
  color:var(--ink);
  border-radius:14px;
  padding:15px 16px 16px;
  box-shadow:0 24px 56px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.08);
  display:none;
  animation:popIn .16s var(--ease);
}
.sc-arc-lab-popover.show{ display:block; }
@keyframes popIn{ from{ opacity:0; transform:translateY(4px) scale(.98); } to{ opacity:1; transform:none; } }
.sc-arc-lab-popover .pv-type{
  display:inline-flex;
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  color:#93c5fd;
  background:rgba(59,130,246,.15);
  border:1px solid rgba(59,130,246,.32);
  text-transform:uppercase;
  letter-spacing:.4px;
  padding:2px 8px;
  border-radius:99px;
  margin:0 0 6px;
}
.sc-arc-lab-popover .pv-name{
  font-family:var(--display);
  font-size:15px;
  font-weight:800;
  margin:0 0 4px;
  color:var(--ink);
  line-height:1.3;
  padding-right:26px;
}
.sc-arc-lab-popover .pv-desc{
  font-size:12px;
  color:var(--muted);
  line-height:1.55;
  margin:4px 0 12px;
}
.sc-arc-review-lab .arc-config-head,
.sc-arc-lab-popover .pv-config-head,
.sc-arc-lab-popover .arc-config-head{
  font-size:10.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.4px;
  color:#e2e8f0;
  margin:0 0 8px;
  font-family:var(--mono);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:6px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.sc-arc-lab-popover .arc-config-head::after{
  content:"Flag flaws";
  font-size:9px;
  font-weight:700;
  color:#f87171;
  text-transform:none;
  letter-spacing:0;
  background:rgba(239,68,68,.12);
  padding:2px 6px;
  border-radius:4px;
  border:1px solid rgba(239,68,68,.25);
}
.sc-arc-review-lab .arc-config-list,
.sc-arc-lab-popover .arc-config-list,
.sc-arc-lab-popover .pv-config-list{
  display:flex;
  flex-direction:column;
  gap:7px;
  max-height:min(44vh, 300px);
  overflow-y:auto;
  margin:0;
  padding-right:3px;
}
.sc-arc-review-lab .arc-config-row,
.sc-arc-lab-popover .arc-config-row,
.sc-arc-lab-popover .pv-config-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid var(--border);
  background:var(--panel-3);
  cursor:pointer;
  font-family:var(--sans);
  transition:all .15s ease;
}
.sc-arc-review-lab .arc-config-row:hover,
.sc-arc-lab-popover .arc-config-row:hover{ border-color:var(--border-hover); background:rgba(109,123,255,.06); }
.sc-arc-review-lab .arc-config-row.has-flag,
.sc-arc-lab-popover .arc-config-row.has-flag{ border-color:rgba(239,68,68,.4); background:rgba(239,68,68,.08); }
.sc-arc-review-lab .arc-config-row input,
.sc-arc-lab-popover .arc-config-row input{
  margin-top:3px;
  accent-color:var(--red);
  width:15px;
  height:15px;
  flex:none;
}
.sc-arc-review-lab .arc-config-main,
.sc-arc-lab-popover .arc-config-main{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.sc-arc-review-lab .arc-config-label,
.sc-arc-lab-popover .arc-config-label{
  font-size:12px;
  font-weight:600;
  color:var(--ink);
  line-height:1.35;
}
.sc-arc-review-lab .arc-config-val,
.sc-arc-lab-popover .arc-config-val{
  font-size:10px;
  font-family:var(--mono);
  color:var(--muted);
  line-height:1.4;
}
.sc-arc-lab-popover button.pv-close{
  appearance:none;
  -webkit-appearance:none;
  position:absolute;
  top:12px;
  right:12px;
  width:24px;
  height:24px;
  padding:0;
  margin:0;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:var(--muted);
  cursor:pointer;
  font-size:12px;
  line-height:1;
  display:grid;
  place-items:center;
  transition:all .15s ease;
}
.sc-arc-lab-popover button.pv-close:hover{ color:var(--ink); background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.3); }

/* -------------------------------------------------------------- side pane */
.sc-arc-review-lab .side-pane{
  width:min(380px, 34vw); flex:none; border-left:1px solid var(--border); background:var(--panel);
  min-height:0; max-height:100%; padding:14px 14px 16px; display:flex; flex-direction:column; gap:12px;
  overflow-y:auto; -webkit-overflow-scrolling:touch; font-family:var(--sans);
}
.sc-arc-review-lab .side-card{
  background:var(--panel-2);
  border:none;
  border-radius:12px;
  padding:14px 14px 13px;
  flex:none;
  box-shadow:var(--ring);
}
.sc-arc-review-lab .side-card.sc-arc-inspector{
  box-shadow:0 0 0 1px rgba(99,102,241,.22);
  flex:none !important; min-height:auto !important; display:flex !important; flex-direction:column !important;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.sc-arc-review-lab .side-card.sc-arc-inspector.is-active{
  box-shadow:0 0 0 1.5px rgba(99,102,241,.5), 0 8px 24px rgba(99,102,241,.12);
}
.sc-arc-review-lab .sc-arc-inspector-head{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px;
}
.sc-arc-review-lab .sc-arc-inspector-head h3{ margin:0; flex:1; min-width:0; }
.sc-arc-review-lab .sc-arc-reopen-btn{
  font-size:11px; padding:4px 9px; white-space:nowrap; flex:none;
}
.sc-arc-review-lab .sc-arc-close-insp-btn{
  appearance:none; -webkit-appearance:none; border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.05); color:var(--muted); border-radius:6px;
  width:24px; height:24px; display:grid; place-items:center; cursor:pointer;
  font-size:12px; line-height:1; transition:all .15s var(--ease); flex:none;
}
.sc-arc-review-lab .sc-arc-close-insp-btn:hover{
  background:rgba(255,255,255,.12); color:var(--ink); border-color:rgba(255,255,255,.25);
}

/* Inspector Empty State */
.sc-arc-review-lab .sc-arc-inspector-empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  padding:22px 14px; border:1.5px dashed rgba(255,255,255,.08); border-radius:10px;
  background:rgba(0,0,0,.15); min-height:150px;
}
.sc-arc-review-lab .sc-arc-empty-icon{
  font-size:28px; line-height:1; margin-bottom:10px; opacity:0.85; filter:drop-shadow(0 4px 8px rgba(0,0,0,.4));
}
.sc-arc-review-lab .sc-arc-empty-title{
  font-family:var(--display); font-size:13px; font-weight:700; color:var(--ink); margin-bottom:6px;
}
.sc-arc-review-lab .sc-arc-empty-badge{
  font-family:var(--mono); font-size:10.5px; color:#c084fc;
  background:rgba(192,132,252,.1); border:1px solid rgba(192,132,252,.25);
  border-radius:99px; padding:4px 12px; margin-top:12px;
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  white-space:normal; line-height:1.4; text-align:center;
}
.sc-arc-review-lab .sc-arc-empty-badge b{ color:#e9d5ff; font-weight:800; }

.sc-arc-review-lab [hidden]{ display:none !important; }
.sc-arc-review-lab .sc-arc-inspector-body:not([hidden]){ display:flex !important; flex-direction:column !important; min-height:0 !important; flex:none !important; }
.sc-arc-review-lab .insp-type-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
.sc-arc-review-lab .insp-type{
  font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--blue); font-weight:700;
}
.sc-arc-review-lab .insp-name{
  font-family:var(--display); font-size:15px; font-weight:800; line-height:1.3; color:var(--ink); margin:0 0 6px;
}
.sc-arc-review-lab .insp-desc{ margin:0 0 10px; }
.sc-arc-review-lab .arc-config-hint{
  font-size:9.5px; font-weight:600; color:var(--muted-2); text-transform:none; letter-spacing:0; margin-left:auto;
}
.sc-arc-review-lab #inspectorConfigList{
  max-height:none !important; overflow:visible !important; display:flex !important; flex-direction:column !important; gap:8px !important;
}

.sc-arc-review-lab .sc-arc-side-text{
  font-size:12px; line-height:1.55; color:var(--muted); margin:0 0 8px; font-family:var(--sans);
}
.sc-arc-review-lab .sc-arc-side-text strong{ color:var(--ink); font-weight:700; }
.sc-arc-review-lab .side-card h3{
  font-family:var(--display); font-size:11px; font-weight:700; margin:0 0 8px;
  text-transform:uppercase; letter-spacing:.35px; color:var(--muted);
  display:flex; align-items:center; gap:7px;
}
.sc-arc-review-lab .side-card h3 svg{ width:13px; height:13px; stroke:var(--blue); flex:none; }

/* Objectives numbered badges */
.sc-arc-review-lab .obj-list{ margin:8px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.sc-arc-review-lab .obj-list li{ display:flex; align-items:flex-start; gap:9px; }
.sc-arc-review-lab .obj-step{
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%;
  background:rgba(99,102,241,.18); color:#a5b4fc;
  border:1px solid rgba(99,102,241,.32);
  font-size:10px; font-family:var(--mono); font-weight:800; flex:none; margin-top:1px;
}
.sc-arc-review-lab .obj-text{
  flex:1; min-width:0; font-size:12px; line-height:1.45; color:var(--ink); font-family:var(--sans);
}

/* Findings Meter & List */
.sc-arc-review-lab .findings-head-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.sc-arc-review-lab .findings-head-row h3{ margin:0; }
.sc-arc-review-lab .findings-stat{
  font-family:var(--mono); font-size:11px; font-weight:700; color:var(--muted);
  background:rgba(255,255,255,.05); border:1px solid var(--border); border-radius:99px;
  padding:2px 8px; display:inline-flex; align-items:center; gap:3px;
}
.sc-arc-review-lab .findings-stat b{ color:#f87171; font-weight:800; }
.sc-arc-review-lab .findings-meter-track{
  width:100%; height:5px; border-radius:99px; background:rgba(255,255,255,.06);
  overflow:hidden; margin-bottom:10px;
}
.sc-arc-review-lab .findings-meter-fill{
  height:100%; border-radius:99px;
  background:linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f43f5e 100%);
  transition:width .3s cubic-bezier(.22,.61,.36,1);
}
.sc-arc-review-lab .findings-sev-summary{
  display:flex; gap:6px; margin:8px 0 10px; flex-wrap:wrap;
}
.sc-arc-review-lab .f-sev-badge{
  font-family:var(--mono); font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:6px;
}
.sc-arc-review-lab .f-sev-badge.sev-crit{
  background:rgba(244,63,94,.14); color:#fca5a5; border:1px solid rgba(244,63,94,.3);
}
.sc-arc-review-lab .f-sev-badge.sev-high{
  background:rgba(245,158,11,.14); color:#fde68a; border:1px solid rgba(245,158,11,.3);
}
.sc-arc-review-lab .f-sev-badge.sev-med{
  background:rgba(59,130,246,.14); color:#bfdbfe; border:1px solid rgba(59,130,246,.3);
}
.sc-arc-review-lab .sec-tags-row{
  display:inline-flex; align-items:center; gap:4px; margin-top:2px; flex-wrap:wrap;
}
.sc-arc-review-lab .sec-tag{
  font-family:var(--mono); font-size:8.5px; font-weight:700; padding:1px 5px;
  border-radius:4px; letter-spacing:.2px; text-transform:uppercase;
}
.sc-arc-review-lab .sec-tag.cis{
  background:rgba(99,102,241,.16); color:#c7d2fe; border:1px solid rgba(99,102,241,.32);
}
.sc-arc-review-lab .sec-tag.mitre{
  background:rgba(236,72,153,.14); color:#fbcfe8; border:1px solid rgba(236,72,153,.3);
}

.sc-arc-review-lab .sc-arc-findings-card .findings-list{ flex:1; min-height:80px; }
.sc-arc-review-lab .findings-list{ display:flex; flex-direction:column; gap:8px; margin-top:8px; max-height:220px; overflow:auto; }
.sc-arc-review-lab .finding-row{
  display:flex; align-items:center; gap:10px; background:var(--panel-3); border:1px solid rgba(248,113,113,.25);
  border-radius:99px; padding:8px 12px; animation:popIn .16s var(--ease); cursor:pointer;
  transition:all .15s var(--ease);
}
.sc-arc-review-lab .finding-row:hover{ border-color:rgba(248,113,113,.55); background:#25232d; }
.finding-row .fr-ic{ width:22px; height:22px; border-radius:50%; flex:none; display:grid; place-items:center; background:var(--red-light); color:var(--red); font-size:11px; }
.finding-row .fr-name{ font-size:12px; font-weight:700; flex:1; line-height:1.3; }
.finding-row .fr-remove{ width:20px; height:20px; border-radius:50%; border:none; background:transparent; color:var(--muted); cursor:pointer; font-size:14px; line-height:1; flex:none; }
.finding-row .fr-remove:hover{ color:var(--red); background:var(--red-light); }
.findings-empty{
  font-size:12px; color:var(--muted-2); text-align:center; padding:18px 12px;
  border:1.5px dashed var(--border); border-radius:10px; margin-top:10px; line-height:1.45;
  background:rgba(255,255,255,.015);
}
.findings-empty-ic{ font-size:22px; margin-bottom:5px; opacity:.85; }
.findings-empty-title{ font-size:12.5px; font-weight:700; color:var(--ink); margin-bottom:3px; }
.findings-empty-sub{ font-size:11px; color:var(--muted); line-height:1.4; }

.sc-arc-review-lab .findings-submit-btn{
  width:100%; margin-top:12px; justify-content:center; font-weight:800; font-size:12.5px; padding:10px 14px;
}
.sc-arc-review-lab .sc-arc-quick-bullets{
  list-style:none; padding:0; margin:8px 0 12px; display:flex; flex-direction:column; gap:7px;
}
.sc-arc-review-lab .sc-arc-quick-bullets li{
  font-size:11.5px; line-height:1.45; color:var(--muted); position:relative; padding-left:14px;
}
.sc-arc-review-lab .sc-arc-quick-bullets li::before{
  content:"•"; position:absolute; left:2px; color:var(--blue); font-weight:bold;
}
.sc-arc-review-lab .sc-arc-quick-bullets li strong{ color:var(--ink); }
.sc-arc-review-lab .sc-arc-side-actions{ display:flex; gap:8px; }
.sc-arc-review-lab .sc-arc-side-actions .full-w{ width:100%; justify-content:center; font-size:11.5px; padding:7px 12px; }

.hint-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hint-log{ display:flex; flex-direction:column; gap:6px; margin-top:10px; }
.hint-entry{ font-size:11.5px; color:var(--amber); background:var(--amber-light); border:1px solid rgba(251,191,36,.3); border-radius:8px; padding:8px 10px; line-height:1.5; }

/* -------------------------------------------------------- briefing modal */
.briefing-panel{
  width:100%; max-width:820px; background:var(--panel); border:1px solid var(--border);
  border-radius:18px; padding:28px 32px 24px; animation:popIn .22s var(--ease);
  box-shadow:0 24px 60px rgba(0,0,0,.65); max-height:86vh; overflow-y:auto; color:var(--ink);
  font-family:var(--sans); -webkit-overflow-scrolling:touch;
}
.briefing-header{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--border);
}
.bh-title-group .bh-tag{
  font-family:var(--mono); font-size:10px; font-weight:700; color:#818cf8;
  text-transform:uppercase; letter-spacing:.4px;
}
.briefing-header h2{
  font-family:var(--display); font-size:20px; font-weight:800; margin:4px 0 0; color:var(--ink);
}
.briefing-close-btn{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--border);
  background:var(--panel-2); color:var(--muted); cursor:pointer; display:grid;
  place-items:center; font-size:13px; transition:all .15s;
}
.briefing-close-btn:hover{ color:var(--ink); background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); }
.briefing-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.briefing-section{ margin-bottom:18px; }
.briefing-section h3{
  font-family:var(--display); font-size:11.5px; font-weight:800; text-transform:uppercase;
  letter-spacing:.4px; color:var(--muted); margin:0 0 8px; display:flex; align-items:center; gap:7px;
}
.briefing-section h3 svg{ width:14px; height:14px; stroke:var(--blue); flex:none; }
.briefing-section p{ font-size:12.5px; line-height:1.6; color:var(--muted); margin:0 0 10px; }
.briefing-callout{ padding:10px 12px; border-radius:8px; font-size:11.5px; line-height:1.5; margin-top:8px; }
.briefing-callout.info{ background:rgba(99,102,241,.1); border:1px solid rgba(99,102,241,.25); color:#c7d2fe; }
.briefing-callout b{ color:#fff; }
.briefing-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.briefing-list li{ font-size:11.5px; line-height:1.5; color:var(--muted); padding-left:14px; position:relative; }
.briefing-list li::before{ content:"•"; position:absolute; left:0; color:var(--blue); font-weight:bold; }
.briefing-list li strong{ color:var(--ink); }
.obj-steps-wrap{ display:flex; flex-direction:column; gap:8px; }
.obj-step-item{ display:flex; align-items:flex-start; gap:10px; background:var(--panel-2); border:1px solid var(--border); border-radius:8px; padding:9px 11px; }
.osi-num{ width:18px; height:18px; border-radius:50%; background:rgba(99,102,241,.2); color:#a5b4fc; font-size:10px; font-family:var(--mono); font-weight:800; display:grid; place-items:center; flex:none; margin-top:1px; }
.osi-text{ font-size:11.5px; line-height:1.45; color:var(--muted); }
.osi-text strong{ color:var(--ink); }
.briefing-footer{ display:flex; justify-content:flex-end; margin-top:16px; padding-top:14px; border-top:1px solid var(--border); }
.start-briefing-btn{ padding:9px 24px; font-size:13px; font-weight:700; }

@media (max-width:768px){
  .briefing-grid{ grid-template-columns:1fr; gap:16px; }
  .briefing-panel{ padding:20px 18px; }
}

/* --------------------------------------------------------------- results */
.sc-arc-lab-overlay,
.sc-arc-review-lab .overlay{
  position:fixed; inset:0; background:rgba(6,6,10,.82); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  z-index:100040; display:none !important; align-items:flex-start; justify-content:center;
  overflow-x:hidden; overflow-y:auto; padding:max(24px, env(safe-area-inset-top)) 20px 40px;
  -webkit-overflow-scrolling:touch;
  font-family:var(--sans);
  color:var(--ink);
}
.sc-arc-lab-overlay.show,
.sc-arc-review-lab .overlay.show{ display:flex !important; }
.sc-arc-lab-overlay .results,
.sc-arc-review-lab .overlay .results{ position:relative; z-index:1; margin:auto 0; max-width:760px; width:100%; }
.results{ width:100%; max-width:760px; background:var(--panel); border:1px solid var(--border); border-radius:18px; padding:34px 36px 30px; animation:popIn .22s var(--ease); }
.results-head{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.score-ring{ position:relative; width:118px; height:118px; flex:none; border-radius:50%; display:grid; place-items:center; }
.score-ring svg{ position:absolute; inset:0; transform:rotate(-90deg); }
.score-ring .sr-track{ stroke:var(--border); }
.score-ring .sr-fill{ stroke-linecap:round; transition:stroke-dashoffset 1s var(--ease); }
.score-ring .sr-num{ font-size:26px; font-weight:800; font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace); position:relative; z-index:2; }
.score-ring .sr-num span{ font-size:12px; color:var(--muted); display:block; font-weight:600; margin-top:-2px; }
.results-head .rh-text{ flex:1; min-width:200px; }
.results-head .rh-grade{ font-size:20px; font-weight:800; margin:0 0 4px; }
.results-head .rh-sub{ font-size:12.5px; color:var(--muted); line-height:1.55; margin:0; }
.results-stats{ display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.rstat{ flex:1; min-width:110px; background:var(--panel-2); border:1px solid var(--border); border-radius:10px; padding:10px 12px; text-align:center; }
.rstat b{ display:block; font-size:18px; font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace); }
.rstat span{ font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; }
.rstat.good b{ color:var(--green); } .rstat.bad b{ color:var(--red); } .rstat.warn b{ color:var(--amber); } .rstat.neutral b{ color:var(--blue); }

.results-section{ margin-top:26px; }
.results-section h4{ font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin:0 0 12px; }
.flaw-card{ border:1px solid var(--border); background:var(--panel-2); border-radius:12px; margin-bottom:10px; overflow:hidden; }
.flaw-card-head{ display:flex; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; }
.flaw-card-head .fc-status{ width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:800; flex:none; }
.flaw-card.found .fc-status{ background:var(--green-light); color:var(--green); }
.flaw-card.missed .fc-status{ background:var(--amber-light); color:var(--amber); }
.flaw-card-head .fc-title{ font-size:13px; font-weight:700; flex:1; }
.flaw-card-head .fc-sev{ font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace); font-size:9.5px; font-weight:700; padding:3px 8px; border-radius:99px; text-transform:uppercase; letter-spacing:.3px; flex:none; }
.sev-critical{ background:var(--red-light); color:var(--red); }
.sev-high{ background:rgba(248,113,113,.1); color:#fb9b9b; }
.sev-medium{ background:var(--amber-light); color:var(--amber); }
.sev-low{ background:var(--blue-light); color:var(--blue); }
.flaw-card-head .fc-chev{ color:var(--muted); font-size:11px; transition:transform .18s var(--ease); flex:none; }
.flaw-card.open .fc-chev{ transform:rotate(180deg); }
.flaw-card-body{ padding:0 14px 14px 50px; display:none; font-size:12.5px; color:var(--muted); line-height:1.6; }
.flaw-card.open .flaw-card-body{ display:block; }
.flaw-card-body .fc-fix{ margin-top:10px; background:var(--green-light); border:1px solid rgba(74,222,128,.3); border-radius:8px; padding:9px 11px; color:#c9f5d9; }
.flaw-card-body .fc-fix b{ color:var(--green); }

.fp-card{ background:rgba(255,255,255,.03); border:1px dashed var(--border); border-radius:10px; padding:10px 12px; font-size:12px; color:var(--muted); margin-bottom:8px; line-height:1.55; }
.fp-card b{ color:var(--ink); }

.results-actions{ display:flex; gap:10px; margin-top:28px; justify-content:flex-end; }

/* confetti — a light celebratory burst for a strong score, pure CSS */
.confetti-wrap{ position:absolute; inset:0; overflow:hidden; pointer-events:none; border-radius:18px; }
.confetti-wrap span{ position:absolute; top:-12px; width:8px; height:14px; opacity:.9; animation:confettiFall 2.6s ease-in forwards; }
@keyframes confettiFall{ to{ transform:translateY(480px) rotate(540deg); opacity:0; } }

@media (max-width:980px){
  .lab-shell{ flex-direction:column; }
  .side-pane{ width:100%; border-left:none; border-top:1px solid var(--border); }
  .sc-arc-review-lab .toolbar h1{ white-space:normal; }
}

@media (max-width:720px){
  .sc-arc-review-lab .tb-head{ grid-template-columns:1fr; }
  .sc-arc-review-lab .toolbar-actions{ justify-content:flex-start; flex-wrap:wrap; }
}

/* Native /labs/ shell — match other interactive labs (no site footer scroll) */
body.sc-page-architecture-review-lab,
body.sc-page-interactive-lab.sc-page-architecture-review-lab-page {
  display: flex;
  flex-direction: column;
  background: var(--bg, #0a0a0f);
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  padding: 0 !important;
  margin: 0 !important;
}

html:has(body.sc-page-architecture-review-lab) {
  margin-top: 0 !important;
}

body.sc-page-architecture-review-lab .sc-page-main.sc-arc-review-lab {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
  overflow: hidden;
}

body.sc-page-architecture-review-lab .sc-arc-review-lab .lab-shell {
  flex: 1 1 auto;
  min-height: 0;
}

body.sc-page-architecture-review-lab.sc-page-interactive-lab {
  --lab-nav-h: 52px;
  font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

body.sc-page-architecture-review-lab .sc-site-footer {
  display: none !important;
}

body.sc-arc-lab-modal-open {
  overflow: hidden !important;
}

.sc-arc-lab-overlay .rh-grade,
.sc-arc-lab-overlay .results-section h4,
.sc-arc-lab-overlay .toolbar h1{
  font-family: "Poppins", "Nunito", sans-serif;
}
