.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.94);box-shadow:var(--shadow-xs)}
.card--soft{background:linear-gradient(145deg,#fff,#fff8f4)}
.card__body{padding:var(--space-4)}
.btn{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:.55rem;border:1px solid transparent;border-radius:var(--radius-pill);padding:.75rem 1.1rem;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--gradient-primary);color:white;box-shadow:0 10px 24px rgba(166,77,72,.2)}
.btn--wine{background:var(--gradient-wine);color:white}
.btn--secondary{border-color:var(--color-border-strong);background:white;color:var(--color-primary-strong)}
.btn--ghost{border-color:var(--color-border);background:transparent;color:var(--color-text)}
.btn--icon{width:42px;height:42px;min-height:42px;padding:0;border-color:var(--color-border);background:rgba(255,255,255,.86);color:var(--color-text)}
.btn--block{width:100%}
.pill{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.34rem .65rem;background:white;color:var(--color-muted);font-size:var(--text-xs);font-weight:750}
.eyebrow{display:block;color:var(--color-primary-strong);font-size:var(--text-xs);font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:var(--space-6) 0 var(--space-3)}
.section-title h2{margin:0;font-family:var(--font-ui);font-size:var(--text-lg);font-weight:850}
.section-title__action{border:0;background:transparent;color:var(--color-primary-strong);font-size:var(--text-xs);font-weight:800}
.option-list{display:grid;gap:.55rem}
.option-button{display:grid;grid-template-columns:auto 1fr auto;width:100%;align-items:center;gap:.75rem;border:1px solid var(--color-border);border-radius:16px;padding:.75rem;background:white;color:var(--color-text);text-align:left;transition:.18s}
.option-button:hover,.option-button.is-selected{border-color:var(--color-primary);background:#fff7f3;box-shadow:var(--shadow-xs)}
.option-button__icon{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--color-surface-rose);color:var(--color-primary-strong)}
.option-button__title{display:block;font-size:.86rem;font-weight:800}
.option-button__description{display:block;color:var(--color-muted);font-size:.68rem;margin-top:.1rem}
.form-field{display:grid;gap:.42rem}.form-field label{font-size:var(--text-xs);font-weight:800}
.input,.textarea,.select{width:100%;border:1px solid var(--color-border);border-radius:16px;padding:.85rem .95rem;background:white;color:var(--color-text)}
.textarea{min-height:120px;resize:vertical}
.field-hint{color:var(--color-muted);font-size:var(--text-xs)}
.loading{display:grid;min-height:280px;place-items:center;color:var(--color-muted)}
.spinner{width:30px;height:30px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.toast-region{position:fixed;z-index:120;right:1rem;bottom:calc(var(--nav-height) + var(--safe-bottom) + 1rem);display:grid;gap:.5rem;pointer-events:none}
.toast{display:flex;max-width:360px;align-items:center;gap:.65rem;border:1px solid var(--color-border);border-radius:18px;padding:.8rem 1rem;background:#fff;color:var(--color-text);box-shadow:var(--shadow-md);animation:toast-in .25s ease both}
@keyframes toast-in{from{opacity:0;transform:translateY(12px)}}
.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;align-items:end;padding:1rem;background:rgba(41,24,22,.45);backdrop-filter:blur(5px)}
.modal{width:min(100%,520px);max-height:88vh;margin:0 auto;overflow:auto;border-radius:28px 28px 20px 20px;background:var(--color-bg);box-shadow:var(--shadow-md)}
.modal__header{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--color-border);background:rgba(249,246,240,.92);backdrop-filter:blur(12px)}
.modal__header h2{margin:0;font-family:var(--font-ui);font-size:var(--text-lg);font-weight:850}.modal__body{padding:1rem}
.progress-track{height:7px;overflow:hidden;border-radius:99px;background:#efe5df}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--gradient-primary)}
.empty-state{padding:2rem;text-align:center}.empty-state p{color:var(--color-muted)}
