/* ============================================================
   GLAZZEN — SHARED THEME TOKENS (single source of truth)
   Linked by every customer quote page. Change colors, radius,
   shadows, etc. HERE ONCE and all pages update together.
   A page may add its own <style> AFTER this file to override
   these tokens or add product-specific rules.
   ============================================================ */
/* Always reserve the vertical scrollbar so the page width never changes when content
   grows tall enough to overflow — prevents the horizontal "jump" as steps open. */
html { overflow-y: scroll; }

:root {
  --sidebar:    #2f3a42;
  --primary:    #8fd3d8;
  --primary-dk: #5b9aa6;
  --accent:     rgba(143,211,216,.07);
  --border:     rgba(143,211,216,.22);
  --border-dim: rgba(143,211,216,.1);
  --text:       #e6edf0;
  --muted:      #9fb0ba;
  --white:      #d8eef8;
  --bg:         #2f3a42;
  --panel:      #3b4750;
  --panel-dk:   #354049;
  --radius:     3px;
  --shadow:     0 4px 24px rgba(0,0,0,.6);
  --lock-bg:    #091520;
  --green:      #00ff9d;
  --amber:      #ffb347;
}

/* Company logo asset injected into the header brand (falls back to text) */
.app-brand { display: inline-flex; align-items: center; }
.app-brand svg, .app-brand img { height: 32px; width: auto; display: block; }

/* Edge-polish PHOTO mode — taller frame so much more of the photo (and its detail) is visible */
.edge-illustration.edge-photo { max-height: none; height: 96px; }
.edge-illustration.edge-photo img { display: block; width: 100%; height: 96px; object-fit: cover; }

/* Number inputs: KEEP the up/down arrows and make them ALWAYS visible. Chrome hides the
   spinner until hover/focus, which is what made the field look different empty vs filled —
   forcing opacity:1 keeps the arrows on screen and clickable, and the field stays steady. */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { opacity: 1; }
