:root{--brand: #0f0f0f;--on-brand: #ffffff;--brand-edge: #0f0f0f;--brand-ink: #0f0f0f;--accent: #c9a227;--accent-ink: #7a6114;--canvas: #f5f4f0;--surface: #ffffff;--ink: #111111;--muted: #55524b;--line: #dcd9d1;--danger: #a4161a;--ok: #1d6b35;--warn-bg: #fff4d6;--warn-ink: #5c4300;--radius: 14px;--tap: 48px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--canvas);-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--canvas);font-size:1rem;line-height:1.45}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--brand-edge);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--muted)}.shop-header{display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--brand);color:var(--on-brand);border-bottom:3px solid var(--accent);position:sticky;top:0;z-index:10}.shop-header-text{display:flex;flex-direction:column;min-width:0}.shop-name{font-weight:700;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-area{font-size:.85rem;opacity:.9}.brand-mark{flex:none;border-radius:50%;object-fit:cover}.brand-mark-initial{display:inline-grid;place-items:center;background:var(--accent);color:var(--brand);font-weight:800;border:2px solid var(--on-brand)}.app{min-height:100dvh;display:flex;flex-direction:column}.client-main{flex:1;width:100%;max-width:560px;margin:0 auto;padding:20px 16px calc(96px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.page-title{font-size:1.5rem;line-height:1.2}.tabbar{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(var(--tabs, 5),1fr);background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tab{min-width:0;min-height:64px;padding:0 2px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.72rem;font-weight:600;color:var(--muted);text-decoration:none;overflow-wrap:anywhere}.tab.active{color:var(--brand-ink)}.tab.active svg{stroke-width:2.6}.offline{background:var(--warn-bg);color:var(--warn-ink);padding:10px 16px;font-weight:600;text-align:center}.shop-header-right{margin-left:auto}.header-btn{min-height:44px;min-width:44px;padding:8px 14px;border-radius:99px;border:1px solid currentColor;background:transparent;color:var(--on-brand);font-weight:700;cursor:pointer}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px;font-weight:600}.field input{min-height:52px;padding:12px 14px;border:1px solid #8a867c;border-radius:12px;background:var(--surface);font-size:1.05rem;font-weight:500}.field input[aria-invalid=true]{border-color:var(--danger)}.code-input{letter-spacing:.4em;font-size:1.5rem!important;text-align:center;font-variant-numeric:tabular-nums}.note{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand-edge);border-radius:var(--radius);padding:12px 14px}.discount{color:var(--ok)}.summary-total dt,.summary-total dd{font-weight:800;color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:12px 20px;border-radius:var(--radius);border:2px solid transparent;font-weight:700;font-size:1rem;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform 80ms ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand-edge)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.btn-link{background:none;border:none;color:var(--brand-ink);text-decoration:underline;padding:12px 8px}.btn-block{width:100%;min-height:56px;font-size:1.05rem}.notice{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px;text-align:center;max-width:440px;margin:0 auto}.notice-body{color:var(--muted)}.notice-body .btn{display:flex;width:100%;margin-top:16px}.splash{min-height:100dvh;display:grid;place-items:center}.spinner{width:36px;height:36px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--brand-edge);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}.btn{transition:none}}.soon-list{margin:0;padding-left:20px;display:grid;gap:6px}.flow{display:flex;flex-direction:column;gap:16px}.step-header{display:flex;align-items:center;gap:10px}.step-text{flex:1;min-width:0}.back{flex:none;width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);cursor:pointer}.step-count{color:var(--muted);font-size:.85rem;font-weight:700;letter-spacing:.02em}.page-title:focus{outline:none}.step-dots{display:flex;gap:6px;list-style:none;margin:0;padding:0}.step-dots li{width:8px;height:8px;border-radius:50%;background:var(--line)}.step-dots li.on{background:var(--brand-edge)}.picked{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;font-weight:600}.cap{display:inline-block}.cap:first-letter{text-transform:uppercase}.service-list,.appt-list,.slot-grid{list-style:none;margin:0;padding:0}.service-list,.appt-list{display:grid;gap:12px}.service{width:100%;min-height:72px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"name price" "meta price";align-items:center;gap:2px 12px;padding:14px 18px;text-align:left;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--brand-edge);border-radius:var(--radius);cursor:pointer}.service:active{background:var(--canvas)}.service-name{grid-area:name;font-weight:700;font-size:1.1rem}.service-meta{grid-area:meta;color:var(--muted);font-size:.9rem}.service-price{grid-area:price;font-weight:800;font-size:1.1rem}.chips-field{border:0;margin:0;padding:0;min-width:0}.chips-field legend,.section-title{font-weight:700;font-size:1rem;margin-bottom:8px;padding:0}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none}.chip{flex:none;min-height:44px;padding:8px 16px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-weight:600;cursor:pointer;white-space:nowrap}.chip[aria-pressed=true]{background:var(--brand);color:var(--on-brand);border-color:var(--brand-edge)}.chip.day{display:flex;flex-direction:column;align-items:center;min-width:64px;border-radius:12px;padding:6px 10px;line-height:1.2}.day-title{font-weight:700;text-transform:capitalize}.day-sub{font-size:.8rem;font-weight:500}.slot-group{margin-bottom:12px}.slot-group-title{font-size:.85rem;color:var(--muted);font-weight:700;margin:4px 0 8px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.slot{width:100%;min-height:52px;border-radius:12px;border:1px solid var(--brand-edge);background:var(--surface);color:var(--brand-ink);font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;cursor:pointer}.slot:active{background:var(--brand);color:var(--on-brand)}.summary{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:4px 18px}.summary>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.summary>div:last-child{border-bottom:0}.summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:700;text-align:right}.alert{background:#fdecec;color:var(--danger);border:1px solid #f3c2c2;border-radius:var(--radius);padding:12px 14px;font-weight:600}.flash{background:#e6f4ea;color:var(--ok);border:1px solid #b9dfc4;border-radius:var(--radius);padding:12px 14px;font-weight:700}.empty,.empty-state{background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:20px 16px;color:var(--muted);display:flex;flex-direction:column;gap:12px}.appt{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px}.appt-new{border:2px solid var(--brand-edge)}.appt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.appt-when{display:flex;flex-direction:column;font-size:1rem}.appt-time{font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums}.appt-what{font-weight:600}.appt-price{color:var(--ink)}.badge{flex:none;font-size:.8rem;font-weight:700;border-radius:99px;padding:4px 10px;background:var(--canvas);color:var(--ink);border:1px solid var(--line)}.badge-confirmed{background:#e6f4ea;color:var(--ok);border-color:#b9dfc4}.badge-pending_deposit{background:var(--warn-bg);color:var(--warn-ink);border-color:#ecd9a0}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.actions .btn{flex:1 1 auto}.btn-cancel{color:var(--danger)}.confirm-cancel{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.deposit{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}.deposit .muted{color:var(--warn-ink)}.pix-label{font-weight:700;font-size:.9rem}.pix-code{min-height:44px;width:100%;border:1px solid #ecd9a0;border-radius:10px;padding:8px 10px;background:var(--surface);font-family:ui-monospace,monospace;font-size:.85rem}.pix-qr{align-self:center;background:#fff;padding:8px;border-radius:8px}.small{font-size:.85rem}.plan{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--brand-edge);border-radius:var(--radius);padding:18px 16px;display:flex;flex-direction:column;gap:8px}.plan-name{font-size:1.25rem;font-weight:800}.plan-price{font-size:1.6rem;font-weight:800}.plan-price .muted{font-size:1rem;font-weight:600}.plan-includes{margin:0 0 6px;padding-left:20px;display:grid;gap:4px}.badge-sub-active{background:#e6f4ea;color:var(--ok);border-color:#b9dfc4}.badge-sub-pending{background:var(--warn-bg);color:var(--warn-ink);border-color:#ecd9a0}.badge-sub-overdue{background:#fdecec;color:var(--danger);border-color:#f3c2c2}.photo-row{list-style:none;margin:4px 0;padding:0;display:flex;gap:8px;overflow-x:auto}.photo-row img{display:block;width:120px;height:150px;object-fit:cover;border-radius:10px;background:var(--line)}.techsheet{padding:0 14px}.techsheet>div{padding:10px 0}.consent-title{font-size:1.05rem;line-height:1.3}.progress{height:14px;border-radius:99px;background:var(--canvas);border:1px solid #8a867c;overflow:hidden}.progress>span{display:block;height:100%;background:var(--brand)}.reward-ready{background:var(--brand);color:var(--on-brand);border-radius:var(--radius);padding:20px 16px;display:flex;flex-direction:column;gap:10px;border-bottom:4px solid var(--accent)}.reward-ready h2{font-size:1.4rem}.reward-ready .btn-primary{background:var(--surface);color:var(--ink);border-color:var(--surface)}.owner-body{flex:1;display:flex;flex-direction:column}.owner-nav ul{list-style:none;margin:0;padding:8px;display:flex;gap:4px;overflow-x:auto}.owner-nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 12px;border-radius:10px;white-space:nowrap;color:var(--muted)}.owner-nav-item.active{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:inset 3px 0 0 var(--brand-edge)}.soon{font-size:.72rem;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:1px 8px}.owner-main{flex:1;padding:24px 16px;display:flex;flex-direction:column;gap:20px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:6px}.kpi-label{color:var(--muted);font-size:.9rem;font-weight:600}.kpi-value{font-size:1.75rem;font-weight:800}@media(min-width:1024px){.owner-body{flex-direction:row}.owner-nav{width:300px;flex:none;border-right:1px solid var(--line)}.owner-nav ul{flex-direction:column;overflow:visible;padding:16px 12px}.owner-main{padding:32px 40px}}.day-nav{display:flex;align-items:center;gap:8px}.day-nav-title{flex:1;text-align:center;display:flex;flex-direction:column}.day-nav-sub{font-size:.9rem;font-weight:600}.day-arrow{flex:none;min-width:var(--tap);padding:8px;font-size:1.6rem;line-height:1}.appt-client{font-size:1.1rem;font-weight:700}.appt-completed,.appt-cancelled,.appt-no_show{background:var(--canvas)}.arrived{color:var(--ok);font-weight:700}.badge-completed{background:var(--canvas);color:var(--muted)}.badge-no_show,.badge-cancelled{background:#fdecec;color:var(--danger);border-color:#f3c2c2}.barber .confirm-cancel .chips,.barber .pay-chips{flex-wrap:wrap;overflow-x:visible}.tab-items{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.tab-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.tab-item:last-child{border-bottom:0}.tab-item>div{flex:1;min-width:0;display:flex;flex-direction:column}.tab-item-name{font-weight:600}.tab-item-price{font-weight:700;font-variant-numeric:tabular-nums}.btn-small{min-height:44px;padding:8px 12px;font-size:.9rem}.add-items{display:flex;flex-direction:column;gap:8px;margin-top:8px}.flow-tight{display:flex;flex-direction:column;gap:10px}.earn-total{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:4px}.earn-value{font-size:2.2rem;font-weight:800;font-variant-numeric:tabular-nums}.file-btn{position:relative}.file-btn:focus-within{outline:3px solid var(--brand-edge);outline-offset:2px}.back-link{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--brand-ink);font-weight:700;text-decoration:none}.notice-body p{margin:0 0 12px}.shop-finder{width:100%;max-width:360px;margin:8px auto 12px;display:grid;gap:12px;text-align:left;color:var(--text)}.shop-finder .form{display:grid;gap:12px}.notice-body .shop-finder .btn{margin-top:0}
