@import "https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;700&display=swap";:root{--bg:#f6f7f5;--card:#fff;--text:#1f2a24;--muted:#6b7670;--border:#e3e7e4;--primary:#2f7d62;--primary-soft:#e6f2ed;--danger:#c2413b;--danger-soft:#fbeceb;--whatsapp:#1fa855;--radius:10px;--shadow:0 1px 2px #14281e0f, 0 2px 8px #14281e0a;color:var(--text);background:var(--bg);font-family:Rubik,system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 .25rem;font-size:1.5rem}h2{margin:0 0 .6rem;font-size:1.05rem}input,select,textarea{font:inherit;color:inherit;border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:.5rem .65rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[type=checkbox],input[type=radio]{width:auto}input[type=color]{width:3rem;height:2.2rem;padding:.1rem}textarea{resize:vertical}label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}label.row{color:var(--text);flex-direction:row;align-items:center}.btn{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem .95rem;display:inline-flex;text-decoration:none!important}.btn:hover{background:#f1f4f2}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{filter:brightness(1.07)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--text);background:#eef1ef}.btn.danger{color:var(--danger);border-color:#f1cdcb}.btn.danger:hover{background:var(--danger-soft)}.btn.whatsapp{background:var(--whatsapp);border-color:var(--whatsapp);color:#fff}.btn.small{padding:.3rem .6rem;font-size:.85rem}.btn.big{padding:.8rem 1.2rem;font-size:1.05rem}.linklike{font:inherit;color:var(--primary);cursor:pointer;text-align:start;background:0 0;border:0;padding:0}.topbar{border-bottom:1px solid var(--border);z-index:10;background:#fff;align-items:center;gap:1.5rem;padding:.6rem 1.25rem;display:flex;position:sticky;top:0}.brand{color:var(--primary);font-weight:700}.topbar nav{flex:1;gap:.25rem;display:flex;overflow-x:auto}.topbar nav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:.4rem .75rem}.topbar nav a.active{background:var(--primary-soft);color:var(--primary);font-weight:500}.topbar nav a:hover{color:var(--text);text-decoration:none}.topbar-user{align-items:center;gap:.5rem;display:flex}.content{padding:1.25rem}.page{flex-direction:column;gap:1rem;max-width:1200px;margin:0 auto;display:flex}.page.narrow{max-width:720px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.15rem}.card-head{justify-content:space-between;align-items:center;display:flex}.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.span2{grid-column:span 2}.row{align-items:center;gap:.5rem;display:flex}.row.wrap{flex-wrap:wrap}.row.spread{flex-wrap:wrap;justify-content:space-between}.row.end{justify-content:flex-end}.row.center{justify-content:center;margin-top:.75rem}.grow{flex:1}.stack{flex-direction:column;gap:.6rem;display:flex}.form{flex-direction:column;gap:.8rem;display:flex}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.item-row{grid-template-columns:1fr 5rem 7rem auto;align-items:center;gap:.5rem;display:grid}.muted{color:var(--muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}.end{text-align:end}.pre{white-space:pre-wrap;margin:.25rem 0 0}.big-number{margin:.25rem 0;font-size:1.6rem;font-weight:700}.success-text{color:var(--primary)}.table{border-collapse:collapse;width:100%;margin-top:.5rem}.table th{text-align:start;color:var(--muted);border-bottom:1px solid var(--border);padding:.4rem;font-size:.8rem;font-weight:500}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.55rem .4rem}.table td input{padding:.3rem .45rem}.table tr:last-child td{border-bottom:0}.row-cancelled td{color:var(--muted);text-decoration:line-through}.row-cancelled td .btn,.row-cancelled td .badge{text-decoration:none}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.list li:last-child{border-bottom:0}.list li.done{opacity:.6}.notes{flex-direction:column;gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.notes li{border-inline-start:3px solid var(--primary-soft);padding-inline-start:.75rem}.badge{color:var(--muted);white-space:nowrap;background:#eef1ef;border-radius:999px;margin-inline-start:.35rem;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.badge.completed{background:var(--primary-soft);color:var(--primary)}.badge.cancelled,.badge.no_show{background:var(--danger-soft);color:var(--danger)}.badge.scheduled{color:#2f5f9e;background:#eaf1fb}.alert{border-radius:8px;padding:.6rem .85rem;font-size:.9rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.success{background:var(--primary-soft);color:var(--primary)}.preview{background:#f1f4f2;border-radius:8px;padding:.6rem .8rem}.code{color:#d8f3e6;text-align:left;white-space:pre-wrap;word-break:break-all;direction:ltr;background:#1f2a24;border-radius:8px;padding:.75rem;font-size:.8rem}.tabs{border-bottom:1px solid var(--border);gap:.25rem;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:.55rem .9rem}.tabs button.active{color:var(--primary);border-color:var(--primary);font-weight:500}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.stat{border:1px solid var(--border);border-radius:8px;flex-direction:column;padding:.75rem;display:flex}.stat strong{font-size:1.3rem}.bars{flex-direction:column;gap:.4rem;display:flex}.bar-row{grid-template-columns:7rem 1fr 8rem;align-items:center;gap:.6rem;display:grid}.bar-track{background:#eef1ef;border-radius:999px;height:.7rem;overflow:hidden}.bar-fill{background:var(--primary);border-radius:999px;height:100%}.modal-backdrop{z-index:50;background:#141e1959;justify-content:center;align-items:flex-start;padding:5vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:12px;width:100%;max-width:560px;padding:1.1rem 1.25rem;box-shadow:0 20px 50px #0003}.modal.wide{max-width:820px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.modal-head h2{margin:0}.picker{flex-direction:column;gap:.35rem;display:flex;position:relative}.picker-results{border:1px solid var(--border);border-radius:8px;max-height:220px;margin:0;padding:.25rem;list-style:none;overflow-y:auto}.picker-results button{text-align:start;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.45rem .5rem}.picker-results button:hover{background:var(--primary-soft)}.picked{border:1px solid var(--border);color:var(--text);border-radius:8px;align-items:center;gap:.6rem;padding:.45rem .65rem;display:flex}.login{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login .card{width:100%;max-width:420px}.book{flex-direction:column;gap:1rem;max-width:640px;margin:0 auto;padding:1.25rem 1rem 3rem;display:flex}.book-head{text-align:center}.book-head h1{color:var(--primary)}.book h2{margin-top:.75rem}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chips.scroll{flex-wrap:nowrap;padding-bottom:.35rem;overflow-x:auto}.chip{border:1px solid var(--border);font:inherit;cursor:pointer;color:var(--text);background:#fff;border-radius:999px;padding:.45rem .9rem}.chip.day{border-radius:10px;flex-direction:column;align-items:center;min-width:4.2rem;padding:.4rem .6rem;display:flex}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.chip.active .muted{color:#dcefe6}.calendar-card{padding:.75rem}.fc{--fc-border-color:var(--border);--fc-button-bg-color:#fff;--fc-button-border-color:var(--border);--fc-button-text-color:var(--text);--fc-button-hover-bg-color:#f1f4f2;--fc-button-hover-border-color:var(--border);--fc-button-active-bg-color:var(--primary);--fc-button-active-border-color:var(--primary);--fc-today-bg-color:#fbf8e9;--fc-now-indicator-color:var(--danger);font-size:.85rem}.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff}.fc .fc-toolbar-title{font-size:1.15rem}.fc-event{cursor:pointer}.event-faded{text-decoration:line-through}@media (width<=800px){.dash-grid,.grid2,.grid3,.stats{grid-template-columns:minmax(0,1fr)}.span2{grid-column:auto}.topbar{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.topbar nav{order:3;width:100%}.content{padding:.75rem}.item-row{grid-template-columns:1fr 4rem 5.5rem auto}.bar-row{grid-template-columns:5.5rem 1fr 6.5rem}.table{font-size:.85rem}.fc .fc-toolbar{flex-direction:column;gap:.5rem}}.receipt-page{flex-direction:column;gap:1rem;max-width:820px;margin:0 auto;padding:1.25rem 1rem 3rem;display:flex}.receipt-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.receipt{border:1px solid var(--border);border-radius:var(--radius);color:#111;background:#fff;padding:2rem 2.25rem;position:relative;overflow:hidden}.receipt h1{margin:0 0 .25rem;font-size:1.35rem}.receipt-head{border-bottom:2px solid #111;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-bottom:1rem;font-size:.9rem;display:flex}.receipt-title{text-align:end}.receipt-kind{font-size:1.5rem;font-weight:700}.receipt-number{font-size:1.1rem;font-weight:500}.receipt-customer{margin:1.25rem 0}.receipt-table th,.receipt-table td{text-align:start;border-bottom:1px solid #ddd;padding:.5rem .4rem}.receipt-table th{background:#f4f4f4;font-weight:500}.receipt-total{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.receipt-sum{font-size:1.2rem}.receipt-notes{margin-top:1rem;font-size:.9rem}.receipt-foot{color:#555;border-top:1px solid #ddd;margin-top:2rem;padding-top:.75rem;font-size:.8rem}.receipt-watermark{color:#c2413b26;pointer-events:none;justify-content:center;align-items:center;font-size:6rem;font-weight:700;display:flex;position:absolute;inset:0;transform:rotate(-20deg)}.timeline{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.timeline li{border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem}.timeline .note-snippet{color:var(--muted);white-space:pre-wrap;margin:.35rem 0 0;font-size:.85rem}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{font:inherit;cursor:pointer;color:var(--muted);background:#fff;border:0;padding:.4rem .8rem}.segmented button.active{background:var(--primary-soft);color:var(--primary);font-weight:500}@media print{@page{size:A4;margin:14mm}body{background:#fff}.no-print,.topbar{display:none!important}.receipt-page{max-width:none;padding:0}.receipt{border:0;padding:0}}.event-blocked{cursor:pointer;background-image:repeating-linear-gradient(45deg,#0000 0 6px,#9b2c2714 6px 12px)}.row-past td{color:var(--muted)}.jade-card{border-top:3px solid #45b3a6}.jade-title{border-bottom:1px solid var(--border);padding-bottom:.6rem;font-size:1.15rem}.req{color:var(--danger)}.btn.jade-outline{color:#2b8f84;border-color:#45b3a6}.btn.round{border-radius:999px;width:2.6rem;height:2.6rem;padding:0}.btn.block{background:#e4e6e5;border-color:#e4e6e5;width:100%;font-weight:500}.btn.ghost-grey{color:var(--muted);background:#eceeed}.btn.paid{color:#1f8a5b;border-color:#36b37e}.btn.whatsapp-outline{border-color:var(--whatsapp);color:var(--whatsapp)}.btn.big-plus{padding:.35rem;font-size:1.4rem}.danger-text{color:var(--danger)!important}.sep{border:0;border-top:1px solid var(--border);width:100%;margin:.25rem 0}.file-layout{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.patient-name{color:#2b8f84;margin:0;font-size:1.35rem}.patient-phone{color:var(--text);font-size:1.15rem;font-weight:500}.search{background:#fff}.note-card{border:1px solid var(--border);border-top:3px solid #45b3a6;border-radius:8px;flex-direction:column;gap:.4rem;padding:.75rem 1rem;display:flex}.note-card .pre{line-height:1.7}.menu-wrap{position:relative}.menu{inset-inline-end:0;border:1px solid var(--border);box-shadow:var(--shadow);z-index:5;background:#fff;border-radius:8px;flex-direction:column;min-width:7rem;display:flex;position:absolute;top:100%}.menu button{text-align:start;font:inherit;cursor:pointer;background:0 0;border:0;padding:.5rem .75rem}.menu button:hover{background:#f1f4f2}.count-badge{color:#fff;background:#e0454a;border-radius:6px;margin-inline-start:.25rem;padding:0 .4rem;font-size:.8rem;display:inline-block}.selection-bar{background:var(--primary-soft);border-radius:8px;padding:.5rem .75rem}.stats-mini{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.stats-mini div{flex-direction:column;display:flex}.stats-mini strong{font-size:1.2rem}.account-table td{padding:.75rem .4rem}.account-table td a{color:#3a78b8}.item-head{padding:0 .1rem}.confirm-box{color:#2f6a1e;background:#fcfdf5;border:1px solid #a9c98b;border-radius:6px;padding:1rem 1.25rem;font-size:1.1rem;line-height:1.8}.confirm-box h1{color:#2f6a1e;font-size:1.5rem}.confirm-box.is-cancelled{background:var(--danger-soft);color:var(--danger);border-color:#f1cdcb}.confirm-box.is-cancelled h1{color:var(--danger)}.included{border:1px solid var(--border);border-radius:8px;padding:.75rem}.included h2{color:#2b8f84}.cal-tooltip{z-index:60;pointer-events:none;background:#f7f7f7;border:1px solid #ccc;width:250px;padding:.7rem .9rem;font-size:.95rem;line-height:1.8;position:absolute;box-shadow:0 4px 14px #0000001f}.fc .event-holiday{font-size:.8rem}.receipt{color:#111;max-width:800px;margin:0 auto;padding:2.25rem 2.5rem;font-family:Rubik,Arial,sans-serif}.receipt-head{border:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:0;display:flex}.receipt-business{color:#444;font-size:1.05rem;line-height:1.5}.receipt-business h1{color:#111;margin:0 0 .25rem;font-size:1.6rem;font-weight:500}.receipt-logo{object-fit:contain;max-width:190px;max-height:150px}.receipt-rule{border:0;border-top:1px solid #999;margin:1.5rem 0 1.25rem}.receipt-meta{justify-content:space-between;gap:1rem;font-size:1.2rem;display:flex}.receipt-to strong{font-weight:500}.receipt-dates{text-align:end}.receipt-dates .muted{font-size:.95rem}.receipt-title{text-align:center;margin:1.75rem 0 .5rem;font-size:2rem;font-weight:500}.receipt-subtitle{text-align:center;margin:.75rem 0 .4rem;font-size:1.2rem}.receipt-table{border-collapse:collapse;width:100%;font-size:1rem}.receipt-table th,.receipt-table td{border:1.5px solid #222;padding:.35rem .5rem}.receipt-table th{text-align:center;background:#b7cde6;font-weight:700}.receipt-table .col-desc{text-align:start;width:55%}.receipt-table .num{text-align:start;white-space:nowrap;direction:ltr}.receipt-table thead .num{direction:rtl}.receipt-sums{flex-direction:column;align-items:flex-end;gap:.2rem;margin:.4rem 0 .6rem;font-size:1.05rem;display:flex}.receipt-sums>div{min-width:14rem}.receipt-grand{font-size:1.2rem;font-weight:700}.receipt-foot{text-align:center;color:#555;margin-top:1.5rem}.logo-preview{border:1px dashed var(--border);background:#fff;border-radius:8px;max-width:180px;max-height:120px;padding:.25rem}@media (width<=800px){.file-layout{grid-template-columns:minmax(0,1fr)}.receipt{padding:1.25rem .75rem}.receipt-title{font-size:1.5rem}.receipt-meta{font-size:1rem}}.receipt-preview{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;align-items:flex-start;padding:1rem;display:flex}.receipt-preview .receipt-logo{max-width:150px;max-height:100px}.global-search{width:240px;position:relative}.global-search input{border-radius:999px;padding:.4rem .9rem}.global-results{top:110%;z-index:30;box-shadow:var(--shadow);background:#fff;position:absolute;inset-inline:0}.icon-link{font-size:1.15rem;text-decoration:none!important}@media (width<=800px){.global-search{order:2;width:100%}}
