/*
============================================================
FILE: assets/css/public-tools.css
LINKS TO: every public-tool page under pages/public-risk/
PURPOSE: Consolidated stylesheet for the public Risk
         Assessment tool family. Single source of truth for
         tokens, layout, cards, buttons, forms, badges, flash,
         tables, modal, upgrade page.
NOTES:   Created 2026-10-17. New standing rule: every public-risk
         page we touch migrates its inline CSS here as generic
         .pt-* classes. Standalone stylesheet — carries its own
         [hidden] rule (BASE §B.30) and is NOT in the aggregator.
         Migration map:
           .ra-*  → .pt-*  (builder)
           .as-*  → .pt-*  (account-settings)
           .aq-*  → .pt-*  (approval-queue)
           .bd-*  → .pt-*  (business-dashboard)
           .cm-*  → .pt-*  (client-acceptance-manage)
           .ca-*  → .pt-*  (client-accept)
           .cr-*  → .pt-*  (client-review)
           .ta-*  → .pt-*  (team-invite-accept)
           .cs-*  → .pt-*  (client-acceptance-send)
           .up-*  → .pt-*  (upgrade)
============================================================*/

/* ---- Reset + tokens ---- */
[hidden]{display:none!important}

.pt-page,
.pt-page *{box-sizing:border-box}

.pt-page{
  --pt-bg:        #0d1117;
  --pt-card:      #161b22;
  --pt-card-2:    #1c232b;
  --pt-border:    #30363d;
  --pt-border-2:  #3f4650;
  --pt-text:      #c9d1d9;
  --pt-text-dim:  #8b949e;
  --pt-text-mute: #5a6470;
  --pt-heading:   #ffffff;
  --pt-accent:    #79c0ff;
  --pt-accent-2:  #006cff;
  --pt-accent-3:  #00d9ff;
  --pt-purple:    #a855f7;
  --pt-purple-2:  #6a1eb3;
  --pt-purple-3:  #c9a8ff;
  --pt-success:   #4ade80;
  --pt-success-bg:rgba(74,222,128,.15);
  --pt-danger:    #ff6b6b;
  --pt-danger-bg: rgba(255,107,107,.15);
  --pt-warn:      #f0b429;
  --pt-warn-bg:   rgba(240,180,41,.15);
  --pt-info-bg:   rgba(121,192,255,.12);
  --pt-radius:    8px;
  --pt-radius-lg: 10px;
  --pt-radius-xl: 12px;
  --pt-shadow:    0 8px 32px rgba(0,108,255,.15);
  --pt-shadow-lg: 0 20px 50px rgba(15,25,45,.4);
  --pt-gap:       20px;
  --pt-gap-sm:    12px;
  --pt-gap-xs:    8px;

  background:var(--pt-bg);
  color:var(--pt-text);
  min-height:60vh;
  padding:110px 16px 64px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
@media (max-width:900px){ .pt-page{padding-top:130px} }
@media (max-width:600px){ .pt-page{padding-top:150px} }

.pt-container{ max-width:1200px; margin:0 auto; }
.pt-container-narrow{ max-width:760px; margin:0 auto; }

/* ---- Typography ---- */
.pt-h1{ font-size:32px; line-height:1.25; margin:0 0 10px; color:var(--pt-heading); font-weight:800; }
.pt-h2{ font-size:18px; line-height:1.3; margin:0 0 10px; color:var(--pt-heading); font-weight:800; }
.pt-h3{ font-size:15px; line-height:1.3; margin:0 0 8px; color:var(--pt-heading); font-weight:700; }
.pt-lead{ font-size:15px; color:var(--pt-text-dim); margin:0 0 20px; line-height:1.6; max-width:640px; }
.pt-muted{ color:var(--pt-text-dim); font-size:13px; }
.pt-dim{ color:var(--pt-text-mute); font-size:12px; }
.pt-center{ text-align:center; }
.pt-mono{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }

/* ---- Hero ---- */
.pt-hero{ text-align:center; margin-bottom:36px; }
.pt-hero h1{ font-size:32px; margin:0 0 10px; color:var(--pt-heading); font-weight:800; line-height:1.25; }
.pt-hero p{ font-size:15px; color:var(--pt-text-dim); max-width:640px; margin:0 auto; line-height:1.6; }

/* ---- Cards ---- */
.pt-card{
  background:var(--pt-card);
  border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-lg);
  padding:22px 24px;
  margin-bottom:16px;
}
.pt-card-tight{ padding:16px 18px; }
.pt-card-highlight{
  border-color:var(--pt-accent-2);
  box-shadow:0 0 0 1px var(--pt-accent-2), var(--pt-shadow);
}
.pt-card-highlight-purple{
  border-color:var(--pt-purple);
  box-shadow:0 0 0 1px var(--pt-purple), 0 8px 32px rgba(168,85,247,.15);
}
.pt-card-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; flex-wrap:wrap; margin-bottom:14px;
}
.pt-card-head h1,.pt-card-head h2{ margin:0; }

/* ---- Grid ---- */
.pt-grid{ display:grid; gap:var(--pt-gap); }
.pt-grid-2{ grid-template-columns:repeat(2,1fr); }
.pt-grid-3{ grid-template-columns:repeat(3,1fr); }
.pt-grid-auto{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
@media (max-width:900px){
  .pt-grid-3{ grid-template-columns:1fr; }
  .pt-grid-2{ grid-template-columns:1fr; }
}

/* ---- Buttons ---- */
.pt-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 18px; border:0; border-radius:var(--pt-radius);
  font:inherit; font-size:13px; font-weight:700;
  text-decoration:none; cursor:pointer; line-height:1.2;
  transition:filter .15s, background .15s, color .15s;
  white-space:nowrap;
}
.pt-btn:hover{ filter:brightness(1.08); }
.pt-btn-primary{
  background:linear-gradient(135deg,var(--pt-accent-2),var(--pt-accent-3));
  color:#fff;
}
.pt-btn-secondary{
  background:#21262d; color:var(--pt-text);
}
.pt-btn-secondary:hover{ background:#2a313a; color:#fff; filter:none; }
.pt-btn-danger{
  background:var(--pt-danger-bg); color:var(--pt-danger);
}
.pt-btn-purple{
  background:linear-gradient(135deg,var(--pt-purple-2),var(--pt-purple));
  color:#fff;
}
.pt-btn-disabled{
  background:#21262d; color:var(--pt-text-mute); cursor:default; pointer-events:none;
}
.pt-btn-block{ display:flex; width:100%; }
.pt-btn-sm{ padding:6px 12px; font-size:12px; }

/* ---- Flash ---- */
.pt-flash{
  padding:11px 14px; border-radius:var(--pt-radius);
  font-size:13px; margin-bottom:14px; line-height:1.5;
}
.pt-flash-ok{
  background:var(--pt-success-bg); color:var(--pt-success);
  border:1px solid rgba(74,222,128,.3);
}
.pt-flash-err{
  background:var(--pt-danger-bg); color:var(--pt-danger);
  border:1px solid rgba(255,107,107,.3);
}
.pt-flash-warn{
  background:var(--pt-warn-bg); color:var(--pt-warn);
  border:1px solid rgba(240,180,41,.3);
}
.pt-flash-info{
  background:var(--pt-info-bg); color:var(--pt-accent);
  border:1px solid rgba(121,192,255,.3);
}

/* ---- Fields ---- */
.pt-field{ display:flex; flex-direction:column; gap:4px; margin-bottom:12px; }
.pt-field > span,
.pt-field > label,
.pt-label{
  font-size:12px; color:var(--pt-text-dim); font-weight:700;
  text-transform:uppercase; letter-spacing:.04em;
}
.pt-input,
.pt-select,
.pt-textarea{
  width:100%; padding:9px 12px;
  border:1px solid var(--pt-border);
  border-radius:var(--pt-radius);
  background:var(--pt-bg);
  color:var(--pt-text);
  font:inherit; font-size:13px;
  line-height:1.4;
}
.pt-input:focus,
.pt-select:focus,
.pt-textarea:focus{
  border-color:var(--pt-accent-2);
  outline:none;
}
.pt-textarea{ min-height:80px; resize:vertical; }
.pt-hint{ font-size:12px; color:var(--pt-text-dim); margin-top:4px; line-height:1.5; }

/* ---- Tables ---- */
.pt-table{
  width:100%; border-collapse:collapse; font-size:13px;
  border:1px solid var(--pt-border); border-radius:var(--pt-radius);
}
.pt-table th,
.pt-table td{
  padding:8px 10px; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--pt-border);
}
.pt-table th{
  background:#1c232b; font-weight:700; color:var(--pt-heading);
  font-size:11px; text-transform:uppercase; letter-spacing:.03em;
}
.pt-table tr:last-child td{ border-bottom:0; }
.pt-table td.pt-num,
.pt-table th.pt-num{ text-align:right; white-space:nowrap; }

/* ---- Badges / pills ---- */
.pt-badge{
  display:inline-block; padding:3px 10px; border-radius:10px;
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; line-height:1.4;
}
.pt-badge-info{    background:var(--pt-info-bg); color:var(--pt-accent); }
.pt-badge-ok{      background:var(--pt-success-bg); color:var(--pt-success); }
.pt-badge-err{     background:var(--pt-danger-bg); color:var(--pt-danger); }
.pt-badge-warn{    background:var(--pt-warn-bg); color:var(--pt-warn); }
.pt-badge-neutral{ background:#21262d; color:var(--pt-text-dim); }
.pt-badge-purple{  background:rgba(168,85,247,.18); color:var(--pt-purple-3); }
.pt-badge-mono{    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }

/* ---- Inline meta list ---- */
.pt-meta{ font-size:12px; color:var(--pt-text-dim); line-height:1.6; }
.pt-meta strong{ color:var(--pt-text); font-weight:700; }

/* ---- Modal ---- */
.pt-modal{ position:fixed; inset:0; z-index:9500; display:flex; align-items:center; justify-content:center; }
.pt-modal-bg{ position:absolute; inset:0; background:rgba(0,0,0,.65); }
.pt-modal-card{
  position:relative; background:var(--pt-card);
  border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-xl);
  box-shadow:var(--pt-shadow-lg);
  max-width:520px; width:92%; padding:26px;
  max-height:92vh; overflow:auto;
}
.pt-modal-x{
  position:absolute; top:10px; right:14px;
  background:none; border:0; font-size:24px; color:var(--pt-text-dim);
  cursor:pointer; line-height:1;
}

/* ---- Section headings ---- */
.pt-section{ margin-bottom:24px; }
.pt-section-title{
  font-size:12px; font-weight:800; color:var(--pt-accent);
  text-transform:uppercase; letter-spacing:.06em; margin:0 0 10px;
}

/* ---- Empty state ---- */
.pt-empty{
  text-align:center; padding:40px 20px; color:var(--pt-text-dim); font-size:14px;
}
.pt-empty p{ margin:0 0 14px; }

/* ---- Pricing / upgrade ---- */
.pt-current-tier{
  display:inline-block; padding:4px 12px; border-radius:12px;
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; margin-bottom:14px;
}
.pt-current-tier-free{ background:rgba(139,148,158,.2); color:var(--pt-text); }
.pt-current-tier-paid{ background:rgba(0,108,255,.22); color:var(--pt-accent); }
.pt-current-tier-business{ background:rgba(168,85,247,.22); color:var(--pt-purple-3); }

