@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700&family=Manrope:wght@400;500;600;700&display=swap";:root{--bg:oklch(96.5% .012 80);--bg-deep:oklch(92.5% .018 75);--surface:oklch(99% .005 80);--surface-2:oklch(95.5% .01 80);--ink:oklch(23.5% .018 60);--ink-soft:oklch(42% .02 60);--ink-faint:oklch(62% .018 60);--rule:oklch(86% .015 70);--sage:oklch(42% .04 145);--sage-deep:oklch(30% .035 145);--sage-tint:oklch(93% .02 145);--terra:oklch(60.5% .135 45);--terra-deep:oklch(50% .14 40);--terra-tint:oklch(93% .04 50);--whatsapp:oklch(65% .165 145);--estado-consulta:oklch(70% .09 75);--estado-confirmada:var(--sage);--estado-cancelada:oklch(62% .018 60);--estado-completada:oklch(55% .08 250);--ok:oklch(55% .12 145);--warn:oklch(70% .13 75);--err:oklch(55% .16 28);--display:"Bricolage Grotesque", ui-serif, Georgia, serif;--sans:"Manrope", ui-sans-serif, system-ui, sans-serif;--s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2.25rem;--s5:3.5rem;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;--ease:cubic-bezier(.22, 1, .36, 1);--shadow:0 1px 2px oklch(30% .02 60/.06), 0 4px 16px oklch(30% .02 60/.07)}*{box-sizing:border-box}html,body,#root{height:100%}body{font:400 15px/1.55 var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.1}a{color:inherit}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:16px}.btn{border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:var(--r-pill);transition:background .15s var(--ease), border-color .15s var(--ease), transform 50ms;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--terra);border-color:var(--terra);color:oklch(99% .01 80)}.btn--primary:hover{background:var(--terra-deep)}.btn--sage{background:var(--sage);border-color:var(--sage);color:oklch(99% .01 80)}.btn--ghost{background:0 0;border-color:#0000}.btn--sm{padding:.35rem .7rem;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.field{flex-direction:column;gap:.35rem;display:flex}.field>label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.input,select.input,textarea.input{border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:.55rem .7rem}.input:focus,select.input:focus,textarea.input:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-tint);outline:none}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow)}.pill{border-radius:var(--r-pill);align-items:center;gap:.35rem;padding:.15rem .6rem;font-size:12px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill--consulta{color:var(--estado-consulta);background:oklch(70% .09 75/.13)}.pill--confirmada{color:var(--sage-deep);background:var(--sage-tint)}.pill--cancelada{color:var(--estado-cancelada);background:oklch(62% .018 60/.13)}.pill--completada{color:var(--estado-completada);background:oklch(55% .08 250/.13)}.muted{color:var(--ink-faint)}.soft{color:var(--ink-soft)}.mono-num{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule);border:2px solid var(--bg);border-radius:999px}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:30;align-items:center;gap:var(--s3);padding:.7rem var(--s3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);background:oklch(96.5% .012 80/.85);display:flex;position:sticky;top:0}.brand{font-family:var(--display);letter-spacing:-.01em;white-space:nowrap;font-size:18px;font-weight:600}.brand b{color:var(--terra);font-weight:700}.topbar nav{gap:.25rem;display:flex}.topbar nav a{border-radius:var(--r-pill);color:var(--ink-soft);padding:.4rem .8rem;font-size:14px;font-weight:600;text-decoration:none}.topbar nav a.active{background:var(--sage-tint);color:var(--sage-deep)}.topbar nav a:hover:not(.active){background:var(--surface-2)}.topbar .spacer{flex:1}.topbar .who{color:var(--ink-soft);align-items:center;gap:.5rem;font-size:13px;display:flex}.page{padding:var(--s3);width:100%;max-width:1200px;margin:0 auto}.page__head{align-items:baseline;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.page__head h1{font-size:26px}.login-wrap{min-height:100vh;padding:var(--s3);place-items:center;display:grid}.login-card{width:100%;max-width:380px;padding:var(--s4);gap:var(--s2);flex-direction:column;display:flex}.login-card .brand{margin-bottom:var(--s1);font-size:26px}.login-card .sub{color:var(--ink-soft);margin-top:-.4rem;font-size:14px}.err-box{color:var(--err);border-radius:var(--r-sm);background:oklch(55% .16 28/.1);padding:.6rem .8rem;font-size:13px;font-weight:600}.cal-toolbar{align-items:center;gap:var(--s2);margin-bottom:var(--s2);flex-wrap:wrap;display:flex}.seg{background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r-pill);gap:.25rem;padding:3px;display:inline-flex}.cal-month{font-family:var(--display);text-transform:capitalize;min-width:200px;font-size:20px;font-weight:600}.legend{gap:var(--s2);flex-wrap:wrap;margin-left:auto;display:flex}.cal-scroll{border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--surface);--name-w:168px;--day-w:46px;overflow-x:auto}.cal-grid{min-width:max-content;display:grid}.cal-cell{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);min-height:44px}.cal-corner,.cal-roomname{z-index:4;background:var(--surface-2);position:sticky;left:0}.cal-roomname{border-right:2px solid var(--rule);border-bottom:1px solid var(--rule);width:var(--name-w);flex-direction:column;justify-content:center;gap:1px;padding:.4rem .7rem;font-size:13px;font-weight:600;display:flex}.cal-roomname small{color:var(--ink-faint);font-size:11px;font-weight:500}.cal-corner{border-right:2px solid var(--rule);border-bottom:1px solid var(--rule)}.cal-dayhead{text-align:center;color:var(--ink-soft);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);flex-direction:column;padding:.3rem 0;font-size:11px;font-weight:600;line-height:1.15;display:flex}.cal-dayhead .dnum{color:var(--ink);font-size:14px}.cal-dayhead.weekend{background:var(--bg-deep)}.cal-dayhead.today .dnum{color:var(--terra)}.cal-cell.weekend{background:oklch(92.5% .018 75/.4)}.cal-cell.today{box-shadow:inset 2px 0 0 var(--terra)}.cal-cell{cursor:pointer;transition:background .1s;position:relative}.cal-cell:hover{background:var(--sage-tint)}.cal-bar{border-radius:var(--r-sm);color:oklch(99% .01 80);white-space:nowrap;cursor:pointer;z-index:3;box-shadow:var(--shadow);align-items:center;padding:0 .5rem;font-size:12px;font-weight:600;display:flex;position:absolute;inset:5px 3px;overflow:hidden}.cal-bar--consulta{background:var(--estado-consulta);color:oklch(25% .04 75)}.cal-bar--confirmada{background:var(--sage)}.cal-bar--cancelada{background:var(--estado-cancelada);opacity:.7;text-decoration:line-through}.cal-bar--completada{background:var(--estado-completada)}table.tbl{border-collapse:collapse;width:100%}table.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-bottom:1px solid var(--rule);padding:.5rem .7rem;font-size:11px}table.tbl td{border-bottom:1px solid var(--rule);padding:.6rem .7rem;font-size:14px}table.tbl tr:hover td{background:var(--surface-2)}.scrim{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:oklch(20% .02 60/.35);position:fixed;inset:0}.drawer{z-index:50;background:var(--bg);border-left:1px solid var(--rule);width:min(480px,100%);animation:slidein .18s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 30px oklch(20% .02 60/.15)}@keyframes slidein{0%{opacity:.6;transform:translate(20px)}to{opacity:1;transform:none}}.drawer__head{align-items:center;gap:var(--s2);padding:var(--s3);border-bottom:1px solid var(--rule);display:flex}.drawer__head h2{flex:1;font-size:19px}.drawer__body{padding:var(--s3);gap:var(--s2);flex-direction:column;display:flex;overflow-y:auto}.drawer__foot{padding:var(--s2) var(--s3);border-top:1px solid var(--rule);gap:var(--s2);display:flex}.x-btn{color:var(--ink-soft);border-radius:var(--r-sm);background:0 0;border:none;padding:.2rem .4rem;font-size:20px;line-height:1}.x-btn:hover{background:var(--surface-2)}.row2{gap:var(--s2);grid-template-columns:1fr 1fr;display:grid}.kpi{gap:var(--s3);flex-wrap:wrap;display:flex}.kpi>div{flex:1;min-width:110px}.kpi .n{font-family:var(--display);font-size:22px;font-weight:600}.kpi .n.pend{color:var(--terra)}.kpi .n.ok{color:var(--sage)}.pago-row{align-items:center;gap:var(--s2);border-bottom:1px solid var(--rule);padding:.5rem 0;font-size:14px;display:flex}.pago-row .amt{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.empty{text-align:center;color:var(--ink-faint);padding:var(--s5) var(--s2)}.live-dot{color:var(--sage);align-items:center;gap:.4rem;font-size:12px;font-weight:600;display:inline-flex}.live-dot:before{content:"";background:var(--sage);border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@media (width<=720px){.topbar{flex-wrap:wrap;gap:.5rem .75rem;padding:.5rem .8rem}.brand{font-size:16px}.topbar nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;order:10;gap:.3rem;width:100%;padding-bottom:2px;overflow-x:auto}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{white-space:nowrap;flex:none;padding:.35rem .7rem}.topbar .who a{text-overflow:ellipsis;white-space:nowrap;max-width:96px;overflow:hidden}.page{padding:var(--s2)}.page__head h1{font-size:22px}.row2{grid-template-columns:1fr}.card{-webkit-overflow-scrolling:touch;overflow-x:auto!important}table.tbl{min-width:460px}table.tbl th,table.tbl td{padding:.5rem .55rem}.cal-scroll{--name-w:116px}.cal-roomname{padding:.35rem .5rem;font-size:12px}.cal-toolbar{gap:.5rem}.drawer{width:100%}}
