h2{font-size:1.1rem;margin-bottom:.3rem}
.center{text-align:center;margin:1rem 0}
.block{display:block;width:100%}
.btn{cursor:pointer}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.list{list-style:none;display:grid;gap:.6rem;margin:1rem 0}
.toolbar{display:flex;gap:.6rem;margin-bottom:1rem}
.toolbar input{flex:1;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.7rem .8rem;color:#fff;font:inherit;min-width:0}

/* Semana */
.weekbar{display:flex;align-items:center;gap:.3rem;margin-bottom:.8rem}
.weekbar .nav{background:none;border:1px solid var(--border);border-radius:8px;width:30px;height:44px;color:var(--muted);font-size:1.2rem}
.days{flex:1;display:grid;grid-template-columns:repeat(6,1fr);gap:.3rem}
.day{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.4rem 0;display:grid;justify-items:center;line-height:1.15;position:relative}
.day small{font-size:.65rem;color:var(--muted);text-transform:uppercase}
.day b{font-size:1rem}
.day.today small{color:var(--accent)}
.day.on{background:linear-gradient(135deg,var(--primary),var(--violet));border-color:transparent;color:#06101f}
.day.on small{color:#06101f}
.day i{position:absolute;bottom:3px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.day.on i{background:#06101f}
.chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.4rem;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;background:var(--card);border:1px solid var(--border);border-radius:99px;padding:.3rem .8rem;font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:.4rem}
.chip.on{border-color:var(--primary);color:#fff}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.daysum{font-size:.85rem;color:var(--muted);margin:.5rem 0 .8rem}

/* Turnos */
.appt{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .8rem;display:grid;grid-template-columns:64px 1fr auto;gap:.7rem;align-items:center;text-align:left;width:100%;border-left:4px solid var(--c,var(--primary))}
.appt .t{font-weight:800;font-size:.95rem;line-height:1.2}
.appt .t small{display:block;font-weight:400;color:var(--muted);font-size:.7rem}
.appt .who{font-weight:700}
.appt .what{font-size:.82rem;color:var(--muted)}
.appt .st{font-size:.7rem;font-weight:700;border-radius:99px;padding:.15rem .55rem;text-align:center;white-space:nowrap}
.st.booked{background:rgba(56,189,248,.15);color:var(--primary)}
.st.done{background:rgba(45,212,191,.15);color:var(--accent)}
.st.noshow{background:rgba(248,113,113,.18);color:var(--danger)}
.st.cancelled{background:rgba(255,255,255,.08);color:var(--muted)}
.appt.cancelled{opacity:.5}
.appt .rem{display:block;font-size:.68rem;color:var(--muted);text-align:center;margin-top:.2rem}
.appt .rem.warn{color:var(--warn)}

/* Clientes */
.cl{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;display:grid;grid-template-columns:42px 1fr auto;gap:.7rem;align-items:center;text-align:left;width:100%}
.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--violet));display:grid;place-items:center;font-weight:800;color:#06101f}
.cl .nm{font-weight:700}.cl .sub{font-size:.78rem;color:var(--muted)}
.cl .nx{font-size:.72rem;color:var(--accent);text-align:right}

/* Resultados */
.profit{text-align:center;display:grid;gap:.3rem;margin:1rem 0;padding:1.3rem}
.profit b{font-size:2.4rem;color:var(--accent);line-height:1.1}
.pill{justify-self:center;background:rgba(45,212,191,.15);color:var(--accent);font-weight:700;font-size:.8rem;border-radius:99px;padding:.15rem .7rem}
.two-cards{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.8rem}
.two-cards .card{display:grid;gap:.2rem}.two-cards b{font-size:1.5rem}.two-cards .warn{color:var(--warn)}
.formula{margin-top:.8rem;font-size:.9rem;line-height:1.7}
.hbar{margin-bottom:.9rem}.hbar:last-child{margin-bottom:0}
.hl{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.3rem}
.ht{height:10px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}
.ht i{display:block;height:100%;border-radius:99px;transition:width .4s}
#view-results .btn{margin-top:1rem}

/* Ventana inferior */
dialog{border:1px solid var(--border);border-radius:18px 18px 0 0;background:var(--bg-alt);color:#fff;width:100%;max-width:480px;margin:auto auto 0;padding:1.2rem;overflow:auto;max-height:90vh}
dialog::backdrop{background:rgba(0,0,0,.6)}
.sheet h3{margin-bottom:.8rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.sheet label{display:grid;gap:.25rem;font-size:.85rem;margin-bottom:.8rem;color:var(--muted)}
.sheet input,.sheet select{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.7rem .8rem;color:#fff;font:inherit;width:100%}
.sheet input:focus,.sheet select:focus,.toolbar input:focus{outline:2px solid var(--primary);border-color:transparent}
.sheet .two{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.sheet .actions{display:grid;gap:.6rem;margin-top:.6rem}
.x{background:none;border:0;font-size:1.4rem;color:var(--muted);cursor:pointer}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.3rem .8rem;font-size:.9rem;margin-bottom:1rem}
.kv span:nth-child(odd){color:var(--muted)}
.note{border-radius:10px;padding:.6rem .8rem;font-size:.85rem;margin:.2rem 0 .6rem}
.note.ok{background:rgba(45,212,191,.12);color:var(--accent)}
.note.bad{background:rgba(251,146,60,.14);color:var(--warn)}
.note button{background:none;border:0;color:#fff;text-decoration:underline;cursor:pointer;font:inherit;padding:0 0 0 .3rem}
.log{display:flex;justify-content:space-between;gap:1rem;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.6rem .8rem;font-size:.85rem}
.danger{color:var(--danger);background:none;border:0;font-size:.85rem;margin-top:.4rem;cursor:pointer}