.pt-tier-card{
  position:relative;
  background:var(--pt-card); border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-lg); padding:26px;
  display:flex; flex-direction:column; align-items:stretch;
}
.pt-tier-card.pt-current{ padding-top:34px; }
.pt-tier-yours{
  position:absolute; top:-10px; right:16px;
  background:linear-gradient(135deg,var(--pt-accent-2),var(--pt-accent-3));
  color:#fff; font-size:10px; font-weight:800;
  text-transform:uppercase; letter-spacing:.05em;
  padding:4px 10px; border-radius:10px;
  box-shadow:0 2px 8px rgba(0,108,255,.35);
}
.pt-tier-card.pt-tier-card-purple .pt-tier-yours{
  background:linear-gradient(135deg,var(--pt-purple-2),var(--pt-purple));
  box-shadow:0 2px 8px rgba(168,85,247,.35);
}
.pt-tier-eyebrow{
  font-size:12px; text-transform:uppercase; letter-spacing:1px;
  color:var(--pt-accent); font-weight:700; margin-bottom:6px;
}
.pt-tier-card.pt-tier-card-purple .pt-tier-eyebrow{ color:var(--pt-purple-3); }
.pt-tier-name{ font-size:22px; font-weight:800; color:var(--pt-heading); margin:0 0 4px; }
.pt-tier-tagline{
  color:var(--pt-text-dim); font-size:13px; margin:0 0 20px;
  line-height:1.5; min-height:38px;
}
.pt-price-row{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.pt-price{ font-size:34px; font-weight:800; color:var(--pt-heading); line-height:1; }
.pt-period{ color:var(--pt-text-dim); font-size:13px; font-weight:400; }

.pt-features{ list-style:none; padding:0; margin:20px 0; flex-grow:1; }
.pt-features li{
  padding:6px 0 6px 26px; position:relative;
  color:var(--pt-text); font-size:13px; line-height:1.5;
}
.pt-features li::before{
  content:"\2713"; position:absolute; left:0;
  color:var(--pt-success); font-weight:bold;
}
.pt-tier-card.pt-tier-card-purple .pt-features li::before{ color:var(--pt-purple-3); }

.pt-cta{
  display:block; text-align:center; padding:13px 20px;
  border-radius:var(--pt-radius); text-decoration:none;
  font-weight:700; font-size:14px; border:0; cursor:pointer;
  font-family:inherit; transition:filter .15s;
}
.pt-cta:hover{ filter:brightness(1.08); }
.pt-cta-primary{ background:linear-gradient(135deg,var(--pt-accent-2),var(--pt-accent-3)); color:#fff; }
.pt-cta-purple{ background:linear-gradient(135deg,var(--pt-purple-2),var(--pt-purple)); color:#fff; }
.pt-cta-disabled{ background:#21262d; color:var(--pt-text-mute); cursor:default; pointer-events:none; }
.pt-cta-disabled:hover{ filter:none; }

/* ---- FAQ accordion ---- */
.pt-faq{ margin-top:24px; }
.pt-faq details{
  border-bottom:1px solid var(--pt-border); padding:12px 0;
}
.pt-faq details:last-child{ border-bottom:0; padding-bottom:0; }
.pt-faq summary{
  cursor:pointer; font-weight:700; color:var(--pt-text);
  font-size:14px; padding:2px 0; list-style:none;
}
.pt-faq summary::-webkit-details-marker{ display:none; }
.pt-faq summary::before{
  content:"+ "; color:var(--pt-accent); font-weight:800;
  display:inline-block; width:16px;
}
.pt-faq details[open] summary::before{ content:"\2212 "; }
.pt-faq summary:hover{ color:var(--pt-accent); }
.pt-faq p{
  margin:8px 0 0 16px; color:var(--pt-text-dim); font-size:13px; line-height:1.6;
}

/* ---- Footer strip ---- */
.pt-footer{
  text-align:center; margin-top:40px; color:var(--pt-text-dim);
  font-size:13px; line-height:1.9;
}
.pt-footer strong{ color:var(--pt-text); font-weight:700; }
.pt-footer a{ color:var(--pt-accent); text-decoration:none; }
.pt-footer a:hover{ text-decoration:underline; }

/* ---- Print ---- */
@media print{
  .pt-page{ padding:0; background:#fff; color:#000; }
  .pt-no-print, .tool-bar, .tool-lead-modal, .tool-bar-todo-panel{ display:none !important; }
  .pt-tool-appendix-section{ margin-top:14px; }
  .pt-tool-appendix{ background:#fff; border-color:#999; page-break-inside:avoid; }
  .pt-tool-appendix-head{ border-bottom-color:#999; }
  .pt-tool-appendix-code,
  .pt-tool-appendix-type,
  .pt-tool-appendix-body{ color:#000; }
}

/* ---- Tool appendix (Phase 16) ---- */
.pt-tool-appendix-section{ margin-top:20px; }
.pt-tool-appendix{
  border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-lg);
  padding:16px 18px;
  margin-bottom:16px;
  background:var(--pt-card);
  page-break-inside:avoid;
}
.pt-tool-appendix-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; flex-wrap:wrap; margin-bottom:10px;
  padding-bottom:8px; border-bottom:1px solid var(--pt-border);
}
.pt-tool-appendix-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px; font-weight:700; color:var(--pt-accent);
}
.pt-tool-appendix-type{
  font-size:12px; color:var(--pt-text-dim); text-transform:uppercase;
  letter-spacing:.05em; font-weight:700;
}
.pt-tool-appendix-body{
  font-size:13px; line-height:1.55; color:var(--pt-text);
}
.pt-tool-appendix-empty{
  color:var(--pt-text-dim); font-style:italic; margin:0;
}
.pt-tool-panel{
  background:var(--pt-card-2); border:1px solid var(--pt-border-2);
  border-radius:var(--pt-radius-lg); padding:16px 18px;
}

/* ---- PPE evaluation modal (Phase 17) ---- */
.ppe-modal,
.ppe-modal *{ box-sizing:border-box; }
.ppe-modal{
  --pt-bg:        #0d1117;
  --pt-card:      #161b22;
  --pt-card-2:    #1c232b;
  --pt-border:    #30363d;
  --pt-border-2:  #3f4650;
  --pt-text:      #c9d1d9;
  --pt-text-dim:  #8b949e;
  --pt-text-mute: #5a6470;
  --pt-heading:   #ffffff;
  --pt-accent:    #79c0ff;
  --pt-accent-2:  #006cff;
  --pt-accent-3:  #00d9ff;
  --pt-danger:    #ff6b6b;
  --pt-danger-bg: rgba(255,107,107,.15);
  --pt-radius:    8px;
  --pt-radius-lg: 10px;
  --pt-radius-xl: 12px;
  --pt-shadow-lg: 0 20px 50px rgba(0,0,0,.55);
  position:fixed; inset:0; z-index:9600;
  display:flex; align-items:center; justify-content:center;
  font:14px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--pt-text);
}
.ppe-modal-bg{ position:absolute; inset:0; background:rgba(0,0,0,.72); }
.ppe-modal-card{
  position:relative;
  background:var(--pt-card);
  border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-xl);
  box-shadow:var(--pt-shadow-lg);
  width:min(92vw,1080px); max-height:92vh;
  display:flex; flex-direction:column;
  overflow:hidden;
}
.ppe-modal-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  padding:20px 24px 14px; border-bottom:1px solid var(--pt-border);
}
.ppe-title{ margin:0; font-size:20px; color:var(--pt-heading); font-weight:800; }
.ppe-sub{ margin:4px 0 0; color:var(--pt-text-dim); font-size:13px; }
.ppe-x{ background:none; border:0; color:var(--pt-text-dim); font-size:26px; cursor:pointer; line-height:1; padding:0 4px; }
.ppe-x:hover{ color:var(--pt-heading); }

.ppe-layout{
  display:grid; grid-template-columns:minmax(280px,1fr) minmax(340px,1.2fr);
  gap:0; flex:1; min-height:0;
}
@media (max-width:820px){ .ppe-layout{ grid-template-columns:1fr; } }

.ppe-figure-wrap{
  padding:20px 20px 22px; overflow-y:auto;
  border-right:1px solid var(--pt-border);
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
@media (max-width:820px){ .ppe-figure-wrap{ border-right:0; border-bottom:1px solid var(--pt-border); } }
.ppe-svg{ width:100%; max-width:340px; height:auto; display:block; }
.ppe-figure path{ fill:var(--pt-card-2); stroke:var(--pt-border-2); stroke-width:1.5; }

.ppe-zone rect, .ppe-zone circle{ fill:transparent; stroke:transparent; cursor:pointer; transition:fill .15s, stroke .15s; }
.ppe-zone:hover rect, .ppe-zone:hover circle{ fill:rgba(121,192,255,.22); stroke:rgba(121,192,255,.55); stroke-width:1.5; }
.ppe-zone.ppe-zone-active rect, .ppe-zone.ppe-zone-active circle{ fill:rgba(121,192,255,.35); stroke:var(--pt-accent); stroke-width:2; }

.ppe-chip-row{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.ppe-chip{
  background:var(--pt-card-2); color:var(--pt-text);
  border:1px solid var(--pt-border-2); border-radius:20px;
  padding:6px 14px; font:inherit; font-size:12px; font-weight:700;
  cursor:pointer; transition:all .15s;
}
.ppe-chip:hover{ border-color:var(--pt-accent); color:var(--pt-accent); }
.ppe-chip.ppe-zone-active{ background:rgba(121,192,255,.2); border-color:var(--pt-accent); color:var(--pt-accent); }
.ppe-hint{ font-size:11px; color:var(--pt-text-mute); text-align:center; margin:0; }

.ppe-items-panel{ padding:18px 22px 22px; overflow-y:auto; }
.ppe-panel-head h3{ margin:0 0 12px; font-size:14px; color:var(--pt-heading); font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.ppe-zone-group{
  border:1px solid var(--pt-border); border-radius:var(--pt-radius-lg);
  padding:10px 12px; margin-bottom:10px; background:var(--pt-card-2);
}
.ppe-zone-group.ppe-zone-has-items{ border-color:var(--pt-accent); }
.ppe-zone-group-head{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.ppe-zone-name{ font-weight:700; font-size:13px; color:var(--pt-heading); }
.ppe-add-btn{
  background:transparent; color:var(--pt-accent); border:1px solid rgba(121,192,255,.35);
  border-radius:6px; padding:4px 10px; font:inherit; font-size:11px; font-weight:700;
  cursor:pointer; transition:all .15s;
}
.ppe-add-btn:hover{ background:rgba(121,192,255,.15); }
.ppe-zone-empty{ margin:6px 0 0; color:var(--pt-text-mute); font-size:12px; font-style:italic; }

.ppe-item-row{
  display:grid; grid-template-columns:1fr auto auto auto;
  gap:8px; align-items:center; padding:6px 0; border-top:1px dashed var(--pt-border);
  margin-top:6px;
}
.ppe-item-name{ font-size:13px; color:var(--pt-text); word-break:break-word; }
.ppe-ck{ display:flex; align-items:center; gap:4px; font-size:11px; color:var(--pt-text-dim); cursor:pointer; }
.ppe-ck input{ accent-color:var(--pt-accent-2); }
.ppe-rm{ background:transparent; border:0; color:var(--pt-danger); cursor:pointer; font-size:18px; line-height:1; padding:0 4px; }

.ppe-search-wrap{ margin-top:8px; padding:10px; background:rgba(0,0,0,.25); border-radius:8px; }
.ppe-search{
  width:100%; padding:8px 12px; background:var(--pt-bg); color:var(--pt-text);
  border:1px solid var(--pt-border-2); border-radius:6px; font:inherit; font-size:13px;
}
.ppe-search:focus{ outline:none; border-color:var(--pt-accent-2); }
.ppe-sug-list{ display:flex; flex-direction:column; gap:2px; margin-top:6px; max-height:160px; overflow-y:auto; }
.ppe-sug{
  text-align:left; background:transparent; color:var(--pt-text); border:0;
  padding:6px 10px; border-radius:6px; cursor:pointer; font:inherit; font-size:13px;
  display:flex; justify-content:space-between; gap:8px;
}
.ppe-sug:hover{ background:rgba(121,192,255,.15); color:var(--pt-heading); }
.ppe-sug small{ color:var(--pt-text-mute); font-size:11px; }
.ppe-defaults{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ppe-default-chip{
  background:var(--pt-card); color:var(--pt-text-dim); border:1px solid var(--pt-border);
  border-radius:16px; padding:4px 10px; font:inherit; font-size:11px; cursor:pointer;
}
.ppe-default-chip:hover{ border-color:var(--pt-accent); color:var(--pt-accent); }
.ppe-search-actions{ display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
.ppe-panel-hint{ color:var(--pt-text-mute); font-size:12px; text-align:center; font-style:italic; padding:14px 0; }

.ppe-modal-foot{
  display:flex; justify-content:flex-end; gap:10px;
  padding:14px 24px; border-top:1px solid var(--pt-border);
  background:var(--pt-card-2);
}
.ppe-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 18px; border:0; border-radius:8px; font:inherit;
  font-size:13px; font-weight:700; cursor:pointer; line-height:1.2;
  white-space:nowrap;
}
.ppe-btn-sm{ padding:6px 12px; font-size:12px; }
.ppe-btn-primary{ background:linear-gradient(135deg,var(--pt-accent-2),var(--pt-accent-3)); color:#fff; }
.ppe-btn-primary:hover{ filter:brightness(1.08); }
.ppe-btn-secondary{ background:#21262d; color:var(--pt-text); }
.ppe-btn-secondary:hover{ background:#2a313a; color:#fff; }

/* PPE report tables (dark + print-friendly) */
.ppe-report-body{ margin-top:14px; }
.ppe-report-section{ margin-bottom:26px; }
.ppe-report-section h3{ font-size:14px; color:var(--pt-heading); margin:0 0 10px; text-transform:uppercase; letter-spacing:.04em; }
.ppe-report-table{
  width:100%; border-collapse:collapse; font-size:13px;
  border:1px solid var(--pt-border);
}
.ppe-report-table th, .ppe-report-table td{
  padding:10px 12px;
  border:1px solid var(--pt-border);
  text-align:left; vertical-align:top;
}
.ppe-report-table thead th{
  background:#1c232b; color:var(--pt-heading);
  font-size:11px; text-transform:uppercase; letter-spacing:.04em;
  font-weight:700;
}
.ppe-report-table tbody tr:nth-child(even) td{ background:rgba(255,255,255,.02); }
.ppe-report-table td.ppe-ck{ text-align:center; font-weight:700; color:var(--pt-accent); font-size:15px; }
.ppe-zone-tag{ color:var(--pt-text-mute); font-size:11px; text-transform:uppercase; letter-spacing:.04em; margin-left:6px; }
.ppe-report-zone h4{ margin:14px 0 6px; font-size:13px; color:var(--pt-accent); text-transform:uppercase; letter-spacing:.04em; }
.ppe-report-zone ul{ margin:0; padding-left:20px; }
.ppe-report-zone li{ margin-bottom:4px; font-size:13px; }
.ppe-empty{ color:var(--pt-text-dim); font-style:italic; }

@media print{
  .ppe-modal, .ppe-modal *{ display:none !important; }
  .ppe-report-body, .ppe-report-table, .ppe-report-table th, .ppe-report-table td{ color:#000 !important; }
  .ppe-report-table, .ppe-report-table th, .ppe-report-table td{ border-color:#666 !important; }
  .ppe-report-table thead th{ background:#dbe4f0 !important; color:#000 !important; }
  .ppe-report-table tbody tr:nth-child(even) td{ background:#f6f8fb !important; }
  .ppe-report-table td.ppe-ck{ color:#0a2a0a !important; }
  .ppe-report-zone h4{ color:#000 !important; }
}

/* ---- 5 Why tool (Phase 18) ---- */
.why-modal,
.why-modal *{ box-sizing:border-box; }
.why-modal{
  --pt-bg: #0d1117; --pt-card: #161b22; --pt-card-2: #1c232b;
  --pt-border: #30363d; --pt-border-2: #3f4650;
  --pt-text: #c9d1d9; --pt-text-dim: #8b949e; --pt-text-mute: #5a6470;
  --pt-heading: #ffffff; --pt-accent: #79c0ff;
  --pt-accent-2: #006cff; --pt-accent-3: #00d9ff;
  --pt-success: #4ade80; --pt-success-bg: rgba(74,222,128,.15);
  --pt-danger: #ff6b6b; --pt-radius-xl: 12px;
  --pt-shadow-lg: 0 20px 50px rgba(0,0,0,.55);
  position:fixed; inset:0; z-index:9600;
  display:flex; align-items:center; justify-content:center;
  font:14px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--pt-text);
}
.why-modal-bg{ position:absolute; inset:0; background:rgba(0,0,0,.72); }
.why-modal-card{
  position:relative; background:var(--pt-card);
  border:1px solid var(--pt-border); border-radius:var(--pt-radius-xl);
  box-shadow:var(--pt-shadow-lg);
  width:min(94vw,960px); max-height:92vh;
  display:flex; flex-direction:column; overflow:hidden;
}
.why-modal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:20px 24px 14px; border-bottom:1px solid var(--pt-border); }
.why-title{ margin:0; font-size:20px; color:var(--pt-heading); font-weight:800; }
.why-sub{ margin:4px 0 0; color:var(--pt-text-dim); font-size:13px; }
.why-x{ background:none; border:0; color:var(--pt-text-dim); font-size:26px; cursor:pointer; line-height:1; padding:0 4px; }
.why-x:hover{ color:var(--pt-heading); }
.why-modal-body{ padding:16px 24px; overflow-y:auto; flex:1; }
.why-problem label{ display:block; font-size:11px; color:var(--pt-text-dim); text-transform:uppercase; letter-spacing:.04em; font-weight:700; margin-bottom:4px; }
.why-problem{ margin-bottom:16px; }
.why-input{
  width:100%; padding:9px 12px; background:var(--pt-bg); color:var(--pt-text);
  border:1px solid var(--pt-border-2); border-radius:6px; font:inherit; font-size:13px;
  resize:vertical; line-height:1.5;
}
.why-input:focus{ outline:none; border-color:var(--pt-accent-2); }
.why-tree{ margin-top:12px; }
.why-empty{ color:var(--pt-text-mute); font-size:13px; font-style:italic; text-align:center; padding:20px 0; }
.why-node{ position:relative; margin-bottom:8px; padding-right:8px; padding-bottom:6px; border-left:2px solid var(--pt-border-2); }
.why-node-why{ border-left-color:var(--pt-accent); }
.why-node-answer{ border-left-color:var(--pt-border-2); }
.why-node-root{ border-left-color:var(--pt-success); background:rgba(74,222,128,.06); padding:8px; border-radius:0 6px 6px 0; }
.why-node-linked{ background:rgba(74,222,128,.08); }
.why-node-head{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:4px; padding-left:8px; }
.why-node-badge{ font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--pt-text-dim); font-weight:700; }
.why-node-root .why-node-badge{ color:var(--pt-success); }
.why-node-actions{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.why-rm{ background:transparent; border:0; color:var(--pt-danger); cursor:pointer; font-size:18px; line-height:1; padding:0 4px; }
.why-node > textarea{ margin-left:8px; width:calc(100% - 8px); }
.why-node-foot{ padding-left:8px; margin-top:6px; }
.why-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:8px 14px; border:0; border-radius:6px; font:inherit;
  font-size:12px; font-weight:700; cursor:pointer; line-height:1.2; white-space:nowrap;
}
.why-btn-sm{ padding:5px 10px; font-size:11px; }
.why-btn-primary{ background:linear-gradient(135deg,var(--pt-accent-2),var(--pt-accent-3)); color:#fff; }
.why-btn-primary:hover{ filter:brightness(1.08); }
.why-btn-secondary{ background:#21262d; color:var(--pt-text); }
.why-btn-secondary:hover{ background:#2a313a; color:#fff; }
.why-chip-linked{ display:inline-block; padding:3px 8px; border-radius:10px; background:var(--pt-success-bg); color:var(--pt-success); font-size:11px; font-weight:700; }
.why-add-root{ margin-top:12px; }
.why-modal-foot{ display:flex; justify-content:flex-end; gap:10px; padding:14px 24px; border-top:1px solid var(--pt-border); background:var(--pt-card-2); }

/* 5 Why appendix print styles */
.why-appendix{ font-size:13px; color:var(--pt-text); }
.why-appendix-problem{ padding:10px 12px; background:var(--pt-card-2); border-left:3px solid var(--pt-accent); border-radius:4px; margin-bottom:12px; }
.why-appendix-tree .why-tree-list{ list-style:none; margin:0; padding:0 0 0 18px; }
.why-appendix-tree > .why-tree-list{ padding-left:0; }
.why-tree-item{ position:relative; padding:4px 0; border-left:2px solid var(--pt-border-2); padding-left:14px; margin-bottom:3px; }
.why-tree-why{ border-left-color:var(--pt-accent); }
.why-tree-root{ border-left-color:var(--pt-success); background:rgba(74,222,128,.08); border-radius:0 6px 6px 0; padding:6px 10px 6px 14px; }
.why-tree-root strong{ color:var(--pt-success); }
.why-tree-badge{ display:inline-block; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--pt-text-dim); font-weight:700; margin-right:4px; }
.why-tree-root .why-tree-badge{ color:var(--pt-success); }
.why-appendix-roots{ margin-top:14px; padding:10px 12px; background:rgba(74,222,128,.08); border-left:3px solid var(--pt-success); border-radius:4px; }
.why-appendix-roots ul{ margin:6px 0 0; padding-left:20px; }
.why-appendix-empty{ color:var(--pt-text-dim); font-style:italic; margin:0; }

@media print{
  .why-modal, .why-modal *{ display:none !important; }
  .why-appendix, .why-appendix *{ color:#000 !important; }
  .why-appendix-problem{ background:#f0f4fa !important; border-left-color:#666 !important; }
  .why-tree-why{ border-left-color:#333 !important; }
  .why-tree-root{ background:#d4eed4 !important; border-left-color:#2a7a2a !important; }
  .why-tree-root strong{ color:#0a2a0a !important; }
  .why-tree-badge{ color:#333 !important; }
  .why-tree-root .why-tree-badge{ color:#0a2a0a !important; }
  .why-appendix-roots{ background:#d4eed4 !important; border-left-color:#2a7a2a !important; }
}

/* ---- 5 Why org-chart layout (Phase 18 r2) ---- */
.why-tree{ overflow-x:auto; padding:14px 0 4px; min-height:120px; }
.why-chart,
.why-chart-children{
  list-style:none; padding:0; margin:0;
  display:flex; justify-content:center; gap:20px;
  position:relative;
}

/* Vertical space between a parent card and its children row */
.why-chart-children{ padding-top:24px; }

/* Each child sits in a padded box so the rail + drop lines
   can be drawn above the card without being hidden by it. */
.why-chart-children > li{
  position:relative;
  padding-top:24px;
  padding-left:10px;
  padding-right:10px;
  display:flex; flex-direction:column; align-items:center;
}

/* Left half of the horizontal rail (extends into the gap) */
.why-chart-children > li::before{
  content:'';
  position:absolute;
  top:0;
  right:50%;
  left:-10px;
  height:2px;
  background:var(--pt-border-2);
  pointer-events:none;
}

/* Right half of the horizontal rail + vertical drop at centre */
.why-chart-children > li::after{
  content:'';
  position:absolute;
  top:0;
  left:50%;
  right:-10px;
  height:24px;
  border-top:2px solid var(--pt-border-2);
  border-left:2px solid var(--pt-border-2);
  pointer-events:none;
}

/* First child: trim the left rail */
.why-chart-children > li:first-child::before{ background:transparent; }
/* Last child: trim the right rail (keep the drop) */
.why-chart-children > li:last-child::after{ border-top:0; }

/* Single child: no rail, no extra padding */
.why-chart-children > li:only-child::before,
.why-chart-children > li:only-child::after{ display:none; }
.why-chart-children > li:only-child{ padding-top:0; }

/* Vertical from parent card down into the children zone */
.why-chart-children::before{
  content:'';
  position:absolute;
  top:0;
  left:50%;
  width:2px;
  height:24px;
  background:var(--pt-border-2);
  transform:translateX(-50%);
  pointer-events:none;
}

.why-chart-node{ position:relative; }
.why-chart-card{
  position:relative; z-index:2;
  background:var(--pt-card-2);
  border:1px solid var(--pt-border);
  border-left:3px solid var(--pt-border-2);
  border-radius:8px;
  padding:8px 10px;
  width:180px;
  min-height:60px;
  display:flex; flex-direction:column; gap:4px;
}
.why-chart-node-why > .why-chart-card{ border-left-color:var(--pt-accent); }
.why-chart-node-root > .why-chart-card{ border-left-color:var(--pt-success); background:rgba(74,222,128,.08); }
.why-chart-node-linked > .why-chart-card{ background:rgba(74,222,128,.12); }
.why-chart-badge{
  font-size:10px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--pt-text-dim); font-weight:700;
}
.why-chart-node-root .why-chart-badge{ color:var(--pt-success); }
.why-chart-textarea{
  width:100%; padding:5px 7px; font:inherit; font-size:12px;
  background:var(--pt-bg); color:var(--pt-text);
  border:1px solid var(--pt-border-2); border-radius:4px;
  resize:vertical; min-height:40px;
}
.why-chart-textarea:focus{ outline:none; border-color:var(--pt-accent-2); }
.why-chart-content{ font-size:12px; line-height:1.4; color:var(--pt-text); word-break:break-word; }
.why-chart-actions{
  display:flex; flex-wrap:wrap; gap:4px; margin-top:2px; align-items:center;
}
.why-chart-rm{
  margin-left:auto; background:transparent; border:0; color:var(--pt-danger);
  cursor:pointer; font-size:16px; padding:0 2px; line-height:1;
}
.why-chart-actions .why-btn-sm{ padding:3px 7px; font-size:10px; }
.why-chip-linked{
  display:inline-block; padding:2px 6px; border-radius:8px;
  background:var(--pt-success-bg); color:var(--pt-success);
  font-size:10px; font-weight:700;
}

/* Appendix uses the same chart */
.why-appendix-tree{ overflow-x:auto; }
.why-appendix-tree > .why-chart{ justify-content:flex-start; }
.why-appendix-tree .why-chart-content{ font-size:12px; }

@media print{
  .why-chart-card{ background:#fff !important; border-color:#999 !important; }
  .why-chart-node-why > .why-chart-card{ border-left-color:#0050d0 !important; }
  .why-chart-node-root > .why-chart-card{ background:#d4eed4 !important; border-left-color:#2a7a2a !important; }
  .why-chart-node-linked > .why-chart-card{ background:#e6f7e6 !important; }
  .why-chart-badge{ color:#333 !important; }
  .why-chart-node-root .why-chart-badge{ color:#0a2a0a !important; }
  .why-chart-content{ color:#000 !important; }
  .why-chart-children > li::before,
  .why-chart-children > li::after,
  .why-chart > li > .why-chart-children::before{
    border-color:#666 !important;
  }
}

/* ---- 5 Why org-chart — r3 refinements ---- */
.why-tree-wrap{ position:relative; }
.why-chart-card{ width:160px; min-height:56px; padding:7px 9px; }
.why-chart-textarea{ font-size:11.5px; min-height:36px; }
.why-chart-badge{ font-size:9.5px; }

.why-scroll-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:30px; height:52px; border-radius:6px;
  background:rgba(13,17,23,.85); color:var(--pt-accent);
  border:1px solid var(--pt-border-2); cursor:pointer;
  z-index:5; font-size:14px; line-height:1;
  align-items:center; justify-content:center;
  display:none; padding:0;
}
.why-scroll-btn.why-scroll-show{ display:flex; }
.why-scroll-btn:hover{ background:rgba(121,192,255,.15); border-color:var(--pt-accent); }
.why-scroll-left{ left:2px; }
.why-scroll-right{ right:2px; }
.why-tree{ padding-left:36px; padding-right:36px; }

@media print{
  .why-scroll-btn{ display:none !important; }
  .why-tree{ padding:0 !important; }
}

/* ---- Fishbone modal (Phase 19) ---- */
.fb-modal, .fb-modal *{ box-sizing:border-box; }
.fb-modal{
  --pt-bg:#0d1117; --pt-card:#161b22; --pt-card-2:#1c232b;
  --pt-border:#30363d; --pt-border-2:#3f4650;
  --pt-text:#c9d1d9; --pt-text-dim:#8b949e; --pt-text-mute:#5a6470;
  --pt-heading:#ffffff; --pt-accent:#79c0ff; --pt-accent-2:#006cff; --pt-accent-3:#00d9ff;
  --pt-success:#4ade80; --pt-success-bg:rgba(74,222,128,.15);
  --pt-danger:#ff6b6b; --pt-danger-bg:rgba(255,107,107,.15);
  --pt-radius-xl:12px; --pt-shadow-lg:0 20px 50px rgba(0,0,0,.55);
  position:fixed; inset:0; z-index:9600;
  display:flex; align-items:center; justify-content:center;
  font:14px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--pt-text);
}
.fb-modal-bg{ position:absolute; inset:0; background:rgba(0,0,0,.75); }
.fb-modal-card{
  position:relative; background:var(--pt-card);
  border:1px solid var(--pt-border); border-radius:var(--pt-radius-xl);
  box-shadow:var(--pt-shadow-lg);
  width:96vw; max-width:1500px; height:92vh; max-height:960px;
  display:flex; flex-direction:column; overflow:hidden;
}
.fb-modal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:18px 24px 12px; border-bottom:1px solid var(--pt-border); }
.fb-title{ margin:0; font-size:19px; color:var(--pt-heading); font-weight:800; }
.fb-sub{ margin:4px 0 0; color:var(--pt-text-dim); font-size:12px; }
.fb-x{ background:none; border:0; color:var(--pt-text-dim); font-size:26px; cursor:pointer; line-height:1; padding:0 4px; }
.fb-x:hover{ color:var(--pt-heading); }
.fb-modal-body{ flex:1; min-height:0; position:relative; padding:0; }
.fb-modal-foot{ display:flex; justify-content:flex-end; gap:10px; padding:12px 24px; border-top:1px solid var(--pt-border); background:var(--pt-card-2); }
.fb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:9px 16px; border:0; border-radius:6px; font:inherit;
  font-size:13px; font-weight:700; cursor:pointer; line-height:1.2;
}
.fb-btn-primary{ background:linear-gradient(135deg,var(--pt-accent-2),var(--pt-accent-3)); color:#fff; }
.fb-btn-primary:hover{ filter:brightness(1.08); }
.fb-btn-secondary{ background:#21262d; color:var(--pt-text); }
.fb-btn-secondary:hover{ background:#2a313a; color:#fff; }

/* Scroll wrap */
.fb-canvas-wrap{ position:relative; width:100%; height:100%; overflow:hidden; }
.fb-canvas-scroll{ width:100%; height:100%; overflow-x:auto; overflow-y:auto; padding:16px; }
.fb-scroll-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:64px; border-radius:6px;
  background:rgba(13,17,23,.9); color:var(--pt-accent);
  border:1px solid var(--pt-border-2); cursor:pointer; z-index:6;
  font-size:16px; line-height:1;
  align-items:center; justify-content:center;
  display:none; padding:0;
}
.fb-scroll-btn.fb-scroll-show{ display:flex; }
.fb-scroll-btn:hover{ background:rgba(121,192,255,.15); border-color:var(--pt-accent); }
.fb-scroll-left{ left:4px; }
.fb-scroll-right{ right:4px; }

/* Canvas */
.fb-canvas{ position:relative; width:1400px; height:800px; min-width:1400px; min-height:800px; }
.fb-svg{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.fb-spine{ stroke:var(--pt-accent); stroke-width:4; }
.fb-head{ fill:var(--pt-accent-2); stroke:var(--pt-accent); stroke-width:2; }
.fb-bone{ stroke:var(--pt-border-2); stroke-width:2.5; }

.fb-head-label{
  position:absolute;
  left:1180px; top:340px;
  width:200px; padding:8px 12px;
  background:var(--pt-card-2); border:1px solid var(--pt-border-2); border-radius:8px;
  color:var(--pt-text); font-size:12px; line-height:1.4;
  box-shadow:0 4px 14px rgba(0,0,0,.35);
}
.fb-head-kicker{ display:block; font-size:9px; text-transform:uppercase; letter-spacing:.06em; color:var(--pt-accent); font-weight:800; margin-bottom:3px; }
.fb-head-text{ color:var(--pt-text); word-break:break-word; }

/* Category cards */
.fb-cat{
  position:absolute;
  width:240px;
  background:var(--pt-card-2);
  border:1px solid var(--pt-border-2);
  border-radius:8px;
  padding:8px 10px;
  display:flex; flex-direction:column; gap:6px;
}
.fb-cat-label{
  width:100%; padding:5px 8px; font:inherit; font-size:12px; font-weight:700;
  background:var(--pt-bg); color:var(--pt-accent);
  border:1px solid var(--pt-border-2); border-radius:4px;
  text-transform:uppercase; letter-spacing:.04em;
}
.fb-cat-label:focus{ outline:none; border-color:var(--pt-accent-2); }
.fb-chips{ display:flex; flex-direction:column; gap:5px; max-height:180px; overflow-y:auto; }
.fb-chips-empty{ font-size:11px; color:var(--pt-text-mute); font-style:italic; margin:2px 0; }
.fb-chip{
  background:var(--pt-bg); border:1px solid var(--pt-border); border-radius:6px;
  padding:5px 7px;
  display:flex; flex-direction:column; gap:4px;
}
.fb-chip-linked{ background:rgba(74,222,128,.1); border-color:var(--pt-success); }
.fb-chip-text{
  width:100%; font:inherit; font-size:11.5px; line-height:1.35;
  background:transparent; color:var(--pt-text);
  border:0; padding:0; resize:none; overflow:hidden;
}
.fb-chip-text:focus{ outline:none; }
.fb-chip-actions{ display:flex; gap:4px; align-items:center; justify-content:flex-end; }
.fb-chip-btn{
  padding:2px 6px; font:inherit; font-size:10px; font-weight:700;
  background:transparent; color:var(--pt-accent); border:1px solid var(--pt-border-2);
  border-radius:3px; cursor:pointer;
}
.fb-chip-btn:hover{ background:rgba(121,192,255,.15); border-color:var(--pt-accent); }
.fb-chip-rm{ background:transparent; border:0; color:var(--pt-danger); font-size:14px; line-height:1; cursor:pointer; padding:0 3px; }
.fb-chip-linked-tag{ font-size:10px; color:var(--pt-success); font-weight:700; }
.fb-add-btn{
  padding:5px 10px; font:inherit; font-size:11px; font-weight:700;
  background:transparent; color:var(--pt-text-dim);
  border:1px dashed var(--pt-border-2); border-radius:4px; cursor:pointer;
}
.fb-add-btn:hover{ color:var(--pt-accent); border-color:var(--pt-accent); }

/* Appendix */
.fb-appendix-head{ padding:8px 12px; background:var(--pt-card-2); border-left:3px solid var(--pt-accent); border-radius:4px; margin-bottom:14px; font-size:13px; color:var(--pt-text); }
.fb-appendix-chart{ margin-bottom:16px; }
.fb-svg-print{ width:100%; max-width:780px; height:auto; display:block; margin:0 auto; }
.fb-svg-print .fb-spine-print{ stroke:#333; stroke-width:2.5; }
.fb-svg-print .fb-head-print{ fill:#0050d0; stroke:#0050d0; stroke-width:2; }
.fb-svg-print .fb-bone-print{ stroke:#666; stroke-width:1.8; }
.fb-svg-print .fb-cat-label-print{ fill:#000; font-size:13px; font-weight:700; font-family:Arial,sans-serif; }
.fb-svg-print .fb-head-text-print{ fill:#fff; font-size:12px; font-weight:700; font-family:Arial,sans-serif; }
.fb-appendix-bones{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.fb-appendix-bone{ padding:8px 10px; border:1px solid var(--pt-border); border-radius:6px; background:var(--pt-card-2); }
.fb-appendix-bone h4{ margin:0 0 6px; font-size:12px; color:var(--pt-accent); text-transform:uppercase; letter-spacing:.04em; }
.fb-appendix-bone ul{ margin:0; padding-left:18px; font-size:12px; }
.fb-appendix-bone li{ margin-bottom:3px; color:var(--pt-text); }
.fb-appendix-empty{ margin:0; color:var(--pt-text-mute); font-size:11px; font-style:italic; }
.fb-appendix-linked{ color:var(--pt-success); font-size:10px; font-weight:700; margin-left:4px; }

@media print{
  .fb-modal, .fb-modal *{ display:none !important; }
  .fb-appendix-head{ background:#f0f4fa !important; border-left-color:#0050d0 !important; color:#000 !important; }
  .fb-svg-print .fb-spine-print{ stroke:#333 !important; }
  .fb-svg-print .fb-head-print{ fill:#0050d0 !important; }
  .fb-svg-print .fb-bone-print{ stroke:#666 !important; }
  .fb-appendix-bone{ background:#fff !important; border-color:#999 !important; }
  .fb-appendix-bone h4{ color:#000 !important; }
  .fb-appendix-bone li{ color:#000 !important; }
}

/* ---- Phase 19 r2: fishbone strip on risks screen ---- */
.ra-fb-strip{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  background:#f4f8ff; border:1px solid #b8d0ea; border-radius:6px;
  padding:10px 14px; margin-bottom:14px; font-size:13px; color:#0a1520;
}
.ra-fb-strip-title{ font-weight:600; color:#003a8c; }

/* ============================================================
   Fishbone — solid fish silhouette (Phase 19 r3)
   ============================================================ */
.fb-svg{ width:100%; height:auto; display:block; min-width:1000px; }
.fb-body{
  fill:#1c232b;
  stroke:#3f4650;
  stroke-width:1.5;
}
.fb-tail{
  fill:#1c232b;
  stroke:#3f4650;
  stroke-width:1.5;
}
.fb-spine{
  stroke:#006cff;
  stroke-width:8;
  stroke-linecap:round;
}
.fb-bone{
  fill:none;
  stroke:#006cff;
  stroke-width:6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.fb-eye{ fill:#79c0ff; }
.fb-eye-inner{ fill:#0d1117; }
.fb-body-label{
  fill:#79c0ff;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.10em;
}
.fb-body-text{
  fill:#c9d1d9;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:11px;
}

.fb-chip-fo{ overflow:visible; }
.fb-chip-card{
  display:flex; flex-direction:column; gap:5px;
  background:#161b22; border:1px solid #30363d; border-radius:10px;
  padding:7px 8px; height:100%; box-sizing:border-box; overflow:hidden;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:11px; color:#c9d1d9;
  box-shadow:0 3px 10px rgba(0,0,0,.35);
}
.fb-chip-up{
  border-bottom-left-radius:0; border-bottom-right-radius:0;
  border-bottom-color:#006cff; border-bottom-width:3px;
}
.fb-chip-down{
  border-top-left-radius:0; border-top-right-radius:0;
  border-top-color:#006cff; border-top-width:3px;
}
.fb-chip-cat{
  font-weight:800; font-size:11px; color:#79c0ff;
  text-transform:uppercase; letter-spacing:.06em;
  text-align:center; padding:2px 0 5px;
  border-bottom:1px dashed #30363d;
  outline:none; cursor:text;
}
.fb-chip-cat:focus{ border-bottom-color:#79c0ff; color:#fff; }
.fb-chip-risks{
  display:flex; flex-direction:column; gap:3px;
  flex:1; overflow-y:auto; padding-right:2px;
}
.fb-mini-chip{
  display:flex; align-items:flex-start; gap:3px;
  padding:3px 5px; background:#0d1117;
  border:1px solid #30363d; border-radius:4px; font-size:10px;
}
.fb-mini-linked{
  background:rgba(74,222,128,.12);
  border-color:rgba(74,222,128,.45);
}
.fb-mini-text{ flex:1; word-break:break-word; line-height:1.25; color:#c9d1d9; }
.fb-mini-btn{
  border:0; background:transparent; cursor:pointer;
  padding:0 2px; font-size:11px; line-height:1;
}
.fb-mini-push{ color:#006cff; font-weight:700; }
.fb-mini-push:hover{ color:#79c0ff; }
.fb-mini-rm{ color:#ff6b6b; font-size:13px; }
.fb-mini-ok{ color:#4ade80; font-weight:700; font-size:11px; }
.fb-chip-add{
  background:transparent; border:1px dashed #3f4650; border-radius:4px;
  color:#8b949e; font:inherit; font-size:10px; padding:3px;
  cursor:pointer; text-align:center;
}
.fb-chip-add:hover{ border-color:#79c0ff; color:#79c0ff; }

@media print{
  .fb-svg{ min-width:0; }
}

/* ============================================================
   Fishbone r4 — head label + scrollable canvas
   ============================================================ */
.fb-head-label{
  fill:#79c0ff;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:10px;
  font-weight:800;
  letter-spacing:.10em;
}
.fb-head-text{
  fill:#ffffff;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:11px;
  font-weight:600;
}
.fb-gill{
  fill:none;
  stroke:#3f4650;
  stroke-width:2;
}
/* Canonical canvas: scrollable at native SVG size */
.fb-canvas-scroll{
  border:1px solid #30363d;
  border-radius:8px;
  background:linear-gradient(180deg,#0d1117 0%,#0b0e13 100%);
  max-height:62vh;
  overflow:auto;
}
.fb-canvas-scroll .fb-canvas{
  border:0; background:transparent; padding:0;
  display:inline-block;
}
.fb-canvas{ padding:8px; }
.fb-svg{ display:block; min-width:1400px; min-height:700px; }
.fb-scroll-hint{
  font-size:11px; color:#5a6470; text-align:center; margin:6px 0 0;
}

/* ============================================================
   Hierarchy of Controls checker (Phase 20)
   ============================================================ */
.hoc-panel{
  margin-top:18px;
  background:#ffffff;
  border:1px solid #b8d0ea;
  border-radius:8px;
  padding:16px 18px;
}
.hoc-header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:12px; padding-bottom:8px;
  border-bottom:1px solid #d5e0ec;
}
.hoc-title{
  font-size:12px; font-weight:800; color:#003a8c;
  text-transform:uppercase; letter-spacing:.05em;
}
.hoc-badge{
  font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; background:#d4eed4; color:#0a2a0a;
  padding:3px 8px; border-radius:10px;
}
.hoc-grid{ display:grid; grid-template-columns:1.15fr 1fr; gap:20px; align-items:stretch; }
@media (max-width:720px){ .hoc-grid{ grid-template-columns:1fr; } }

.hoc-bars{ display:flex; flex-direction:column; gap:6px; justify-content:center; }
.hoc-bar-row{
  display:grid; grid-template-columns:110px 1fr 30px;
  align-items:center; gap:8px; font-size:12px;
}
.hoc-bar-label{ color:#3f4a5a; font-weight:600; }
.hoc-bar-track{
  height:16px; background:#edf2f8; border-radius:8px;
  overflow:hidden; position:relative;
}
.hoc-bar-fill{ height:100%; border-radius:8px; transition:width .25s; }
.hoc-bar-elim{ background:#2a7a2a; }
.hoc-bar-subs{ background:#1a8a8a; }
.hoc-bar-eng { background:#0050d0; }
.hoc-bar-adm { background:#d9963a; }
.hoc-bar-ppe { background:#c04040; }
.hoc-bar-count{ color:#0a1520; font-weight:700; text-align:right; font-size:12px; }

.hoc-gauge{
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:6px;
  border:1px solid #d5e0ec; border-radius:8px;
  padding:14px; background:#f8fafc;
}
.hoc-gauge-value{
  font-size:32px; font-weight:800; color:#0a1520; line-height:1;
  font-variant-numeric:tabular-nums;
}
.hoc-gauge-band{
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em;
}
.hoc-gauge-minimal  .hoc-gauge-band{ color:#2a7a2a; }
.hoc-gauge-periodic .hoc-gauge-band{ color:#4a8a2a; }
.hoc-gauge-regular  .hoc-gauge-band{ color:#b06a00; }
.hoc-gauge-constant .hoc-gauge-band{ color:#a02622; }
.hoc-gauge-track{
  width:100%; height:10px; background:#edf2f8; border-radius:5px;
  overflow:hidden; margin-top:4px;
}
.hoc-gauge-fill{ height:100%; border-radius:5px; transition:width .25s; }
.hoc-gauge-minimal  .hoc-gauge-fill{ background:#2a7a2a; }
.hoc-gauge-periodic .hoc-gauge-fill{ background:#6ab04a; }
.hoc-gauge-regular  .hoc-gauge-fill{ background:#d9963a; }
.hoc-gauge-constant .hoc-gauge-fill{ background:#c04040; }
.hoc-gauge-desc{
  font-size:11px; color:#5a6875; line-height:1.5;
  text-align:center; margin-top:4px;
}
.hoc-gauge-uncontrolled .hoc-gauge-value{ color:#a02622; }

.hoc-warn{
  margin-top:12px; padding:10px 12px;
  background:#fbe6a2; border-left:4px solid #b8860b;
  border-radius:4px; color:#4a3400; font-size:12px; line-height:1.5;
}
.hoc-empty{
  color:#5a6875; font-style:italic; font-size:13px;
  text-align:center; padding:12px 0; margin:0;
}

/* Print-time compact summary */
.ra-hoc-summary{
  margin-top:4px; padding-top:3px;
  border-top:1px dashed #999;
  font-size:8px; color:#000; line-height:1.4;
}
.ra-hoc-sup{
  display:inline-block; margin-top:3px;
  padding:1px 6px; border-radius:3px;
  font-size:8px; font-weight:700;
}
.ra-hoc-sup-minimal      { background:#d4eed4; color:#0a2a0a; }
.ra-hoc-sup-periodic     { background:#e6f2c0; color:#3a5a00; }
.ra-hoc-sup-regular      { background:#fbe6a2; color:#4a3400; }
.ra-hoc-sup-constant     { background:#f4b1ad; color:#4a0a08; }
.ra-hoc-sup-uncontrolled { background:#fbe0df; color:#7a1a17; }
.ra-hoc-footnote{
  font-size:7.5px; color:#7a5a00; margin-top:2px; font-style:italic;
}

@media print{
  .ra-hoc-summary{ color:#000 !important; }
  .ra-hoc-sup{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
}

/* ============================================================
   Risk heat map (Phase 21)
   ============================================================ */
.hm-filters{
  margin-top:16px; padding:14px 16px;
  background:var(--pt-card-2); border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-lg);
}
.hm-filter-row{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
.hm-field{ display:flex; flex-direction:column; gap:4px; min-width:140px; }
.hm-field > span{ font-size:11px; color:var(--pt-text-dim); text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
.hm-field input, .hm-field select{
  padding:8px 10px; background:var(--pt-bg); color:var(--pt-text);
  border:1px solid var(--pt-border); border-radius:var(--pt-radius);
  font:inherit; font-size:13px;
}
.hm-field input:focus, .hm-field select:focus{ border-color:var(--pt-accent-2); outline:none; }
.hm-filter-actions{ display:flex; gap:8px; margin-left:auto; }

.hm-grid-wrap{
  margin-top:18px; overflow:auto;
  background:var(--pt-card-2); border:1px solid var(--pt-border);
  border-radius:var(--pt-radius-lg); padding:12px;
}
.hm-grid{
  width:100%; border-collapse:separate; border-spacing:4px;
  table-layout:fixed; min-width:560px;
}
.hm-corner{
  width:70px; padding:6px; font-size:10px; color:var(--pt-text-dim);
  text-transform:uppercase; letter-spacing:.04em; text-align:center;
  background:transparent; border:0;
}
.hm-col-head, .hm-row-head{
  padding:6px 4px; text-align:center; font-size:12px; font-weight:700;
  color:var(--pt-text); background:var(--pt-card); border:1px solid var(--pt-border);
  border-radius:6px;
}
.hm-col-head small, .hm-row-head small{
  display:block; font-weight:400; font-size:10px; color:var(--pt-text-dim);
  margin-top:2px; text-transform:none; letter-spacing:0;
}
.hm-cell{
  aspect-ratio:1/1; border-radius:8px; text-align:center; vertical-align:middle;
  cursor:default; transition:transform .12s, filter .12s;
  position:relative; border:1px solid rgba(0,0,0,.25);
}
.hm-cell[data-hm-count]:not(.hm-cell-empty){ cursor:pointer; }
.hm-cell[data-hm-count]:not(.hm-cell-empty):hover{ transform:scale(1.04); filter:brightness(1.15); }
.hm-cell-empty{ opacity:.55; }
.hm-count{
  display:inline-block; min-width:22px; padding:2px 8px;
  background:rgba(0,0,0,.35); color:#fff; font-weight:800; font-size:13px;
  border-radius:12px; font-variant-numeric:tabular-nums;
}
.hm-band-low{ background:#4ade80; }
.hm-band-medium{ background:#f0b429; }
.hm-band-high{ background:#f97316; }
.hm-band-critical{ background:#dc2626; }

.hm-panel{
  position:fixed; inset:0; z-index:9500;
  display:flex; justify-content:flex-end;
}
.hm-panel-bg{ position:absolute; inset:0; background:rgba(0,0,0,.6); }
.hm-panel-card{
  position:relative; background:var(--pt-card);
  border-left:1px solid var(--pt-border);
  width:min(560px,92vw); max-height:100vh;
  display:flex; flex-direction:column;
  box-shadow:-20px 0 50px rgba(0,0,0,.5);
}
.hm-panel-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  padding:20px 24px 14px; border-bottom:1px solid var(--pt-border);
}
.hm-panel-band{
  display:inline-block; padding:3px 10px; border-radius:10px;
  font-size:11px; font-weight:800; text-transform:uppercase;
  letter-spacing:.05em; color:#0a1520;
}
.hm-panel-x{
  background:none; border:0; color:var(--pt-text-dim);
  font-size:26px; cursor:pointer; line-height:1;
}
.hm-panel-x:hover{ color:var(--pt-heading); }
.hm-panel-body{ padding:14px 24px 24px; overflow-y:auto; flex:1; }
.hm-risk{
  border:1px solid var(--pt-border); border-radius:8px;
  padding:12px 14px; margin-bottom:10px; background:var(--pt-card-2);
}
.hm-risk-ref{ font-size:11px; color:var(--pt-text-dim); margin-bottom:6px; }
.hm-risk-ref a{ color:var(--pt-accent); text-decoration:none; font-weight:700; }
.hm-risk-ref a:hover{ text-decoration:underline; }
.hm-risk-haz{ font-size:12px; color:var(--pt-text); margin-bottom:6px; line-height:1.5; }
.hm-risk-desc{ font-size:13px; color:var(--pt-heading); margin-bottom:6px; line-height:1.5; }
.hm-risk-meta{ font-size:11px; color:var(--pt-text-dim); }

@media print{
  .hm-filters, .hm-panel, .pt-btn{ display:none !important; }
  .hm-grid-wrap{ background:#fff !important; border-color:#999 !important; }
  .hm-cell{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
}

/* ============================================================
   JSA export (Phase 22)
   ============================================================ */
.pt-jsa-page{ padding-top:24px !important; background:#eef2f7; color:#111a26; }
.pt-jsa-page *{ box-sizing:border-box; }

.jsa-toolbar{
  max-width:1240px; margin:0 auto 14px; display:flex; gap:12px;
  align-items:center; flex-wrap:wrap;
}
.jsa-tbtn{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border:1px solid #c8d1dd; border-radius:6px;
  background:#fff; color:#0050d0; font:inherit; font-size:13px;
  font-weight:700; text-decoration:none; cursor:pointer;
}
.jsa-tbtn:hover{ background:#e6f0ff; }
.jsa-tbtn-primary{ background:linear-gradient(135deg,#0050d0,#0090ff); color:#fff; border-color:transparent; }
.jsa-tbtn-primary:hover{ filter:brightness(1.05); background:linear-gradient(135deg,#0050d0,#0090ff); }
.jsa-tcheck{ display:flex; align-items:center; gap:6px; font-size:13px; color:#3f4a5a; margin-left:auto; }

.jsa-sheet{
  max-width:1240px; margin:0 auto; padding:24px 28px 32px;
  background:#fff; color:#111a26;
  box-shadow:0 4px 24px rgba(20,40,80,.08);
  border:1px solid #c8d1dd; border-radius:6px;
}
.jsa-head{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-bottom:12px; border-bottom:2px solid #222; }
.jsa-head-left, .jsa-head-right{ flex:0 0 180px; }
.jsa-head-left img, .jsa-logo{ max-height:64px; max-width:180px; display:block; }
.jsa-head-center{ flex:1 1 auto; text-align:center; }
.jsa-head-center h1{ margin:0; font-size:26px; font-weight:800; letter-spacing:.02em; color:#000; }
.jsa-head-sub{ font-size:14px; color:#3f4a5a; margin-top:4px; }

.jsa-meta{ width:100%; border-collapse:collapse; margin:12px 0 18px; font-size:12px; }
.jsa-meta th, .jsa-meta td{ border:1px solid #c8d1dd; padding:5px 8px; text-align:left; vertical-align:top; }
.jsa-meta th{ background:#eef2f7; width:110px; font-weight:700; color:#3f4a5a; }

.jsa-step{ margin-bottom:22px; page-break-inside:auto; }
.jsa-step-head{ padding:8px 12px; background:#dbe4f0; border:1px solid #c8d1dd; border-bottom:0; border-radius:6px 6px 0 0; display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.jsa-step-num{ font-weight:800; font-size:13px; color:#003a8c; text-transform:uppercase; letter-spacing:.05em; }
.jsa-step-title{ font-weight:700; font-size:15px; color:#000; }
.jsa-step-desc{ font-size:12px; color:#3f4a5a; font-style:italic; }

.jsa-table{ width:100%; border-collapse:collapse; font-size:12px; table-layout:fixed; }
.jsa-table th, .jsa-table td{ border:1px solid #c8d1dd; padding:6px 8px; vertical-align:top; word-break:break-word; overflow-wrap:anywhere; }
.jsa-table thead th{ background:#f0f4fa; text-align:left; font-weight:700; font-size:11px; color:#000; text-transform:uppercase; letter-spacing:.03em; }
.jsa-table tbody tr:nth-child(even) td{ background:#fbfcfe; }
.jsa-ctr{ text-align:center; }
.jsa-mono{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:11px; color:#003a8c; }
.jsa-small{ font-size:10px; color:#3f4a5a; margin-top:2px; }
.jsa-muted{ color:#8899aa; }

.jsa-ctrl{ margin-bottom:3px; line-height:1.35; }
.jsa-ctrl-tag{ display:inline-block; padding:1px 6px; border-radius:3px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; margin-right:4px; color:#fff; }
.jsa-ctrl-elimination{ background:#2a7a2a; }
.jsa-ctrl-substitution{ background:#1a8a8a; }
.jsa-ctrl-engineering{ background:#0050d0; }
.jsa-ctrl-administrative{ background:#d9963a; }
.jsa-ctrl-ppe{ background:#c04040; }
.jsa-ctrl-total{ margin-top:6px; padding-top:4px; border-top:1px dashed #999; font-weight:700; font-size:11px; color:#3f4a5a; }
.jsa-ctrl-elim{ color:#0a2a0a; background:#d4eed4; padding:4px 6px; border-radius:3px; border-top:0; }

.jsa-band-low{ background:#eaf8ea !important; }
.jsa-band-medium{ background:#fdf5d7 !important; }
.jsa-band-high{ background:#fde6cc !important; }
.jsa-band-critical{ background:#fbdada !important; }

.jsa-empty{ text-align:center; color:#8899aa; padding:20px 0; font-style:italic; }

.jsa-signatures{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:30px; }
.jsa-sig{ display:flex; flex-direction:column; gap:6px; }
.jsa-sig-line{ height:34px; border-bottom:1px solid #222; }
.jsa-sig-label{ font-size:11px; color:#3f4a5a; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }

.jsa-foot{
  margin-top:24px; padding-top:10px; border-top:1px solid #c8d1dd;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:11px; color:#3f4a5a;
}

.jsa-appendices{ margin-top:26px; padding-top:16px; border-top:2px solid #c8d1dd; }
.jsa-h2{ font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:#003a8c; margin:0 0 12px; }
.jsa-appendix{ border:1px solid #c8d1dd; border-radius:6px; padding:12px 14px; margin-bottom:12px; page-break-inside:avoid; }
.jsa-appendix-head{ display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; padding-bottom:6px; border-bottom:1px solid #e2e9f2; }
.jsa-appendix-code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:11px; font-weight:700; color:#003a8c; }
.jsa-appendix-type{ font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:#3f4a5a; font-weight:700; }

@page{ size:A4 portrait; margin:10mm; }
@media print{
  .pt-jsa-page{ background:#fff !important; padding:0 !important; }
  .jsa-sheet{ box-shadow:none; border:0; padding:0; max-width:none; }
  .jsa-toolbar{ display:none !important; }
  .jsa-table tbody tr:nth-child(even) td{ background:#fff !important; }
  .jsa-band-low{ background:#eaf8ea !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .jsa-band-medium{ background:#fdf5d7 !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .jsa-band-high{ background:#fde6cc !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .jsa-band-critical{ background:#fbdada !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .jsa-ctrl-tag{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .jsa-signatures{ page-break-inside:avoid; }
}

/* ============================================================
   5 Why org-chart — v2 (Phase 23 fix)
   Overrides all earlier .why-chart* rules. Every connector is
   drawn from a parent card down to a rail, then from the rail
   down into each child card. The problem statement is now a
   virtual top node so the same pattern applies at the top level.
   ============================================================ */

.why-chart,
.why-chart-children{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
  display:flex !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:20px !important;
  position:relative !important;
}
.why-chart-children{
  padding-top:28px !important;
}

.why-chart > li,
.why-chart-children > li{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  position:relative !important;
  padding:0 !important;
  flex:0 0 auto !important;
}

/* Drop from parent card down into the rail (centre of children) */
.why-chart-children::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;
  left:50% !important;
  width:2px !important;
  height:14px !important;
  background:var(--pt-border-2) !important;
  transform:translateX(-50%) !important;
  pointer-events:none !important;
}

/* Left half of horizontal rail above each child */
.why-chart-children > li::before{
  content:'' !important;
  position:absolute !important;
  top:-14px !important;
  right:50% !important;
  left:-20px !important;
  height:2px !important;
  background:var(--pt-border-2) !important;
  pointer-events:none !important;
}

/* Right half of rail + vertical drop from rail down to child card */
.why-chart-children > li::after{
  content:'' !important;
  position:absolute !important;
  top:-14px !important;
  left:50% !important;
  right:-20px !important;
  height:14px !important;
  border-top:2px solid var(--pt-border-2) !important;
  border-left:2px solid var(--pt-border-2) !important;
  pointer-events:none !important;
}

.why-chart-children > li:first-child::before{ background:transparent !important; }
.why-chart-children > li:last-child::after{ border-top:0 !important; }
.why-chart-children > li:only-child::before{ display:none !important; }
.why-chart-children > li:only-child::after{ border-top:0 !important; }

/* Problem-statement card gets a wider layout and a distinct badge */
.why-chart-node-problem > .why-chart-card{
  min-width:280px !important;
  max-width:520px !important;
  width:auto !important;
}
.why-chart-node-problem .why-chart-badge{
  color:var(--pt-accent) !important;
}
.why-chart-textarea-problem{
  min-height:52px !important;
  font-size:12px !important;
}

/* Neutralise the old .why-problem block that's no longer rendered */
.why-problem{ display:none !important; }

/* ============================================================
   Fishbone v2 — detailed fish, HTML chip overlay (Phase 23)
   Overrides all earlier .fb-* rules.
   ============================================================ */

.fb-modal-card{
  width:min(96vw,1700px) !important;
  max-height:94vh !important;
}
.fb-modal-body{ padding:14px 22px 8px !important; overflow:auto !important; }

.fb-canvas-scroll{
  border:1px solid var(--pt-border);
  border-radius:8px;
  background:linear-gradient(180deg,#0d1117 0%,#0b0e13 100%);
  max-height:65vh;
  overflow:auto;
  padding:0;
}
.fb-canvas{
  display:inline-block;
  padding:8px;
}
.fb-canvas-inner{
  position:relative;
  width:1600px;
  height:1000px;
}
.fb-svg{
  display:block;
  width:1600px;
  height:1000px;
  min-width:0 !important;
  min-height:0 !important;
}

/* HTML chip overlay */
.fb-chips-overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.fb-chip-wrapper{
  position:absolute;
  pointer-events:auto;
}

/* Fish body / parts */
.fb-body{
  fill:#1c232b !important;
  stroke:#3f4650 !important;
  stroke-width:2 !important;
}
.fb-tail{
  fill:#1c232b !important;
  stroke:#3f4650 !important;
  stroke-width:2 !important;
}
.fb-dorsal-fin,
.fb-pectoral-fin,
.fb-anal-fin{
  fill:#1c232b !important;
  stroke:#3f4650 !important;
  stroke-width:2 !important;
}
.fb-gill{
  fill:none !important;
  stroke:#3f4650 !important;
  stroke-width:2 !important;
}
.fb-mouth{
  fill:none !important;
  stroke:#3f4650 !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
}

/* Backbone + ribs */
.fb-spine{
  stroke:#006cff !important;
  stroke-width:9 !important;
  stroke-linecap:round !important;
}
.fb-rib{
  stroke:#006cff !important;
  stroke-width:6 !important;
  stroke-linecap:round !important;
}
.fb-rib-tip{
  fill:#006cff !important;
  stroke:#79c0ff !important;
  stroke-width:2 !important;
}

/* Eye */
.fb-eye{ fill:#79c0ff !important; }
.fb-eye-inner{ fill:#0d1117 !important; }

/* Chip card (HTML overlay) */
.fb-chip-card{
  display:flex; flex-direction:column; gap:5px;
  background:#161b22; border:1px solid #30363d; border-radius:10px;
  padding:7px 8px; height:100%; box-sizing:border-box; overflow:hidden;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:11px; color:#c9d1d9;
  box-shadow:0 3px 10px rgba(0,0,0,.35);
}
.fb-chip-up{
  border-bottom-left-radius:0;
  border-bottom-right-radius:0;
  border-bottom-color:#006cff;
  border-bottom-width:3px;
}
.fb-chip-down{
  border-top-left-radius:0;
  border-top-right-radius:0;
  border-top-color:#006cff;
  border-top-width:3px;
}
.fb-chip-cat{
  font-weight:800; font-size:11px; color:#79c0ff;
  text-transform:uppercase; letter-spacing:.06em;
  text-align:center; padding:2px 0 5px;
  border-bottom:1px dashed #30363d;
  outline:none; cursor:text;
}
.fb-chip-cat:focus{ border-bottom-color:#79c0ff; color:#fff; }
.fb-chip-risks{
  display:flex; flex-direction:column; gap:3px;
  flex:1; overflow-y:auto; padding-right:2px;
}
.fb-mini-chip{
  display:flex; align-items:flex-start; gap:3px;
  padding:3px 5px; background:#0d1117;
  border:1px solid #30363d; border-radius:4px; font-size:10px;
}
.fb-mini-linked{
  background:rgba(74,222,128,.12);
  border-color:rgba(74,222,128,.45);
}
.fb-mini-text{ flex:1; word-break:break-word; line-height:1.25; color:#c9d1d9; }
.fb-mini-btn{
  border:0; background:transparent; cursor:pointer;
  padding:0 2px; font-size:11px; line-height:1;
}
.fb-mini-push{ color:#006cff; font-weight:700; }
.fb-mini-push:hover{ color:#79c0ff; }
.fb-mini-rm{ color:#ff6b6b; font-size:13px; }
.fb-mini-ok{ color:#4ade80; font-weight:700; font-size:11px; }
.fb-chip-add{
  background:transparent; border:1px dashed #3f4650; border-radius:4px;
  color:#8b949e; font:inherit; font-size:10px; padding:3px;
  cursor:pointer; text-align:center;
}
.fb-chip-add:hover{ border-color:#79c0ff; color:#79c0ff; }

/* Hide any leftover foreignObject chips from the old renderer */
.fb-chip-fo{ display:none !important; }

@media print{
  .fb-scroll-hint{ display:none !important; }
}

/* ============================================================
   Help Button & Panel (Phase 23)
   ============================================================ */
.ra-container { position: relative; }
.ra-help-new-btn {
  position: absolute;
  top: 10px;
  right: -80px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0050d0, #0090ff);
  color: #fff;
  font-size: 34px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,60,150,0.5);
  z-index: 1000;
  border: 3px solid #fff;
  transition: transform 0.2s;
}
.ra-help-new-btn:hover { transform: scale(1.1); }

.ra-help-new-panel {
  position: absolute;
  top: 80px;
  right: -80px;
  width: 340px;
  background: #fff;
  border: 1px solid #96b8e8;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(20,40,80,0.3);
  z-index: 1000;
  display: flex;
  flex-direction: column;
}
.ra-help-new-panel-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 14px; background: #dbe8ff; border-bottom: 1px solid #96b8e8;
  border-radius: 8px 8px 0 0;
}
.ra-help-new-panel-head strong { color: #003a8c; font-size: 15px; }
.ra-help-new-panel-close { background: none; border: 0; color: #2f3a4a; font-size: 22px; cursor: pointer; line-height: 1; }
.ra-help-new-panel-body { padding: 16px; font-size: 13px; line-height: 1.6; color: #111a26; max-height: 500px; overflow-y: auto; }
.ra-help-new-panel-body ul { padding-left: 20px; margin: 8px 0; }
.ra-help-new-panel-body li { margin-bottom: 6px; }

.ra-help-mock-btn {
  display: inline-block;
  padding: 8px 14px;
  background: #e2e9f2;
  border: 1px solid #c8d1dd;
  border-radius: 4px;
  font-weight: 700;
  color: #0a1520;
  font-size: 13px;
  margin: 4px 0;
  pointer-events: none;
}
.ra-help-mock-btn.primary {
  background: linear-gradient(135deg, #0050d0, #0090ff);
  color: #fff;
  border: 0;
}
@media (max-width: 1200px) {
  .ra-help-new-btn { right: 10px; }
  .ra-help-new-panel { right: 10px; }
}
@media (max-width: 600px) {
  .ra-help-new-btn { width: 50px; height: 50px; font-size: 28px; }
  .ra-help-new-panel { width: calc(100vw - 40px); right: 20px; }
}

/* ============================================================
   Tutorial System (Phase 23 r2)
   ============================================================ */
.ra-help-new-btn {
  position: fixed !important;
  bottom: 30px;
  right: 30px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0050d0, #0090ff);
  color: #fff;
  font-size: 36px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 24px rgba(0,60,150,0.6);
  z-index: 9999;
  border: 3px solid #fff;
  transition: transform 0.2s;
}
.ra-help-new-btn:hover { transform: scale(1.1); }

/* Tutorial Box */
.ra-tutorial-box {
  position: fixed;
  bottom: 110px;
  right: 30px;
  width: 340px;
  background: #fff;
  border: 2px solid #0050d0;
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.3);
  z-index: 9998;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ra-tutorial-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px; background: #0050d0; color: #fff;
}
.ra-tutorial-head strong { font-size: 15px; letter-spacing: 0.05em; text-transform: uppercase; }
.ra-tutorial-close { background: none; border: 0; color: #fff; font-size: 22px; cursor: pointer; line-height: 1; }
.ra-tutorial-body {
  padding: 16px; font-size: 14px; line-height: 1.6; color: #111a26;
  min-height: 100px;
}
.ra-tutorial-body p { margin: 0 0 10px; }
.ra-tutorial-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px; background: #f4f8ff; border-top: 1px solid #c8d1dd;
}
.ra-tutorial-foot span { font-size: 12px; color: #5a6875; font-weight: 600; }
.ra-tutorial-btn {
  padding: 8px 16px; border-radius: 6px; font-weight: 700; font-size: 13px;
  cursor: pointer; border: 0; font-family: inherit;
}
.ra-tutorial-next { background: #0050d0; color: #fff; }
.ra-tutorial-next:hover { background: #0040b0; }
.ra-tutorial-prev { background: transparent; color: #5a6875; border: 1px solid #c8d1dd; }
.ra-tutorial-prev:hover { background: #e2e9f2; }

/* Highlight + Arrow */
.ra-tutorial-highlight {
  position: relative !important;
  z-index: 100 !important;
  box-shadow: 0 0 0 4px rgba(255, 0, 0, 0.8), 0 0 20px rgba(255, 0, 0, 0.5) !important;
  border-radius: 4px !important;
  background-color: rgba(255, 255, 255, 0.9) !important;
  transition: all 0.3s ease;
}
.ra-tutorial-arrow {
  position: absolute;
  z-index: 9997;
  pointer-events: none;
  color: #ff0000;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.5));
  animation: bounce-arrow 1s infinite alternate;
}
@keyframes bounce-arrow {
  from { transform: translateY(0); }
  to { transform: translateY(10px); }
}

@media (max-width: 600px) {
  .ra-help-new-btn { width: 50px; height: 50px; font-size: 28px; bottom: 20px; right: 20px; }
  .ra-tutorial-box { width: calc(100vw - 40px); right: 20px; bottom: 80px; }
}

/* ============================================================
   Tutorial System (Phase 23 r3)
   ============================================================ */
.ra-help-new-btn {
  position: fixed !important;
  bottom: 30px;
  right: 30px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0050d0, #0090ff);
  color: #fff;
  font-size: 36px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 24px rgba(0,60,150,0.6);
  z-index: 9999;
  border: 3px solid #fff;
  transition: transform 0.2s;
}
.ra-help-new-btn:hover { transform: scale(1.1); }

.ra-tutorial-box {
  position: fixed;
  bottom: 110px;
  right: 30px;
  width: 360px;
  background: #fff;
  border: 2px solid #0050d0;
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.3);
  z-index: 9998;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ra-tutorial-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px; background: #0050d0; color: #fff;
}
.ra-tutorial-head strong { font-size: 15px; letter-spacing: 0.05em; text-transform: uppercase; }
.ra-tutorial-close { background: none; border: 0; color: #fff; font-size: 22px; cursor: pointer; line-height: 1; }
.ra-tutorial-body {
  padding: 16px; font-size: 14px; line-height: 1.6; color: #111a26;
  min-height: 100px; max-height: 300px; overflow-y: auto;
}
.ra-tutorial-body p { margin: 0 0 10px; }
.ra-tutorial-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px; background: #f4f8ff; border-top: 1px solid #c8d1dd;
}
.ra-tutorial-skip {
  background: transparent; border: 0; color: #888; font-size: 12px;
  text-decoration: underline; cursor: pointer; padding: 4px;
}
.ra-tutorial-skip:hover { color: #333; }
.ra-tutorial-controls { display: flex; gap: 8px; }
.ra-tutorial-btn {
  padding: 8px 16px; border-radius: 6px; font-weight: 700; font-size: 13px;
  cursor: pointer; border: 0; font-family: inherit;
}
.ra-tutorial-next { background: #0050d0; color: #fff; }
.ra-tutorial-next:hover { background: #0040b0; }
.ra-tutorial-prev { background: transparent; color: #5a6875; border: 1px solid #c8d1dd; }
.ra-tutorial-prev:hover { background: #e2e9f2; }

.ra-tutorial-highlight {
  position: relative !important;
  z-index: 100 !important;
  box-shadow: 0 0 0 4px rgba(255, 0, 0, 0.8), 0 0 20px rgba(255, 0, 0, 0.5) !important;
  border-radius: 4px !important;
  background-color: rgba(255, 255, 255, 0.9) !important;
  transition: all 0.3s ease;
}
.ra-tutorial-arrow {
  position: absolute;
  z-index: 9997;
  pointer-events: none;
  color: #ff0000;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.5));
}
.ra-tutorial-arrow.down { animation: bounce-down 1s infinite alternate; }
.ra-tutorial-arrow.up { animation: bounce-up 1s infinite alternate; }

@keyframes bounce-down { from { transform: translateY(0); } to { transform: translateY(10px); } }
@keyframes bounce-up { from { transform: translateY(0); } to { transform: translateY(-10px); } }

@media (max-width: 600px) {
  .ra-help-new-btn { width: 50px; height: 50px; font-size: 28px; bottom: 20px; right: 20px; }
  .ra-tutorial-box { width: calc(100vw - 40px); right: 20px; bottom: 80px; }
}
/* ============================================================
   Tier Modal (Phase 23)
   Used by the in-wizard upsell when a Free user clicks the library.
   ============================================================ */
.pt-tier-modal {
  position: fixed; inset: 0; z-index: 10000;
  display: flex; align-items: center; justify-content: center;
}
.pt-tier-modal-bg {
  position: absolute; inset: 0; background: rgba(0,0,0,.75);
  backdrop-filter: blur(2px);
}
.pt-tier-modal-card {
  position: relative; background: var(--pt-card); border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius-xl); box-shadow: var(--pt-shadow-lg);
  width: 92%; max-width: 900px; max-height: 92vh; overflow-y: auto;
  padding: 32px 36px; color: var(--pt-text);
}
.pt-tier-modal-x {
  position: absolute; top: 16px; right: 20px;
  background: none; border: 0; color: var(--pt-text-dim); font-size: 28px;
  cursor: pointer; line-height: 1;
}
.pt-tier-modal-x:hover { color: var(--pt-heading); }
.pt-tier-modal-head { text-align: center; margin-bottom: 28px; }
.pt-tier-modal-kicker {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .06em; color: var(--pt-accent); margin-bottom: 8px;
}
.pt-tier-modal-title {
  font-size: 26px; font-weight: 800; color: var(--pt-heading);
  margin: 0 0 8px; line-height: 1.25;
}
.pt-tier-modal-sub {
  font-size: 14px; color: var(--pt-text-dim); margin: 0; line-height: 1.5;
}
.pt-tier-modal-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px;
}
@media (max-width: 700px) {
  .pt-tier-modal-grid { grid-template-columns: 1fr; }
  .pt-tier-modal-card { padding: 24px 20px; }
}
.pt-tier-mini {
  background: var(--pt-card-2); border: 1px solid var(--pt-border-2);
  border-radius: var(--pt-radius-lg); padding: 20px;
  display: flex; flex-direction: column;
}
.pt-tier-mini-purple {
  border-color: var(--pt-purple); box-shadow: 0 0 0 1px var(--pt-purple);
}
.pt-tier-mini-name {
  font-size: 18px; font-weight: 800; color: var(--pt-heading); margin-bottom: 4px;
}
.pt-tier-mini-price {
  font-size: 24px; font-weight: 800; color: var(--pt-heading); margin-bottom: 16px;
}
.pt-tier-mini-price small {
  font-size: 13px; color: var(--pt-text-dim); font-weight: 400;
}
.pt-tier-mini-features {
  list-style: none; padding: 0; margin: 0 0 20px; flex-grow: 1;
}
.pt-tier-mini-features li {
  padding: 4px 0 4px 20px; position: relative;
  font-size: 13px; color: var(--pt-text); line-height: 1.4;
}
.pt-tier-mini-features li::before {
  content: "\2713"; position: absolute; left: 0; color: var(--pt-success); font-weight: bold;
}
.pt-tier-mini-purple .pt-tier-mini-features li::before { color: var(--pt-purple-3); }
.pt-tier-modal-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 20px; border-top: 1px solid var(--pt-border); flex-wrap: wrap; gap: 12px;
}
.pt-tier-modal-stay {
  background: transparent; border: 0; color: var(--pt-text-dim);
  font-size: 13px; cursor: pointer; text-decoration: underline; padding: 4px;
}
.pt-tier-modal-stay:hover { color: var(--pt-text); }
.pt-tier-modal-go {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 20px; background: linear-gradient(135deg, var(--pt-accent-2), var(--pt-accent-3));
  color: #fff; border-radius: var(--pt-radius); font-size: 13px; font-weight: 700; text-decoration: none;
}
.pt-tier-modal-go:hover { filter: brightness(1.08); }

/* Library teaser for Free tier */
.ra-library-item[data-lib-id="0"] {
  font-style: italic; color: #5a6875; cursor: pointer;
  justify-content: center; text-align: center;
}
/* ============================================================
   Tier Modal (Phase 23) — Fix transparency and contrast
   ============================================================ */
.pt-tier-modal {
  position: fixed; inset: 0; z-index: 10000;
  display: flex; align-items: center; justify-content: center;
}
.pt-tier-modal-bg {
  position: absolute; inset: 0; 
  background: rgba(10, 15, 25, 0.85); /* Darker, solid overlay */
  backdrop-filter: blur(4px);
}
.pt-tier-modal-card {
  position: relative; 
  background: #ffffff; /* Solid white card */
  border: 1px solid #c8d1dd;
  border-radius: 12px; 
  box-shadow: 0 24px 60px rgba(0,0,0,.5);
  width: 92%; max-width: 900px; max-height: 92vh; overflow-y: auto;
  padding: 32px 36px; 
  color: #111a26; /* Dark text */
}
.pt-tier-modal-x {
  position: absolute; top: 16px; right: 20px;
  background: none; border: 0; color: #5a6875; font-size: 28px;
  cursor: pointer; line-height: 1;
}
.pt-tier-modal-x:hover { color: #111a26; }
.pt-tier-modal-head { text-align: center; margin-bottom: 28px; }
.pt-tier-modal-kicker {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .06em; color: #0050d0; margin-bottom: 8px;
}
.pt-tier-modal-title {
  font-size: 26px; font-weight: 800; color: #0a1520;
  margin: 0 0 8px; line-height: 1.25;
}
.pt-tier-modal-sub {
  font-size: 14px; color: #3f4a5a; margin: 0; line-height: 1.5;
}
.pt-tier-modal-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px;
}
@media (max-width: 700px) {
  .pt-tier-modal-grid { grid-template-columns: 1fr; }
  .pt-tier-modal-card { padding: 24px 20px; }
}
.pt-tier-mini {
  background: #f4f8ff; border: 1px solid #c8d1dd;
  border-radius: 10px; padding: 20px;
  display: flex; flex-direction: column;
}
.pt-tier-mini-purple {
  background: #fbf5ff;
  border-color: #a855f7; box-shadow: 0 0 0 1px #a855f7;
}
.pt-tier-mini-name {
  font-size: 18px; font-weight: 800; color: #0a1520; margin-bottom: 4px;
}
.pt-tier-mini-price {
  font-size: 24px; font-weight: 800; color: #0a1520; margin-bottom: 16px;
}
.pt-tier-mini-price small {
  font-size: 13px; color: #5a6875; font-weight: 400;
}
.pt-tier-mini-features {
  list-style: none; padding: 0; margin: 0 0 20px; flex-grow: 1;
}
.pt-tier-mini-features li {
  padding: 4px 0 4px 20px; position: relative;
  font-size: 13px; color: #111a26; line-height: 1.4;
}
.pt-tier-mini-features li::before {
  content: "\2713"; position: absolute; left: 0; color: #4ade80; font-weight: bold;
}
.pt-tier-mini-purple .pt-tier-mini-features li::before { color: #a855f7; }
.pt-tier-modal-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 20px; border-top: 1px solid #e2e9f2; flex-wrap: wrap; gap: 12px;
}
.pt-tier-modal-stay {
  background: transparent; border: 0; color: #5a6875;
  font-size: 13px; cursor: pointer; text-decoration: underline; padding: 4px;
}
.pt-tier-modal-stay:hover { color: #111a26; }
.pt-tier-modal-go {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 20px; background: linear-gradient(135deg, #0050d0, #0090ff);
  color: #fff; border-radius: 6px; font-size: 13px; font-weight: 700; text-decoration: none;
}
.pt-tier-modal-go:hover { filter: brightness(1.08); }