/* PlanHub v9 — preview-quality rebuild
   Layout:
     - Top: project pills (wrap; no horizontal scroll on mobile)
     - Middle: left preview pane | right sheet controls (responsive: stacks on mobile)
     - Bottom: Plan Set Uploads + Bluebeam Tie-In
   Also includes:
     - Fullscreen expanded viewer with markup overlay
     - Toolbar for cloud/arrow/circle/rect/line/text + colors + size
     - Save markup with prefix-locked naming
*/

.phv9-root{display:flex;flex-direction:column;gap:14px;font-family:'Barlow',Arial,sans-serif;color:var(--tx,#1a2a3a)}

/* Pills row — wraps on every viewport, never overflows horizontally */
.phv9-pills{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:8px;border:1px solid var(--bd-lt,#e2e8ec);border-radius:10px;background:#fff;
  overflow-x:hidden; /* hard-prevent horizontal scroll */
  width:100%;
  box-sizing:border-box;
}
.phv9-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:999px;border:1px solid #d8dee5;
  background:#f3f6f9;color:#33485e;font-size:13px;cursor:pointer;
  white-space:nowrap;
}
.phv9-pill.active{background:#FF6B00;color:#fff;border-color:#FF6B00}
.phv9-pill .ct{
  background:#fff;color:#FF6B00;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;
}
.phv9-pill.active .ct{background:rgba(255,255,255,.25);color:#fff}

/* Header — current plan set name (clickable) */
.phv9-header{
  background:linear-gradient(135deg,#FF6B00 0%,#cc5500 100%);color:#fff;
  border-radius:12px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
}
.phv9-header h2{margin:0;font-size:20px;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.4px}
.phv9-header .ph-current-plan{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.16);padding:6px 12px;border-radius:8px;color:#fff;
  font-weight:600;cursor:pointer;border:1px solid rgba(255,255,255,.25);
  font-size:14px;
}
.phv9-header .ph-current-plan:hover{background:rgba(255,255,255,.28)}
.phv9-header .ph-meta{font-size:12px;opacity:.85}

/* Action bar */
.phv9-actions{display:flex;gap:8px;flex-wrap:wrap}
.phv9-actions .btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:8px;border:1px solid #cdd5dd;background:#fff;color:#1a2a3a;
  font-size:13px;font-weight:600;cursor:pointer;
}
.phv9-actions .btn.primary{background:#FF6B00;color:#fff;border-color:#FF6B00}
.phv9-actions .btn:hover{filter:brightness(.96)}

/* Main grid: preview LEFT, sheet controls RIGHT */
.phv9-main{
  display:grid;grid-template-columns:1.6fr 1fr;gap:14px;
}
@media (max-width:900px){
  .phv9-main{grid-template-columns:1fr}
}
.phv9-pane{background:#fff;border:1px solid var(--bd-lt,#e2e8ec);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:340px}

/* Preview pane (LEFT) */
.phv9-preview-bar{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:8px 12px;border-bottom:1px solid #ebeff3;background:#f7f9fb;
}
.phv9-preview-title{font-weight:700;font-size:13px;color:#33485e}
.phv9-preview-stage{
  flex:1;display:flex;align-items:center;justify-content:center;background:#11181f;
  position:relative;min-height:300px;
}
.phv9-preview-stage img{max-width:100%;max-height:560px;object-fit:contain;display:block;background:#fff}
.phv9-preview-stage .ph-fallback{padding:24px;color:#cbd6e2;text-align:center}
.phv9-preview-foot{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid #ebeff3;background:#f7f9fb}
.phv9-preview-foot .btn{font-size:12px;padding:6px 10px}
.phv9-helper{font-size:11px;color:#7a8a9a;padding:6px 12px;border-top:1px dashed #d6dde4;background:#fafbfc}

/* Arrow nav for preview/expanded */
.phv9-nav-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.85);
  font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.25);z-index:5;
}
.phv9-nav-arrow:hover{background:#fff}
.phv9-nav-arrow.left{left:10px}
.phv9-nav-arrow.right{right:10px}

/* Sheet controls (RIGHT) */
.phv9-controls-hdr{padding:10px 12px;border-bottom:1px solid #ebeff3;background:#f7f9fb}
.phv9-controls-hdr h3{margin:0;font-size:14px;color:#33485e}
.phv9-disc-filters{
  display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px;border-bottom:1px solid #ebeff3;
  max-height:160px;overflow-y:auto;
}
.phv9-disc{
  font-size:11px;padding:4px 8px;border-radius:6px;border:1px solid #d8dee5;
  background:#fff;color:#445566;cursor:pointer;white-space:nowrap;
}
.phv9-disc.on{background:#FF6B00;color:#fff;border-color:#FF6B00}
.phv9-sheet-list{flex:1;overflow-y:auto;max-height:480px;padding:6px}
.phv9-sheet-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 10px;border:1px solid transparent;border-radius:6px;cursor:pointer;
  font-size:12px;
}
.phv9-sheet-row:hover{background:#f1f5f9}
.phv9-sheet-row.sel{background:#fff3e8;border-color:#FF6B00}
.phv9-sheet-row .num{font-weight:700;color:#FF6B00;min-width:54px}
.phv9-sheet-row .nm{flex:1;padding:0 6px;color:#33485e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phv9-sheet-row .ck{margin-right:6px}
.phv9-sheet-row .disc-tag{font-size:10px;color:#fff;background:#7a8a9a;border-radius:4px;padding:1px 5px}

/* Plan Set Uploads (BOTTOM) */
.phv9-uploads{background:#fff;border:1px solid var(--bd-lt,#e2e8ec);border-radius:12px;padding:12px}
.phv9-uploads h3{margin:0 0 8px 0;font-size:14px;color:#33485e}
.phv9-uzone{
  border:2px dashed #b6c3d0;border-radius:10px;padding:18px;background:#f7fafc;
  text-align:center;cursor:pointer;color:#5a6b7c;
}
.phv9-uzone:hover{background:#eef4f8}
.phv9-uzone .uico{font-size:28px}
.phv9-flist{margin-top:8px}
.phv9-fitem{
  display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid #ebeff3;border-radius:6px;
  margin-bottom:6px;background:#fafbfc;font-size:12px;
}
.phv9-fitem .fname{flex:1;font-weight:600;color:#33485e}
.phv9-fitem .fmeta{color:#7a8a9a;font-size:11px}
.phv9-fitem .fbtn{padding:4px 8px;font-size:11px;border:1px solid #cdd5dd;border-radius:4px;background:#fff;cursor:pointer}

/* Bluebeam panel */
.phv9-bb{background:#fff;border:1px solid #e2e8ec;border-radius:12px;padding:12px}
.phv9-bb h3{margin:0 0 8px;font-size:14px;color:#33485e}
.phv9-bb .pill-planned{display:inline-block;background:#fef3c7;color:#92400e;font-size:10px;padding:2px 8px;border-radius:999px;margin-left:6px}
.phv9-bb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.phv9-bb-card{padding:10px;border:1px solid #ebeff3;border-radius:8px;background:#fafbfc}
.phv9-bb-card .ttl{font-weight:700;font-size:12px;color:#33485e;margin-bottom:4px}
.phv9-bb-card .desc{font-size:11px;color:#7a8a9a}
.phv9-bb-card .btn{margin-top:6px;font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid #cdd5dd;background:#fff;cursor:pointer}

/* Markups list */
.phv9-markups{background:#fff;border:1px solid #e2e8ec;border-radius:12px;padding:12px}
.phv9-markups h3{margin:0 0 8px;font-size:14px;color:#33485e}
.phv9-markups-search{padding:6px 10px;border:1px solid #cdd5dd;border-radius:6px;width:100%;font-size:12px;margin-bottom:8px;box-sizing:border-box}
.phv9-markup-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border:1px solid #ebeff3;border-radius:6px;margin-bottom:6px;background:#fafbfc;font-size:12px}
.phv9-markup-item .nm{font-weight:600;color:#33485e;flex:1}
.phv9-markup-item .meta{font-size:11px;color:#7a8a9a;margin-right:8px}

/* ===========================
   EXPANDED FULLSCREEN VIEWER
   =========================== */
.phv9-expanded{
  position:fixed;inset:0;z-index:9999;background:rgba(15,23,32,.96);
  display:none;flex-direction:column;color:#fff;
}
.phv9-expanded.open{display:flex}
.phv9-exp-bar{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 12px;background:#0a1118;border-bottom:1px solid #1a2632;
}
.phv9-exp-bar .title{flex:1;font-size:13px;font-weight:600;min-width:140px}
.phv9-exp-bar .btn{
  padding:6px 10px;border-radius:6px;border:1px solid #2c3e50;background:#1a2632;color:#fff;
  font-size:12px;cursor:pointer;
}
.phv9-exp-bar .btn:hover{background:#243240}
.phv9-exp-bar .btn.danger{background:#7f1d1d;border-color:#7f1d1d}
.phv9-exp-bar .btn.primary{background:#FF6B00;border-color:#FF6B00}

.phv9-toolbar{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:6px 12px;background:#11181f;border-bottom:1px solid #1a2632;
}
.phv9-tool{
  padding:6px 10px;border-radius:6px;border:1px solid #2c3e50;background:#1a2632;color:#cbd6e2;
  font-size:12px;cursor:pointer;
}
.phv9-tool.on{background:#FF6B00;color:#fff;border-color:#FF6B00}
.phv9-tool .ic{font-size:14px;margin-right:4px}
.phv9-tool-status{
  font-size:11.5px;color:#FF6B00;margin-left:auto;padding:4px 10px;
  border-radius:999px;background:transparent;display:none;font-weight:600;
  letter-spacing:.2px;
}
.phv9-tool-status.on{
  display:inline-block;background:#FF6B00;color:#fff;
  box-shadow:0 0 0 2px rgba(14,124,123,.18);
}
.phv9-text-editor{position:absolute;pointer-events:auto;z-index:40}
.phv9-text-editor input{font-family:Calibri,'Segoe UI',Arial,sans-serif}
.phv9-markup-svg.tool-text{cursor:text}
.phv9-toolbar label{font-size:11px;color:#9aa9b8}
.phv9-toolbar input[type=color]{width:28px;height:24px;border:none;background:transparent;cursor:pointer;padding:0}
.phv9-toolbar input[type=number],
.phv9-toolbar select{
  background:#1a2632;color:#fff;border:1px solid #2c3e50;border-radius:4px;padding:3px 6px;font-size:11px;
}

.phv9-exp-stage{
  flex:1;overflow:auto;background:#0a1118;position:relative;
  display:flex;flex-direction:column;align-items:center;
}
.phv9-exp-page{
  position:relative;margin:14px auto;background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.6);
  display:inline-block;
}
.phv9-exp-page img{display:block;max-width:100%}
.phv9-markup-svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;pointer-events:auto}
.phv9-markup-svg.tool-none{cursor:default;pointer-events:none}
.phv9-exp-helper{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  background:rgba(15,23,32,.85);color:#cbd6e2;font-size:11px;
  padding:6px 10px;border-radius:6px;border:1px solid #2c3e50;pointer-events:none;
}

/* Zoom controls */
.phv9-zoom{display:inline-flex;align-items:center;gap:4px}
.phv9-zoom button{
  width:24px;height:24px;border-radius:4px;background:#1a2632;border:1px solid #2c3e50;color:#fff;cursor:pointer;
}
.phv9-zoom .zlbl{font-size:11px;min-width:40px;text-align:center;color:#cbd6e2}

/* Markup save dialog */
.phv9-modal{
  position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:10001;
  display:none;align-items:center;justify-content:center;
}
.phv9-modal.open{display:flex}
.phv9-modal-card{
  background:#fff;color:#1a2a3a;border-radius:12px;padding:18px;width:min(440px,92vw);
}
.phv9-modal-card h4{margin:0 0 8px;font-size:16px}
.phv9-modal-card p{font-size:12px;color:#5a6b7c;margin:0 0 12px}
.phv9-modal-card .name-row{
  display:flex;border:1px solid #cdd5dd;border-radius:8px;overflow:hidden;
}
.phv9-modal-card .name-row .prefix{
  background:#f0f5f9;color:#5a6b7c;padding:8px 10px;font-size:13px;border-right:1px dashed #cdd5dd;
  white-space:nowrap;max-width:60%;overflow:hidden;text-overflow:ellipsis;
}
.phv9-modal-card .name-row input{
  flex:1;border:none;outline:none;padding:8px 10px;font-size:13px;
}
.phv9-modal-card .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.phv9-modal-card .actions .btn{
  padding:8px 14px;border-radius:6px;border:1px solid #cdd5dd;background:#fff;cursor:pointer;font-size:13px;font-weight:600;
}
.phv9-modal-card .actions .btn.primary{background:#FF6B00;color:#fff;border-color:#FF6B00}

/* Toast */
.phv9-toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  background:#1a2632;color:#fff;padding:10px 16px;border-radius:8px;
  font-size:13px;z-index:10002;display:none;box-shadow:0 6px 18px rgba(0,0,0,.4);
}
.phv9-toast.show{display:block}
@media (max-width:640px){
  /* Mobile: avoid bottom-right Ask Lily FAB tap zone. */
  .phv9-toast{bottom:auto;top:16px}
}

/* Sheet-row info icon + version badge */
.phv9-sheet-row .phv9-info-icon{
  margin-left:6px;border:1px solid #cdd5dd;background:#fff;color:#FF6B00;border-radius:50%;
  width:22px;height:22px;font-size:13px;line-height:1;cursor:pointer;font-weight:700;flex-shrink:0;
}
.phv9-sheet-row .phv9-info-icon:hover{background:#fff3e8}
.phv9-sheet-row .phv9-vbadge{
  font-size:10px;background:#fef3c7;color:#92400e;padding:1px 5px;border-radius:999px;margin-left:4px;
}

/* Sheet info hover panel */
.phv9-sheet-info{
  position:fixed;top:120px;left:120px;width:320px;
  background:#fff;border:1px solid #cdd5dd;border-radius:10px;
  box-shadow:0 14px 36px rgba(0,0,0,.18);
  padding:12px 14px;z-index:9998;display:none;font-size:12px;color:#33485e;
}
.phv9-sheet-info.open{display:block}
.phv9-sheet-info .ttl{font-weight:700;color:#FF6B00;margin-bottom:8px;font-size:13px;padding-right:18px}
.phv9-sheet-info dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0}
.phv9-sheet-info dt{color:#7a8a9a;font-weight:600}
.phv9-sheet-info dd{margin:0;color:#33485e;word-break:break-word}
.phv9-sheet-info-close{
  position:absolute;top:6px;right:8px;border:0;background:transparent;color:#7a8a9a;
  font-size:18px;cursor:pointer;line-height:1;padding:2px 4px;
}
.phv9-sheet-info-close:hover{color:#1a2a3a}

/* Overlay/Compare panel inside the project pill view */
.phv9-overlay-panel{background:#fff;border:1px solid #e2e8ec;border-radius:12px;padding:14px}
.phv9-overlay-panel h3{margin:0 0 6px;font-size:14px;color:#33485e}
.phv9-overlay-pickers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
.phv9-overlay-pickers label{display:flex;flex-direction:column;font-size:11px;color:#5a6b7c;gap:4px}
.phv9-overlay-pickers input[type=search],
.phv9-overlay-pickers select{padding:6px 8px;border:1px solid #cdd5dd;border-radius:6px;font-size:12px;background:#fff}
@media (max-width:600px){
  .phv9-overlay-pickers{grid-template-columns:1fr}
}
.phv9-overlay-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.phv9-overlay-suggestions{margin-top:10px;padding:10px;background:#f7fafc;border:1px dashed #cdd5dd;border-radius:8px}
.phv9-overlay-suggestions h4{margin:0 0 6px;font-size:13px;color:#FF6B00}
.phv9-overlay-suggestions ul{margin:0;padding-left:18px;font-size:12px;color:#33485e;line-height:1.5}
.phv9-overlay-saved{margin-top:10px}
.phv9-overlay-saved h4{margin:0 0 6px;font-size:13px;color:#33485e}
.phv9-overlay-saved-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid #ebeff3;border-radius:6px;margin-bottom:4px;background:#fafbfc;font-size:12px}
.phv9-overlay-saved-row .nm{flex:1;font-weight:600;color:#33485e}
.phv9-overlay-saved-row .meta{font-size:11px;color:#7a8a9a}
.phv9-overlay-saved-row .fbtn{padding:3px 8px;font-size:11px;border:1px solid #cdd5dd;border-radius:4px;background:#fff;cursor:pointer}

/* Overlay fullscreen shell */
.phv9-overlay-shell{
  position:fixed;inset:0;z-index:9999;background:rgba(15,23,32,.96);
  display:none;flex-direction:column;color:#fff;
}
.phv9-overlay-shell.open{display:flex}
.phv9-overlay-bar{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 12px;background:#0a1118;border-bottom:1px solid #1a2632;
}
.phv9-overlay-bar .title{flex:1;font-size:13px;font-weight:600;min-width:140px}
.phv9-overlay-bar .btn{
  padding:6px 10px;border-radius:6px;border:1px solid #2c3e50;background:#1a2632;color:#fff;
  font-size:12px;cursor:pointer;
}
.phv9-overlay-bar .btn:hover{background:#243240}
.phv9-overlay-bar .btn.danger{background:#7f1d1d;border-color:#7f1d1d}
.phv9-overlay-bar .btn.primary{background:#FF6B00;border-color:#FF6B00}
.phv9-overlay-controls{
  display:flex;flex-wrap:wrap;gap:14px;padding:8px 12px;background:#11181f;
  border-bottom:1px solid #1a2632;align-items:flex-start;
}
.phv9-overlay-col{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#cbd6e2;background:rgba(255,255,255,.04);padding:8px 10px;border-radius:8px;border:1px solid #1a2632;min-width:210px}
.phv9-overlay-col strong{color:#fff;font-size:12px}
.phv9-overlay-col label{display:flex;align-items:center;gap:6px;font-size:11px;color:#9aa9b8}
.phv9-overlay-col input[type=color]{width:26px;height:22px;border:none;background:transparent;cursor:pointer;padding:0}
.phv9-overlay-col input[type=number]{
  background:#1a2632;color:#fff;border:1px solid #2c3e50;border-radius:4px;padding:3px 6px;font-size:11px;
}
.phv9-overlay-col .nudge{
  background:#1a2632;color:#fff;border:1px solid #2c3e50;border-radius:4px;width:22px;height:22px;cursor:pointer;font-size:11px;
}
.phv9-overlay-legend{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#cbd6e2;align-self:center}
.phv9-overlay-legend .lg-row{display:flex;align-items:center;gap:6px}
.phv9-overlay-legend .sw{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.3)}
.phv9-overlay-stage{
  flex:1;overflow:auto;background:#0a1118;display:flex;align-items:center;justify-content:center;
  position:relative;padding:14px;
}
.phv9-overlay-canvas{
  position:relative;width:min(94vw,1100px);height:min(70vh,700px);
  background:#000;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.6);overflow:hidden;
}
/* Color-separated overlay compare:
   1. Black-line plans are inverted to white-line on black.
   2. Each layer is tinted by combining "brightness(0) saturate(100%)
      invert(...)"-style filters, but the simplest reliable approach
      is mix-blend-mode:screen + drop-shadow tint using a colored
      tile overlay.  We give each plan its own colored tile and
      mask it by the inverted image via blend modes.  The third
      (difference) layer highlights pixels that disagree.           */
.phv9-overlay-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;
  transition:transform .12s ease, opacity .12s ease;will-change:transform,opacity;
  filter: invert(1) grayscale(1) contrast(1.1);
}
.phv9-overlay-img.base{
  mix-blend-mode: screen;
}
.phv9-overlay-img.overlay{
  mix-blend-mode: screen;
}
/* Colored tile sandwiched between/over the inverted images so the
   bright (line) pixels pick up the tint. */
.phv9-overlay-canvas::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background: var(--base-tint, #1976d2);
  mix-blend-mode: multiply;
  z-index:2;
}
.phv9-overlay-canvas::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background: var(--overlay-tint, #d32f2f);
  mix-blend-mode: multiply;
  opacity: var(--overlay-tint-strength, 0.55);
  z-index:4;
}
/* Difference layer — appears when the user enables "Analyze
   line/text differences".  It diff-blends both images so anything
   that disagrees pops in the chosen highlight color. */
.phv9-overlay-canvas .phv9-overlay-diff{
  position:absolute;inset:0;pointer-events:none;
  background: var(--diff-tint, #ffd400);
  mix-blend-mode: screen;
  opacity: var(--diff-strength, 0);
  z-index:5;
  transition:opacity .25s ease;
}
.phv9-overlay-canvas .phv9-overlay-diff.on{
  opacity: var(--diff-strength, .42);
  outline: 2px dashed rgba(255,212,0,.7);
  outline-offset: -3px;
}
.phv9-overlay-legend{
  position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:4px;
  background:rgba(15,23,32,.85);color:#fff;font-size:11px;padding:6px 8px;
  border-radius:6px;border:1px solid rgba(255,255,255,.18);min-width:140px;
  z-index:6;pointer-events:auto;
}
.phv9-overlay-legend .row{display:flex;align-items:center;gap:6px}
.phv9-overlay-legend .sw{width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.3);flex-shrink:0}
.phv9-overlay-diff-status{
  position:absolute;left:8px;top:36px;background:#FF6B00;color:#fff;font-size:11px;
  padding:4px 8px;border-radius:4px;display:none;z-index:7;
}
.phv9-overlay-diff-status.on{display:block}
.phv9-overlay-diff-list{
  background:#0e1822;border:1px solid #1a2632;border-radius:8px;
  margin-top:8px;padding:8px 10px;color:#cbd6e2;font-size:12px;
}
.phv9-overlay-diff-list h5{margin:0 0 4px;color:#fff;font-size:12px}
.phv9-overlay-diff-list ul{margin:0;padding-left:16px;line-height:1.5}
.phv9-overlay-diff-list li{margin:2px 0}
.phv9-overlay-diff-list li .pill{display:inline-block;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:700;color:#fff;margin-right:4px}
.phv9-overlay-watermark{
  position:absolute;left:8px;bottom:8px;background:rgba(15,23,32,.78);color:#fff;
  font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.16);
  pointer-events:none;
}
.phv9-overlay-export-log{
  position:absolute;left:8px;top:8px;background:#FF6B00;color:#fff;font-size:11px;
  padding:4px 8px;border-radius:4px;
}

/* Mobile-specific tightening */
@media (max-width:600px){
  .phv9-pill{font-size:12px;padding:5px 10px}
  .phv9-disc{font-size:10px}
  .phv9-exp-bar .title{font-size:12px}
  .phv9-toolbar{gap:4px;padding:4px 8px}
  .phv9-tool{font-size:11px;padding:4px 8px}
  .phv9-exp-page{margin:8px auto}
  .phv9-header h2{font-size:17px}
}

/* MEP system sub-tag filter row */
.phv9-mep-filter-row{
  background:#fafbfc;border-top:1px solid #ebeff3;padding:6px 10px;
  display:flex;flex-wrap:wrap;gap:4px;align-items:center;
}
.phv9-mep-label{
  font-size:10px;font-weight:600;color:#8899aa;text-transform:uppercase;
  letter-spacing:.04em;margin-right:4px;white-space:nowrap;
}
.phv9-mep-tag{
  font-size:10px;padding:3px 7px;border-radius:99px;
  border:1px solid #d0d8e2;background:#fff;color:#556677;
}
.phv9-mep-tag.on{background:#FF6B00;color:#fff;border-color:#FF6B00}
.phv9-mep-tag:hover{border-color:#FF6B00;color:#FF6B00}

/* PR245 Fix 12: fallback for dead/empty blob URLs in expanded viewer */
.phv9-exp-fallback {
  width: min(94vw, 1200px);
  padding: 40px 24px;
  margin: 12px auto;
  text-align: center;
  font-size: 13px;
  color: #94a3b8;
  background: #f8fafc;
  border: 1.5px dashed #cbd5e1;
  border-radius: 8px;
}
