  :root{
    /* brand */
    --clay:#D97757; --clay-ink:#C15F3C; --on-clay:#2A1712;
    --ink-3:#6B6862; --ink-4:#8A867C;

    /* Revit chrome — neutral cool greys */
    --rv-window:#2b2e31;
    --rv-edge:#121417;
    --rv-title:#3a3f44;
    --rv-title-2:#343a3f;
    --rv-ribbon:#33373b;
    --rv-ribbon-2:#2e3236;
    --rv-tabstrip:#272b2e;
    --rv-canvas:#23262a;
    --rv-status:#1f2226;

    /* architectural ink (layered weights = real CAD convention) */
    --w-wall-ext:#b7bdc5;     /* heavy exterior wall */
    --w-wall-int:#7d838b;     /* medium interior wall */
    --w-fixt:#9aa0a8;         /* plumbing fixtures */
    --w-thin:#5c6168;         /* dimensions / hidden */
    --w-pipe:#7fa3c4;         /* pipe runs (cool blue) */
    --w-grid:#3a3f44;         /* canvas grid hint */

    --rv-tabtxt:#9aa0a8;
    --rv-tabtxt-on:#eef1f4;
    --rv-btn-txt:#d3d7dc;

    --heb:'Heebo',sans-serif; --mono:'IBM Plex Mono',monospace;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html,body{background:#e8e8ea}
  body{
    font-family:var(--heb);
    display:flex;justify-content:center;align-items:center;
    padding:10px 10px;
  }
  .stage{
    display:grid;
    grid-template-columns:1fr 138px 1fr;
    align-items:center;
    width:1180px;max-width:100%;
  }

  /* ============ Revit window ============ */
  .rv{
    background:var(--rv-window);
    border:1px solid var(--rv-edge);
    border-radius:6px;
    overflow:hidden;
    box-shadow:0 22px 60px rgba(20,22,26,.32), 0 2px 6px rgba(20,22,26,.4);
  }

  /* title bar */
  .rv-title{
    height:32px;
    background:linear-gradient(var(--rv-title),var(--rv-title-2));
    display:flex;align-items:center;justify-content:space-between;
    padding:0 12px;border-bottom:1px solid var(--rv-edge);
    direction:ltr;
  }
  .rv-title .app{display:flex;align-items:center;gap:9px;min-width:0}
  .rv-title .logo{
    width:16px;height:16px;border-radius:3px;flex:0 0 auto;
    background:linear-gradient(135deg,#1aa0c9,#0e6e96);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-size:10px;font-weight:600;color:#eafaff;
  }
  .rv-title .t{
    font-family:var(--mono);font-size:11px;color:#c4c9cf;
    letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .rv-title .win{display:flex;gap:14px;align-items:center;flex:0 0 auto}
  .rv-title .win svg{display:block}
  .rv-title .win .stroke{stroke:#aab0b7;stroke-width:1.2;fill:none}

  /* ribbon tabs */
  .rv-tabs{
    display:flex;height:26px;align-items:stretch;
    background:var(--rv-tabstrip);
    padding:0 6px;direction:ltr;border-bottom:1px solid var(--rv-edge);
  }
  .rv-tabs span{
    display:flex;align-items:center;padding:0 13px;
    font-family:var(--mono);font-size:10.5px;color:var(--rv-tabtxt);
    border-bottom:2px solid transparent;letter-spacing:.01em;
  }
  .rv-tabs span.on{
    color:var(--rv-tabtxt-on);background:var(--rv-ribbon);
    border-bottom:2px solid var(--clay);font-weight:500;
  }

  .rv-ribbon{
    background:linear-gradient(var(--rv-ribbon),var(--rv-ribbon-2));
    border-bottom:1px solid var(--rv-edge);
    display:flex;align-items:stretch;direction:rtl;
    height:64px;padding:0 6px;
  }
  .panel{display:flex;flex-direction:column;padding:4px 4px 0}
  .panel .row{display:flex;align-items:flex-start;gap:2px;flex:1}
  .panel .cap{
    font-family:var(--mono);font-size:8px;color:#7d838b;
    text-align:center;padding:3px 0 4px;letter-spacing:.02em;direction:ltr;
    border-top:1px solid rgba(255,255,255,.05);margin-top:2px;
  }
  .panel + .panel{border-right:1px solid var(--rv-edge)}

  .rv-btn{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    padding:5px 9px;border-radius:4px;min-width:48px;
    border:1px solid transparent;cursor:default;
  }
  .rv-btn .ic{width:26px;height:26px;display:flex;align-items:center;justify-content:center}
  .rv-btn .ic svg{display:block}
  .rv-btn .lb{font-family:var(--heb);font-size:11px;font-weight:500;color:var(--rv-btn-txt);white-space:nowrap}
  .rv-btn.hi{
    background:rgba(217,119,87,.16);
    border:1px solid rgba(217,119,87,.62);
  }
  .rv-btn.hi .lb{color:#fff;font-weight:600}

  /* drawing viewport */
  .rv-view{
    position:relative;height:312px;
    background:
      radial-gradient(120% 120% at 50% 0%, #272a2e 0%, var(--rv-canvas) 60%, #1d2024 100%);
    overflow:hidden;
  }
  .rv-view svg{position:absolute;inset:0;width:100%;height:100%;display:block}

  /* state chip */
  .state{
    position:absolute;top:9px;font-family:var(--mono);
    font-size:9.5px;font-weight:500;letter-spacing:.09em;
    padding:3px 9px;border-radius:3px;direction:ltr;z-index:3;
  }
  .state.bad{right:11px;color:#eaa6a6;background:rgba(213,90,90,.15);border:1px solid rgba(213,90,90,.45)}
  .state.ok{left:11px;color:#a3e0ac;background:rgba(92,184,92,.15);border:1px solid rgba(92,184,92,.45)}

  .rv-status{
    height:24px;background:var(--rv-status);border-top:1px solid var(--rv-edge);
    display:flex;align-items:center;justify-content:space-between;
    padding:0 12px;direction:ltr;
  }
  .rv-status .seg{font-family:var(--mono);font-size:9px;color:#6e747c;letter-spacing:.01em}
  .rv-status .seg.b{color:#8b9198}

  /* ============ middle column ============ */
  .mid{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;position:relative;z-index:5}
  .mid .cap-top{font-family:var(--heb);font-size:12px;font-weight:600;color:var(--ink-3);white-space:nowrap}
  .mid .btnwrap{position:relative}
  .mid .clicker{
    background:linear-gradient(var(--clay),var(--clay-ink));
    color:#fff;font-family:var(--heb);font-weight:700;font-size:15px;
    padding:12px 18px;border-radius:6px;
    box-shadow:0 10px 24px rgba(193,85,46,.42), inset 0 1px 0 rgba(255,255,255,.22);
    display:flex;align-items:center;gap:9px;white-space:nowrap;
    border:1px solid var(--clay-ink);
  }
  .mid .clicker .ring{
    position:absolute;inset:-7px;border:2px solid var(--clay);
    border-radius:10px;opacity:.45;
  }
  .mid .cursor{
    position:absolute;right:-13px;bottom:-15px;
    filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));
  }
  .mid .arrow{display:flex;flex-direction:column;align-items:center;gap:5px}
  .mid .arrow svg{display:block}
  .mid .arrow .word{font-family:var(--heb);font-size:11px;font-weight:600;color:var(--clay-ink);letter-spacing:.01em}

  /* shared svg styling */
  .arch text{font-family:var(--heb);font-weight:500;dominant-baseline:middle}
  .arch .lbl-ok{fill:#eaeef4}
  .arch .lbl-bad{fill:#e89898;font-family:var(--mono);font-weight:500}
  .arch .dim-tx{font-family:var(--mono);font-size:9px;fill:#7c8189;letter-spacing:.02em;direction:ltr}
  .arch .note-tx{font-family:var(--mono);font-size:8.5px;fill:#5c6168;direction:ltr;letter-spacing:.04em}

  @media (max-width:1040px){
    .stage{grid-template-columns:1fr;justify-items:center;gap:26px}
    .mid{flex-direction:row;gap:18px}
    .mid .arrow svg{transform:rotate(90deg)}
  }
