:root{--bg:#f5f7fa;--surface:#fff;--text:#1c2430;--muted:#64707f;--border:#dfe4ea;--primary:#0f6e6e;--primary-ink:#fff;--primary-soft:#e3f2f1;--danger:#b3261e;--danger-soft:#fdecea;--sidebar:#12303a;--sidebar-ink:#d6e4e8;--radius:10px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:var(--primary)}h1{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.2rem 0;font-size:1.5rem;display:flex}h2{margin:0 0 .8rem;font-size:1rem}.muted{color:var(--muted)}.small{font-size:.85em}.pre{white-space:pre-wrap}.show-sm{display:none}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);flex-direction:column;gap:.3rem;padding:1.2rem .8rem;display:flex}.brand{color:#fff;padding:0 .6rem;font-size:1.2rem;font-weight:700}.tenant{opacity:.8;padding:0 .6rem 1rem;font-size:.85rem}.sidebar nav{flex-direction:column;gap:2px;display:flex}.nav-link{color:var(--sidebar-ink);border-radius:6px;padding:.5rem .6rem;text-decoration:none}.nav-link.active{color:#fff;background:#ffffff1f}.nav-link.disabled{opacity:.45;cursor:default}.sidebar-foot{margin-top:auto;padding:.6rem;font-size:.9rem}.who{flex-direction:column;margin-bottom:.4rem;display:flex}.role{opacity:.7;text-transform:capitalize;font-size:.8rem}.link-button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.content{width:100%;min-width:0;max-width:1200px;padding:1.5rem 2rem}.nowrap{white-space:nowrap}.page-loading{color:var(--muted);padding:2rem}.page-head{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.back{font-size:.9rem;text-decoration:none}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:.5rem 1rem;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:#b8c2cc}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn:disabled{opacity:.6;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:.5rem .6rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input.invalid{border-color:var(--danger)}input[type=color]{cursor:pointer;height:2.4rem;padding:.2rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem}.error-box{background:var(--danger-soft);color:var(--danger);border-radius:8px;margin:.5rem 0;padding:.6rem .8rem}.field-error{color:var(--danger);font-size:.85rem}.stack{flex-direction:column;gap:1rem;display:flex}.login-wrap{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{flex-direction:column;gap:.8rem;width:100%;max-width:380px;display:flex}.login-card h1{margin:0}.login-card label{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.tabs{flex-wrap:wrap;gap:.3rem;margin-bottom:.8rem;display:flex}.tabs button{border:1px solid var(--border);background:var(--surface);font:inherit;cursor:pointer;border-radius:999px;padding:.35rem .8rem}.tabs button[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:#fff}.count{opacity:.7;margin-left:.2rem}.toolbar{margin-bottom:.8rem}.search{max-width:420px}.table-card{padding:0;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:.7rem 1rem;font-size:.85rem;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:.7rem 1rem}.table tr:last-child td{border-bottom:0}.row-link{cursor:pointer}.row-link:hover{background:#fafbfc}.table a{font-weight:600;text-decoration:none}.empty{text-align:center;color:var(--muted);padding:2rem!important}.pager{justify-content:center;align-items:center;gap:1rem;margin-top:1rem;display:flex}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.status-new{color:#2547a8;background:#e7eefc}.status-contacted{color:#8a5a00;background:#fff3d6}.status-consultation_booked{color:#6232a8;background:#efe6fb}.status-won{color:#1f6b35;background:#dff3e4}.status-lost{color:#59636e;background:#eceff2}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem 1rem;display:grid}.span-2{grid-column:1/-1}.field{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.field>span{font-weight:500}.field.has-error input,.field.has-error select{border-color:var(--danger)}.actions{gap:.6rem;display:flex}.detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.facts{grid-template-columns:150px 1fr;gap:.5rem 1rem;margin:0;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.status-card{flex-direction:column;gap:.7rem;display:flex}.status-card h2{margin:0}.status-steps{flex-wrap:wrap;gap:.3rem;display:flex}.step{border:1px solid var(--border);font:inherit;cursor:pointer;background:#fff;border-radius:8px;padding:.4rem .7rem}.step.current{font-weight:600}.step.selected{border-color:var(--primary);background:var(--primary-soft)}.status-card .btn{align-self:flex-start}.add-activity{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.add-activity .btn{align-self:flex-end}.seg{border:1px solid var(--border);border-radius:8px;align-self:flex-start;display:inline-flex;overflow:hidden}.seg button{font:inherit;cursor:pointer;background:#fff;border:0;padding:.35rem .8rem}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--primary-soft);color:var(--primary);font-weight:600}.timeline{flex-direction:column;gap:.8rem;margin:0;padding:0;list-style:none;display:flex}.timeline li{border-left:3px solid var(--border);padding-left:.8rem}.timeline li.tl-status_change{border-left-color:#8a5a00}.timeline li.tl-call{border-left-color:var(--primary)}.tl-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.tl-type{font-size:.85rem;font-weight:600}.btn.danger{color:var(--danger);border-color:#e9b8b4}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.actions.wrap{flex-wrap:wrap}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:.1rem .4rem;font-size:1.4rem;line-height:1}.icon-btn:hover{background:var(--bg);color:var(--text)}.check{white-space:nowrap;align-items:center;gap:.45rem;font-size:.9rem;display:inline-flex}.check input{width:auto}.section-head{justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:.8rem;display:flex}.section-head h2{margin:0}.swatch{vertical-align:-1px;border-radius:3px;flex:none;width:.75rem;height:.75rem;margin-right:.45rem;display:inline-block}.row-actions{text-align:right;white-space:nowrap}.row-actions .btn+.btn{margin-left:.4rem}.table tr.inactive td{opacity:.6}.chip-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.chip{border:1px solid var(--border);background:var(--primary-soft);font:inherit;cursor:pointer;border-radius:999px;padding:.3rem .75rem;font-size:.9rem}.chip.inactive{opacity:.6;background:#fff}.site-block{border-top:1px solid var(--border);margin-top:.8rem;padding-top:.8rem}.site-block:first-of-type{border-top:0;margin-top:0;padding-top:0}.appt-booked{color:#2547a8;background:#e7eefc}.appt-confirmed{color:#0f6e6e;background:#e3f2f1}.appt-arrived{color:#8a5a00;background:#fff3d6}.appt-completed{color:#1f6b35;background:#dff3e4}.appt-cancelled{color:#59636e;background:#eceff2}.appt-no_show{background:var(--danger-soft);color:var(--danger)}.modal-backdrop{z-index:50;background:#12303a73;place-items:start center;padding:6vh 1rem 1rem;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:560px;box-shadow:0 12px 40px #0003}.modal.wide{max-width:760px}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.9rem 1.2rem;display:flex}.modal-head h2{margin:0;font-size:1.1rem}.modal-body{padding:1.2rem}.picker-list{border:1px solid var(--border);border-radius:8px;flex-direction:column;margin-top:.2rem;display:flex;overflow:hidden}.picker-list button{text-align:left;border:0;border-bottom:1px solid var(--border);font:inherit;cursor:pointer;background:#fff;padding:.5rem .6rem}.picker-list button:last-child{border-bottom:0}.picker-list button:hover{background:var(--primary-soft)}.toolbar-row{gap:.5rem;margin-bottom:.8rem;display:flex}.slot-days{flex-direction:column;gap:.8rem;max-height:50vh;display:flex;overflow-y:auto}.slot-day-head{margin-bottom:.35rem;font-size:.9rem;font-weight:600}.slot-list{flex-wrap:wrap;gap:.35rem;display:flex}.slot{border:1px solid var(--border);font:inherit;cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;align-items:flex-start;padding:.3rem .6rem;font-size:.85rem;display:flex}.slot:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.8rem;display:flex}.cal-toolbar select,.date-input{width:auto}.cal{--cols:1;padding:0;overflow-x:auto}.cal-head,.cal-body{grid-template-columns:56px repeat(var(--cols), minmax(var(--colw,140px), 1fr));min-width:calc(56px + var(--cols) * var(--colw,140px));display:grid}.cal.day{--colw:230px}.cal-head{background:var(--surface);border-bottom:1px solid var(--border);z-index:3;position:sticky;top:0}.cal-col-head{border-left:1px solid var(--border);border-top:3px solid #0000;flex-direction:column;min-width:0;padding:.5rem .6rem;font-size:.9rem;display:flex}.today-dot{color:var(--primary);font-size:.75rem;font-weight:600}.cal-body,.cal-times{position:relative}.cal-times div{color:var(--muted);font-size:.75rem;position:absolute;right:6px;transform:translateY(-50%)}.cal-times div:first-child{transform:none}.cal-col{border-left:1px solid var(--border);background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 6px,#f3f5f8 6px 12px);position:relative}.cal-col.bookable{cursor:copy}.cal-line{pointer-events:none;border-top:1px solid #edf0f3;position:absolute;left:0;right:0}.cal-now{border-top:2px solid var(--danger);z-index:2;pointer-events:none;position:absolute;left:0;right:0}.appt-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.appt-row{text-align:left;border:1px solid var(--border);width:100%;font:inherit;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex}.appt-row>span:nth-child(2){flex:1;min-width:0}.appt-row:hover{border-color:#b8c2cc}.appt-row.faded{opacity:.6}.sub-head{margin:1.1rem 0 .5rem;font-size:.95rem}.stack.tight{gap:.5rem}.align-end{align-self:flex-end}.wrap-text{white-space:normal}.gap-note{color:#8a5a00;font-size:.8rem;font-weight:600;display:block}.gap-note:before{content:"⚠ "}.legend{color:var(--muted);flex-wrap:wrap;gap:.3rem 1rem;margin-bottom:.6rem;font-size:.82rem;display:flex}.clinic{z-index:1;border-left:4px solid var(--c);background:color-mix(in srgb, var(--c) 12%, #fff);cursor:pointer;border-radius:6px;gap:4px;font-size:.78rem;line-height:1.25;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 2px #00000014}.clinic:hover{background:color-mix(in srgb, var(--c) 18%, #fff);z-index:2}.clinic:focus-visible{outline:2px solid var(--c)}.clinic.cancelled{opacity:.55;background:repeating-linear-gradient(45deg,#fff,#fff 6px,#f1f3f5 6px 12px)}.clinic.cancelled strong{text-decoration:line-through}.clinic-info{flex-direction:column;flex:1;gap:1px;min-width:0;padding:3px 6px;display:flex}.clinic.with-appts .clinic-info{flex:0 0 38%}.clinic-info strong{color:color-mix(in srgb, var(--c) 70%, #000)}.clinic-info>span{text-overflow:ellipsis;overflow:hidden}.clinic-detail{color:var(--text)}.clinic-appts{flex:1;min-width:0;position:relative}.appt-pill{font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border:0;border-left:3px solid;border-radius:4px;margin-top:1px;padding:0 4px;font-size:.74rem;position:absolute;left:0;right:3px;overflow:hidden}.appt-pill:hover{filter:brightness(.95)}.appt-row.free{cursor:default;background:0 0;border-style:dashed;justify-content:space-between}.rule-row{border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(150px,220px) 1fr;align-items:center;gap:.6rem;padding:.4rem .6rem;display:grid}.rule-row.short{background:#fffaf0;border-color:#f0c96a}.chip-x{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 0 0 .3rem;font-size:1rem;line-height:1}.chip-select{width:auto;padding:.25rem .5rem;font-size:.9rem}.repeat-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0 .8rem;display:flex}.repeat-row input[type=number]{width:4.5rem}.repeat-row input[type=date]{width:auto}.check-grid{flex-wrap:wrap;gap:.3rem 1rem;display:flex}.rule-edit{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.5rem .7rem;display:flex}.rule-edit .check-grid{flex:260px}.inline-field{align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.inline-field input{width:4.5rem}@media (width<=800px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;padding:.6rem 1rem}.tenant{padding:0 .6rem}.sidebar{min-width:0}.sidebar nav{flex-direction:row;order:3;width:100%;overflow-x:auto}.sidebar-foot{align-items:center;gap:.8rem;margin:0 0 0 auto;padding:0;display:flex}.who{display:none}.content{padding:1rem}.hide-sm{display:none}.show-sm{display:block}.detail-grid,.form-grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr;gap:.1rem}.facts dd{margin-bottom:.5rem}.toolbar-row{flex-wrap:wrap}.modal-backdrop{padding:.5rem}.cal-toolbar .actions{flex-wrap:wrap}.cal-toolbar select{max-width:100%}.rule-row{grid-template-columns:1fr}.page-head{flex-wrap:wrap;align-items:flex-start}}.import-preview{border:1px solid var(--border);border-radius:8px;max-height:320px;overflow:auto}.import-preview th{background:var(--surface,#fff);position:sticky;top:0}.role-tag{margin:0 .35rem .2rem 0;display:inline-block}.role-tag:not(:last-child):after{content:","}.new-tag{color:#8a5a00;background:#fff3d6;border-radius:4px;margin-left:.3rem;padding:0 .3rem;font-size:.7rem;font-weight:700}
