/* ══════════════════════════════════════════════════════════════════════════
   GV THEME — one set of design tokens for every Griha Vastu surface.

   The four surfaces (user /app, mobile engine, desktop engine, consultant +
   admin) are being restyled onto ONE palette so they stop drifting apart.
   Chrome styling pulls from these variables; anything drawn on the <canvas>
   itself uses the same values as literals (canvas can't read CSS vars), and
   the canonical copy of those literals is documented here:

     canvas paper   #FDFBF5     decorative grid  rgba(154,122,46,.13)
     ink            #2A2418     soft ink         #5C4E36
     label pill     rgba(255,255,255,.93)
     16-dir line    #1273C4     32-pada line     #B8860B
     draw default   #3E3225     length labels    #8A5A00
     wall spans     #0B6E8F     north            #B3261E
     face arrow     #0E7C6B     boundary         #1F9E54 (first pt #E8930A)
     devta numbers  #5A3E1B on rgba(255,255,255,.94) halo

   If a canvas colour changes, change it here AND at its literal sites — this
   header is the register that keeps them honest.
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  /* surfaces */
  --gv-paper:#FDFBF5;          /* canvas + page background        */
  --gv-card:#FFFFFF;           /* raised cards / panels           */
  --gv-cream:#FBF7EE;          /* soft section background         */
  --gv-plate:#F6F1E3;          /* image plates, table headers     */

  /* ink */
  --gv-ink:#2A2418;
  --gv-ink-soft:#5C4E36;
  --gv-muted:#8B7B5E;

  /* lines + accents */
  --gv-line:#E2D5B0;
  --gv-line-soft:rgba(154,122,46,.18);
  --gv-gold:#B8860B;
  --gv-gold-deep:#8A5A00;
  --gv-saffron:#E8930A;
  --gv-saffron-deep:#C2740B;
  --gv-blue:#1273C4;
  --gv-teal:#0E7C6B;
  --gv-green:#1F7A3D;
  --gv-red:#B3261E;

  /* shape */
  --gv-radius:10px;
  --gv-radius-sm:7px;
  --gv-shadow:0 2px 10px rgba(90,70,20,.08);
  --gv-shadow-pop:0 8px 28px rgba(90,70,20,.16);

  /* controls */
  --gv-ctl-h:38px;
  --gv-font:'DM Sans',-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ── shared chrome components (used by the redesign stages) ───────────────── */
.gv-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:7px 10px;background:var(--gv-card);border-bottom:1px solid var(--gv-line);}
.gv-toolbar .gv-sep{width:1px;align-self:stretch;margin:2px 3px;background:var(--gv-line);}

.gv-btn{display:inline-flex;align-items:center;gap:6px;height:var(--gv-ctl-h);
  padding:0 13px;background:var(--gv-card);border:1px solid var(--gv-line);
  border-radius:var(--gv-radius-sm);color:var(--gv-ink);font-family:var(--gv-font);
  font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;
  transition:background .12s,border-color .12s,transform .08s;}
.gv-btn:hover{background:var(--gv-cream);border-color:var(--gv-gold);}
.gv-btn:active{transform:translateY(1px);}
.gv-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;}
.gv-btn.on,.gv-btn.gv-active{background:linear-gradient(135deg,var(--gv-saffron),var(--gv-saffron-deep));
  color:#fff;border-color:transparent;}
.gv-btn-primary{background:linear-gradient(135deg,var(--gv-saffron),var(--gv-saffron-deep));
  color:#fff;border-color:transparent;}
.gv-btn-primary:hover{filter:brightness(1.06);background:linear-gradient(135deg,var(--gv-saffron),var(--gv-saffron-deep));}
.gv-btn-danger{color:var(--gv-red);border-color:rgba(179,38,30,.4);}

.gv-select{height:var(--gv-ctl-h);padding:0 30px 0 11px;background:var(--gv-card);
  border:1px solid var(--gv-line);border-radius:var(--gv-radius-sm);color:var(--gv-ink);
  font-family:var(--gv-font);font-size:12.5px;font-weight:700;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238B7B5E' stroke-width='1.6' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;}
.gv-select:hover{border-color:var(--gv-gold);}

.gv-input{height:var(--gv-ctl-h);padding:0 10px;background:var(--gv-card);
  border:1px solid var(--gv-line);border-radius:var(--gv-radius-sm);
  color:var(--gv-ink);font-family:var(--gv-font);font-size:13px;}
.gv-input:focus{outline:none;border-color:var(--gv-saffron);}

.gv-card{background:var(--gv-card);border:1px solid var(--gv-line);
  border-radius:var(--gv-radius);box-shadow:var(--gv-shadow);}
.gv-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;
  border:1px solid var(--gv-line);border-radius:20px;background:var(--gv-card);
  color:var(--gv-ink-soft);font-size:11.5px;font-weight:700;}
