:root{color-scheme:light dark;--bg: #faf7f5;--surface: #ffffff;--surface-muted: #f3ede9;--border: #e6ddd7;--text: #1c1719;--text-muted: #6b6166;--primary: #7a1f45;--primary-text: #ffffff;--primary-soft: #f7e1ea;--accent: #e8735a;--success: #1f7a55;--success-soft: #ddf2e8;--warning: #a15c00;--warning-soft: #fcebd2;--danger: #b3261e;--danger-soft: #fadcd9;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-xxl: 32px;--touch: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-xs: 13px;--fs-sm: 15px;--fs-md: 17px;--fs-lg: 20px;--fs-xl: 24px;--fs-xxl: 32px;--fs-display: 40px;--shadow: 0 1px 2px rgb(28 23 25 / 6%), 0 4px 12px rgb(28 23 25 / 6%)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #121012;--surface: #1c181b;--surface-muted: #2a2428;--border: #3a3337;--text: #f4eef1;--text-muted: #a39a9e;--primary: #e58bb0;--primary-text: #1c1719;--primary-soft: #3b1f2c;--accent: #f4a898;--success: #6fd3a8;--success-soft: #173a2c;--warning: #f2b45c;--warning-soft: #3a2a12;--danger: #f2867e;--danger-soft: #3d1a18;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 4px 12px rgb(0 0 0 / 30%)}}:root[data-theme=dark]{--bg: #121012;--surface: #1c181b;--surface-muted: #2a2428;--border: #3a3337;--text: #f4eef1;--text-muted: #a39a9e;--primary: #e58bb0;--primary-text: #1c1719;--primary-soft: #3b1f2c;--accent: #f4a898;--success: #6fd3a8;--success-soft: #173a2c;--warning: #f2b45c;--warning-soft: #3a2a12;--danger: #f2867e;--danger-soft: #3d1a18;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 4px 12px rgb(0 0 0 / 30%)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);line-height:1.4;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:hidden}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}:focus-visible{outline:3px solid var(--accent);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}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:640px;margin:0 auto}.screen{flex:1;padding:0 var(--space-lg) calc(96px + env(safe-area-inset-bottom))}.screen--flush{padding-left:0;padding-right:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-sm);min-height:56px;padding:calc(env(safe-area-inset-top) + var(--space-sm)) var(--space-lg) var(--space-sm);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px)}.topbar h1{flex:1;margin:0;font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em}.topbar .sub{display:block;font-size:var(--fs-xs);font-weight:500;color:var(--text-muted)}.section{margin:var(--space-lg) 0}.section h2{margin:0 0 var(--space-sm);font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.row{display:flex;align-items:center;gap:var(--space-sm)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--space-sm)}.stack--lg{gap:var(--space-lg)}.grow{flex:1;min-width:0}.muted{color:var(--text-muted)}.small{font-size:var(--fs-xs)}.big-number{font-size:var(--fs-xxl);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);max-width:640px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60px;color:var(--text-muted);font-size:12px;font-weight:600;text-decoration:none}.tabbar a.active{color:var(--primary)}.tabbar svg{width:26px;height:26px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch);padding:0 var(--space-lg);border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text);font-weight:600;text-decoration:none;cursor:pointer;user-select:none;transition:transform .06s ease,background .15s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:22px;height:22px;flex:none}.btn--primary{background:var(--primary);color:var(--primary-text)}.btn--outline{background:transparent;border-color:var(--border)}.btn--ghost{background:transparent}.btn--danger{background:var(--danger-soft);color:var(--danger)}.btn--success{background:var(--success-soft);color:var(--success)}.btn--whatsapp{background:#1f8f4e;color:#fff}.btn--block{width:100%}.btn--lg{min-height:56px;font-size:var(--fs-md)}.btn--sm{min-height:40px;padding:0 var(--space-md);font-size:var(--fs-sm)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--touch);height:var(--touch);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text);cursor:pointer}.icon-btn svg{width:24px;height:24px}.icon-btn--filled{background:var(--surface-muted)}.bottom-bar{position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));z-index:25;max-width:640px;margin:0 auto;padding:var(--space-md) var(--space-lg);background:linear-gradient(to top,var(--bg) 70%,transparent)}.bottom-bar--no-tabs{bottom:0;padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom))}.fab{position:fixed;right:max(var(--space-lg),calc(50% - 320px + var(--space-lg)));bottom:calc(76px + env(safe-area-inset-bottom));z-index:26;display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border:0;border-radius:var(--radius-pill);background:var(--primary);color:var(--primary-text);box-shadow:var(--shadow);cursor:pointer}.fab svg{width:30px;height:30px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg)}.card--tight{padding:var(--space-md)}.card--soft{background:var(--primary-soft);border-color:transparent}.list{margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.list>li+li{border-top:1px solid var(--border)}.list-item{display:flex;align-items:center;gap:var(--space-md);width:100%;min-height:60px;padding:var(--space-sm) var(--space-lg);border:0;background:transparent;text-align:left;text-decoration:none;color:inherit;cursor:pointer}.list-item:active{background:var(--surface-muted)}.list-item .title{font-weight:600}.list-item .meta{font-size:var(--fs-xs);color:var(--text-muted)}.list-item svg{width:22px;height:22px;flex:none;color:var(--text-muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--primary-soft);color:var(--primary);font-weight:700}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.badge--ok{background:var(--success-soft);color:var(--success)}.badge--warn{background:var(--warning-soft);color:var(--warning)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--primary{background:var(--primary-soft);color:var(--primary)}.dot{width:8px;height:8px;border-radius:50%;background:currentColor}.banner{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-sm) 0;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--primary-soft)}.banner--warn{background:var(--warning-soft)}.banner--danger{background:var(--danger-soft)}.banner p{margin:0}.banner svg{width:24px;height:24px;flex:none}.field{display:flex;flex-direction:column;gap:6px}.field label,.field .label{font-size:var(--fs-sm);font-weight:600}.field .hint{font-size:var(--fs-xs);color:var(--text-muted)}.field .error{font-size:var(--fs-xs);color:var(--danger);font-weight:600}.input,.select,.textarea{width:100%;min-height:var(--touch);padding:0 var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.textarea{min-height:96px;padding:var(--space-md);resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}.input--code{font-size:var(--fs-xl);letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}.switch{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:var(--touch);cursor:pointer}.switch input{appearance:none;position:relative;flex:none;width:52px;height:32px;border-radius:var(--radius-pill);background:var(--border);cursor:pointer;transition:background .15s ease}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .15s ease}.switch input:checked{background:var(--primary)}.switch input:checked:after{transform:translate(20px)}.chips{display:flex;gap:var(--space-sm);overflow-x:auto;padding:2px 0 var(--space-sm);scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips--wrap{flex-wrap:wrap;overflow:visible}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:44px;padding:0 var(--space-md);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap}.chip[aria-pressed=true],.chip.selected{border-color:var(--primary);background:var(--primary);color:var(--primary-text)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--surface-muted)}.segmented button{min-height:44px;border:0;border-radius:var(--radius-sm);background:transparent;font-weight:600;cursor:pointer}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--primary);box-shadow:var(--shadow)}.daystrip{display:flex;gap:6px;overflow-x:auto;padding:0 var(--space-lg) var(--space-sm);scrollbar-width:none}.daystrip::-webkit-scrollbar{display:none}.day-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;width:52px;height:64px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.day-chip .wd{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:lowercase}.day-chip .d{font-size:var(--fs-lg);font-weight:700}.day-chip .n{height:6px;margin-top:2px;display:flex;gap:2px}.day-chip .n span{width:5px;height:5px;border-radius:50%;background:var(--primary)}.day-chip.today .d{color:var(--primary)}.day-chip.selected{border-color:var(--primary);background:var(--primary);color:var(--primary-text)}.day-chip.selected .wd,.day-chip.selected .d{color:var(--primary-text)}.day-chip.selected .n span{background:var(--primary-text)}.timeline{display:flex;flex-direction:column;gap:var(--space-sm);padding:0 var(--space-lg);touch-action:pan-y}.slot{display:flex;align-items:center;gap:var(--space-md);width:100%;min-height:52px;padding:0 var(--space-lg);border:1.5px dashed var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-weight:600;text-align:left;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.slot .time{min-width:52px;color:var(--text);font-variant-numeric:tabular-nums}.slot:active{background:var(--primary-soft);border-color:var(--primary)}.slot svg{width:20px;height:20px;margin-left:auto}.appt{position:relative;display:flex;gap:var(--space-md);padding:var(--space-md) var(--space-md) var(--space-md) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;overflow:hidden}.appt:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--appt-color, var(--primary))}.appt .when{min-width:52px;font-weight:700;font-variant-numeric:tabular-nums}.appt .when small{display:block;font-weight:500;color:var(--text-muted);font-size:var(--fs-xs)}.appt .who{font-weight:700;background:none;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}.appt .what{font-size:var(--fs-sm);color:var(--text-muted)}.appt--done{opacity:.72;box-shadow:none}.appt--conflict{border-color:var(--danger);border-width:2px}.appt--pending{border-style:dashed;box-shadow:none}.appt .actions{display:flex;align-items:center;gap:4px}.block-row{display:flex;align-items:center;gap:var(--space-md);min-height:48px;padding:0 var(--space-lg);border-radius:var(--radius-md);background:repeating-linear-gradient(135deg,var(--surface-muted),var(--surface-muted) 8px,transparent 8px,transparent 16px);color:var(--text-muted);font-weight:600;border:0;width:100%;text-align:left;cursor:pointer}.now-line{display:flex;align-items:center;gap:var(--space-sm);color:var(--accent);font-size:var(--fs-xs);font-weight:700}.now-line:after{content:"";flex:1;height:2px;background:var(--accent)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xxl) var(--space-lg);text-align:center;color:var(--text-muted)}.empty svg{width:48px;height:48px;color:var(--primary)}.empty p{margin:0;max-width:28ch}.sheet-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#0006;animation:fade .15s ease}.sheet{width:100%;max-width:640px;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-sm) var(--space-lg) calc(var(--space-lg) + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg);animation:up .2s ease}.sheet__grip{width:40px;height:5px;margin:0 auto var(--space-sm);border-radius:var(--radius-pill);background:var(--border)}.sheet__head{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.sheet__head h2{flex:1;margin:0;font-size:var(--fs-lg)}.sheet__head .sub{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--text-muted)}@keyframes up{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}}.toasts{position:fixed;left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom));z-index:60;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:0 var(--space-lg);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-md);width:100%;max-width:600px;min-height:52px;padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-lg);border-radius:var(--radius-md);background:var(--text);color:var(--bg);box-shadow:var(--shadow);pointer-events:auto;animation:up .2s ease}.toast p{flex:1;margin:0;font-size:var(--fs-sm);font-weight:600}.toast .btn{min-height:40px;background:transparent;color:var(--primary-soft);padding:0 var(--space-md)}.toast--error{background:var(--danger);color:#fff}.sync{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:0;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--text-muted);font-size:12px;font-weight:700;cursor:pointer}.sync--ok{color:var(--success)}.sync--pending{color:var(--warning)}.sync svg{width:16px;height:16px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.kpi{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.kpi .label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.kpi .value{font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums}.bars{display:flex;flex-direction:column;gap:var(--space-sm)}.bar{display:grid;grid-template-columns:84px 1fr auto;align-items:center;gap:var(--space-md);font-size:var(--fs-sm)}.bar__track{height:10px;border-radius:var(--radius-pill);background:var(--surface-muted);overflow:hidden}.bar__fill{height:100%;border-radius:var(--radius-pill);background:var(--primary)}.qr{display:flex;justify-content:center;padding:var(--space-lg);border-radius:var(--radius-lg);background:#fff}.qr img,.qr canvas{width:200px;height:200px;image-rendering:pixelated}.message-preview{white-space:pre-wrap;padding:var(--space-md);border-radius:var(--radius-md);background:var(--surface-muted);font-size:var(--fs-sm)}.weekgrid{display:grid;grid-template-columns:44px repeat(7,1fr);gap:3px;user-select:none;-webkit-user-select:none;touch-action:none}.weekgrid .h{font-size:11px;color:var(--text-muted);text-align:right;padding-right:4px;line-height:28px}.weekgrid .dh{font-size:12px;font-weight:700;text-align:center;padding-bottom:4px}.weekgrid .cell{height:28px;border:0;border-radius:6px;background:var(--surface-muted);cursor:pointer;padding:0}.weekgrid .cell.on{background:var(--primary)}.weekgrid .cell.home{background:var(--accent)}.weekgrid .cell.busy{outline:2px solid var(--text-muted);outline-offset:-2px}.steps{display:flex;gap:6px;margin:var(--space-sm) 0 var(--space-lg)}.steps span{flex:1;height:5px;border-radius:var(--radius-pill);background:var(--border)}.steps span.on{background:var(--primary)}.hero{display:flex;flex-direction:column;justify-content:center;gap:var(--space-lg);min-height:100dvh;padding:var(--space-xxl) var(--space-xl) calc(var(--space-xxl) + env(safe-area-inset-bottom))}.hero h1{margin:0;font-size:var(--fs-display);line-height:1.05;letter-spacing:-.03em}.hero p{margin:0;font-size:var(--fs-lg);color:var(--text-muted)}.logo{display:inline-flex;align-items:center;gap:var(--space-sm);font-weight:800;font-size:var(--fs-xl);color:var(--primary)}.logo img{width:44px;height:44px;border-radius:12px}.divider{height:1px;background:var(--border);margin:var(--space-lg) 0}.price{font-variant-numeric:tabular-nums;font-weight:700}.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.pay-grid .btn{min-height:64px;font-size:var(--fs-md)}@media(min-width:641px){.sheet{border-radius:var(--radius-lg);margin-bottom:var(--space-xl)}.sheet-backdrop{align-items:center}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
