/* Soft claymorphism primitives: raised surfaces, pressed fields, pill buttons. */
.content-card,.product-card,.step-card,.occasion-card,.auth-card,.stat-card,.stat-pro,.dashboard-card,.timeline-item,.summary-card,.map-card,.addr-preview,.slider,.review-banner,.option-card,.toc,.channel,.order-cta,.lock-card,.track-card,.filter-row,.builder-preview,.modal-card,.a11y-panel,.faq-wrap,.pickup-note{
 background:var(--card);border-radius:var(--r-lg);box-shadow:var(--clay);border:1px solid color-mix(in srgb,var(--border) 45%,transparent)}
.content-card,.auth-card,.lock-card,.track-card{padding:clamp(20px,3vw,34px)}
.content-card h2:first-child,.content-card h3:first-child{margin-top:0}
/* Buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 26px;border:0;border-radius:var(--radius-pill);font-weight:800;font-size:.98rem;letter-spacing:.01em;text-align:center;overflow:hidden;isolation:isolate;
 color:var(--btn-text);background:linear-gradient(145deg,var(--btn-a),var(--btn-b));
 box-shadow:7px 9px 18px var(--btn-glow),-4px -4px 10px var(--sh-hi),inset 2px 3px 5px rgba(255,255,255,.38),inset -3px -4px 7px rgba(0,0,0,.2);
 transition:transform .35s var(--spring),box-shadow .3s,filter .3s}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.42) 50%,transparent 65%);transform:translateX(-130%);transition:transform .8s var(--ease)}
.btn:hover{transform:translateY(-3px);filter:saturate(1.06);box-shadow:9px 14px 26px var(--btn-glow),-4px -4px 10px var(--sh-hi),inset 2px 3px 5px rgba(255,255,255,.42),inset -3px -4px 7px rgba(0,0,0,.2)}
.btn:hover::after{transform:translateX(130%)}
.btn:active{transform:translateY(1px) scale(.97);box-shadow:inset 4px 5px 10px rgba(0,0,0,.3),inset -2px -2px 6px rgba(255,255,255,.2)}
.btn-soft,.btn-ghost{color:var(--text);background:var(--card);box-shadow:var(--clay-sm)}
.btn-soft:hover,.btn-ghost:hover{color:var(--rose-strong);box-shadow:var(--clay);filter:none}
.btn-soft:active{box-shadow:var(--clay-in)}
.btn-small{min-height:42px;padding:0 18px;font-size:.88rem}
.btn[disabled],.btn:disabled{opacity:.45;pointer-events:none}
.btn .ic{transition:transform .3s var(--spring)}.btn:hover .ic{transform:translateX(3px)}
.icon-btn{display:inline-grid;place-items:center;width:46px;height:46px;border:0;border-radius:50%;background:var(--card);color:var(--text);box-shadow:var(--clay-sm);transition:transform .35s var(--spring),box-shadow .3s,color .25s;position:relative;overflow:hidden;font-size:1.1rem}
.icon-btn:hover{transform:translateY(-3px) rotate(-6deg);box-shadow:var(--clay);color:var(--rose-strong)}.icon-btn:active{box-shadow:var(--clay-in);transform:scale(.94)}
.ic{width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.22em}
/* Fields: pressed-in clay */
.field{display:grid;gap:7px}.field label,label.lbl{font-weight:800;font-size:.9rem;color:var(--text)}
.field small{color:var(--muted)}
input,select,textarea{width:100%;min-height:50px;padding:12px 18px;border:2px solid transparent;border-radius:18px;background:var(--field);color:var(--text);box-shadow:var(--clay-in);transition:box-shadow .25s,border-color .25s,background .25s}
textarea{min-height:110px;resize:vertical;border-radius:20px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
input:focus,select:focus,textarea:focus{border-color:var(--rose);outline:none;box-shadow:var(--clay-in),0 0 0 4px color-mix(in srgb,var(--rose) 30%,transparent)}
input[type="checkbox"],input[type="radio"]{width:22px;height:22px;min-height:0;padding:0;box-shadow:none;accent-color:var(--rose-strong)}
input[type="range"]{padding:0;min-height:0;height:8px;box-shadow:var(--clay-in);accent-color:var(--rose-strong);border-radius:99px}
input[type="color"]{padding:0}
input.locked{opacity:.85;cursor:not-allowed}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px;padding-right:44px}
.form-grid{display:grid;gap:16px}.form-grid.two-col{grid-template-columns:1fr}.field-full{grid-column:1/-1}
@media(min-width:640px){.form-grid.two-col{grid-template-columns:1fr 1fr}}
.form-message{min-height:1.4em;font-weight:700;color:var(--rose-strong)}
.req{color:var(--rose-strong)}
/* Chips, tags, tabs */
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;background:var(--rose-soft);color:var(--rose-strong);font-weight:800;font-size:.76rem;letter-spacing:.03em}
.tab-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 auto 28px;padding:7px;width:fit-content;max-width:100%;border-radius:99px;background:var(--surface-3);box-shadow:var(--clay-in)}
.filter-chip{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 20px;border:0;border-radius:99px;background:transparent;color:var(--text);font-weight:800;font-size:.9rem;transition:background .3s,color .3s,box-shadow .3s,transform .3s var(--spring)}
.filter-chip:hover{transform:translateY(-2px);color:var(--rose-strong)}
.filter-chip.active,.filter-chip[aria-pressed="true"]{background:linear-gradient(145deg,var(--btn-a),var(--btn-b));color:var(--btn-text);box-shadow:var(--clay-sm)}
.stars{color:var(--gold);letter-spacing:3px;font-size:1.1rem}
.notice{display:flex;gap:10px;align-items:flex-start;padding:14px 18px;border-radius:20px;background:var(--gold-soft);color:var(--text);font-weight:600;box-shadow:var(--clay-in)}
.notice p{margin:0;color:inherit}.notice .ic{color:var(--gold);margin-top:3px}
.empty-state{text-align:center;padding:40px 20px}.empty-state .big-icon{font-size:3rem}
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:99px;font-weight:900;font-size:.85rem;background:var(--ok-bg);color:var(--ok)}
.status-pill::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}
.status-pill.closed{background:var(--bad-bg);color:var(--bad)}.status-pill.arr{background:var(--warn-bg);color:var(--warn)}
/* Tables (staff/owner) */
.table-wrap{overflow-x:auto;border-radius:22px;background:var(--surface-3);box-shadow:var(--clay-in);padding:6px}
.data-table{width:100%;border-collapse:collapse;min-width:560px}.data-table th,.data-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border)}.data-table th{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.data-table tr:last-child td{border-bottom:0}
.dashboard-layout{padding-bottom:70px;display:grid;gap:22px}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:22px}
.stat-card{padding:20px;font-weight:800;color:var(--muted)}.stat-card strong{display:block;font-family:var(--font-heading);font-size:1.9rem;color:var(--text)}
.summary-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:4px}.summary-list li{display:flex;justify-content:space-between;gap:16px;padding:11px 4px;border-bottom:1px dashed var(--border)}.summary-list span{color:var(--muted)}.summary-list strong{color:var(--text)}
/* Modal + toast */
.modal{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .28s}.modal.open{opacity:1;pointer-events:auto}
.modal-backdrop{position:absolute;inset:0;background:rgba(40,18,24,.55);backdrop-filter:blur(8px)}
.modal-card{position:relative;width:min(900px,100%);max-height:92vh;overflow:auto;padding:0;border-radius:var(--r-xl);box-shadow:var(--clay-lg);transform:translateY(28px) scale(.95);transition:transform .5s var(--spring)}.modal.open .modal-card{transform:none}
.modal-x{position:absolute;top:14px;right:14px;z-index:5}
body.modal-open{overflow:hidden}
.toast{position:fixed;left:50%;bottom:96px;z-index:500;transform:translate(-50%,24px);opacity:0;pointer-events:none;max-width:min(92vw,420px);padding:13px 22px;border-radius:99px;background:linear-gradient(145deg,var(--btn-a),var(--btn-b));color:var(--btn-text);font-weight:800;text-align:center;box-shadow:var(--clay-lg);transition:opacity .3s,transform .45s var(--spring)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:ripple .65s ease-out forwards;pointer-events:none;z-index:0}
.btn-soft .ripple,.filter-chip .ripple,.opt .ripple{background:color-mix(in srgb,var(--rose) 25%,transparent)}
@keyframes ripple{to{transform:scale(1);opacity:0}}
.form-message:empty{min-height:0}
.track-lookup{align-items:flex-end}.track-lookup .btn{margin-bottom:2px}
@media(max-width:560px){.tab-row{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;width:100%;scrollbar-width:none}.tab-row::-webkit-scrollbar{display:none}.tab-row .filter-chip{flex:none}}
/* shared small components (public site + portals) */
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;font-weight:900;font-size:.76rem;white-space:nowrap;background:var(--surface-3);color:var(--text)}.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.pill.s-placed{background:var(--gold-soft);color:var(--warn)}.pill.s-confirmed{background:var(--rose-soft);color:var(--rose-strong)}.pill.s-paid,.pill.s-ready{background:var(--ok-bg);color:var(--ok)}.pill.s-baking{background:var(--warn-bg);color:var(--warn)}.pill.s-done{background:var(--surface-3);color:var(--muted)}.pill.s-cancelled{background:var(--bad-bg);color:var(--bad)}
.list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:14px 16px;border-radius:26px;background:var(--card);box-shadow:var(--clay);border:1px solid color-mix(in srgb,var(--border) 45%,transparent)}
.chip-row{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:99px;background:var(--surface-3);box-shadow:var(--clay-in)}.chip-row .filter-chip{min-height:40px;padding:0 15px;font-size:.84rem}
.chip-row .count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--surface-2);color:var(--rose-strong);font-size:.72rem;font-weight:900}.chip-row .filter-chip.active .count{background:rgba(255,255,255,.9);color:var(--btn-b)}
[data-theme="dark"] .chip-row .filter-chip.active .count{background:rgba(0,0,0,.25);color:var(--btn-text)}
.grow{flex:1;min-width:0}
button.text-link{background:none;border:0;padding:6px 0;font:inherit;font-weight:800;cursor:pointer;min-height:36px}
.stars{color:var(--gold);letter-spacing:2px;white-space:nowrap}.stars .off{color:var(--border)}.stars.lg{font-size:1.4rem}
.rv-reply{margin-top:14px;padding:14px 16px;border-radius:18px;background:var(--surface-3);box-shadow:var(--clay-in)}.rv-reply p{margin:4px 0 0;font-size:.92rem;color:var(--text)}
.mine-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:18px;background:var(--surface-3);box-shadow:var(--clay-in)}.mine-item p{margin:2px 0 0;font-size:.85rem}

/* shared dialog content (used by builder, login, receipt dialogs) */
.detail{display:grid;gap:16px;padding:clamp(20px,3vw,32px)}.detail h2{margin:0}
.row-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
/* shared switch + toggle row (used on the website and in the portals) */
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:20px;background:var(--card);box-shadow:var(--clay-sm);cursor:pointer;font-weight:800;color:var(--text)}
.switch{position:relative;width:52px;height:30px;flex:none}.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2;min-height:0;box-shadow:none}.switch span{position:absolute;inset:0;border-radius:99px;background:var(--surface-3);box-shadow:var(--clay-in);transition:background .3s}.switch span::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--surface-2);box-shadow:var(--clay-sm);transition:transform .35s var(--spring)}.switch input:checked+span{background:linear-gradient(145deg,var(--btn-a),var(--btn-b))}.switch input:checked+span::after{transform:translateX(22px)}
.switch input:focus-visible+span{outline:3px solid var(--ring);outline-offset:3px}

.pill.s-quote{background:var(--gold-soft);color:var(--rose-strong);box-shadow:inset 0 0 0 1.5px var(--gold-deco)}
.pill.s-needquote{background:var(--rose-soft);color:var(--rose-strong);box-shadow:inset 0 0 0 1.5px var(--rose)}
