/* colors.css — the single source of colour.
   Every colour encodes meaning; none is decorative. JS reads these tokens at boot (renderer.js → readTokens). */
:root{
  --purple:#6C38FF;   /* architecture · walls/roof · selection          */
  --lime:#C8FF00;     /* evidence · base/ornament · current phase        */
  --orange:#FF5A00;   /* chronology · doors · alteration phase           */
  --magenta:#FF2D8D;  /* iconography · windows/sculpture · reconstruction*/
  --cyan:#00D5FF;     /* orientation · columns/inscription · restoration phase */
  --amber:#FFB000;    /* restoration campaigns                            */
  --ink:#101010; --paper:#FFFFFF; --grey-l:#F2F2F0; --grey-m:#A5A5A5; --grey-d:#555555; --rule:#DCDCD8;

  --c-architecture:var(--purple); --c-iconography:var(--magenta); --c-orientation:var(--cyan);
  --c-chronology:var(--orange); --c-evidence:var(--lime); --c-restoration:var(--amber); --c-unknown:var(--grey-m);
  --c-select:var(--purple); --c-compare:var(--ink);

  --accent:var(--c-architecture); --accent-ink:#fff;
}
/* the active analytical view sets the accent for active controls, panel header and sheet bar */
body[data-view=architecture]{--accent:var(--c-architecture);--accent-ink:#fff}
body[data-view=iconography]{--accent:var(--c-iconography);--accent-ink:#fff}
body[data-view=orientation]{--accent:var(--c-orientation);--accent-ink:var(--ink)}
body[data-view=chronology]{--accent:var(--c-chronology);--accent-ink:var(--ink)}
body[data-view=evidence]{--accent:var(--c-evidence);--accent-ink:var(--ink)}
body[data-view=restoration]{--accent:var(--c-restoration);--accent-ink:var(--ink)}
body[data-view=rank]{--accent:var(--ink);--accent-ink:#fff}
body[data-view=compare]{--accent:var(--ink);--accent-ink:#fff}
/* chedi category views */
body[data-view=c-anatomy]{--accent:var(--purple);--accent-ink:#fff}
body[data-view=c-typology]{--accent:var(--orange);--accent-ink:var(--ink)}
body[data-view=c-chronology]{--accent:var(--cyan);--accent-ink:var(--ink)}
body[data-view=c-matrix]{--accent:var(--lime);--accent-ink:var(--ink)}
body[data-view=c-relations]{--accent:var(--magenta);--accent-ink:#fff}
body[data-view=c-sources]{--accent:var(--ink);--accent-ink:#fff}
body[data-view=c-similarity]{--accent:var(--ink);--accent-ink:#fff}
body[data-view=c-traits]{--accent:var(--amber);--accent-ink:var(--ink)}

/* phase buttons: colour + label + line-style swatch (never colour alone) */
.psw{display:inline-block;width:18px;height:0;border-top:3px solid var(--ink);margin-right:6px;vertical-align:middle}
.psw-purple{border-color:var(--purple)}
.psw-ink{border-color:var(--ink)}
.psw-orange{border-color:var(--orange)}
.psw-cyan{border-color:var(--cyan)}
.psw-lime{border-color:var(--lime);box-shadow:none;outline:1px solid var(--ink);outline-offset:0}
.psw-magenta{border-top:3px dashed var(--magenta)}
.phb.on[data-k=purple]{background:var(--purple);border-color:var(--purple);color:#fff}
.phb.on[data-k=ink]{background:var(--ink);border-color:var(--ink);color:#fff}
.phb.on[data-k=orange]{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.phb.on[data-k=cyan]{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.phb.on[data-k=lime]{background:var(--lime);border-color:var(--ink);color:var(--ink)}
.phb.on[data-k=magenta]{background:#fff;border:2px dashed var(--magenta);color:var(--ink)}
.phb.on .psw{border-color:currentColor}
.phb.on[data-k=magenta] .psw{border-color:var(--magenta)}

/* epistemic labels */
.tg-OBS{background:var(--ink);color:#fff;border-color:var(--ink)}
.tg-SRC{background:#fff;color:var(--ink)}
.tg-INT{background:#fff;color:var(--purple);border-color:var(--purple)}
.tg-REC{background:#fff;color:var(--ink);border:1.5px dashed var(--magenta)}
.tg-UNK{background:var(--grey-m);color:var(--ink);border-color:var(--grey-m)}
/* confidence */
.cf-HIGH{background:var(--ink);color:#fff;border-color:var(--ink)}
.cf-MEDIUM{background:#fff;color:var(--ink)}
.cf-LOW{background:var(--grey-l);color:var(--ink);border-color:var(--grey-m)}
.cf-UNKNOWN{background:var(--grey-m);color:var(--ink);border-color:var(--grey-m)}
/* DISPUTED = black + diagonal hatch */
.cf-DISPUTED,.ref.contra{background-color:var(--ink);color:#fff;border-color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6'%3E%3Cpath d='M-1,1 l2,-2 M0,6 l6,-6 M5,7 l2,-2' stroke='%23ffffff' stroke-opacity='.38' stroke-width='1.2'/%3E%3C/svg%3E")}
body[data-view=m-mandala]{--accent:var(--purple);--accent-ink:#fff}
body[data-view=m-directions]{--accent:var(--orange);--accent-ink:var(--ink)}
body[data-view=m-reading]{--accent:var(--lime);--accent-ink:var(--ink)}
body[data-view=m-overlay]{--accent:var(--magenta);--accent-ink:#fff}
body[data-view=m-text]{--accent:var(--ink);--accent-ink:#fff}
