/* Ginavra Design System — semantic tokens + core components (Direction 1a "Gilded Ink") */
:root{
  --background-primary:#F6F3EE;
  --background-secondary:#FFFFFF;
  --background-tertiary:#F1EDE6;
  --background-inverse:#101A2B;
  --text-primary:#101A2B;
  --text-secondary:#5C6470;
  --text-muted:#9A948A;
  --text-inverse:#F6F3EE;
  --text-inverse-muted:rgba(246,243,238,.65);
  --action-primary:#101A2B;
  --action-primary-text:#F6F3EE;
  --action-secondary-border:rgba(16,26,43,.28);
  --interactive:#12A594;
  --interactive-deep:#0B7568;
  --expert-accent:#C9A227;
  --expert-accent-deep:#8A6E1F;
  --status-draft:#9A948A;
  --status-review:#C9A227;
  --status-review-bg:#F5ECD4;
  --status-review-text:#8A6E1F;
  --status-published:#12A594;
  --status-published-bg:rgba(18,165,148,.12);
  --status-published-text:#0B7568;
  --status-warning:#B97324;
  --status-warning-bg:rgba(185,115,36,.08);
  --status-error:#B3382C;
  --status-error-bg:rgba(179,56,44,.08);
  --border-subtle:rgba(16,26,43,.1);
  --border-strong:rgba(16,26,43,.22);
  --radius-s:8px; --radius-m:11px; --radius-l:16px; --radius-pill:99px;
  --shadow-card:0 2px 10px rgba(16,26,43,.05);
  --shadow-float:0 10px 30px rgba(16,26,43,.12);
  --font-brand:'Playfair Display',Georgia,serif;
  --font-ui:'Instrument Sans',system-ui,sans-serif;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px;
  --motion-fast:120ms ease-out; --motion-base:200ms ease-out;
}
body{background:var(--background-primary);color:var(--text-primary);font:400 15px/1.6 var(--font-ui);margin:0}
h1,h2,h3{font-family:var(--font-brand);font-weight:600;color:var(--text-primary);letter-spacing:-.02em;margin:0}
a.gv-link{color:var(--interactive-deep);font-weight:600;text-decoration:none}
a.gv-link:hover{color:var(--interactive)}

/* Buttons */
.gv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--action-primary);color:var(--action-primary-text);font:600 15px/1.3 var(--font-ui);padding:14px 24px;border:none;border-radius:var(--radius-m);cursor:pointer;transition:transform var(--motion-fast),box-shadow var(--motion-fast);box-sizing:border-box;max-width:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
.gv-btn:hover{box-shadow:0 6px 18px rgba(16,26,43,.18)}
.gv-btn:active{transform:translateY(1px)}
.gv-btn:focus-visible{outline:3px solid rgba(18,165,148,.4);outline-offset:2px}
.gv-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.gv-btn--secondary{background:transparent;color:var(--text-primary);border:1px solid var(--action-secondary-border)}
.gv-btn--secondary:hover{border-color:var(--text-primary);box-shadow:none}
.gv-btn--ghost{background:transparent;color:var(--interactive-deep);border:none;padding:14px 8px}
.gv-btn--inverse{background:var(--text-inverse);color:var(--text-primary)}
.gv-btn--small{font-size:13px;padding:10px 16px;border-radius:var(--radius-s)}

/* Forms */
.gv-label{display:block;font:600 12.5px var(--font-ui);color:var(--text-primary);margin-bottom:6px}
.gv-input,.gv-textarea,.gv-select{width:100%;box-sizing:border-box;background:var(--background-secondary);border:1px solid var(--border-strong);border-radius:10px;padding:12px 14px;font:400 14px var(--font-ui);color:var(--text-primary);transition:border-color var(--motion-fast),outline var(--motion-fast)}
.gv-input::placeholder,.gv-textarea::placeholder{color:var(--text-muted)}
.gv-input:focus-visible,.gv-textarea:focus-visible,.gv-select:focus-visible{outline:3px solid rgba(18,165,148,.15);border-color:var(--interactive)}
.gv-input--error{border-color:var(--status-error)}
.gv-help{font:400 11.5px var(--font-ui);color:var(--text-muted);margin-top:5px}
.gv-help--error{color:var(--status-error)}

/* Status badges */
.gv-badge{display:inline-flex;align-items:center;gap:6px;font:600 11px var(--font-ui);border-radius:var(--radius-pill);padding:5px 11px}
.gv-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.gv-badge--draft{color:var(--text-secondary);background:rgba(16,26,43,.07)}
.gv-badge--review{color:var(--status-review-text);background:var(--status-review-bg)}
.gv-badge--published{color:var(--status-published-text);background:var(--status-published-bg)}
.gv-badge--warning{color:var(--status-warning);background:var(--status-warning-bg)}
.gv-badge--error{color:var(--status-error);background:var(--status-error-bg)}
.gv-badge--expert{color:var(--expert-accent-deep);background:rgba(201,162,39,.14)}

/* Cards & alerts */
.gv-card{background:var(--background-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-l);padding:24px;box-shadow:var(--shadow-card)}
.gv-card--expert{border-color:rgba(201,162,39,.4);background:linear-gradient(180deg,#FDFBF5,#fff)}
.gv-alert{display:flex;gap:10px;border-radius:10px;padding:12px 15px;font:400 13px/1.55 var(--font-ui)}
.gv-alert--warning{background:var(--status-warning-bg);border:1px solid rgba(185,115,36,.3);color:var(--text-primary)}
.gv-alert--success{background:var(--status-published-bg);border:1px solid rgba(18,165,148,.35);color:var(--text-primary)}

/* Prompt composer */
.gv-prompt{display:flex;align-items:center;gap:12px;background:var(--background-secondary);border:1px solid var(--border-strong);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-card)}
.gv-prompt input{flex:1;border:none;outline:none;font:400 14.5px var(--font-ui);color:var(--text-primary);background:transparent}
.gv-prompt input::placeholder{color:var(--text-muted)}
.gv-prompt .gv-spark{width:15px;height:15px;flex:none;background:var(--interactive);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.gv-prompt .gv-send{width:36px;height:36px;flex:none;border:none;border-radius:50%;background:var(--action-primary);color:var(--action-primary-text);font:600 16px var(--font-ui);cursor:pointer}
.gv-prompt:focus-within{border-color:var(--interactive);outline:3px solid rgba(18,165,148,.15)}

/* Chips & toggles */
.gv-chip{display:inline-flex;font:500 12.5px var(--font-ui);color:var(--text-primary);border:1px solid rgba(16,26,43,.16);border-radius:var(--radius-pill);padding:8px 14px;background:#FBFAF7;cursor:pointer}
.gv-chip--active{background:var(--action-primary);color:var(--action-primary-text);border-color:var(--action-primary);font-weight:600}
.gv-toggle{display:inline-flex;border:1px solid rgba(16,26,43,.18);border-radius:var(--radius-s);overflow:hidden;font:600 11px var(--font-ui)}
.gv-toggle span{padding:6px 10px;color:var(--text-secondary);cursor:pointer}
.gv-toggle span.gv-toggle--on{background:var(--action-primary);color:var(--action-primary-text)}
