/* VIMELO design system v1 — tokens, fonts and components.
   Source of truth: the VIMELO Design System (tokens.json). Dark is the owner app,
   [data-theme="light"] is the customer side. Fonts are self-hosted (SIL OFL). */
@font-face{font-family:"Manrope";src:url("/static/fonts/manrope-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Manrope";src:url("/static/fonts/manrope-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Manrope";src:url("/static/fonts/manrope-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"DM Sans";src:url("/static/fonts/dm-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url("/static/fonts/dm-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url("/static/fonts/dm-sans-latin-600-normal.woff2") format("woff2");font-weight:600 700;font-display:swap}

:root,[data-theme="dark"]{
  --bg:#0b0b0c;--surface:#161617;--surface-raised:#1e1e1e;--surface-sunken:#2a2a2a;
  --line:#2e2a24;--line-strong:#78705f;--ink:#ede6d9;--ink-muted:#a59d90;--ink-faint:#7d766b;
  --gold:#d4b27f;--gold-hover:#e2c393;--on-gold:#0b0b0c;--gold-ink:#d4b27f;--gold-soft:#2b241a;
  --success:#56c2c9;--success-soft:#122d30;--warning:#e8b85a;--warning-soft:#33280f;
  --danger:#ff8a6b;--danger-soft:#3a1d16;--info:#8fb3e8;--info-soft:#17233a;--focus:#f6c87a;
  --shadow-card:0 0 0 1px #2e2a24;--shadow-pop:0 0 0 1px #78705f,0 16px 40px rgba(0,0,0,.55);
  color-scheme:dark}
[data-theme="light"]{
  --bg:#f6f3ed;--surface:#ffffff;--surface-raised:#fbf9f5;--surface-sunken:#efe9df;
  --line:#e4ddd0;--line-strong:#8f8678;--ink:#17140f;--ink-muted:#5d564b;--ink-faint:#857c6f;
  --gold:#d4b27f;--gold-hover:#c6a26c;--on-gold:#0b0b0c;--gold-ink:#7a5c2e;--gold-soft:#f4ead9;
  --success:#0b6b75;--success-soft:#e0f1f2;--warning:#8a5a00;--warning-soft:#fbefd6;
  --danger:#b3361b;--danger-soft:#fbe6e0;--info:#2c5aa0;--info-soft:#e5edf9;--focus:#0b0b0c;
  --shadow-card:0 1px 2px rgba(23,20,15,.06),0 8px 24px rgba(23,20,15,.06);
  --shadow-pop:0 2px 6px rgba(23,20,15,.08),0 20px 48px rgba(23,20,15,.12);
  color-scheme:light}
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;
  --radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;
  --font-display:"Manrope","Helvetica Neue",Arial,sans-serif;--font-sans:"DM Sans","Helvetica Neue",Arial,sans-serif}

/* Base */
[hidden]{display:none!important}
html{background:var(--bg)}
body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em}
.num,.vm-num{font-variant-numeric:tabular-nums}
.vm-eyebrow{font-size:11px;line-height:16px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.vm-muted{color:var(--ink-muted)}
.vm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Buttons */
.vm-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:600 15px/1.2 var(--font-sans);cursor:pointer;text-decoration:none;white-space:nowrap}
.vm-btn:hover{background:var(--surface-sunken)}
.vm-btn-primary{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.vm-btn-primary:hover{background:var(--gold-hover);border-color:var(--gold-hover)}
.vm-btn-ghost{border-color:transparent;color:var(--gold-ink);padding:0 var(--space-3)}
.vm-btn-sm{min-height:36px;padding:0 var(--space-4);font-size:13px;border-radius:var(--radius-sm)}
.vm-btn-block{width:100%}
.vm-btn[disabled],.vm-btn[aria-disabled="true"]{background:var(--surface-sunken);border-color:var(--line);color:var(--ink-faint);cursor:not-allowed}

/* Badges */
.vm-badge{display:inline-flex;align-items:center;gap:var(--space-1);min-height:24px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:12px;line-height:16px;font-weight:600;background:var(--surface-sunken);color:var(--ink-muted);white-space:nowrap}
.vm-badge-included{background:var(--gold-soft);color:var(--gold-ink)}
.vm-badge-success{background:var(--success-soft);color:var(--success)}
.vm-badge-warning{background:var(--warning-soft);color:var(--warning)}
.vm-badge-danger{background:var(--danger-soft);color:var(--danger)}
.vm-badge-info{background:var(--info-soft);color:var(--info)}
.vm-badge-neutral{background:var(--surface-sunken);color:var(--ink-muted)}

/* Cards */
.vm-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}
.vm-card h2,.vm-card h3{margin:0}
.vm-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4)}
.vm-card-title{font:600 19px/26px var(--font-display);margin:0}

/* KPI tiles */
.vm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}
.vm-kpi{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4);display:grid;gap:var(--space-1);align-content:start}
.vm-kpi-label{font-size:13px;color:var(--ink-muted)}
.vm-kpi-value{font:600 28px/32px var(--font-display);font-variant-numeric:tabular-nums}
.vm-kpi-note{font-size:12px;color:var(--ink-muted)}
.vm-kpi-note.is-unknown{color:var(--ink-faint);font-style:italic}

