:root{--brand-primary:#0A58CA;--brand-secondary:#D4AF37;--brand-on-primary:#fff;--bg:#f6f8fc;--card:#fff;--text:#0b1220;--muted:#667085;--border:#e4e8f0;--danger:#b42318;--success:#067647}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,4vw,56px);background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);min-width:0}.brand img{width:42px;height:42px;object-fit:contain}.brand span{display:flex;flex-direction:column;min-width:0}.brand strong{font-size:15px}.brand small{font-size:11px;color:var(--muted)}nav{display:flex;align-items:center;gap:16px}nav a,.link-btn{color:var(--text);text-decoration:none;font-weight:650;font-size:14px}.inline-form{display:inline}.link-btn{border:0;background:none;cursor:pointer}.page{max-width:1180px;margin:0 auto;padding:32px clamp(16px,3vw,32px) 60px}.footer{border-top:1px solid var(--border);padding:22px clamp(16px,4vw,56px);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px;background:#fff}.footer a{color:var(--brand-primary);font-weight:700;text-decoration:none}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px}.install{max-width:820px;margin:20px auto}.install.center,.center{text-align:center}.big-check{width:72px;height:72px;margin:0 auto 12px;display:grid;place-items:center;border-radius:50%;background:#ecfdf3;color:var(--success);font-size:40px}.checklist{display:grid;gap:8px;margin:20px 0}.checklist>div{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px}.status{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800}.status.ok{background:#ecfdf3;color:var(--success)}.status.bad{background:#fff1f0;color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:10px;background:var(--brand-primary);color:var(--brand-on-primary);text-decoration:none;border:1px solid var(--brand-primary);font-weight:750;cursor:pointer}.btn.secondary{background:#fff;color:var(--brand-primary)}.fullbtn{width:100%}.hint,.muted{color:var(--muted);font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:grid;gap:7px;font-weight:650;font-size:14px}label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cfd6e4;border-radius:10px;background:#fff;color:var(--text);font:inherit}input:focus,select:focus,textarea:focus,button:focus,a:focus{outline:3px solid color-mix(in srgb,var(--brand-primary) 24%,transparent);outline-offset:2px}.full{grid-column:1/-1}.check{display:flex;align-items:center;gap:10px}.check input{width:18px;min-height:auto}.actions{display:flex;gap:10px}.password-wrap{display:grid;grid-template-columns:1fr 46px;gap:6px}.eye{border:1px solid #cfd6e4;border-radius:10px;background:#fff;cursor:pointer;font-size:18px}.auth-shell{min-height:55vh;display:grid;place-items:center}.auth-card{width:min(440px,100%)}.auth-card form{display:grid;gap:16px}.text-link{color:var(--brand-primary);font-weight:700;text-align:center;text-decoration:none}.alert{padding:13px 16px;border-radius:12px;margin-bottom:16px;font-weight:650}.alert.success{background:#ecfdf3;color:#05603a;border:1px solid #abefc6}.alert.error{background:#fff1f0;color:#912018;border:1px solid #fecdca}.hero{display:grid;grid-template-columns:1.4fr .6fr;gap:24px;align-items:center;padding:50px 0}.hero h1{font-size:clamp(38px,6vw,72px);line-height:1;margin:8px 0 14px}.hero p{font-size:18px;color:var(--muted);max-width:700px}.hero-mark{display:grid;place-items:center}.hero-mark img{width:min(300px,100%)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--brand-primary);font-weight:800;font-size:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dash-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.dash-head h1{margin:4px 0}.dash-head p{margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;margin-top:4px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips span{background:#f2f4f7;border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.list{display:grid;gap:9px}.list>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:10px 0}.list span{color:var(--muted);font-size:13px;text-align:right}@media(max-width:760px){.topbar{align-items:flex-start}.brand small{display:none}nav{gap:10px}.page{padding-top:20px}.form-grid,.hero,.grid3,.split{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.hero{padding:24px 0}.hero-mark{order:-1}.hero-mark img{width:120px}.dash-head{flex-direction:column}.full{grid-column:auto}.list>div{flex-direction:column}.list span{text-align:left}}@media(max-width:420px){.stats{grid-template-columns:1fr}.brand strong{max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* Sprint 2 — Agenda, cadastros e reservas */
.admin-strip{display:flex;gap:8px;overflow:auto;padding:9px clamp(16px,4vw,56px);background:#fff;border-bottom:1px solid var(--border);scrollbar-width:thin}.admin-strip a{white-space:nowrap;text-decoration:none;color:var(--muted);font-size:13px;font-weight:750;padding:7px 10px;border-radius:9px}.admin-strip a:hover,.admin-strip a:focus{color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 8%,#fff)}.admin-workspace{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:18px;align-items:start}.section-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.data-list{display:grid;gap:2px}.data-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.data-row:last-child{border-bottom:0}.data-row>div:first-child{display:grid;gap:3px;min-width:0}.data-row strong{overflow-wrap:anywhere}.data-row small{color:var(--muted)}.row-actions{display:flex!important;align-items:center;gap:8px;flex-shrink:0}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;line-height:1.2}.badge.ok{background:#ecfdf3;color:#067647}.badge.warn{background:#fffaeb;color:#b54708}.badge.danger{background:#fff1f0;color:#b42318}.badge.neutral{background:#f2f4f7;color:#475467}.btn.mini{min-height:34px;padding:6px 10px;border-radius:8px;font-size:12px}.choice-box{border:1px solid var(--border);border-radius:12px;padding:14px}.choice-box legend{padding:0 7px;font-weight:750}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.choice-grid .check{font-weight:550}.booking-form-card{max-width:900px;margin:0 auto}.callout{border:1px solid color-mix(in srgb,var(--brand-primary) 18%,var(--border));background:color-mix(in srgb,var(--brand-primary) 4%,#fff);padding:14px;border-radius:12px}.callout p{margin:5px 0 0;color:var(--muted);font-size:13px}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.quick-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;text-decoration:none;color:var(--text);display:grid;gap:6px;min-width:0}.quick-card>span{font-size:23px}.quick-card strong{font-size:16px}.quick-card small{color:var(--muted);line-height:1.35}.quick-card:hover,.quick-card:focus{border-color:color-mix(in srgb,var(--brand-primary) 35%,var(--border));box-shadow:0 8px 24px rgba(15,23,42,.06)}.agenda-toolbar{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}.date-nav,.inline-date,.agenda-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-date input{min-height:34px;padding:5px 8px}.compact{font-size:13px}.agenda-legend{color:var(--muted);font-size:12px}.agenda-legend span{display:flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.confirmed{background:#12b76a}.dot.waiting{background:#f79009}.dot.completed{background:#667085}.agenda-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px;align-items:start}.agenda-column{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;min-width:0}.agenda-column>header{padding:13px 14px;background:#f8fafc;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:10px;align-items:center}.agenda-column>header span{font-size:11px;color:var(--muted)}.agenda-items{padding:10px;display:grid;gap:9px}.free-slot{padding:20px 12px;border:1px dashed #cfd6e4;border-radius:12px;color:var(--muted);text-align:center;font-size:13px}.appointment{border:1px solid var(--border);border-left:4px solid #98a2b3;border-radius:12px;padding:11px;display:grid;gap:4px;background:#fff}.appointment.status-confirmed{border-left-color:#12b76a}.appointment.status-awaiting_confirmation,.appointment.status-pending{border-left-color:#f79009}.appointment.status-completed{border-left-color:#667085;background:#f9fafb}.appointment.status-cancelled,.appointment.status-rescheduled{opacity:.62}.appointment.status-no_show{border-left-color:#d92d20}.appointment-time{font-weight:850;color:var(--brand-primary);font-size:13px}.appointment>span,.appointment>small{font-size:12px;color:var(--muted)}.appointment-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:5px;font-size:12px}.status-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:6px}.status-form select{min-height:34px;padding:5px 7px;font-size:12px}.empty-state{text-align:center;padding:40px}.empty-state .actions{justify-content:center}.form-grid a{color:var(--brand-primary)}
@media(max-width:900px){.admin-workspace{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.choice-grid,.quick-grid{grid-template-columns:1fr}.data-row{align-items:flex-start;flex-direction:column}.row-actions{width:100%;justify-content:space-between}.agenda-board{grid-template-columns:1fr}.admin-strip{padding-inline:12px}.status-form{grid-template-columns:1fr}.status-form .btn{width:100%}}
.service-public h3{margin:.1rem 0 .4rem}.service-public p{color:var(--muted);margin:.2rem 0}.service-public>strong{font-size:20px;color:var(--brand-primary)}.public-cta{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px}.public-cta h2{margin:4px 0}.public-cta p{margin:0}@media(max-width:600px){.public-cta{align-items:flex-start;flex-direction:column}}
.customer-history>div>div{display:grid;gap:2px}.customer-history small{color:var(--muted)}.customer-history b{color:var(--text)}

/* Sprint 3 — horários, bloqueios, recorrência e confirmação */
.schedule-split{align-items:start}.hours-grid{display:grid;gap:8px}.hours-row{display:grid;grid-template-columns:minmax(150px,1.25fr) 1fr 1fr;gap:10px;align-items:end;border-bottom:1px solid var(--border);padding:9px 0}.hours-row:last-of-type{border-bottom:0}.hours-row label{font-size:12px}.hours-row .check{align-self:center;font-size:14px}.schedule-blocks{margin-top:18px}.customer-reservations{display:grid;gap:12px}.customer-reservation{border:1px solid var(--border);border-radius:14px;padding:14px;display:grid;gap:10px}.customer-reservation-head,.reservation-meta,.customer-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.customer-reservation-head>div{display:grid;gap:2px}.customer-reservation-head small,.policy-note{color:var(--muted);font-size:12px}.reservation-meta{font-size:13px;color:var(--muted)}.customer-actions{justify-content:flex-start}.warn-text{color:#b54708!important}.error-mark{background:#fff1f0!important;color:var(--danger)!important}.appointment small{line-height:1.35}.card code{background:#f2f4f7;border-radius:5px;padding:2px 5px;overflow-wrap:anywhere}
@media(max-width:700px){.hours-row{grid-template-columns:1fr 1fr}.hours-row .check{grid-column:1/-1}.schedule-split{grid-template-columns:1fr}.customer-reservation-head,.reservation-meta{align-items:flex-start;flex-direction:column}.customer-actions form,.customer-actions .btn{width:100%}}

/* Sprint 4 — pagamentos, sinal, Pix manual e créditos */
.appointment.status-scheduled{border-left-color:#6172f3}.appointment-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.payment-workspace{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr)}.payment-list .data-row{align-items:flex-start}.payment-stats .stat strong{font-size:clamp(20px,3vw,28px)}.payment-detail-grid{align-items:start}.finance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:22px}.finance-summary>div{border-bottom:1px solid var(--border);padding:9px 0;display:grid;gap:3px}.finance-summary span{font-size:12px;color:var(--muted)}.finance-summary strong{font-size:14px}.compact-form{gap:10px}.soft-rule{border:0;border-top:1px solid var(--border);margin:22px 0}.payment-transactions{margin-top:16px}.reservation-payment-line{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:4px}.payment-transactions textarea[readonly]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.payment-method-note{display:flex;gap:10px;align-items:flex-start}.payment-method-note strong{white-space:nowrap}
@media(max-width:900px){.payment-workspace{grid-template-columns:1fr}.finance-summary{grid-template-columns:1fr}.payment-detail-grid{grid-template-columns:1fr}}

/* Sprint 5 — agendamento público, remarcação e fila de espera */
.booking-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end}.slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0}.slot-grid form{margin:0}.slot-pick{width:100%;min-height:72px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);padding:10px;display:grid;place-items:center;gap:2px;cursor:pointer;font:inherit}.slot-pick strong{font-size:18px;color:var(--brand-primary)}.slot-pick small{display:block;color:var(--muted);font-size:11px;text-align:center}.slot-pick:hover,.slot-pick:focus,.slot-pick.selected{border-color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 6%,#fff)}.booking-checkout{display:grid;gap:16px;margin-top:18px;border-top:1px solid var(--border);padding-top:18px}.selected-slot{padding:12px;border-radius:10px;background:#f8fafc;border:1px solid var(--border);font-weight:750}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.password-field{display:grid;grid-template-columns:1fr 44px;gap:6px}.password-toggle{border:1px solid #cfd6e4;border-radius:10px;background:#fff;cursor:pointer}.public-action-card{max-width:680px;margin:30px auto;text-align:center}.service-public{display:grid;gap:8px}.service-public .text-link{text-align:left}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table-wrap th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
@media(max-width:900px){.booking-filter{grid-template-columns:1fr 1fr}.booking-filter .btn{width:100%}.grid2{grid-template-columns:1fr}}
@media(max-width:600px){.booking-filter{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Sprint 6 — vitrine, carrinho, pedidos e estoque */
.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.product-card{padding:0;overflow:hidden;display:grid;grid-template-rows:auto 1fr}.product-image{width:100%;aspect-ratio:4/3;object-fit:cover;background:#f2f4f7}.product-placeholder{display:grid;place-items:center;font-size:52px;font-weight:900;color:var(--brand-primary)}.product-body{padding:16px;display:grid;gap:9px}.product-body h2,.product-body h3{margin:0}.product-body p{color:var(--muted);margin:0;min-height:2.8em}.product-body>strong{font-size:20px;color:var(--brand-primary)}.product-body form{display:grid;grid-template-columns:minmax(90px,.55fr) 1fr;gap:10px;align-items:end}.product-body form label{font-size:12px}.compact-products .product-body p{min-height:0}.store-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;align-items:start}.cart-line{display:grid;grid-template-columns:minmax(0,1fr) 170px auto auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.cart-line>div{display:grid;gap:4px}.cart-line small{color:var(--muted)}.cart-qty{display:grid;grid-template-columns:80px auto;gap:7px}.checkout-card{position:sticky;top:12px}.danger-link{color:#b42318}.order-status-timeline{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.checkout-card fieldset{display:grid;gap:9px}.checkout-card textarea,.card textarea[readonly]{width:100%}
@media(max-width:900px){.store-layout{grid-template-columns:1fr}.checkout-card{position:static}.cart-line{grid-template-columns:1fr auto}.cart-qty{grid-column:1/2}.cart-line>strong{grid-column:2/3;grid-row:1/2}.cart-line>form:last-child{grid-column:2/3}}
@media(max-width:600px){.product-grid{grid-template-columns:1fr}.product-body form{grid-template-columns:1fr}.cart-line{grid-template-columns:1fr}.cart-qty,.cart-line>strong,.cart-line>form:last-child{grid-column:auto;grid-row:auto}.cart-qty{grid-template-columns:1fr}.checkout-card .btn{width:100%}}
