/* EYORA component classes — consumed by the React primitives. Angular, flat, 8px grid, radius ≤2px. */
.ey-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);white-space:nowrap;flex:none;font-family:var(--font-ui);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-caps);border:1px solid transparent;border-radius:var(--radius-1);cursor:pointer;transition:opacity var(--dur-fast) var(--ease-converge),transform var(--dur-fast) var(--ease-converge);background:none;color:var(--text-heading)}
.ey-btn:active{transform:translateY(1px)}
.ey-btn:focus-visible,.ey-input:focus-visible,.ey-select:focus-visible,.ey-check input:focus-visible+.ey-box,.ey-radio input:focus-visible+.ey-dot,.ey-switch input:focus-visible+.ey-track{outline:2px solid var(--focus-ring);outline-offset:2px}
.ey-btn--md{height:40px;padding:0 var(--sp-3);font-size:var(--fs-14)}
.ey-btn--sm{height:32px;padding:0 var(--sp-2);font-size:var(--fs-12)}
.ey-btn--lg{height:48px;padding:0 var(--sp-4);font-size:var(--fs-14)}
.ey-btn--primary{background:var(--accent);color:var(--text-on-accent)}
.ey-btn--primary:hover{opacity:.88}
.ey-btn--secondary{border-color:var(--border-1);color:var(--text-heading)}
.ey-btn--secondary:hover{border-color:var(--text-heading)}
.ey-btn--teal{border-color:var(--secondary);color:var(--text-heading);background:var(--secondary)}
.ey-btn--teal:hover{opacity:.88}
.ey-btn--ghost{color:var(--text-body)}
.ey-btn--ghost:hover{color:var(--accent)}
.ey-btn[disabled]{opacity:.35;pointer-events:none}
.ey-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border-1);border-radius:var(--radius-1);background:none;color:var(--text-body);cursor:pointer;transition:opacity var(--dur-fast),transform var(--dur-fast)}
.ey-iconbtn:hover{border-color:var(--text-heading);color:var(--text-heading)}
.ey-iconbtn:active{transform:translateY(1px)}
.ey-field{display:flex;flex-direction:column;gap:var(--sp-1)}
.ey-label{font-family:var(--font-ui);font-size:var(--fs-12);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--text-muted)}
.ey-input,.ey-select{font-family:var(--font-special);font-size:var(--fs-16);color:var(--text-heading);background:transparent;border:1px solid var(--border-1);border-radius:var(--radius-1);height:48px;padding:0 var(--sp-2);width:100%;transition:opacity var(--dur-fast)}
.ey-input::placeholder{color:var(--text-muted)}
.ey-input:hover,.ey-select:hover{border-color:var(--text-muted)}
.ey-input:focus,.ey-select:focus{border-color:var(--accent);outline:none}
textarea.ey-input{height:auto;min-height:96px;padding:var(--sp-2);resize:vertical}
.ey-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23F4F1E8' stroke-opacity='.7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.ey-select option{background:var(--ey-black);color:var(--ey-paper)}
.ey-check,.ey-radio{display:inline-flex;align-items:center;gap:var(--sp-1);cursor:pointer;font-family:var(--font-special);font-size:var(--fs-14);color:var(--text-body)}
.ey-check input,.ey-radio input,.ey-switch input{position:absolute;opacity:0;width:0;height:0}
.ey-box{width:18px;height:18px;border:1px solid var(--border-1);border-radius:var(--radius-1);display:inline-flex;align-items:center;justify-content:center;flex:none;transition:opacity var(--dur-fast)}
.ey-box::after{content:'';width:10px;height:6px;border-left:2px solid var(--text-on-accent);border-bottom:2px solid var(--text-on-accent);transform:rotate(-45deg) scale(0);transition:transform var(--dur-fast) var(--ease-converge)}
.ey-check input:checked+.ey-box{background:var(--accent);border-color:var(--accent)}
.ey-check input:checked+.ey-box::after{transform:rotate(-45deg) scale(1) translateY(-1px)}
.ey-dot{width:18px;height:18px;border:1px solid var(--border-1);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ey-dot::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform var(--dur-fast) var(--ease-converge)}
.ey-radio input:checked+.ey-dot{border-color:var(--accent)}
.ey-radio input:checked+.ey-dot::after{transform:scale(1)}
.ey-switch{display:inline-flex;align-items:center;gap:var(--sp-1);cursor:pointer;font-family:var(--font-special);font-size:var(--fs-14);color:var(--text-body)}
.ey-track{width:36px;height:20px;border:1px solid var(--border-1);border-radius:var(--radius-1);position:relative;flex:none;transition:opacity var(--dur-fast)}
.ey-track::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text-muted);border-radius:var(--radius-1);transition:transform var(--dur-fast) var(--ease-converge)}
.ey-switch input:checked+.ey-track{border-color:var(--accent)}
.ey-switch input:checked+.ey-track::after{background:var(--accent);transform:translateX(16px)}
.ey-card{background:var(--surface-card);border:1px solid var(--border-1);border-radius:var(--radius-1);padding:var(--sp-4)}
.ey-card--interactive{transition:transform var(--dur-base) var(--ease-converge),opacity var(--dur-base);cursor:pointer}
.ey-card--interactive:hover{transform:translateY(-4px);border-color:var(--text-muted)}
.ey-badge{display:inline-flex;align-items:center;height:24px;padding:0 var(--sp-1);border-radius:var(--radius-1);font-family:var(--font-ui);font-size:var(--fs-12);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-caps)}
.ey-badge--gold{background:var(--accent);color:var(--text-on-accent)}
.ey-badge--teal{background:var(--secondary);color:var(--ey-paper)}
.ey-badge--sage{background:var(--quiet);color:var(--ey-black)}
.ey-badge--line{border:1px solid var(--border-1);color:var(--text-body)}
.ey-tag{display:inline-flex;align-items:center;gap:var(--sp-1);height:32px;padding:0 var(--sp-2);border:1px solid var(--border-1);border-radius:var(--radius-1);font-family:var(--font-ui);font-size:var(--fs-12);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--text-body);background:none;cursor:pointer;transition:opacity var(--dur-fast)}
.ey-tag:hover{border-color:var(--text-muted)}
.ey-tag[data-selected="true"]{border-color:var(--accent);color:var(--accent)}
.ey-tabs{display:flex;gap:var(--sp-4);border-bottom:1px solid var(--border-2)}
.ey-tab{position:relative;background:none;border:none;padding:var(--sp-1) 0 var(--sp-2);font-family:var(--font-ui);font-size:var(--fs-14);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--text-muted);cursor:pointer;transition:opacity var(--dur-fast)}
.ey-tab:hover{color:var(--text-body)}
.ey-tab[aria-selected="true"]{color:var(--text-heading)}
.ey-tab::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-converge)}
.ey-tab[aria-selected="true"]::after{transform:scaleX(1)}
.ey-overlay{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:100;animation:ey-fade var(--dur-base) both}
@keyframes ey-fade{from{opacity:0}to{opacity:1}}
.ey-dialog{background:var(--ey-black);border:1px solid var(--border-1);border-radius:var(--radius-1);padding:var(--sp-5);max-width:480px;width:calc(100% - var(--sp-6));animation:ey-emerge var(--dur-base) var(--ease-converge) both}
.ey-toast{display:flex;align-items:center;gap:var(--sp-2);background:var(--ey-black);border:1px solid var(--border-1);border-left:2px solid var(--accent);border-radius:var(--radius-1);padding:var(--sp-2) var(--sp-3);font-family:var(--font-special);font-size:var(--fs-14);color:var(--text-heading);animation:ey-converge-r var(--dur-base) var(--ease-converge) both}
.ey-toast--info{border-left-color:var(--secondary)}
.ey-toast--quiet{border-left-color:var(--quiet)}
.ey-tooltip{position:relative;display:inline-flex}
.ey-tooltip .ey-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);background:var(--ey-paper);color:var(--ey-black);font-family:var(--font-special);font-size:var(--fs-12);padding:var(--sp-1) 12px;border-radius:var(--radius-1);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease-converge)}
.ey-tooltip:hover .ey-tip,.ey-tooltip:focus-within .ey-tip{opacity:1;transform:translateX(-50%) translateY(0)}
.ey-rule{height:1px;background:var(--border-2);border:none;margin:0}
.ey-rule--gold{height:2px;background:var(--accent);width:var(--sp-6)}