/* Task list */
.vm-tasks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.vm-task{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-raised);border:1px solid var(--line)}
.vm-task-dot{flex:none;width:8px;height:8px;border-radius:var(--radius-pill);background:var(--ink-muted)}
.vm-task-dot.danger{background:var(--danger)}.vm-task-dot.warning{background:var(--warning)}
.vm-task-body{flex:1;min-width:0}
.vm-task-body b{display:block;font-weight:600}
.vm-task-body span{font-size:13px;color:var(--ink-muted)}
.vm-empty{padding:var(--space-5);border:1px dashed var(--line-strong);border-radius:var(--radius-md);color:var(--ink-muted);text-align:center}

/* Pipeline */
.vm-pipeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2);text-align:center}
.vm-stage{padding:var(--space-3) var(--space-1);border-radius:var(--radius-md);background:var(--surface-raised);display:grid;gap:2px}
.vm-stage b{font:600 24px/30px var(--font-display);font-variant-numeric:tabular-nums}
.vm-stage span{font-size:12px;color:var(--ink-muted)}
.vm-stage.is-active{background:var(--gold-soft);box-shadow:inset 0 0 0 1px var(--gold)}
.vm-stage.is-active b,.vm-stage.is-active span{color:var(--gold-ink)}

/* Rows */
.vm-rows{display:grid}
.vm-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}
.vm-row:last-child{border-bottom:0}
.vm-row b{font-weight:600}
.vm-row small{display:block;font-size:13px;color:var(--ink-muted)}

/* Package choice */
.vm-pkgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}
.vm-pkg{position:relative;display:grid;gap:var(--space-2);align-content:start;text-align:left;padding:var(--space-4);border-radius:var(--radius-md);border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.vm-pkg[aria-checked="true"]{border:2px solid var(--gold);background:var(--gold-soft);padding:calc(var(--space-4) - .5px)}
.vm-pkg-name{font:600 17px/24px var(--font-display)}
.vm-pkg-price{font:700 22px/28px var(--font-display);font-variant-numeric:tabular-nums}
.vm-pkg small{color:var(--ink-muted);font-size:13px}

/* Option rows (add-ons, bundles, care) */
.vm-options{display:grid;gap:var(--space-2)}
.vm-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);cursor:pointer}
.vm-option:has(input:checked){border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.vm-option b{display:block;font-weight:600}
.vm-option span{font-size:13px;color:var(--ink-muted)}
.vm-option .vm-price{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);font-size:15px;white-space:nowrap}
.vm-option.is-included{cursor:default;background:var(--surface-raised)}
.vm-check{appearance:none;width:22px;height:22px;margin:0;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);display:grid;place-items:center;cursor:pointer}
.vm-check[type="radio"]{border-radius:var(--radius-pill)}
.vm-check:checked{background:var(--gold);border-color:var(--gold)}
.vm-check:checked::after{content:"";width:6px;height:11px;border:solid var(--on-gold);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.vm-check[type="radio"]:checked::after{width:8px;height:8px;border:0;border-radius:var(--radius-pill);background:var(--on-gold);transform:none}

/* Quote summary */
.vm-sum{display:grid;gap:var(--space-2);font-size:14px}
.vm-sum-line{display:flex;justify-content:space-between;gap:var(--space-3)}
.vm-sum-line.muted{color:var(--ink-muted)}
.vm-sum-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:var(--space-3);margin-top:var(--space-1);border-top:1px solid var(--line)}
.vm-sum-total strong{font:700 24px/30px var(--font-display);font-variant-numeric:tabular-nums}
.vm-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}
.vm-split div{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3)}
.vm-split span{display:block;font-size:12px;line-height:16px;color:var(--ink-muted)}
.vm-split b{font:600 17px/24px var(--font-display);font-variant-numeric:tabular-nums}
.vm-split .is-now{border-color:var(--gold)}

/* Fields */
.vm-field{display:grid;gap:var(--space-2)}
.vm-field>span{font-weight:600;font-size:14px}
.vm-input{min-height:44px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink);font:400 15px/22px var(--font-sans);width:100%;box-sizing:border-box}
.vm-input::placeholder{color:var(--ink-faint)}
select.vm-input{appearance:auto}
.vm-help{font-size:13px;color:var(--ink-muted)}

/* Progress */
.vm-phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
.vm-phase{display:grid;gap:var(--space-2);align-content:start}
.vm-phase i{height:6px;border-radius:var(--radius-pill);background:var(--surface-sunken)}
.vm-phase.is-done i{background:var(--gold)}
.vm-phase.is-current i{background:linear-gradient(90deg,var(--gold) 35%,var(--surface-sunken) 35%)}
.vm-phase b{font-size:14px;font-weight:600}
.vm-phase.is-current b{color:var(--gold-ink)}
.vm-phase:not(.is-done):not(.is-current) b{font-weight:500;color:var(--ink-muted)}
.vm-phase span{font-size:13px;color:var(--ink-muted)}

@media (prefers-reduced-motion:no-preference){.vm-btn,.vm-option,.vm-pkg{transition:background-color .15s,border-color .15s}}
.vm-btn,.vm-input{box-sizing:border-box}
