/* Yevenna components. Load after tokens/tokens.css and fonts/fonts.css. Class prefix yv-. Plain CSS: works with any framework. */
body { margin: 0; font-family: var(--yv-font-sans); background: var(--yv-paper); color: var(--yv-ink); font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; }
.yv-stage { display: flex; flex-wrap: wrap; gap: var(--yv-space-4); align-items: flex-start; padding: var(--yv-space-5); }
.yv-col { display: flex; flex-direction: column; gap: var(--yv-space-3); }

/* Button */
.yv-btn { font: inherit; font-size: 16px; font-weight: 600; height: var(--yv-touch-web-button); padding: 0 var(--yv-space-4); border-radius: var(--yv-radius-btn); border: 1px solid var(--yv-line-strong); background: var(--yv-surface); color: var(--yv-ink); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: var(--yv-space-2); }
.yv-btn--primary { background: var(--yv-ink); border-color: var(--yv-ink); color: var(--yv-on-ink); }
.yv-btn--pos { height: var(--yv-touch-pos-button); width: 100%; }
.yv-btn:focus-visible { outline: 2px solid transparent; box-shadow: var(--yv-focus-ring); }
.yv-btn:disabled { opacity: 0.45; cursor: not-allowed; }

/* Status chip */
.yv-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; line-height: 1; padding: 6px 12px; border-radius: var(--yv-radius-full); border: 1px solid var(--yv-line-strong); color: var(--yv-ink); background: transparent; white-space: nowrap; }
.yv-chip--attention { border-color: var(--yv-cereza); color: var(--yv-cereza); }
.yv-chip--ok { border-color: var(--yv-cafetal); color: var(--yv-cafetal); }
.yv-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* Eyebrow and voice */
.yv-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--yv-gray); }
.yv-eyebrow--role { color: var(--yv-cereza); }
.yv-greeting { font-family: var(--yv-font-voice); font-style: italic; font-weight: 400; color: var(--yv-gray); font-size: 16px; }
.yv-greeting--lg { font-size: 22px; color: var(--yv-ink); }
.yv-code { font-family: var(--yv-font-mono); font-size: 13px; letter-spacing: 0.02em; }

/* Card / shells */
.yv-card { background: var(--yv-surface); border: 1px solid var(--yv-line); border-radius: var(--yv-radius-md); padding: var(--yv-space-4); }
.yv-shell { background: var(--yv-surface); border: 1px solid var(--yv-line); border-radius: var(--yv-radius-lg); overflow: hidden; }
.yv-header { height: 56px; box-sizing: border-box; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; gap: var(--yv-space-3); border-bottom: 1px solid var(--yv-line); }
.yv-header-id { display: flex; align-items: center; gap: 10px; }
.yv-header-id strong { font-size: 15px; font-weight: 600; }

/* POS tile */
.yv-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.yv-tile { font: inherit; text-align: left; color: var(--yv-ink); background: var(--yv-paper); border: 1px solid var(--yv-line); border-radius: var(--yv-radius-md); padding: var(--yv-space-3); min-height: var(--yv-touch-pos-tile); display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; font-feature-settings: 'ss04' 1; }
.yv-tile b { font-size: 17px; font-weight: 600; line-height: 1.3; }
.yv-tile span { font-size: 14px; color: var(--yv-gray); }
.yv-tile--selected { border: 1.5px solid var(--yv-cereza); }
.yv-tile:focus-visible { outline: 2px solid transparent; box-shadow: var(--yv-focus-ring); }

/* Ticket */
.yv-ticket { background: var(--yv-hueso); border-radius: var(--yv-radius-md); padding: 14px; display: flex; flex-direction: column; gap: 10px; min-width: 200px; font-feature-settings: 'ss04' 1; }
.yv-ticket-line { display: flex; justify-content: space-between; font-size: 14px; gap: var(--yv-space-3); }
.yv-ticket-meta { font-size: 12px; color: var(--yv-gray); }
.yv-total { display: flex; justify-content: space-between; align-items: baseline; }
.yv-total span { font-size: 13px; color: var(--yv-gray); }
.yv-total b { font-family: var(--yv-font-display); font-weight: 600; font-size: 32px; letter-spacing: -0.02em; }

/* Owner: nav, KPI, inventory, suggested order */
.yv-nav { display: flex; flex-direction: column; gap: 4px; width: 170px; font-size: 14px; }
.yv-nav a { padding: 8px 10px; border-radius: var(--yv-radius-sm); color: var(--yv-gray); text-decoration: none; }
.yv-nav a[aria-current="page"] { background: var(--yv-hueso); color: var(--yv-ink); font-weight: 600; }
.yv-nav a:focus-visible { outline: 2px solid transparent; box-shadow: var(--yv-focus-ring); }
.yv-kpi { border: 1px solid var(--yv-line); border-radius: var(--yv-radius-md); padding: 14px; background: var(--yv-surface); }
.yv-kpi span { font-size: 12px; color: var(--yv-gray); }
.yv-kpi b { display: block; font-family: var(--yv-font-display); font-weight: 600; font-size: 28px; letter-spacing: -0.02em; margin-top: 4px; }
.yv-inv { display: flex; flex-direction: column; gap: 4px; font-feature-settings: 'ss04' 1; }
.yv-inv-top { display: flex; justify-content: space-between; font-size: 13px; }
.yv-inv-top em { font-style: normal; color: var(--yv-gray); }
.yv-inv--low .yv-inv-top em { color: var(--yv-cereza); font-weight: 600; }
.yv-bar { height: 6px; border-radius: 3px; background: var(--yv-hueso); overflow: hidden; }
.yv-bar i { display: block; height: 6px; border-radius: 3px; background: var(--yv-ink); }
.yv-inv--low .yv-bar i { background: var(--yv-cereza); }
.yv-suggest { background: var(--yv-hueso); border-radius: var(--yv-radius-md); padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.yv-suggest h4 { margin: 0; font-size: 15px; font-weight: 600; }
.yv-suggest p { margin: 0; font-size: 13px; line-height: 1.45; }

/* Supplier table */
.yv-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.yv-table th { text-align: left; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--yv-gray); padding: 10px 12px; border-bottom: 1px solid var(--yv-line); }
.yv-table td { padding: 0 12px; height: 48px; border-bottom: 1px solid var(--yv-line); }
.yv-table td.num { text-align: right; }

/* Customer */
.yv-avatar-frame { width: 150px; height: 170px; border-radius: var(--yv-radius-xl); background: var(--yv-hueso); display: flex; align-items: center; justify-content: center; }
.yv-avatar-frame svg { width: 108px; height: 135px; }
.yv-avatar .body { fill: var(--yv-surface); stroke: var(--yv-ink); stroke-width: 3.5; }
.yv-avatar .ink { fill: var(--yv-ink); }
.yv-avatar .line { fill: none; stroke: var(--yv-ink); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.yv-avatar .hat { fill: var(--yv-cereza); }
.yv-shops { display: flex; flex-direction: column; border-top: 1px solid var(--yv-line); }
.yv-shop { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--yv-line); font-size: 14px; }
.yv-shop em { font-style: normal; color: var(--yv-gray); }
.yv-shop--done em { color: var(--yv-cereza); font-weight: 600; }
.yv-unlock { background: var(--yv-ink); color: var(--yv-on-ink); border-radius: var(--yv-radius-md); padding: 10px 12px; font-size: 13px; line-height: 1.35; }
.yv-unlock b { font-weight: 600; }
