@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f7f7f7;--brand-blue:#8ec6d8;--brand-gray:#9e9e9e;--brand-dot:#8bc5c7;--brand:#2b7a92;--brand-strong:#1c5a6e;--brand-tint:#e4f1f5;--brand-line:#bcdce6;--teal-ink:#26746f;--teal-tint:#e3f2f0;--ink:#1e3440;--ink-2:#475963;--ink-3:#5f6e77;--sheet:#fff;--inset:#f0f3f4;--hair:#e3e7e9;--hair-strong:#cbd3d6;--ok:#276b4c;--ok-tint:#e5f3ec;--warn:#8a5a0b;--warn-tint:#fbf1dd;--bad:#a8352c;--bad-tint:#faeae8;--mauve:#7d4a6e;--mauve-tint:#f4e9f1;--font-ui:"Figtree Variable", "Segoe UI", system-ui, sans-serif;--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--fs-xs:.78rem;--fs-sm:.845rem;--fs-base:.9375rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.5rem;--fs-2xl:2.125rem;--fs-num:2.5rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--r-control:8px;--r-sheet:14px;--r-chip:6px;--h-control:40px;--h-control-sm:32px;--w-rail:268px;--h-topbar:60px;--shadow-pop:0 14px 36px -10px #1e344047, 0 2px 6px #1e344014;--ease:cubic-bezier(.2, .7, .2, 1);--t-fast:.14s;--t-med:.2s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-ui);font-size:16px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.5}body.no-scroll{overflow:hidden}h1,h2,h3,h4{color:var(--ink);margin:0;font-weight:500}h1{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.015em;font-weight:420;line-height:1.12}h2{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:500;line-height:1.25}h3{font-size:var(--fs-md);font-weight:600;line-height:1.3}p{margin:0 0 var(--s-3)}a{color:var(--brand);text-underline-offset:3px}a:hover{color:var(--brand-strong)}hr{border:0;border-top:1px solid var(--hair);margin:var(--s-4) 0}small{font-size:var(--fs-xs)}.muted{color:var(--ink-3)}.small{font-size:var(--fs-sm)}.num{font-variant-numeric:tabular-nums}.icon{flex:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:600}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}::selection{background:var(--brand-line)}.shell{grid-template-columns:var(--w-rail) minmax(0, 1fr);min-height:100vh;display:grid}.rail{height:100vh;padding:var(--s-5) var(--s-4) var(--s-4);border-right:1px solid var(--hair);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{padding:0 var(--s-2);margin-bottom:var(--s-5);display:block}.brand img,.logo{aspect-ratio:1280/1156;object-fit:contain;width:100%;height:auto;display:block}.brand img{max-width:188px;margin-inline:auto}.nav{flex-direction:column;flex:1;display:flex}.nav-title{align-items:center;gap:var(--s-3);margin:var(--s-5) var(--s-2) var(--s-2);display:flex}.nav-title:first-child{margin-top:0}.nav-title:after{content:"";background:var(--hair-strong);flex:1;height:1px}.nav-link{min-height:38px;padding:var(--s-1) var(--s-3) var(--s-1) 34px;color:var(--ink-2);border-radius:var(--r-control);transition:color var(--t-fast), background var(--t-fast);align-items:center;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-link:before{content:"";width:9px;height:9px;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast) var(--ease);background:0 0;border:1.5px solid #0000;border-radius:50%;margin-top:-4.5px;position:absolute;top:50%;left:12px}.nav-link:hover{color:var(--ink);background:#1e34400b}.nav-link:hover:before{border-color:var(--brand-dot)}.nav-link.active{color:var(--ink);font-weight:650}.nav-link.active:before{background:var(--brand-dot);border-color:var(--brand-dot);transform:scale(1.1)}.rail-foot{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--hair-strong)}.user-btn{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2);border-radius:var(--r-control);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast);background:0 0;border:0;display:flex}.user-btn:hover{background:#1e34400d}.avatar{background:var(--brand-tint);width:36px;height:36px;color:var(--brand-strong);border:1px solid var(--brand-line);font-weight:650;font-size:var(--fs-sm);border-radius:50%;flex:none;place-items:center;display:grid}.user-btn strong{font-weight:600;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;line-height:1.25;display:block;overflow:hidden}.user-btn small{color:var(--ink-3);display:block}.user-meta{min-width:0}.signout{margin-top:var(--s-1)}.stage{min-width:0}.topbar{display:none}.main{padding:var(--s-7) var(--s-7) var(--s-8);max-width:1360px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--s-4) var(--s-5);margin-bottom:var(--s-6);flex-wrap:wrap;display:flex}.page-head .eyebrow{margin-bottom:var(--s-2);display:block}.page-head p{margin:var(--s-2) 0 0;color:var(--ink-3);max-width:60ch}.page-actions{gap:var(--s-2);flex-wrap:wrap;display:flex}@media (width<=960px){.shell{display:block}.rail{z-index:50;background:var(--paper);width:min(300px,88vw);transition:transform var(--t-med) var(--ease);box-shadow:var(--shadow-pop);position:fixed;inset:0 auto 0 0;transform:translate(-104%)}.rail.open{transform:none}.scrim{z-index:45;animation:fade var(--t-med) var(--ease);background:#1e34406b;position:fixed;inset:0}.topbar{z-index:30;height:var(--h-topbar);align-items:center;gap:var(--s-2);padding:0 var(--s-4);background:var(--paper);border-bottom:1px solid var(--hair);display:flex;position:sticky;top:0}.topbar .logo{width:auto;height:44px;margin-left:auto}.topbar-title{font-family:var(--font-display);font-size:var(--fs-lg);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.main{padding:var(--s-5) var(--s-4) var(--s-7)}h1{font-size:1.75rem}.page-head{margin-bottom:var(--s-5)}}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--h-control);padding:0 var(--s-4);border:1px solid var(--hair-strong);border-radius:var(--r-control);background:var(--sheet);color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);font-weight:550;line-height:1;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--inset);border-color:var(--ink-3);color:var(--ink)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover:not(:disabled){color:#fff;background:#8c2a22;border-color:#8c2a22}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:#1e34400f;border-color:#0000}.btn-sm{min-height:var(--h-control-sm);padding:0 var(--s-3);font-size:var(--fs-sm)}.btn-ok{color:var(--ok);border-color:#b4d9c4}.btn-ok:hover:not(:disabled){background:var(--ok-tint);border-color:var(--ok);color:var(--ok)}.btn-warn{color:var(--warn);border-color:#e3cc9b}.btn-warn:hover:not(:disabled){background:var(--warn-tint);border-color:var(--warn);color:var(--warn)}.btn-bad{color:var(--bad);border-color:#eac0bc}.btn-bad:hover:not(:disabled){background:var(--bad-tint);border-color:var(--bad);color:var(--bad)}.icon-btn{width:var(--h-control);height:var(--h-control);border-radius:var(--r-control);color:var(--ink-2);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--ink);background:#1e344012}.btn-row{gap:var(--s-2);flex-wrap:wrap;display:flex}.link-btn{color:var(--brand);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:550;text-decoration:underline}input,select,textarea{width:100%;min-height:var(--h-control);padding:0 var(--s-3);border:1px solid var(--hair-strong);border-radius:var(--r-control);background:var(--sheet);color:var(--ink);font:inherit;transition:border-color var(--t-fast), box-shadow var(--t-fast)}textarea{padding:var(--s-2) var(--s-3);resize:vertical;min-height:84px;line-height:1.45}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23475963' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}input::placeholder,textarea::placeholder{color:#68767f}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--ink-3)}input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #2b7a9238}input:disabled,select:disabled,textarea:disabled{background:var(--inset);color:var(--ink-3);cursor:not-allowed}input.invalid,select.invalid{border-color:var(--bad)}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:18px;accent-color:var(--brand);flex:none;padding:0}input[type=color]{cursor:pointer;padding:3px}input[type=date],input[type=time]{font-variant-numeric:tabular-nums}.field{margin-bottom:var(--s-4);flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.field-hint{font-size:var(--fs-xs);color:var(--ink-3)}.field-error{font-size:var(--fs-xs);color:var(--bad);font-weight:550}.form-grid{gap:0 var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .full{grid-column:1/-1}.check{align-items:center;gap:var(--s-2);cursor:pointer;margin-bottom:var(--s-4);font-weight:500;display:flex}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip-toggle{position:relative}.chip-toggle input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.chip-toggle span{min-height:34px;padding:0 var(--s-3);border:1px solid var(--hair-strong);font-size:var(--fs-sm);color:var(--ink-2);background:var(--sheet);text-transform:capitalize;transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast);border-radius:999px;align-items:center;font-weight:550;display:inline-flex}.chip-toggle:hover span{border-color:var(--ink-3)}.chip-toggle input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}.chip-toggle input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}.alert{gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);margin-bottom:var(--s-4);font-size:var(--fs-sm);border:1px solid;align-items:flex-start;line-height:1.45;display:flex}.alert .icon{margin-top:1px}.alert-error{background:var(--bad-tint);color:#7d2820;border-color:#efc3bf}.alert-info{background:var(--brand-tint);border-color:var(--brand-line);color:var(--brand-strong)}.alert-warn{background:var(--warn-tint);color:#6e4707;border-color:#ead7a8}.alert .link-btn{color:inherit;margin-left:var(--s-2)}.card{background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet);padding:var(--s-5)}.card+.card{margin-top:var(--s-4)}.grid>.card+.card{margin-top:0}.card-head{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.grid{gap:var(--s-4);display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}}.section-title{align-items:center;gap:var(--s-3);margin:var(--s-6) 0 var(--s-3);font:600 .72rem/1 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:flex}.section-title:before{content:"";background:var(--brand-blue);width:20px;height:1px}.section-title:after{content:"";background:var(--hair-strong);flex:1;height:1px}.section-title:first-child{margin-top:0}.stats{border-block:1px solid var(--hair-strong);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.stat{padding:var(--s-5) var(--s-5) var(--s-5) 0}.stat+.stat{border-left:1px solid var(--hair);padding-left:var(--s-5)}.stat-label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.stat-value{font-family:var(--font-display);font-size:var(--fs-num);letter-spacing:-.02em;margin:var(--s-1) 0;font-variant-numeric:lining-nums;font-weight:400;line-height:1.1;display:block}.stat-sub{font-size:var(--fs-sm);color:var(--ink-3)}@media (width<=720px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat,.stat+.stat{padding:var(--s-4) var(--s-3);border-left:0}.stat:nth-child(2n){border-left:1px solid var(--hair)}.stat:nth-child(n+3){border-top:1px solid var(--hair)}.stat-value{font-size:2rem}}.bar{background:var(--hair);border-radius:999px;height:6px;overflow:hidden}.bar>span{border-radius:inherit;background:var(--brand);height:100%;display:block}.bar.warn>span{background:#c98f2e}.bar.full>span{background:var(--bad)}.table-wrap{background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}th,td{padding:13px var(--s-4);text-align:left;vertical-align:middle;border-bottom:1px solid var(--hair)}th{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.02em;white-space:nowrap;background:#fafbfb;padding-block:11px;font-weight:600}tbody tr{transition:background var(--t-fast)}tbody tr:hover{background:#fafcfc}tbody tr:last-child td{border-bottom:0}td.actions{text-align:right;white-space:nowrap}td strong{font-weight:600}tr.inactive td{color:var(--ink-3)}td,th{font-variant-numeric:tabular-nums}@media (width<=720px){table.stack thead{display:none}table.stack,table.stack tbody,table.stack tr,table.stack td{width:100%;display:block}table.stack tr{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--hair)}table.stack tr:last-child{border-bottom:0}table.stack td{border:0;padding:2px 0}table.stack td[data-label]:before{content:attr(data-label) ": ";color:var(--ink-3);font-weight:600;font-size:var(--fs-sm)}table.stack td.actions{text-align:left;padding-top:var(--s-2)}}.toolbar{gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;align-items:center;display:flex}.toolbar .search{flex:280px;max-width:460px;position:relative}.toolbar .search input{padding-left:38px}.toolbar .search .icon{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.toolbar select,.toolbar input[type=date]{width:auto;min-width:150px}.toolbar label.inline{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2);font-weight:600;display:flex}.toolbar label.inline input{width:auto}.spacer{flex:1}@media (width<=720px){.toolbar select{flex:140px}.toolbar .search{max-width:none}}.badge{--b:var(--ink-3);--bt:var(--inset);background:var(--bt);color:var(--b);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-weight:650;line-height:1.5;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-agendado,.badge-fisioterapia{--b:var(--brand-strong);--bt:var(--brand-tint)}.badge-realizado,.badge-presente,.badge-ativo{--b:var(--ok);--bt:var(--ok-tint)}.badge-falta{--b:var(--bad);--bt:var(--bad-tint)}.badge-cancelado,.badge-inativo{--b:var(--ink-3);--bt:var(--inset)}.badge-pilates{--b:var(--teal-ink);--bt:var(--teal-tint)}.badge-estetica{--b:var(--mauve);--bt:var(--mauve-tint)}.badge-warn{--b:var(--warn);--bt:var(--warn-tint)}.badge-cancelado:before,.badge-inativo:before{background:0 0;box-shadow:inset 0 0 0 1.5px}.dot{background:var(--c,var(--brand));width:10px;height:10px;margin-right:var(--s-2);vertical-align:baseline;border-radius:50%;display:inline-block}.modal-backdrop{z-index:60;padding:var(--s-4);animation:fade var(--t-med) var(--ease);background:#1e344075;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--sheet);width:100%;max-height:calc(100vh - 32px);box-shadow:var(--shadow-pop);animation:rise var(--t-med) var(--ease);border-radius:18px;flex-direction:column;display:flex}.modal-sm{max-width:440px}.modal-md{max-width:660px}.modal-lg{max-width:880px}.modal-head{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-5) var(--s-5) var(--s-2);display:flex}.modal-head h2{font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:450}.modal-body{padding:var(--s-2) var(--s-5) var(--s-5);overflow-y:auto}.modal-foot{justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-5);border-top:1px solid var(--hair);background:#fafbfb;border-radius:0 0 18px 18px;flex-wrap:wrap;display:flex}@media (width<=600px){.modal-backdrop{align-items:end;padding:0}.modal{border-radius:18px 18px 0 0;max-height:94vh;animation-name:sheet-up;max-width:none!important}.modal-foot{padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom,0px));border-radius:0}.modal-head,.modal-body,.modal-foot{padding-inline:var(--s-4)}}.detail-list{gap:var(--s-2) var(--s-4);margin:0 0 var(--s-4);grid-template-columns:112px minmax(0,1fr);display:grid}.detail-list dt{font-size:var(--fs-sm);color:var(--ink-3);padding-top:1px;font-weight:600}.detail-list dd{margin:0}.toasts{z-index:100;left:50%;bottom:var(--s-5);align-items:center;gap:var(--s-2);pointer-events:none;flex-direction:column;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);background:var(--ink);color:#fff;font-weight:500;font-size:var(--fs-sm);box-shadow:var(--shadow-pop);animation:rise var(--t-med) var(--ease);display:flex}.toast:before{content:"";background:var(--brand-dot);border-radius:50%;flex:none;width:8px;height:8px}.toast-error:before{background:#f08a80}.loading{padding:var(--s-4) 0}.skel{background:linear-gradient(90deg, var(--hair) 25%, #eef1f2 50%, var(--hair) 75%);background-size:200% 100%;border-radius:6px;height:14px;animation:1.4s linear infinite shimmer;display:block}.skel+.skel{margin-top:var(--s-3)}.empty{padding:var(--s-7) var(--s-4);text-align:center;color:var(--ink-3)}.empty strong{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--ink);margin-bottom:var(--s-1);font-weight:500;display:block}.empty p{max-width:44ch;margin:0 auto var(--s-3)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes sheet-up{0%{opacity:.6;transform:translateY(40px)}}@keyframes shimmer{to{background-position:-200% 0}}.tabs{gap:var(--s-5);border-bottom:1px solid var(--hair-strong);margin-bottom:var(--s-5);display:flex;overflow-x:auto}.tab{padding:var(--s-2) 0 var(--s-3);font:inherit;color:var(--ink-3);cursor:pointer;white-space:nowrap;transition:color var(--t-fast);background:0 0;border:0;font-weight:550;position:relative}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);font-weight:650}.tab.active:after{content:"";background:var(--brand);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.picker{position:relative}.picker-list{z-index:20;max-height:244px;padding:var(--s-1);background:var(--sheet);border:1px solid var(--hair-strong);border-radius:var(--r-control);box-shadow:var(--shadow-pop);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.picker-list button{justify-content:space-between;gap:var(--s-4);width:100%;padding:9px var(--s-3);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;display:flex}.picker-list button:hover,.picker-list button:focus-visible{background:var(--brand-tint)}.picker-list small{color:var(--ink-3)}.picker-empty{padding:var(--s-3);color:var(--ink-3);font-size:var(--fs-sm)}.auth{background:var(--paper);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:100vh;display:grid}.auth-brand{padding:var(--s-7);place-items:center;display:grid;position:relative;overflow:hidden}.auth-brand .arcs{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.auth-brand .logo{width:min(170px,70%);position:relative}.auth-panel{padding:var(--s-7) var(--s-6);background:var(--sheet);border-left:1px solid var(--hair);place-items:center;display:grid}.auth-form{width:100%;max-width:360px}.auth-form h1{margin-bottom:var(--s-1);font-size:2rem}.auth-form>p{color:var(--ink-3);margin-bottom:var(--s-5)}.auth-foot{margin-top:var(--s-5);font-size:var(--fs-xs);color:var(--ink-3)}@media (width<=860px){.auth{grid-template-rows:auto 1fr;grid-template-columns:1fr}.auth-brand{padding:var(--s-6) var(--s-4) var(--s-4)}.auth-brand .logo{width:90px}.auth-panel{padding:var(--s-5) var(--s-4) var(--s-7);border-left:0;border-top:1px solid var(--hair);align-items:start}}.agenda-head{justify-content:space-between;align-items:flex-end;gap:var(--s-4);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.agenda-head h1{font-size:1.9rem}.agenda-tools{align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.agenda-tools select{width:auto;min-width:200px}.agenda-tools input[type=date]{width:auto}.seg{background:var(--inset);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{min-height:34px;padding:0 var(--s-4);color:var(--ink-2);font:inherit;cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;border-radius:7px;font-weight:550}.seg button:hover:not(.active){color:var(--ink)}.seg button.active{background:var(--sheet);color:var(--ink);font-weight:650;box-shadow:0 1px 2px #1e344024}.date-nav{align-items:center;gap:2px;display:inline-flex}.cal{background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet);overflow:hidden}.cal-scroll{overflow-x:auto}.cal-head{border-bottom:1px solid var(--hair-strong);background:var(--sheet);display:flex}.cal-head .gutter{flex:none;width:56px}.cal-dayhead{min-width:0;padding:var(--s-3) var(--s-1) var(--s-2);text-align:center;border-left:1px solid var(--hair);color:var(--ink-3);font-size:var(--fs-xs);text-transform:lowercase;flex:1;font-weight:600}.cal-dayhead b{width:34px;height:34px;font-family:var(--font-display);color:var(--ink);font-variant-numeric:lining-nums;border-radius:50%;place-items:center;margin:2px auto 0;font-size:1.15rem;font-weight:450;display:grid}.cal-dayhead.today{color:var(--brand-strong)}.cal-dayhead.today b{background:var(--brand);color:#fff}.cal-dayhead small{text-transform:none;font-weight:500;display:block}.cal-body{display:flex}.cal-times{flex:none;width:56px;position:relative}.cal-times span{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:550;position:absolute;right:8px;transform:translateY(-50%)}.cal-times span:first-child{transform:none}.cal-col{border-left:1px solid var(--hair);cursor:cell;background-image:linear-gradient(#e4e8ea 1px,#0000 1px),linear-gradient(#f1f4f5 1px,#0000 1px);flex:1;min-width:0;position:relative}.cal-col.off{background-color:#fbfbfb;background-image:repeating-linear-gradient(135deg,#0000 0 7px,#1e344009 7px 8px)}.ev{--c:var(--brand);text-align:left;font:inherit;color:var(--ink);background:color-mix(in srgb, var(--c) 13%, white);border:0;border-left:3px solid var(--c);cursor:pointer;transition:box-shadow var(--t-fast), transform var(--t-fast);border-radius:6px;padding:4px 8px 4px 9px;font-size:.75rem;line-height:1.3;display:block;position:absolute;overflow:hidden}.ev:hover{box-shadow:0 0 0 1px var(--c), 0 6px 16px -6px #1e344059;z-index:2}.ev strong{white-space:nowrap;text-overflow:ellipsis;padding-right:14px;font-size:.78rem;font-weight:650;display:block;overflow:hidden}.ev span{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-2);display:block;overflow:hidden}.ev .ev-glyph{width:12px;height:12px;padding:0;position:absolute;top:5px;right:5px}.ev.st-realizado{--c:var(--ok);background:color-mix(in srgb, var(--ok) 11%, white)}.ev.st-falta{--c:var(--bad);background:color-mix(in srgb, var(--bad) 9%, white)}.ev.st-cancelado{--c:var(--brand-gray);background:var(--inset);opacity:.7}.ev.st-cancelado strong{text-decoration:line-through}.ev.turma{--c:var(--teal-ink);background:var(--teal-tint)}.ev.block{border-left-color:var(--hair-strong);cursor:pointer;color:var(--ink-3);background:repeating-linear-gradient(135deg,#eff2f3 0 6px,#e6eaec 6px 12px);border-radius:0;left:0;right:0}.now-line{z-index:3;background:var(--brand-dot);pointer-events:none;height:1px;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--brand-dot);border-radius:50%;width:10px;height:10px;position:absolute;top:-4.5px;left:-5px;box-shadow:0 0 0 3px #8bc5c74d}.legend{align-items:center;gap:var(--s-2) var(--s-4);margin-top:var(--s-4);font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;display:flex}.legend .dot{margin-right:6px}.day-list{gap:var(--s-5);flex-direction:column;display:flex}.day-block h3{align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);font-family:var(--font-display);font-size:var(--fs-lg);font-weight:500;display:flex}.day-block h3.today{color:var(--brand-strong)}.agenda-item{--c:var(--brand);align-items:flex-start;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-4);margin-bottom:var(--s-2);text-align:left;font:inherit;color:inherit;background:var(--sheet);border:1px solid var(--hair);border-left:3px solid var(--c);border-radius:var(--r-control);cursor:pointer;display:flex}.agenda-item:hover{border-color:var(--hair-strong);border-left-color:var(--c)}.agenda-item .time{min-width:96px;font-weight:650;font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;padding-top:1px}.agenda-item .body{flex:1;min-width:0}.agenda-item .body strong{font-weight:600}.agenda-item .body small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.agenda-item .badge{align-self:flex-start}.agenda-item.st-cancelado{opacity:.6}.agenda-item.st-cancelado strong{text-decoration:line-through}.agenda-item.block{--c:var(--hair-strong);background:var(--inset);cursor:default}.today-grid{gap:var(--s-7);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;display:grid}.timeline{margin:0;padding:0;list-style:none}.tl-item{column-gap:var(--s-2);padding-bottom:var(--s-4);grid-template-columns:62px 22px minmax(0,1fr);display:grid;position:relative}.tl-time{text-align:right;font-weight:650;font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;padding-top:1px}.tl-rail{position:relative}.tl-rail:before{content:"";background:var(--hair-strong);width:1px;position:absolute;top:18px;bottom:-18px;left:50%}.tl-item:last-child .tl-rail:before{display:none}.tl-rail:after{content:"";background:var(--sheet);border:2px solid var(--c,var(--brand));border-radius:50%;width:11px;height:11px;margin-left:-5.5px;position:absolute;top:5px;left:50%}.tl-item.done .tl-rail:after{background:var(--c,var(--brand))}.tl-body{background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-control);padding:var(--s-3) var(--s-4);justify-content:space-between;gap:var(--s-3);align-items:flex-start;display:flex}.tl-body strong{font-weight:600}.tl-body small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.tl-item.st-cancelado .tl-body{opacity:.6}.tl-item.st-cancelado strong{text-decoration:line-through}.tl-now{column-gap:var(--s-2);padding-bottom:var(--s-4);color:var(--teal-ink);font-size:var(--fs-xs);grid-template-columns:62px 22px minmax(0,1fr);align-items:center;font-weight:650;display:grid;position:relative}.tl-now .tl-time{color:var(--teal-ink)}.tl-now .dotmark{background:var(--brand-dot);z-index:1;border-radius:50%;justify-self:center;width:12px;height:12px;position:relative;box-shadow:0 0 0 4px #8bc5c74d}.tl-now .line{background:var(--brand-dot);height:1px}@media (width<=960px){.today-grid{gap:var(--s-6);grid-template-columns:1fr}}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-3) 0;border-bottom:1px solid var(--hair);display:flex}.plain-list li:last-child{border-bottom:0}.plain-list small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.class-list{background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet);overflow:hidden}.class-row{align-items:center;gap:var(--s-5);padding:var(--s-5);border-bottom:1px solid var(--hair);grid-template-columns:112px minmax(0,1.2fr) minmax(0,1fr) auto;display:grid}.class-row:last-child{border-bottom:0}.class-row.off{opacity:.62}.class-time{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:lining-nums;font-size:2rem;font-weight:400;line-height:1}.class-time small{margin-top:var(--s-1);font:500 var(--fs-xs) var(--font-ui);color:var(--ink-3);letter-spacing:0;display:block}.class-main h3{align-items:center;gap:var(--s-2);font-size:var(--fs-lg);margin-bottom:var(--s-1);flex-wrap:wrap;display:flex}.class-main p{color:var(--ink-3);font-size:var(--fs-sm);margin:0}.wd-strip{margin-top:var(--s-2);gap:3px;display:inline-flex}.wd-strip span{color:#8a979e;border:1px solid var(--hair);border-radius:50%;place-items:center;width:24px;height:24px;font-size:.7rem;font-weight:600;display:grid}.wd-strip span.on{background:var(--teal-tint);border-color:var(--brand-dot);color:var(--teal-ink);font-weight:700}.seats-head{margin-bottom:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2);justify-content:space-between;align-items:baseline;display:flex}.seats-head strong{font-family:var(--font-display);color:var(--ink);font-size:1.15rem;font-weight:500}.seats{flex-wrap:wrap;gap:5px;display:flex}.seats i{border:1.5px solid var(--brand-blue);border-radius:50%;width:13px;height:13px}.seats i.on{background:var(--brand-dot);border-color:var(--brand-dot)}.seats.full i.on{background:var(--brand);border-color:var(--brand)}@media (width<=1100px){.class-row{grid-template-columns:96px minmax(0,1fr) auto}.class-row .seats-wrap{grid-area:2/2/auto/-1}}@media (width<=640px){.class-row{gap:var(--s-3);padding:var(--s-4);grid-template-columns:1fr}.class-row .seats-wrap{grid-area:auto}.class-time{font-size:1.75rem}.class-time small{margin-left:var(--s-2);display:inline}}.meta-line{gap:var(--s-1) var(--s-4);color:var(--ink-3);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.meta-line span{align-items:center;gap:6px;display:inline-flex}.roster-row{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--hair);flex-wrap:wrap;display:flex}.roster-row:last-child{border-bottom:0}.att-btns{background:var(--inset);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.att-btns button{min-height:32px;padding:0 var(--s-3);color:var(--ink-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;border-radius:999px;font-weight:550}.att-btns button:hover:not(:disabled):not([class*=on-]){background:#1e344012}.att-btns button:disabled{opacity:.45;cursor:not-allowed}.att-btns button.on-presente{background:var(--ok);color:#fff;font-weight:650}.att-btns button.on-falta{background:var(--bad);color:#fff;font-weight:650}.att-btns button.on-cancelado{background:var(--ink-3);color:#fff;font-weight:650}.bars{height:132px;padding-top:var(--s-2);border-bottom:1px solid var(--hair-strong);align-items:flex-end;gap:3px;display:flex}.bars>div{background:var(--brand-blue);min-width:3px;max-width:28px;transition:background var(--t-fast);border-radius:3px 3px 0 0;flex:1}.bars>div:hover{background:var(--brand)}.bars-axis{margin-top:var(--s-2);font-size:var(--fs-xs);color:var(--ink-3);justify-content:space-between;display:flex}.hist-time{white-space:nowrap;color:var(--ink-3);font-size:var(--fs-sm)}@media (pointer:coarse){:root{--h-control:44px;--h-control-sm:38px}.att-btns button{min-height:38px}}@media (width<=720px){.agenda-tools select,.agenda-tools input[type=date]{flex:150px}.detail-list{grid-template-columns:1fr;gap:0}.detail-list dt{margin-top:var(--s-2)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.tl-body{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;transition:border-color var(--t-fast)}.tl-body:hover{border-color:var(--hair-strong)}.tl-item.done:not(.st-cancelado) .tl-time{color:var(--ink-3)}.cal-prohead{min-width:0;padding:var(--s-3) var(--s-3) var(--s-2);border-left:1px solid var(--hair);flex:1}.cal-prohead strong{font-weight:600;font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;align-items:center;display:flex;overflow:hidden}.cal-prohead small{color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;margin-left:18px;display:block;overflow:hidden}.cal.narrow{max-width:720px}.cal-times span:last-child{transform:translateY(-100%)}td.actions .btn:not(.btn-primary):not(.btn-danger):not(.btn-ok):not(.btn-warn):not(.btn-bad){color:var(--brand);background:0 0;border-color:#0000}td.actions .btn:not(.btn-primary):not(.btn-danger):not(.btn-ok):not(.btn-warn):not(.btn-bad):hover:not(:disabled){background:var(--brand-tint);color:var(--brand-strong);border-color:#0000}.brand img{max-width:100px}.nav-link.active:before{border-color:var(--teal-ink)}.stat-label,.stat-sub{display:block}.bars>div.zero{background:var(--hair-strong);height:2px!important}@media (width<=960px){:root{--h-topbar:64px}.topbar .logo{height:54px}}@media (width<=720px){.agenda-head .page-actions,.page-head .page-actions{width:100%}.agenda-head .page-actions .btn,.page-head .page-actions .btn{flex:auto}.agenda-tools select{min-width:0}.agenda-tools .spacer{display:none}.agenda-tools .seg{order:0}}.tool-title{font-family:var(--font-display);font-size:var(--fs-lg);margin-inline:var(--s-2);font-weight:500}td[data-label=Data],td[data-label=Horário],td[data-label=Duração]{white-space:nowrap}@media (width<=720px){td[data-label=Data],td[data-label=Horário],td[data-label=Duração]{white-space:normal}.agenda-tools select,.agenda-tools input[type=date]{flex:100%}}.cal-col{overflow:hidden}.cal-col.dragover{outline:2px dashed var(--brand);outline-offset:-2px;background-color:var(--brand-tint)}.ev[draggable=true]{cursor:grab}.ev[draggable=true]:active{cursor:grabbing}.ev.turma.cancelled{opacity:.6;background:var(--inset)}.ev.turma.cancelled strong{text-decoration:line-through}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff}.rail,.topbar,.p-tabbar,.agenda-tools,.legend,.page-actions,.toasts,.no-print,.scrim,.toolbar button,.seg{display:none!important}.shell{display:block}.main{max-width:none;padding:0}.cal,.table-wrap,.card{box-shadow:none;break-inside:avoid;border-color:#999}.cal-scroll{overflow:visible}.ev{box-shadow:none!important}h1{font-size:1.4rem}a{color:inherit;text-decoration:none}tr{break-inside:avoid}}.plain-list .btn-row{flex-wrap:nowrap;flex:none}.wl-row .req-when b{white-space:nowrap}.attention{margin-bottom:var(--s-7)}.attention ul{border:1px solid var(--hair-strong);border-radius:var(--r-control);background:var(--surface,#fff);margin:0;padding:0;list-style:none}.attention li{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--hair);border-left:3px solid var(--brand-line);display:flex}.attention li:last-child{border-bottom:0}.attention li.tone-warn{border-left-color:#c98f2e}.attention li.tone-bad{border-left-color:var(--bad)}.attention small{color:var(--ink-3);font-size:var(--fs-sm);overflow-wrap:anywhere;margin-top:2px;display:block}@media (width<=560px){.attention li{flex-direction:column;align-items:flex-start}}.kanban{gap:var(--s-4);padding-bottom:var(--s-3);grid-auto-columns:minmax(190px,1fr);grid-auto-flow:column;align-items:start;display:grid;overflow-x:auto}.kcol{min-width:0}.kcol>h2{font:600 .72rem/1 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:var(--s-2) var(--s-2) var(--s-3);border-bottom:1px solid var(--hair-strong);margin:0 0 var(--s-3);justify-content:space-between;align-items:center;display:flex}.kcard{border:1px solid var(--hair-strong);border-radius:var(--r-control);background:var(--surface,#fff);padding:var(--s-3);margin-bottom:var(--s-3);gap:var(--s-2);flex-direction:column;display:flex}.kcard-main{all:unset;box-sizing:border-box;cursor:pointer;border-radius:4px;flex-direction:column;gap:2px;display:flex}.kcard-main:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.kcard-main small{color:var(--ink-3);font-size:var(--fs-sm)}table.heat{border-collapse:separate;border-spacing:3px;table-layout:fixed;width:100%;min-width:420px}table.heat th{font:600 .72rem/1 var(--font-ui);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;padding:var(--s-1);text-align:center;background:0 0;border:0}table.heat tbody th{text-align:right;padding-right:var(--s-2);width:3.2rem}table.heat td{text-align:center;height:30px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;background:var(--hair);border:0;border-radius:4px;padding:0}table.heat tfoot th{padding-top:var(--s-2);color:var(--ink-2)}.nps-split{background:var(--hair);border-radius:999px;gap:2px;height:10px;display:flex;overflow:hidden}.nps-split .good{background:var(--ok,#2f7d5b)}.nps-split .mid{background:#c98f2e}.nps-split .bad{background:var(--bad)}.sec-h{align-items:center;gap:var(--s-2);font-size:var(--fs-md,1rem);margin:var(--s-4) 0 var(--s-2);display:flex}.qr{width:180px;height:180px;margin:var(--s-3) 0;padding:var(--s-2);border:1px solid var(--hair-strong);border-radius:var(--r-control);background:#fff}.qr svg{width:100%;height:100%;display:block}code.secret{background:var(--hair);letter-spacing:.08em;word-break:break-all;border-radius:4px;padding:2px 6px;display:inline-block}.lgpd{margin-top:var(--s-2)}.policy{white-space:pre-wrap;max-height:46vh;padding:var(--s-4);margin:var(--s-4) 0;border:1px solid var(--hair-strong);border-radius:var(--r-control);font-size:var(--fs-sm);background:#fff;line-height:1.6;overflow:auto}.inline-form{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.search-trigger{align-items:center;gap:var(--s-2);width:calc(100% - var(--s-6));margin:0 var(--s-3) var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--hair-strong);border-radius:var(--r-control);color:var(--ink-3);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:#fff;display:flex}.search-trigger:hover{border-color:var(--brand);color:var(--ink)}.search-trigger span{text-align:left;flex:1}kbd{font:600 .7rem/1 var(--font-ui);border:1px solid var(--hair-strong);color:var(--ink-2);white-space:nowrap;background:#fff;border-bottom-width:2px;border-radius:4px;padding:3px 6px}.palette-backdrop{align-items:flex-start;padding-top:12vh}.palette{width:min(620px, calc(100vw - 2 * var(--s-4)));border-radius:var(--r-card,12px);background:#fff;overflow:hidden;box-shadow:0 24px 60px #14283247}.palette-input{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--hair-strong);color:var(--ink-3);display:flex}.palette-input input{font:inherit;font-size:var(--fs-lg,1.05rem);color:var(--ink);min-width:0;box-shadow:none;padding:var(--s-1) 0;background:0 0;border:0;outline:0;flex:1}.palette ul{padding:var(--s-2);max-height:52vh;margin:0;list-style:none;overflow:auto}.palette-group{padding:var(--s-3) var(--s-3) var(--s-1);font:600 .68rem/1 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.palette-item{padding:var(--s-2) var(--s-3);border-radius:var(--r-control);cursor:pointer}.palette-item small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.palette-item.active{background:var(--brand-tint);color:var(--brand-strong)}.palette-empty{padding:var(--s-4);color:var(--ink-3)}.onboarding{margin-bottom:var(--s-7);padding:var(--s-4) var(--s-5);border:1px solid var(--brand-line);border-radius:var(--r-card,12px);background:#fff}.onboarding-head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.onboarding ul{margin:var(--s-4) 0 0;padding:0;list-style:none}.onboarding li{align-items:center;gap:var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--hair);display:flex}.onboarding li>div{flex:1;min-width:0}.onboarding small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.onboarding li.done strong{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--hair-strong);text-decoration-color:var(--hair-strong);font-weight:500}.check-mark{border:1.5px solid var(--hair-strong);color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:.72rem;display:grid}.onboarding li.done .check-mark{background:var(--brand);border-color:var(--brand)}.offline-bar{z-index:80;padding:var(--s-2) var(--s-4);color:#fff;text-align:center;font-size:var(--fs-sm);background:#6e4707;position:sticky;top:0}.alert a:not(.btn){color:inherit;text-underline-offset:2px;font-weight:600;text-decoration:underline}@media (width<=720px){.kanban{grid-template-columns:minmax(0,1fr);grid-auto-columns:auto;grid-auto-flow:row;overflow:visible}}.doc-sheet{border:1px solid var(--hair-strong);color:#1c2429;background:#fff;max-width:794px;margin:0 auto;padding:56px 64px;font-family:Georgia,Times New Roman,serif;position:relative}.doc-sheet header{align-items:center;gap:var(--s-5);padding-bottom:var(--s-4);border-bottom:1px solid var(--hair-strong);display:flex}.doc-sheet header img{mix-blend-mode:multiply;width:86px;height:auto}.doc-org{font:.82rem/1.5 var(--font-ui);color:#4a5961;flex-direction:column;display:flex}.doc-org strong{color:#1c2429;font-size:1rem}.doc-sheet h1{margin:var(--s-7) 0 var(--s-6);text-align:center;font:600 1.15rem/1.3 var(--font-ui);letter-spacing:.16em;text-transform:uppercase}.doc-body{white-space:pre-wrap;text-align:justify;min-height:180px;font-size:1.08rem;line-height:1.85}.doc-date{margin:var(--s-7) 0 var(--s-8,56px);text-align:right;font-size:1rem}.doc-sign{text-align:center;width:320px;max-width:100%;font-family:var(--font-ui);flex-direction:column;gap:2px;margin:0 auto;display:flex}.doc-sign span{margin-bottom:var(--s-2);border-top:1px solid #1c2429}.doc-sign small{color:#4a5961}.doc-sheet footer{align-items:center;gap:var(--s-4);margin-top:var(--s-8,56px);padding-top:var(--s-4);border-top:1px solid var(--hair-strong);font:.74rem/1.5 var(--font-ui);color:#4a5961;display:flex}.doc-qr{flex:none;width:74px;height:74px}.doc-qr svg{width:100%;height:100%}.doc-watermark{font:800 7rem/1 var(--font-ui);color:#b4282829;pointer-events:none;letter-spacing:.1em;place-items:center;display:grid;position:absolute;inset:0;transform:rotate(-24deg)}@media (width<=720px){.doc-sheet{padding:var(--s-5)}.doc-watermark{font-size:3.4rem}.doc-sheet header{flex-direction:column;align-items:flex-start}}@media print{.doc-sheet{border:0;max-width:none;padding:0}@page{size:A4;margin:18mm}}.nav-badge{background:var(--brand);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-grid}.portal-main{max-width:1100px}.p-hero{justify-content:space-between;align-items:flex-end;gap:var(--s-4) var(--s-5);margin-bottom:var(--s-6);flex-wrap:wrap;display:flex}.p-hero .eyebrow{margin-bottom:var(--s-2);display:block}.p-hero h1{max-width:20ch;font-size:2.25rem}.p-hero-sm h1{max-width:none;font-size:1.9rem}.p-cta{min-height:46px;padding-inline:var(--s-5)}.p-grid{gap:var(--s-7);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;display:grid}.p-grid-even{gap:var(--s-5);grid-template-columns:repeat(2,minmax(0,1fr))}.p-side .section-title:first-child{margin-top:0}.p-h2{font-size:var(--fs-xl);margin-bottom:var(--s-4)}.p-list>.section-title:first-child{margin-top:0}.p-policy{margin:var(--s-4) 0}.p-tile{width:62px;padding:var(--s-2) 0;border:1px solid var(--hair-strong);background:var(--paper);border-radius:12px;flex-direction:column;flex:none;align-items:center;line-height:1.1;display:flex}.p-tile small{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:600}.p-tile b{font-family:var(--font-display);font-variant-numeric:lining-nums;font-size:1.7rem;font-weight:450}.p-appt{--c:var(--brand);gap:var(--s-4);padding:var(--s-4);margin-bottom:var(--s-3);background:var(--sheet);border:1px solid var(--hair);border-left:3px solid var(--c);border-radius:var(--r-sheet);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid;position:relative}.p-appt h3{font-size:var(--fs-md);margin-bottom:2px}.p-appt p{margin:0 0 var(--s-1)}.p-appt.st-cancelado,.p-appt.st-falta{opacity:.78}.p-appt.st-cancelado h3{text-decoration:line-through}.p-appt-meta{gap:var(--s-1) var(--s-4);color:var(--ink-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.p-appt-meta span{align-items:center;gap:6px;display:inline-flex}.p-note{gap:var(--s-2);margin-top:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-control);background:var(--warn-tint);color:#6e4707;font-size:var(--fs-sm);align-items:flex-start;display:flex}.p-note .icon{margin-top:2px}.p-note a{color:inherit}.p-quote{border-left:2px solid var(--brand-line);padding-left:var(--s-3);color:var(--ink-2);font-style:italic;font-size:var(--fs-sm)}.p-quote small{color:var(--ink-3);font-style:normal}.p-req{--c:#c98f2e}.p-stats{gap:var(--s-6);display:flex}.p-stats b{font-family:var(--font-display);font-variant-numeric:lining-nums;font-size:2rem;font-weight:400;line-height:1.1;display:block}.p-stats span{font-size:var(--fs-sm);color:var(--ink-3)}.p-stats-row{margin-bottom:var(--s-5);padding:var(--s-4) 0;border-block:1px solid var(--hair-strong)}.p-steps{gap:var(--s-2);margin:0 0 var(--s-5);padding:0;list-style:none;display:flex}.p-steps li{align-items:center;gap:var(--s-2);padding-bottom:var(--s-2);border-bottom:2px solid var(--hair);color:var(--ink-3);font-size:var(--fs-sm);flex:1;font-weight:550;display:flex}.p-steps li span{border:1.5px solid var(--hair-strong);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;display:inline-grid}.p-steps li em{font-style:normal}.p-steps li.on{color:var(--ink);border-bottom-color:var(--brand);font-weight:650}.p-steps li.on span{background:var(--brand);border-color:var(--brand);color:#fff}.p-steps li.done{color:var(--ink-2);border-bottom-color:var(--brand-dot)}.p-steps li.done span{background:var(--brand-dot);border-color:var(--brand-dot);color:var(--ink)}.p-step{padding:var(--s-6)}.p-step h2{font-size:var(--fs-xl);margin-bottom:var(--s-4);font-weight:450}.p-fieldset{margin:0 0 var(--s-5);border:0;min-width:0;padding:0}.p-fieldset legend{margin-bottom:var(--s-3);padding:0}.p-options{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.p-option{--c:var(--brand-line);padding:var(--s-4);text-align:left;font:inherit;color:var(--ink);background:var(--sheet);border:1px solid var(--hair-strong);border-left:3px solid var(--c);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.p-option strong{font-weight:600}.p-option small{color:var(--ink-3);font-size:var(--fs-sm)}.p-option:hover{border-color:var(--ink-3);border-left-color:var(--c)}.p-option.on{background:var(--brand-tint);border-color:var(--brand);border-left-color:var(--c);box-shadow:0 0 0 1px var(--brand)}.p-bar{justify-content:space-between;gap:var(--s-3);margin-top:var(--s-5);display:flex}.p-bar .btn{min-width:120px}.sp-nav{justify-content:center;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.sp-range{text-align:center;min-width:130px;font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:600}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.sp-days{gap:var(--s-2);padding:2px 2px var(--s-3);scroll-snap-type:x proximity;display:flex;overflow-x:auto}.sp-day{width:56px;padding:var(--s-2) 0;scroll-snap-align:start;font:inherit;color:var(--ink);background:var(--sheet);border:1px solid var(--hair-strong);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);border-radius:12px;flex-direction:column;flex:none;align-items:center;display:flex}.sp-day small{color:var(--ink-3);text-transform:lowercase;font-size:.72rem;font-weight:600}.sp-day b{font-family:var(--font-display);font-variant-numeric:lining-nums;font-size:1.35rem;font-weight:450;line-height:1.25}.sp-day:hover:not(:disabled):not(.on){border-color:var(--ink-3)}.sp-day:disabled{background:var(--inset);border-color:var(--hair);color:#94a1a8;cursor:not-allowed}.sp-day:disabled b{text-decoration:line-through;text-decoration-thickness:1px}.sp-day.on{background:var(--brand);border-color:var(--brand);color:#fff}.sp-day.on small{color:#e2f1f5}.sp-date{margin:var(--s-3) 0 var(--s-2);font-weight:600}.sp-times{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));display:grid}.sp-time{min-height:46px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--sheet);border:1px solid var(--hair-strong);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;font-weight:600;display:flex}.sp-time small{color:var(--ink-3);font-size:.7rem;font-weight:500}.sp-time:hover:not(.on){border-color:var(--brand);background:var(--brand-tint)}.sp-time.on{background:var(--brand);border-color:var(--brand);color:#fff}.sp-time.on small{color:#e2f1f5}.sp-empty{align-items:flex-start;gap:var(--s-2);padding:var(--s-4);border:1px dashed var(--hair-strong);color:var(--ink-2);border-radius:12px;flex-direction:column;display:flex}.p-done{max-width:560px;margin:var(--s-7) auto;padding:var(--s-7) var(--s-6);text-align:center}.p-done h1{margin-bottom:var(--s-3);font-size:1.9rem}.p-done p{color:var(--ink-2);margin-bottom:var(--s-5)}.p-done-mark{width:56px;height:56px;margin-bottom:var(--s-4);background:var(--warn-tint);color:var(--warn);border-radius:50%;place-items:center;display:inline-grid}.p-done-mark.ok{background:var(--ok-tint);color:var(--ok)}.p-class .p-class-head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);flex-wrap:wrap;display:flex}.p-class h2{font-size:var(--fs-xl)}.p-class p{margin:var(--s-1) 0 0}.p-chips{gap:var(--s-3);flex-wrap:wrap;display:flex}.p-chip{flex-direction:column;gap:2px;display:flex}.p-chip small{color:var(--ink-3);font-variant-numeric:tabular-nums}.p-tabbar{display:none}@media (width<=960px){.portal-shell .rail{display:none}.portal-main{padding-bottom:104px}.p-tabbar{z-index:40;background:var(--paper);border-top:1px solid var(--hair-strong);padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.p-tab{padding:var(--s-2) 0;min-height:58px;color:var(--ink-3);flex-direction:column;align-items:center;gap:2px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex;position:relative}.p-tab.active{color:var(--brand-strong);font-weight:700}.p-tab.active:before{content:"";background:var(--brand-dot);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:30%;right:30%}.p-grid,.p-grid-even{gap:var(--s-5);grid-template-columns:1fr}.p-hero h1{font-size:1.75rem}.p-hero-sm h1{font-size:1.5rem}.p-step{padding:var(--s-4)}.p-steps li em{display:none}.p-steps li.on em{display:inline}.p-bar{margin-inline:calc(var(--s-4) * -1);padding:var(--s-3) var(--s-4);background:var(--paper);border-top:1px solid var(--hair);position:sticky;bottom:66px}.p-bar .btn{flex:1}}@media (width<=560px){.p-appt{gap:var(--s-2) var(--s-3);grid-template-columns:auto minmax(0,1fr)}.p-appt>.p-tile{grid-row:1/span 2}.p-appt>.badge{grid-area:1/2;justify-self:start}.p-appt>.p-appt-body{grid-area:2/2}.p-cta{width:100%}}.req-list{gap:var(--s-3);flex-direction:column;display:flex}.req-row{--c:var(--brand);gap:var(--s-5);padding:var(--s-4) var(--s-5);background:var(--sheet);border:1px solid var(--hair);border-left:3px solid var(--c);border-radius:var(--r-sheet);grid-template-columns:96px minmax(0,1fr) auto;align-items:start;display:grid}.req-when{text-align:center;padding-top:2px}.req-when small{color:var(--ink-3);font-size:var(--fs-xs);text-transform:lowercase;display:block}.req-when b{font-family:var(--font-display);font-variant-numeric:lining-nums;font-size:1.9rem;font-weight:450;line-height:1.15;display:block}.req-main h3{align-items:center;gap:var(--s-2);font-size:var(--fs-md);flex-wrap:wrap;display:flex}.req-main p{margin:var(--s-1) 0 0}.req-actions{gap:var(--s-2);flex-direction:column;min-width:150px;display:flex}.req-actions .btn{width:100%}@media (width<=760px){.req-row{padding:var(--s-4);gap:var(--s-3);grid-template-columns:70px minmax(0,1fr)}.req-actions{flex-flow:wrap;grid-column:1/-1}.req-actions .btn{flex:auto;width:auto}.req-when b{font-size:1.5rem}}.avail{background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet)}.avail-day{gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--hair);grid-template-columns:190px minmax(0,1fr);align-items:start;display:grid}.avail-day:last-child{border-bottom:0}.avail-toggle{align-items:center;gap:var(--s-3);cursor:pointer;min-height:40px;font-weight:600;display:flex}.avail-day:not(.on) .avail-toggle{color:var(--ink-3);font-weight:500}.avail-day>.muted{align-self:center}.avail-intervals{gap:var(--s-2);flex-direction:column;align-items:flex-start;display:flex}.avail-iv{align-items:center;gap:var(--s-2);display:flex}.avail-iv input{width:128px}@media (width<=640px){.avail-day{gap:var(--s-2);padding:var(--s-4);grid-template-columns:1fr}}.cred pre{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);background:var(--inset);border:1px solid var(--hair);border-radius:var(--r-control);white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all;font:.85rem/1.6 ui-monospace,Consolas,monospace}@media (width<=640px){.avail-intervals,.avail-iv{width:100%}.avail-iv input{flex:1 1 0;width:auto;min-width:0}}.public{align-items:center;gap:var(--s-5);min-height:100vh;padding:var(--s-6) var(--s-4) var(--s-7);background:var(--paper);flex-direction:column;display:flex}.public-logo{width:110px;height:auto}.public-card{width:100%;max-width:480px;padding:var(--s-6);background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet)}.public-card h1{margin:var(--s-1) 0 var(--s-2);font-size:1.7rem}.p-done-inline{text-align:center;padding:var(--s-4) 0}.p-done-inline h2{margin-bottom:var(--s-2)}.nps{margin-top:var(--s-3);grid-template-columns:repeat(11,1fr);gap:4px;display:grid}.nps-btn{min-height:44px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--sheet);border:1px solid var(--hair-strong);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);border-radius:8px;padding:0;font-weight:600}.nps-btn:hover:not(.on){border-color:var(--brand);background:var(--brand-tint)}.nps-btn.on{background:var(--brand);border-color:var(--brand);color:#fff}.nps-axis{margin:var(--s-2) 0 var(--s-4);font-size:var(--fs-xs);color:var(--ink-3);justify-content:space-between;display:flex}@media (width<=420px){.nps{grid-template-columns:repeat(6,1fr)}}.msg-list{gap:var(--s-3);flex-direction:column;display:flex}.msg{padding:var(--s-4) var(--s-5);background:var(--sheet);border:1px solid var(--hair);border-radius:var(--r-sheet)}.msg-head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);display:flex}.msg-head small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.msg-body{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);background:var(--inset);border-radius:var(--r-control);white-space:pre-wrap;font-size:var(--fs-sm);cursor:pointer;max-height:4.6em;overflow:hidden}.msg-body.open{max-height:none}.ev .ev-glyph.confirmed{color:var(--teal-ink)}.ev .ev-glyph.warn{color:var(--bad)}.pix-qr{width:220px;max-width:100%;margin:0 auto var(--s-4);padding:var(--s-2);border:1px solid var(--hair);border-radius:var(--r-control);background:#fff}.pix-qr svg{width:100%;height:auto;display:block}.bars2{align-items:flex-end;gap:var(--s-4);height:170px;padding-top:var(--s-2);border-bottom:1px solid var(--hair-strong);display:flex}.bars2-col{flex:1;justify-content:center;align-items:flex-end;gap:4px;max-width:90px;height:100%;display:flex;position:relative}.bars2-col .b{border-radius:3px 3px 0 0;width:42%;min-height:2px}.bars2-col .rev{background:var(--brand-blue)}.bars2-col .exp{background:var(--hair-strong)}.bars2-col small{text-align:center;font-size:var(--fs-xs);color:var(--ink-3);position:absolute;bottom:-22px;left:0;right:0}.bars2+.legend{margin-top:var(--s-6)}td strong.low{color:var(--bad)}.print-only{display:none}.receipt{max-width:720px;padding:var(--s-6);background:var(--sheet);border:1px solid var(--hair-strong);border-radius:var(--r-sheet);margin:0 auto}.receipt header{justify-content:space-between;gap:var(--s-5);border-bottom:1px solid var(--hair-strong);padding-bottom:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.receipt h1{font-size:2rem}.receipt-org{text-align:right;font-size:var(--fs-sm);color:var(--ink-2);flex-direction:column;display:flex}.receipt-value{font-family:var(--font-display);margin:0 0 var(--s-4);font-size:2.4rem}.receipt-sign{margin-top:var(--s-8);text-align:center}.receipt-sign span{width:280px;max-width:100%;margin:0 auto var(--s-2);border-top:1px solid var(--ink);display:block}@media print{.print-only{margin-bottom:var(--s-4);display:block}.receipt{border:0;padding:0}}.stat-value{white-space:nowrap;font-size:clamp(1.7rem,2.3vw,2.5rem)}.chart-head{gap:var(--s-5);grid-template-columns:minmax(0,1fr) minmax(0,340px) auto;align-items:center;display:grid}@media (width<=960px){.chart-head{grid-template-columns:1fr}}.pain{gap:var(--s-1);flex-direction:column;display:flex}.pain svg{width:100%;height:auto;max-height:90px}.pain-scale{grid-template-columns:repeat(11,1fr);gap:4px;display:grid}@media (width<=480px){.pain-scale{grid-template-columns:repeat(6,1fr)}}.evo-list{gap:var(--s-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.evo{padding:var(--s-4) var(--s-5);background:var(--sheet);border:1px solid var(--hair);border-left:3px solid var(--brand-blue);border-radius:var(--r-sheet);break-inside:avoid}.evo-head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-2);flex-wrap:wrap;display:flex}.evo-head small{color:var(--ink-3);font-size:var(--fs-sm);display:block}.evo-line{gap:var(--s-3);margin:var(--s-1) 0;white-space:pre-wrap;display:flex}.evo-line b{width:28px;color:var(--brand-strong);font-family:var(--font-display);flex:none;font-weight:600}.evo-line.guid{color:var(--teal-ink)}
