.services-layout { display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(320px, .85fr); gap:18px; align-items:start; }
.service-list { display:grid; gap:1px; margin-top:14px; border:1px solid #d9e7e5; border-radius:12px; overflow:hidden; }
.service-row { appearance:none; border:0; background:#fff; padding:16px; display:flex; justify-content:space-between; gap:14px; text-align:left; color:#173e3d; cursor:pointer; }
.service-row:hover { background:#f0f8f6; }
.service-row span { display:grid; gap:4px; }
.service-row small { color:#668584; }
.service-row em { color:#087d70; font-style:normal; font-weight:800; white-space:nowrap; }
.service-form { display:grid; gap:13px; }
.service-form label { display:grid; gap:6px; color:#254b4a; font-size:13px; font-weight:700; }
.service-form input, .service-form select, .service-form textarea, .wide-card textarea { width:100%; border:1px solid #cbdedb; border-radius:8px; padding:10px; font:inherit; color:#183f3e; background:#fff; box-sizing:border-box; }
.wide-card { grid-column:1 / -1; }
.detail-summary #detailDescription { margin:8px 0 0; padding-top:8px; border-top:1px solid #d7e5e2; font-size:12px; line-height:1.45; color:#335c59; white-space:pre-wrap; }
.payment-control { border:1px solid #cfe1dd; border-radius:9px; margin:15px 0 8px; padding:11px 12px; }
.payment-control legend { font-size:12px; font-weight:800; color:#174845; padding:0 4px; }
.payment-control p { margin:0 0 8px; font-size:11px; color:#668584; }
.payment-control label { margin:0; }
.payment-control small { display:block; margin-top:8px; color:#63817e; font-size:10px; }
.client-matches { margin-top:7px; border:1px solid #cfe1dd; border-radius:8px; overflow:hidden; background:#fff; }
.client-matches > p { margin:0; padding:8px 10px; color:#617e7b; font-size:11px; font-weight:800; background:#f4f9f8; }
.client-matches button { display:grid; gap:2px; width:100%; border:0; border-top:1px solid #e3eeeb; padding:9px 10px; text-align:left; color:#1a4644; background:#fff; cursor:pointer; }
.client-matches button:hover { background:#eef8f6; }
.client-matches button small { color:#668584; font-size:11px; }
.client-matches .create-from-search { display:block; color:#087d70; font-weight:800; }
.cash-summary { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:14px; margin:0 0 18px; }
.cash-summary article { display:grid; gap:8px; padding:18px; border:1px solid #d7e5e2; border-radius:10px; background:#fff; box-shadow:0 10px 24px rgba(22, 69, 65, .05); }
.cash-summary small { color:#63817e; font-size:11px; font-weight:800; }
.cash-summary b { color:#124a46; font-size:24px; }
.cash-table { display:grid; }
.cash-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid #e5efed; color:#174845; }
.cash-row:last-child { border-bottom:0; }
.cash-row span { display:grid; gap:3px; }
.cash-row small { color:#668584; }
.debt-card { border-left:4px solid #df9a48; }
.debt-row > div { display:flex; align-items:center; gap:8px; }
.debt-row select { padding:8px; border:1px solid #cbdedb; border-radius:7px; color:#214946; background:#fff; }
.automatic-message-card { margin-top:18px; }
.automatic-message-card > p { margin-top:0; }
.communication-tabs{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 18px;padding:8px;border:1px solid #dce7e4;border-radius:14px;background:rgba(247,250,249,.96);box-shadow:0 8px 24px rgba(26,48,45,.06);backdrop-filter:blur(8px)}
.communication-tabs button{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;text-align:left;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink);padding:10px 11px;cursor:pointer}
.communication-tabs button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e8efed;color:#657572;font-size:10px;font-weight:900}
.communication-tabs button>b{font-size:12px}.communication-tabs button>small{color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.communication-tabs button:hover{background:#fff;border-color:#d7e5e1}.communication-tabs button.selected{background:#fff;border-color:color-mix(in srgb,var(--teal) 35%,#d7e5e1);box-shadow:0 4px 14px rgba(20,123,112,.09)}
.communication-tabs button.selected>span{background:var(--teal);color:var(--on-primary,#fff)}
.communication-panel[hidden]{display:none!important}.communication-panel{scroll-margin-top:92px}.communication-panel>.services-layout{margin-top:0}
.automation-editing-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--teal) 42%,#d9e9e5);border-left:5px solid var(--teal);border-radius:10px;background:color-mix(in srgb,var(--teal) 7%,white)}
.automation-editing-banner[hidden]{display:none}.automation-editing-banner span{display:grid;gap:2px}.automation-editing-banner small{color:var(--teal);font-weight:900;letter-spacing:.08em}.automation-editing-banner b{font-size:15px}.automation-editing-banner em{color:var(--muted);font-size:11px;font-style:normal}
.automation-timing-note{padding:11px 13px;border-radius:8px;background:#edf4f2;color:#40514e;font-size:12px;font-weight:750}.automation-timing-note[hidden]{display:none}
.automation-repeat{display:grid;gap:11px;margin:0;padding:13px;border:1px solid #cfe2de;border-radius:10px;background:#fff}.automation-repeat[hidden]{display:none}.automation-repeat legend{padding:0 7px;color:var(--teal);font-size:11px;font-weight:900;letter-spacing:.04em}.automation-repeat>.check-row{display:flex;align-items:center;gap:8px;font-size:12px}.automation-repeat>.check-row input{width:auto}.automation-repeat>small{color:var(--muted);font-size:10px;line-height:1.4}
.hours-input{display:flex;align-items:center;gap:9px}.hours-input input{max-width:150px}.hours-input span{font-size:12px;font-weight:800;color:var(--muted)}
.rebooking-list{display:grid;gap:10px;margin-top:18px}.rebooking-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid #dce7e4;border-left:4px solid #d58b00;border-radius:10px;background:#fff}.rebooking-row>span{display:grid;gap:4px}.rebooking-row small,.rebooking-row em{color:var(--muted);font-size:11px;font-style:normal}.rebooking-row>div{display:flex;gap:8px;flex-wrap:wrap}.rebooking-row .primary-button,.rebooking-row .secondary-button{min-height:38px;padding:0 13px}@media(max-width:800px){.rebooking-row{align-items:flex-start;flex-direction:column}}
.automation-row.is-editing{margin:0 -10px;padding:12px 10px;border-radius:9px;background:color-mix(in srgb,var(--teal) 8%,white);box-shadow:inset 3px 0 var(--teal)}
@media(max-width:1050px){.communication-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.communication-tabs{position:static;display:flex;overflow-x:auto}.communication-tabs button{min-width:155px}.communication-tabs button>small{display:none}.automation-editing-banner{align-items:flex-start;flex-direction:column}}
.cash-filters { display:grid; grid-template-columns:repeat(6, minmax(110px, 1fr)); align-items:end; gap:10px; margin:8px 0 18px; padding:13px; border:1px solid #d7e5e2; border-radius:9px; background:#f7fbfa; }
.cash-filters label { display:grid; gap:5px; color:#315a57; font-size:11px; font-weight:800; }
.cash-filters input, .cash-filters select { min-width:0; width:100%; box-sizing:border-box; padding:9px; border:1px solid #cbdedb; border-radius:7px; color:#183f3e; background:#fff; font:inherit; }
.cash-filters button { min-height:37px; }
.cash-filter-result { margin:0; padding:0 0 8px; color:#63817e; font-size:12px; font-weight:700; }
.cash-report-summary { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; margin-bottom:18px; }
.superadmin-only-badge { padding:7px 10px; border-radius:999px; color:#087d70; background:#e4f3ef; font-size:11px; font-weight:800; }
.cash-kpi-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 16px; }
.cash-kpi-grid article { display:grid; gap:7px; min-height:76px; padding:14px; border:1px solid #d7e5e2; border-radius:9px; background:#fff; }
.cash-kpi-grid small { color:#668584; font-size:10px; font-weight:800; letter-spacing:.04em; }
.cash-kpi-grid b { color:#124a46; font-size:19px; }
.cash-report-total { grid-column:1 / -1; display:flex; align-items:baseline; gap:14px; padding:16px; border-radius:9px; background:#e9f6f2; color:#124a46; }
.cash-report-total small { color:#087d70; font-size:11px; font-weight:800; }
.cash-report-total b { font-size:26px; }
.cash-report-total span { color:#52736f; font-size:12px; }
.cash-chart-grid { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.cash-donut-panel { padding:15px; border:1px solid #d7e5e2; border-radius:9px; background:#f9fcfb; }
.cash-donut-panel h3 { margin:0 0 12px; color:#1b4c48; font-size:14px; }
.cash-donut-layout { display:grid; grid-template-columns:130px minmax(0, 1fr); align-items:center; gap:16px; }
.cash-donut { width:126px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; position:relative; }
.cash-donut::after { content:""; position:absolute; inset:23px; border-radius:50%; background:#f9fcfb; }
.cash-donut span { position:relative; z-index:1; display:grid; gap:3px; text-align:center; }
.cash-donut b { color:#174845; font-size:14px; }
.cash-donut small { color:#668584; font-size:10px; }
.cash-donut-panel ul { display:grid; gap:7px; margin:0; padding:0; list-style:none; font-size:11px; }
.cash-donut-panel li { display:grid; grid-template-columns:9px minmax(0, 1fr) auto; gap:7px; align-items:center; color:#52736f; }
.cash-donut-panel li i { width:9px; height:9px; border-radius:50%; }
.cash-donut-panel li span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cash-donut-panel li b { color:#244d49; }
.cash-report-panel { padding:14px; border:1px solid #d7e5e2; border-radius:9px; background:#fff; }
.cash-report-panel h3 { margin:0 0 13px; color:#1b4c48; font-size:14px; }
.cash-bar-row { display:grid; grid-template-columns:minmax(0, 1fr) 70px 30px; align-items:center; gap:7px; margin:10px 0; font-size:11px; }
.cash-bar-row span { min-width:0; display:grid; gap:2px; }
.cash-bar-row b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#274f4c; }
.cash-bar-row small { color:#668584; }
.cash-bar-row i { height:7px; border-radius:999px; overflow:hidden; background:#e7f0ee; }
.cash-bar-row em { display:block; height:100%; border-radius:999px; background:#198675; }
.cash-report-panel.service .cash-bar-row em { background:#916ac0; }
.cash-report-panel.employee .cash-bar-row em { background:#e58b53; }
.cash-bar-row strong { color:#54736f; font-size:10px; text-align:right; }
.record-list { display:grid; gap:10px; }
.record-list p { margin:0; padding:10px; background:#f4f9f8; border-radius:7px; }
.collection-controls{display:grid;grid-template-columns:minmax(230px,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;margin:0 0 8px;border:1px solid #dce8e6;border-radius:9px;background:#f7faf9}.collection-controls>label{display:flex;align-items:center;gap:8px;color:var(--muted)}.collection-controls input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);padding:4px}.collection-controls>small{color:var(--muted);font-size:10px;white-space:nowrap}.collection-controls>div{display:flex;align-items:center;gap:7px}.collection-controls button{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--teal);padding:6px 8px;font-size:10px;font-weight:750}.collection-controls button:disabled{opacity:.4;cursor:default}.collection-controls b{min-width:38px;text-align:center;color:var(--muted);font-size:10px}
.debtor-control-panel{margin-top:18px}.debtor-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 14px}.debtor-summary article{display:grid;gap:5px;padding:13px 14px;border:1px solid #eadbc4;border-radius:9px;background:#fffaf1}.debtor-summary small{color:#8a7659;font-size:9px;font-weight:850;letter-spacing:.08em}.debtor-summary b{color:#875e28;font-size:19px}.debtor-list{display:grid}.debtor-row{display:grid;grid-template-columns:minmax(180px,1.1fr) auto minmax(170px,.75fr) auto;align-items:center;gap:14px;padding:13px 3px;border-bottom:1px solid #e8efed}.debtor-row:last-child{border-bottom:0}.debtor-row>span:first-child{display:grid;gap:3px}.debtor-row>span:first-child b{font-size:13px}.debtor-row small{color:var(--muted);font-size:10px}.debtor-row>strong{color:#a26027;font-size:14px}.debtor-reminder-state{display:grid;gap:3px}.debtor-reminder-state b{font-size:11px;color:#506d6a}.debtor-row .secondary-button{padding:8px 10px;font-size:10px;white-space:nowrap}
.client-filter-panel,.client-bulk-actions{margin-bottom:14px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:var(--shadow)}.client-filter-panel .settings-heading{margin-bottom:12px}.client-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.client-filter-grid label{display:grid;gap:5px;color:var(--ink);font-size:10px;font-weight:800}.client-filter-grid input,.client-filter-grid select{width:100%;min-width:0;padding:9px;border:1px solid #cfdfdc;border-radius:7px;background:#fff;color:var(--ink)}.client-filter-grid .client-filter-check{display:flex;align-items:center;flex-direction:row;gap:7px}.client-filter-check input{width:auto}.client-bulk-actions{display:grid;gap:10px;background:#f7fbfa}.client-bulk-actions>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.client-bulk-actions>div:first-child{justify-content:space-between}.client-bulk-actions textarea{width:100%;resize:vertical;border:1px solid #cfdfdc;border-radius:8px;padding:10px;color:var(--ink)}.client-bulk-actions input{min-width:170px;border:1px solid #cfdfdc;border-radius:8px;padding:9px}.client-bulk-actions p{margin:0;color:var(--teal);font-size:11px;font-weight:750}.client-list .selectable-client-row{display:grid;grid-template-columns:22px 38px minmax(0,1fr);gap:10px;padding:12px 16px}.selectable-client-row>[data-select-client]{accent-color:var(--teal)}.client-row-main{display:grid;grid-template-columns:minmax(190px,1fr) auto auto 18px;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:var(--ink);padding:0;text-align:left}.client-row-main>span:first-child{display:grid;gap:3px}.client-segment-data{display:flex;gap:5px;flex-wrap:wrap}.client-segment-data small,.client-segment-data em{padding:4px 6px;border-radius:999px;background:#eef4f3;color:#58716f;font-size:9px;font-style:normal}.client-segment-data em{background:#fff0dd;color:#9a632b}
.client-filter-panel[hidden],.client-bulk-actions[hidden]{display:none!important}
.client-active-criteria{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:10px;border:1px solid #dceae7;border-radius:10px;background:#f6fbfa}.client-active-criteria:empty{display:none}.client-active-criteria b{flex:0 0 100%;color:#58716d;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.client-active-criteria span{padding:5px 8px;border:1px solid #bcded7;border-radius:999px;background:#fff;color:var(--teal);font-size:9px;font-weight:800}.client-filter-section{margin:0;border:0;border-top:1px solid #e6eeec;padding:11px 0}.client-filter-section:first-of-type{border-top:0}.client-filter-section summary{cursor:pointer;color:#2f4945;font-size:11px;font-weight:900;list-style:none}.client-filter-section summary::-webkit-details-marker{display:none}.client-filter-section summary::after{content:'＋';float:right;color:var(--teal)}.client-filter-section[open] summary{margin-bottom:10px;color:var(--teal)}.client-filter-section[open] summary::after{content:'−'}.client-filter-section .field-help{margin:7px 0 0;color:#6d817e;font-size:9px;line-height:1.45}
.filter-search-field{display:grid;grid-template-columns:22px minmax(0,1fr) 30px;align-items:center;border:1px solid #cfdfdc;border-radius:7px;background:#fff;overflow:hidden}.filter-search-field:focus-within{border-color:var(--teal);box-shadow:0 0 0 2px color-mix(in srgb,var(--teal) 16%,transparent)}.client-filter-grid .filter-search-field input{border:0;border-radius:0;padding:9px 3px;outline:0}.filter-search-field>span{color:#79908d;text-align:center}.filter-search-field>button{height:100%;border:0;background:transparent;color:#79908d;font-size:16px;cursor:pointer}.filter-search-field>button:hover{background:#edf6f4;color:var(--teal)}.client-filter-result{margin-top:12px;padding:9px 11px;border-radius:8px;background:#eef7f5;color:#496763;font-size:11px}.client-filter-result b{color:var(--teal)}
.filter-search-field>button[data-client-filter-toggle]{display:grid;place-items:center;padding:0}.filter-search-field>button[data-client-filter-toggle]::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}.filter-search-field>button[data-client-filter-toggle][aria-expanded="true"]::before{transform:translateY(2px) rotate(225deg)}
.filter-combobox{position:relative}.filter-suggestions{position:absolute;z-index:30;top:100%;left:0;right:0;display:grid;max-height:210px;overflow:auto;margin-top:4px;padding:5px;border:1px solid #bfd6d1;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(17,63,58,.16)}.filter-suggestions[hidden]{display:none}.filter-suggestions button{border:0;border-radius:6px;background:transparent;color:var(--ink);font-size:11px;font-weight:700;padding:9px;text-align:left;cursor:pointer}.filter-suggestions button:hover,.filter-suggestions button:focus{background:#eaf6f3;color:var(--teal);outline:0}.filter-suggestions small{padding:9px;color:#728784;font-weight:500}
.client-name-link { appearance:none; border:0; background:transparent; color:var(--teal); cursor:pointer; font:inherit; font-weight:inherit; margin:0; padding:0; text-align:left; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:2px; }
.client-name-link:hover,.client-name-link:focus-visible { color:#075f55; text-decoration-color:currentColor; }
.client-name-link:focus-visible { outline:2px solid #71cbbc; outline-offset:3px; border-radius:2px; }
.appointment .client-name-link { color:inherit; }
.bulk-message-preview { display:block; min-height:18px; margin-top:8px; padding:8px 10px; border-radius:7px; background:#edf7f4; color:#315c56; }

@media (max-width: 900px) { .services-layout { grid-template-columns:1fr; } .cash-filters { grid-template-columns:repeat(2, 1fr); } .cash-report-summary,.cash-chart-grid,.cash-kpi-grid { grid-template-columns:1fr; } }
@media (max-width: 700px) { .collection-controls{grid-template-columns:1fr}.collection-controls>div{justify-content:space-between}.collection-controls>small{white-space:normal}.debtor-summary{grid-template-columns:1fr}.debtor-row{grid-template-columns:1fr auto}.debtor-reminder-state{grid-column:1}.debtor-row .secondary-button{grid-column:2;grid-row:1 / span 2}.client-filter-grid{grid-template-columns:1fr 1fr}.client-list .selectable-client-row{grid-template-columns:20px 34px minmax(0,1fr);padding:11px}.client-row-main{grid-template-columns:1fr 18px}.client-row-main .client-segment-data,.client-row-main .client-tag{display:none} }

/* Acabado visual contemporáneo: más limpio, ligero y corporativo sin cambiar contenido ni flujos. */
:root{
  --ink:#172522;
  --muted:#6d7b78;
  --line:#e2e8e6;
  --canvas:#f6f8f7;
  --shadow:0 12px 34px rgba(26,42,39,.055);
}
body{letter-spacing:-.006em}
.sidebar{background:var(--brand-sidebar);box-shadow:8px 0 28px rgba(17,32,30,.06)}
.brand-mark{background:var(--brand-accent);border-radius:11px;box-shadow:0 7px 18px rgba(0,0,0,.13)}
.nav-item{border-radius:11px;transition:background .18s ease,color .18s ease,transform .18s ease}
.nav-item:hover{transform:translateX(2px)}
.nav-item.active{background:rgba(255,255,255,.15);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}
.topbar{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-color:#edf0ef}
.page-title h1,.client-profile-header h1{font-weight:780;letter-spacing:-.045em}
.eyebrow{letter-spacing:.14em;font-weight:850}
.primary-button{border-radius:11px;box-shadow:0 7px 18px color-mix(in srgb,var(--teal) 22%,transparent);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.primary-button:hover{transform:translateY(-1px);filter:saturate(1.08);box-shadow:0 10px 23px color-mix(in srgb,var(--teal) 27%,transparent)}
.secondary-button,.icon-button,.menu-button,.date-navigation button,.filter-chip{border-color:#dfe6e4;border-radius:10px;box-shadow:0 2px 5px rgba(25,42,39,.025);transition:border-color .16s ease,background .16s ease,transform .16s ease}
.secondary-button:hover,.icon-button:hover,.date-navigation button:hover{border-color:color-mix(in srgb,var(--teal) 35%,#dfe6e4);background:#fbfdfc;transform:translateY(-1px)}
.view-picker{padding:4px;border-radius:11px;background:#edf1f0}
.view-picker button{border-radius:8px;color:#65716f;font-weight:650}
.view-picker button.selected{box-shadow:0 3px 9px rgba(25,42,39,.09);color:var(--ink);font-weight:800}
.agenda-card,.weekly-calendar,.agenda-selector,.mini-calendar,.profile-card,.client-list,.client-filter-panel,.client-bulk-actions,.salon-card,.employee-schedule-card,.year-card{border-color:#e3e9e7;border-radius:15px;box-shadow:var(--shadow)}
.agenda-card,.weekly-calendar{box-shadow:0 16px 42px rgba(27,42,39,.065)}
.professional-head,.week-head>*{background:#fbfcfc}
.appointment,.week-appointment{border-radius:9px;box-shadow:0 5px 13px rgba(27,40,38,.08)}
.appointment:hover,.week-appointment:hover{filter:saturate(1.04);box-shadow:0 8px 18px rgba(27,40,38,.12)}
.calendar-days button{border-radius:7px;transition:background .14s ease,transform .14s ease}
.calendar-days button:hover{transform:translateY(-1px)}
.service-form input,.service-form select,.service-form textarea,.appointment-form input,.appointment-form select,.appointment-form textarea,.data-form input,.data-form select,.wide-panel textarea,.message-compose input,.client-filter-grid input,.client-filter-grid select,.client-bulk-actions textarea,.client-bulk-actions input{border-color:#dbe3e1;border-radius:10px;transition:border-color .16s ease,box-shadow .16s ease}
.service-form input:focus,.service-form select:focus,.service-form textarea:focus,.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus,.data-form input:focus,.data-form select:focus,.wide-panel textarea:focus,.message-compose input:focus,.client-filter-grid input:focus,.client-filter-grid select:focus,.client-bulk-actions textarea:focus,.client-bulk-actions input:focus{outline:0;border-color:color-mix(in srgb,var(--teal) 60%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 11%,transparent)}
.client-row,.service-row{transition:background .16s ease,transform .16s ease}
.client-row:hover,.service-row:hover{background:#f8fbfa;transform:translateX(2px)}
.agenda-body .slot-lines{
  background:
    repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height) / 4 - 1px),rgba(69,91,89,.075) calc(var(--hour-height) / 4 - 1px),rgba(69,91,89,.075) calc(var(--hour-height) / 4)),
    repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height) - 1px),rgba(51,76,73,.31) calc(var(--hour-height) - 1px),rgba(51,76,73,.31) var(--hour-height));
}
.week-column{
  background:
    repeating-linear-gradient(to bottom,transparent 0,transparent calc(2.083333% - 1px),rgba(69,91,89,.075) calc(2.083333% - 1px),rgba(69,91,89,.075) 2.083333%),
    repeating-linear-gradient(to bottom,#fff 0,#fff calc(8.333333% - 1px),rgba(51,76,73,.31) calc(8.333333% - 1px),rgba(51,76,73,.31) 8.333333%);
}
dialog{border-radius:18px;box-shadow:0 26px 80px rgba(17,30,28,.25)}
@media(max-width:760px){
  .agenda-card,.weekly-calendar,.agenda-selector,.mini-calendar,.profile-card,.client-list,.client-filter-panel,.client-bulk-actions{border-radius:13px}
  .nav-item:hover,.client-row:hover,.service-row:hover{transform:none}
}

/* Navegación y agenda 2.0: misma funcionalidad, jerarquía más actual y medidas estables. */
.sidebar{
  position:relative;
  border-right:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 12% 0,rgba(255,255,255,.10),transparent 28%),
    linear-gradient(180deg,color-mix(in srgb,var(--brand-sidebar) 86%,white) 0,var(--brand-sidebar) 56%,color-mix(in srgb,var(--brand-sidebar) 88%,black) 100%);
}
.brand{margin:0 2px 20px;padding:10px 9px 14px;border-bottom:1px solid rgba(255,255,255,.13);letter-spacing:.055em}
.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--brand-accent);box-shadow:0 8px 20px rgba(0,0,0,.18)}
.sidebar nav{gap:7px}
.nav-item{min-height:46px;padding:9px 10px;color:rgba(245,252,250,.79);font-weight:680}
.nav-item span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:rgba(255,255,255,.075);font-size:16px;transition:background .18s ease,color .18s ease}
.nav-item:hover{background:rgba(255,255,255,.09);color:#fff;transform:none}
.nav-item.active{background:#fff;color:color-mix(in srgb,var(--teal) 82%,#102724);box-shadow:0 9px 24px rgba(7,22,20,.17)}
.nav-item.active span{background:var(--teal-pale);color:var(--teal)}
.sidebar-footer>.nav-item{margin-top:14px;border-top:1px solid rgba(255,255,255,.10);border-radius:0;padding-top:15px}
.profile{margin-top:10px;border:1px solid rgba(255,255,255,.10);border-radius:13px;background:rgba(0,0,0,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.profile span{background:var(--brand-accent)}

.agenda-selector{padding:13px 12px}
.selector-title{margin:0 0 10px;padding:0 2px 9px;border-bottom:1px solid #edf1f0}
.agenda-selector fieldset,.week-selector fieldset{padding:10px 0 7px;border-top:0}
.agenda-selector legend,.week-selector legend{width:100%;padding:0 2px 6px;color:#77827f;letter-spacing:.12em}
.agenda-selector label,.week-selector label{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  width:100%;
  min-height:32px;
  padding:5px 4px;
  border-radius:8px;
  text-align:left;
}
.agenda-selector label:hover,.week-selector label:hover{background:#f4f7f6}
.agenda-selector input,.week-selector input{flex:0 0 auto;margin:0}
.agenda-selector .swatch,.week-selector .swatch{flex:0 0 9px;margin:0;order:0}
.manage-list{margin-top:3px;padding:12px 3px 2px}

#agenda{--calendar-height:max(600px,calc(100vh - 210px))}
#agenda .agenda-body{--day-height:var(--calendar-height);height:var(--calendar-height)}
#agenda .week-body{height:var(--calendar-height)}
#agenda .week-grid{grid-template-columns:82px repeat(7,minmax(120px,1fr))}
#agenda .week-head>*{min-height:54px}
#agenda .week-times{font-size:11px}
#agenda .week-times span{padding-inline:10px}
#agenda>.page-title h1{font-size:20px}

@media(min-width:761px) and (max-width:980px){
  .brand{margin-inline:0;padding-inline:0}
  .nav-item span{width:34px;height:34px}
  .sidebar-footer>.nav-item{border-top:0;padding-top:10px}
}
@media(max-width:760px){
  #agenda{--calendar-height:720px}
  #agenda .week-grid{grid-template-columns:82px repeat(7,minmax(94px,1fr))}
  .sidebar{border-radius:0 18px 18px 0}
  .brand{margin-bottom:12px}
}

/* Un único componente lateral para Recepción y Semana. */
#agenda .agenda-side-panel,#agenda .weekly-side-panel{display:grid;align-content:start;gap:9px;min-width:0}
#agenda .agenda-side-panel>.mini-calendar,#agenda .weekly-side-panel>.mini-calendar{width:100%;height:180px;margin:0;padding:10px;border-radius:14px}
#agenda .agenda-side-panel>.agenda-selector,#agenda .weekly-side-panel>.agenda-selector{
  width:100%;
  height:300px;
  min-height:300px;
  margin:0;
  padding:12px 11px;
  overflow:auto;
  border:1px solid #e2e8e6;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow);
}
#agenda .agenda-side-panel>.agenda-selector>fieldset:first-child,
#agenda .weekly-side-panel>.agenda-selector>fieldset:first-child{padding-top:0}
#agenda .weekly-side-panel>.week-selector .selector-title{margin:0 0 10px;padding:0 2px 9px;border:0;border-bottom:1px solid #edf1f0;border-radius:0;background:transparent}
#agenda .weekly-side-panel>.week-selector fieldset{margin:0;padding:10px 0 7px;border:0;background:transparent}
#agenda .agenda-side-panel>.agenda-selector>fieldset,
#agenda .weekly-side-panel>.agenda-selector>fieldset{margin:0;padding:9px 0 5px;border:0;background:transparent}
#agenda .agenda-side-panel>.agenda-selector>fieldset:first-child,
#agenda .weekly-side-panel>.agenda-selector>fieldset:first-child{padding-top:0}
#agenda .weekly-side-panel .week-selector-help{margin:3px 0 0;padding:11px 3px 2px;border:0;border-top:1px solid #edf1f0;border-radius:0;background:transparent;box-shadow:none;font-size:10px;line-height:1.45}

/* Menú lateral premium inspirado en productos SaaS actuales. */
.sidebar{
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--teal) 22%,#121918) 0%,#111817 54%,#0c1211 100%);
  box-shadow:10px 0 34px rgba(8,17,15,.13);
}
.sidebar::before{content:'';position:absolute;z-index:-1;left:-80px;top:-110px;width:260px;height:260px;border-radius:50%;background:var(--teal);opacity:.18;filter:blur(58px);pointer-events:none}
.platform-brand{border-bottom:1px solid rgba(255,255,255,.11);margin-bottom:10px}.platform-brand b{font-size:15px;letter-spacing:-.02em;text-transform:none}.platform-brand small{color:#aeb8b6;opacity:1}.platform-brand .platform-mark{font-size:10px;letter-spacing:-.03em;box-shadow:0 7px 18px rgba(0,0,0,.22)}.organization-switcher{position:relative;gap:10px}.organization-topbar-logo{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;overflow:hidden;border-radius:10px;background:var(--teal);color:var(--on-primary);font-size:11px;font-weight:900}.organization-label{margin-left:7px;padding:4px 7px;border-radius:999px;background:var(--teal-pale);color:var(--teal);font-size:8px;font-weight:900;letter-spacing:.08em}.location-dot{display:none}
.brand{border-bottom-color:rgba(255,255,255,.09)}
.brand-mark{box-shadow:0 0 0 1px rgba(255,255,255,.13),0 10px 24px rgba(0,0,0,.24)}
.nav-item{position:relative;border:1px solid transparent;color:rgba(247,251,250,.72)}
.nav-item span{background:rgba(255,255,255,.065);color:rgba(255,255,255,.80)}
.nav-item:hover{border-color:rgba(255,255,255,.07);background:rgba(255,255,255,.065)}
.nav-item.active{border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.105);color:#fff;box-shadow:inset 3px 0 0 var(--brand-accent),0 10px 24px rgba(0,0,0,.12)}
.nav-item.active span{background:var(--brand-accent);color:#13201d;box-shadow:0 5px 14px color-mix(in srgb,var(--brand-accent) 22%,transparent)}
.profile{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 30px rgba(0,0,0,.12)}

/* Paleta neutra y turquesa, más limpia y contemporánea. */
body{background:#f6f7f7;color:#17201f}
.topbar{border-bottom-color:#e8eceb;box-shadow:0 1px 0 rgba(17,24,23,.025)}
.sidebar{background:linear-gradient(180deg,#151c1b 0%,#101615 58%,#0c1110 100%)}
.sidebar::before{background:#13aaa5;opacity:.13}
.nav-item{color:#aeb8b6}
.nav-item span{background:#252d2c;color:#dbe1df}
.nav-item:hover{background:#202827;border-color:#303a38;color:#fff}
.nav-item.active{background:#fff;border-color:#fff;color:#151c1b;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.nav-item.active span{background:#dff7f5;color:#078783;box-shadow:none}
.profile{background:#171e1d;border-color:#303938}
.agenda-card,.weekly-calendar,.agenda-selector,.mini-calendar{border-color:#e2e7e6;box-shadow:0 12px 32px rgba(17,32,29,.055)}
.view-picker{background:#edf1f0}
.view-picker button.selected{box-shadow:0 3px 10px rgba(16,30,28,.10)}

/* Identidad lateral más editorial: carbón, grises y turquesa. */
.sidebar{background:linear-gradient(180deg,#303534 0%,#252a29 52%,#1d2221 100%);box-shadow:8px 0 28px rgba(18,25,24,.10)}
.sidebar::before{left:-110px;top:-145px;width:300px;height:300px;background:#21b8b2;opacity:.14;filter:blur(72px)}
.brand{gap:12px;margin:0 1px 22px;padding:7px 8px 18px;letter-spacing:0}
.brand>span:last-child{min-width:0;display:grid;gap:2px}
#organizationBrandName{overflow:hidden;text-overflow:ellipsis;font-family:"Segoe UI Variable Text","Segoe UI",Arial,sans-serif;font-size:15px;font-style:normal;font-weight:720;line-height:1.05;letter-spacing:-.025em;text-transform:none;white-space:nowrap}
.brand small{color:#b9c5c2;font-size:10px;line-height:1.2;opacity:1}
.brand-mark{width:42px;height:42px;flex:0 0 42px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#f7f9f8;color:#087f7b;box-shadow:0 8px 20px rgba(0,0,0,.18);font-size:15px;font-weight:780}
.brand-mark:has(img){padding:5px}
.brand-mark img{width:100%;height:100%;border-radius:9px;background:transparent;object-fit:contain}
.sidebar nav{gap:5px}
.nav-item{min-height:45px;color:#c3ccca;font-weight:650}
.nav-item span{background:#3a403f;color:#dce2e0}
.nav-item:hover{background:#3a403f;border-color:#454c4a}
.nav-item.active{background:#fff;color:#171c1b;box-shadow:0 9px 25px rgba(0,0,0,.19)}
.nav-item.active span{background:#d9f5f2;color:#05847f}
.sidebar-footer>.nav-item{border-top-color:#414745}
.profile{background:#292f2e;border-color:#424947}

/* Barra compacta: máxima superficie útil para la agenda, con navegación completa. */
@media(min-width:981px){
  .app-shell,.app-shell:has(#agenda:not([hidden])){grid-template-columns:84px minmax(0,1fr)}
  .sidebar,.app-shell:has(#agenda:not([hidden])) .sidebar{padding:14px 8px 12px}
  .brand,.app-shell:has(#agenda:not([hidden])) .brand{justify-content:center;margin:0 0 12px;padding:2px 0 14px;border-bottom-color:#414745}
  .brand>span:last-child{display:none}
  .brand-mark{width:46px;height:46px;flex-basis:46px;border:0;border-radius:12px;background:transparent;box-shadow:none}
  .brand-mark:has(img){padding:0;background:transparent}
  .brand-mark img{border-radius:10px;background:transparent}
  .sidebar nav,.app-shell:has(#agenda:not([hidden])) .sidebar nav{gap:4px}
  .nav-item,.app-shell:has(#agenda:not([hidden])) .nav-item{min-height:56px;justify-content:center;flex-direction:column;gap:4px;padding:7px 3px;border-radius:10px;font-size:9px;font-weight:650;line-height:1.05;text-align:center}
  .nav-item span{width:28px;height:28px;font-size:15px}
  .nav-item.active{background:rgba(32,183,176,.15);border-color:rgba(71,211,204,.24);color:#fff;box-shadow:inset 3px 0 0 #29bbb5}
  .nav-item.active span{background:#d9f5f2;color:#05847f}
  .sidebar-footer>.nav-item{margin-top:7px;padding-top:8px;border-top-color:#414745;border-radius:10px}
  .profile,.app-shell:has(#agenda:not([hidden])) .profile{display:flex;justify-content:center;margin-top:7px;padding:7px;border-color:transparent;background:transparent;box-shadow:none}
  .profile b,.profile small{display:none}
  .platform-brand .platform-mark{background:#18aaa5;color:#fff}
}

@media(max-width:760px){
  .organization-label{display:none}
  .organization-topbar-logo{width:32px;height:32px;flex-basis:32px;border-radius:9px}
  #agenda .weekly-side-panel{display:block}
  #agenda .weekly-side-panel>.mini-calendar{height:auto;margin-bottom:9px}
  #agenda .weekly-side-panel>.week-selector{display:block;margin:0;padding:12px 11px;overflow:auto}
  #agenda .agenda-side-panel>.agenda-selector,#agenda .weekly-side-panel>.agenda-selector{height:auto;min-height:0;max-height:300px}
}

/* Identidad coherente: los estados clínicos mantienen sus colores semánticos. */
.sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--teal) 10%,#303534),#1d2221)}
.sidebar::before{background:var(--teal)}
.sidebar .nav-item.active{background:color-mix(in srgb,var(--teal) 24%,#303534);border-color:color-mix(in srgb,var(--teal) 45%,#626967);color:#fff;box-shadow:inset 3px 0 0 var(--brand-accent)}
.sidebar .nav-item.active span{background:var(--teal-pale);color:color-mix(in srgb,var(--teal) 65%,#17201f)}
.profile>span{background:var(--brand-accent);color:var(--on-accent)}
.primary-button,.mini-calendar .selected-day{color:var(--on-primary)}
.current-week-day{background:var(--teal-pale)!important;color:color-mix(in srgb,var(--teal) 65%,#17201f)!important}
.view-picker button.selected{box-shadow:inset 0 -2px var(--teal),0 3px 10px rgba(16,30,28,.10)}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.global-info-panel{padding:24px;max-width:440px}
.global-info-panel dl{display:grid;gap:6px;margin:18px 0}
.global-info-panel dt{color:#697572;font-size:12px}
.global-info-panel dd{margin:0 0 10px;font-weight:600}
.week-column{cursor:crosshair}
button.week-appointment{border-width:0 0 0 3px;cursor:pointer;font-family:inherit;min-height:18px}
.brand-mark:not(:has(img)){color:var(--brand-accent)}
/* Estados concluidos: el bloque completo cambia, también en la vista semanal. */
.appointment.status-completed,.week-appointment.status-completed{background:linear-gradient(135deg,#d7dedd 0,#eef1f0 100%)!important;border-color:#61716e!important;color:#263937!important;box-shadow:inset 0 0 0 1px rgba(70,88,84,.18),0 5px 13px rgba(27,40,38,.11)}
.appointment.status-completed b,.week-appointment.status-completed b{padding-right:55px}
.appointment.status-completed::after,.week-appointment.status-completed::after{content:'✓ REALIZADA'!important;position:absolute!important;right:5px!important;bottom:4px!important;left:auto!important;top:auto!important;width:auto!important;padding:2px 5px!important;border-radius:999px!important;background:rgba(255,255,255,.9)!important;color:#36534e!important;box-shadow:0 1px 3px rgba(23,57,59,.12);font-size:8px!important;font-weight:900!important;line-height:1.2!important;white-space:nowrap!important}
/* El resultado flota fuera de la cuadrícula; no reutiliza la etiqueta de estado. */
.appointment[data-result-preview]:hover::after{content:none}
.appointment.status-completed[data-result-preview]:hover::after{content:'✓ REALIZADA'!important}
.appointment.status-no-show[data-result-preview]:hover::after{content:'No presentada';left:auto;top:auto;width:auto;white-space:nowrap}
.appointment-result-tooltip{position:fixed;z-index:1000;width:min(390px,calc(100vw - 20px));max-height:min(520px,calc(100vh - 20px));overflow:auto;padding:13px 14px;border:1px solid rgba(255,255,255,.13);border-radius:11px;background:#173a38;color:#fff;box-shadow:0 16px 38px rgba(12,42,39,.30);pointer-events:none}
.appointment-result-tooltip[hidden]{display:none}.appointment-result-tooltip::before{content:'';position:absolute;left:18px;top:-6px;width:11px;height:11px;transform:rotate(45deg);background:#173a38;border-left:1px solid rgba(255,255,255,.13);border-top:1px solid rgba(255,255,255,.13)}.appointment-result-tooltip.above::before{top:auto;bottom:-6px;transform:rotate(225deg)}
.appointment-result-tooltip b{display:block;margin-bottom:6px;color:#bce5de;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.appointment-result-tooltip p{max-height:150px;overflow:hidden;margin:0;color:#fff;font-size:12px;font-weight:650;line-height:1.5;white-space:pre-wrap}.appointment-result-tooltip small{display:block;margin-top:9px;padding-top:8px;border-top:1px solid rgba(255,255,255,.14);color:#bfd1ce;font-size:9px;line-height:1.35}
.appointment-patient-history{display:grid;gap:7px}.appointment-patient-history article{padding:8px 0;border-top:1px solid rgba(255,255,255,.12)}.appointment-patient-history article:first-child{border-top:0}.appointment-patient-history article b{margin:0;color:#fff;font-size:11px;letter-spacing:0;text-transform:none}.appointment-patient-history article span{display:block;color:#bcd0cd;font-size:10px}.appointment-patient-history article p{margin-top:4px;color:#dff2ef;font-size:10px;font-weight:500;line-height:1.35}
.appointment:not(.personal-appointment):not(.status-completed):not(.status-cancelled),.week-appointment:not(.status-completed):not(.status-cancelled){background:var(--appointment-bg)!important;border-color:var(--appointment-border)!important;color:var(--appointment-text)!important}.appointment:not(.personal-appointment):not(.status-completed):not(.status-cancelled) b,.appointment:not(.personal-appointment):not(.status-completed):not(.status-cancelled) small,.week-appointment:not(.status-completed):not(.status-cancelled) b,.week-appointment:not(.status-completed):not(.status-cancelled) small{color:var(--appointment-text)!important}
/* Historia longitudinal del cliente. */
.evolution-summary-card{border-left:4px solid var(--teal)}.evolution-summary-card .secondary-button{margin-top:4px}.evolution-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.evolution-heading h2{margin-bottom:5px}.evolution-heading>div>p:not(.eyebrow){margin:0}.evolution-heading>span{max-width:260px;padding:8px 10px;border-radius:8px;background:#edf7f5;color:#46706a;font-size:10px;font-weight:750;line-height:1.35}.client-evolution-timeline{display:grid;gap:13px}.client-evolution-visit{position:relative;padding:15px 15px 15px 25px;border:1px solid #dce8e5;border-radius:11px;background:#fbfdfc}.client-evolution-visit::before{content:'';position:absolute;left:10px;top:20px;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px #dcefeb}.client-evolution-visit>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.client-evolution-visit>header span{margin:0}.client-evolution-visit time,.client-evolution-visit>header b,.client-evolution-visit>header small{display:block}.client-evolution-visit time{color:var(--teal);font-size:10px;font-weight:850;text-transform:capitalize}.client-evolution-visit>header b{margin:3px 0;font-size:14px}.client-evolution-visit>header small{color:var(--muted);font-size:10px}.client-evolution-visit>header button{padding:7px 9px;font-size:10px}.client-evolution-visit>div{display:grid;gap:7px;margin-top:11px}.client-evolution-visit section{padding:10px 11px;border-left:3px solid #9bcfc5;border-radius:7px;background:#fff}.client-evolution-visit section small{color:#69817d;font-size:9px}.client-evolution-visit section p{margin:5px 0 0!important;color:var(--ink)!important;font-size:12px!important;line-height:1.5}.evolution-empty{padding:28px;border:1px dashed #bad3ce;border-radius:10px;text-align:center;background:#f7fbfa}.evolution-empty p{margin:6px 0 0!important}.evolution-history-card{grid-column:1/-1}
@media(max-width:700px){.evolution-heading{display:grid}.evolution-heading>span{max-width:none}.client-evolution-visit>header{display:grid}.client-evolution-visit>header button{justify-self:start}}
@media(max-width:760px){.top-actions .icon-button:first-child{display:block}.top-actions{gap:5px}.location{min-width:0}.location b{max-width:140px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.appointment-result-history article header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.appointment-result-history article header span{min-width:0}.appointment-result-history article header .text-button{flex:0 0 auto;padding:3px 5px}.payment-save-button{display:block;margin:10px 0 0 auto}.pending-total{margin-top:9px!important;padding-top:8px;border-top:1px solid #e0c998;color:#8a5d24}
.closed-decision-status{margin:10px 0 0;padding:10px 12px;border:1px solid #cfe1dd;border-radius:8px;background:#f0f7f5;color:#315e57;font-size:11px;font-weight:750}.cancellation-charge-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;padding:11px;border:1px solid #d9e5e2;border-radius:9px;background:#f8fbfa}.cancellation-charge-fields label{margin:0}@media(max-width:600px){.cancellation-charge-fields{grid-template-columns:1fr}}
.appointment-reservation-control,.wallet-settlement{margin:12px 0;padding:13px;border:1px solid #cfe2de;border-radius:10px;background:#f6fbfa}.appointment-reservation-control legend,.wallet-settlement legend{padding:0 6px;color:var(--teal);font-size:11px;font-weight:850}.reservation-payment-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}.wallet-settlement>#appointmentWalletSummary{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.wallet-settlement>#appointmentWalletSummary>*{padding:6px 8px;border-radius:7px;background:#e6f3f0;color:#315e57;font-size:10px}.wallet-card{display:grid;gap:18px}.wallet-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.wallet-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.wallet-summary article{padding:14px;border:1px solid #d9e7e4;border-radius:10px;background:#f7fbfa}.wallet-summary small,.wallet-summary b{display:block}.wallet-summary small{color:#657d79;font-size:9px}.wallet-summary b{margin-top:5px;color:var(--teal);font-size:20px}.wallet-items,.wallet-movements{display:grid;gap:8px}.wallet-items>article,.wallet-movements>p{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:11px 12px;border:1px solid #e0e9e7;border-radius:9px;background:#fff}.wallet-items span{display:grid;gap:2px}.wallet-items small,.wallet-items em,.wallet-movements small{color:var(--muted);font-size:9px}.wallet-items i{padding:4px 7px;border-radius:999px;background:#edf7f5;color:#376c63;font-size:9px;font-style:normal;font-weight:800}.appointment-deposit-badge{position:absolute;right:5px;top:4px!important;width:auto!important;padding:2px 5px;border-radius:999px;background:#fff4ce!important;color:#745b09!important;font-size:8px!important;font-weight:850!important;line-height:1.2!important}.appointment.status-completed .appointment-deposit-badge{top:4px!important;bottom:auto!important}.wallet-product-dialog{max-width:560px}@media(max-width:700px){.wallet-heading{display:grid}.wallet-summary{grid-template-columns:1fr}.reservation-payment-fields{grid-template-columns:1fr}}
/* Catálogo de servicios y plantillas de consentimiento. */
.service-catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.service-catalog-heading .eyebrow{margin:0}.service-consent-settings{display:grid;gap:11px;margin:8px 0;padding:14px;border:1px solid #cfe2de;border-radius:10px;background:#f7fbfa}.service-consent-settings legend{padding:0 6px;color:var(--teal);font-size:11px;font-weight:850}.service-consent-settings input[type=file]{padding:10px;border:1px dashed #9fc6bf;border-radius:8px;background:#fff}.service-consent-status{display:grid;gap:3px;padding:10px 12px;border-radius:8px;background:#eaf5f2;color:#315e57}.service-consent-status b,.service-consent-status small{display:block}.service-consent-status small{font-size:9px}.consent-template-positioner{width:min(94vw,900px);padding:22px}.consent-template-positioner>header{display:flex;justify-content:space-between;gap:20px}.consent-template-positioner>header h2{margin:4px 0}.consent-template-positioner>header p:not(.eyebrow){margin:0;color:var(--muted)}.consent-template-positioner>label{display:block;margin:14px 0 8px}.consent-template-positioner>label input{max-width:150px}.consent-template-preview{position:relative;height:min(62vh,680px);overflow:hidden;border:1px solid #bcd4cf;border-radius:10px;background:#dfe5e4}.consent-template-preview iframe{width:100%;height:100%;border:0}.consent-placement-layer{position:absolute;inset:0;cursor:crosshair}.consent-placement-layer span{position:absolute;width:18%;min-width:130px;padding:13px 8px;transform:translateY(-50%);border:2px solid #078b7e;border-radius:7px;background:rgba(224,250,245,.92);color:#086f65;font-size:10px;font-weight:900;text-align:center;box-shadow:0 6px 18px rgba(5,88,79,.2)}.consent-template-positioner>footer{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.patient-consent-preview{width:100%;height:420px;border:1px solid #ccdeda;border-radius:8px;background:#fff}@media(max-width:650px){.service-catalog-heading{align-items:stretch;flex-direction:column}.service-catalog-heading button{align-self:flex-start}.consent-template-preview{height:55vh}}
/* Firma guiada de consentimientos. */
.consent-signing-flow{width:min(92vw,760px);max-height:88vh;overflow:auto;padding:24px}.consent-signing-flow>header{display:flex;justify-content:space-between;gap:20px}.consent-signing-flow>header h2{margin:3px 0}.consent-signing-flow>header p:not(.eyebrow){margin:0;color:var(--muted)}.consent-contract,.consent-signature-step{margin-top:16px;padding:16px;border:1px solid #d7e5e2;border-radius:11px;background:#f8fbfa}.consent-contract h3,.consent-signature-step h3{margin:0 0 8px}.consent-contract>p,.consent-signature-step>p{color:#526763;line-height:1.55}.consent-contract label{display:flex;align-items:flex-start;gap:9px;margin-top:16px;padding:11px;border-radius:8px;background:#eaf5f2}.consent-contract input{width:auto;margin-top:3px;accent-color:var(--teal)}#consentSignatureCanvas{display:block;width:100%;height:180px;border:2px dashed #91b7b0;border-radius:9px;background:#fff;touch-action:none}.consent-signing-flow>footer{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
/* Archivos reales de la ficha del cliente. */
.document-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.document-section-heading h3,.document-section-heading p{margin:0}.document-section-heading p{margin-top:4px;color:var(--muted);font-size:11px}.client-attachments,.consent-document-list{display:grid;gap:8px;margin-top:12px}.client-attachment,.consent-document-list>article{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #dce8e5;border-radius:9px;background:#f9fcfb}.client-attachment>span:not(.client-attachment-icon),.consent-document-list article>span{display:grid;flex:1;gap:3px;min-width:0}.client-attachment b,.client-attachment small,.consent-document-list b,.consent-document-list small{overflow:hidden;text-overflow:ellipsis}.client-attachment small,.consent-document-list small{color:var(--muted);font-size:9px}.client-attachment img{width:58px;height:58px;border-radius:8px;object-fit:cover}.client-attachment-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:8px;background:#e5f3f0;color:var(--teal);font-size:18px}.client-attachment .secondary-button{flex:0 0 auto;padding:8px 10px;font-size:10px;text-decoration:none}.client-attachment.legacy{border-style:dashed}.consent-document-list i{padding:5px 7px;border-radius:999px;background:#edf6f4;color:#416a63;font-size:9px;font-style:normal;font-weight:800}@media(max-width:600px){.document-section-heading,.client-attachment,.consent-document-list>article{align-items:stretch;flex-direction:column}.client-attachment .secondary-button{align-self:flex-start}}
/* Mensajes directos y recordatorios desde la ficha del cliente. */
.next-appointment-actions{margin-top:14px}.client-message-contact{margin:0;padding:10px 12px;border:1px solid #d6e7e3;border-radius:9px;background:#f1f8f6;color:#426861;font-size:11px;font-weight:700}.client-direct-message-form{width:min(92vw,560px)}
.upcoming-appointments-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.upcoming-appointments-heading h2{margin-bottom:0}.compact-button{padding:9px 12px;font-size:11px}.upcoming-appointments-list{display:grid;gap:9px;margin-top:13px}.upcoming-appointment-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid #dce9e6;border-radius:10px;background:#f8fbfa}.upcoming-appointment-item>div{min-width:0}.upcoming-appointment-item small{display:block;margin:0 0 3px;color:var(--teal);font-size:9px;font-weight:800;letter-spacing:.08em}.upcoming-appointment-item b,.upcoming-appointment-item strong{display:block;font-size:12px}.upcoming-appointment-item strong{margin-top:3px}.upcoming-appointment-item span{margin:3px 0 0;font-size:10px}.upcoming-appointment-item button{flex:0 0 auto}@media(max-width:620px){.upcoming-appointments-heading,.upcoming-appointment-item{align-items:stretch;flex-direction:column}.upcoming-appointments-heading button,.upcoming-appointment-item button{width:100%}}
/* Análisis: navegación lateral consistente, clara y sin barras horizontales. */
.client-period-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin:16px 0 10px}.client-period-row label,.client-filter-grid label{display:grid;gap:5px;margin:0;color:#405652;font-size:10px;font-weight:800}.client-comparison{display:grid;gap:8px;margin-top:14px}.client-comparison>div{display:grid;gap:3px}.client-comparison>div small{color:var(--muted);font-size:9px;line-height:1.4}.client-comparison>section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.client-comparison article{padding:11px;border:1px solid #d9e7e4;border-radius:9px;background:#fff}.client-comparison article small,.client-comparison article b,.client-comparison article span{display:block}.client-comparison article small{color:#657d79;font-size:8px}.client-comparison article b{margin:4px 0;color:var(--teal);font-size:18px}.client-comparison article span{color:var(--muted);font-size:9px}.client-comparison .up{color:#12806f}.client-comparison .down{color:#b95353}
#clientes.client-analysis-layout{max-width:1450px;display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;align-items:start}#clientes.client-analysis-layout>.page-title,#clientes.client-analysis-layout>.client-toolbar{grid-column:1/-1}#clientes.client-analysis-layout>.client-filter-panel{grid-column:1;grid-row:3/span 4;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}#clientes.client-analysis-layout>.client-bulk-actions,#clientes.client-analysis-layout>.client-summary,#clientes.client-analysis-layout>.client-list{grid-column:2}#clientes.client-analysis-layout .client-filter-grid,#clientes.client-analysis-layout .client-period-row{grid-template-columns:1fr}#clientes.client-analysis-layout .client-filter-panel .settings-heading{display:grid}#clientes.client-analysis-layout .client-filter-panel .settings-heading button{justify-self:start}
.cash-main-period{padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}#caja.cash-analysis-layout{max-width:1450px;display:grid;grid-template-columns:315px minmax(0,1fr);gap:16px;align-items:start}#caja.cash-analysis-layout>.page-title{grid-column:1/-1}#caja.cash-analysis-layout>.cash-main-period{grid-column:1;grid-row:2/span 5;position:sticky;top:18px;display:grid;grid-template-columns:1fr;max-height:calc(100vh - 36px);overflow:auto}#caja.cash-analysis-layout>.cash-summary,#caja.cash-analysis-layout>.cash-card,#caja.cash-analysis-layout>#adminCashReport{grid-column:2}#caja.cash-analysis-layout>.cash-summary{margin-top:0}#caja.cash-analysis-layout>#adminCashReport{display:grid;gap:16px}#caja.cash-analysis-layout>#adminCashReport[hidden]{display:none}
@media(max-width:980px){#clientes.client-analysis-layout,#caja.cash-analysis-layout{display:block}#clientes.client-analysis-layout>.client-filter-panel,#caja.cash-analysis-layout>.cash-main-period{position:static;max-height:none;margin-bottom:16px}.client-period-row{grid-template-columns:1fr}.client-comparison{grid-template-columns:1fr}}
/* Ficha de cliente: navegación lateral breve y jerarquizada. */
.client-profile-page{max-width:1220px}.profile-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start;margin-top:20px}.profile-workspace .profile-tabs{position:sticky;top:18px;display:grid;gap:5px;overflow:visible;padding:8px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.profile-workspace .profile-tabs button{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:0;border-radius:9px;text-align:left;white-space:normal}.profile-workspace .profile-tabs button i{display:grid;place-items:center;width:26px;height:26px;flex:0 0 26px;border-radius:7px;background:#edf4f2;color:#58716d;font-size:11px;font-style:normal;font-weight:900}.profile-workspace .profile-tabs button span{margin:0;color:inherit;font-size:12px}.profile-workspace .profile-tabs button.selected{border:0;background:#e6f4f1;color:#087b6f;box-shadow:inset 3px 0 0 var(--teal)}.profile-workspace .profile-tabs button.selected i{background:var(--teal);color:#fff}.profile-workspace>.profile-grid{margin-top:0}.profile-notes-card textarea{width:100%;padding:10px;border:1px solid #cfdfdc;border-radius:8px;resize:vertical;font:inherit}.documents-hub{display:grid;gap:16px}.document-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.document-summary article{padding:13px;border:1px solid #dce8e5;border-radius:9px;background:#f7fbfa}.document-summary small,.document-summary b{display:block}.document-summary small{color:var(--muted);font-size:9px}.document-summary b{margin-top:4px;color:var(--teal);font-size:20px}.documents-hub>section{padding-top:14px;border-top:1px solid #e0e9e7}.documents-hub>section h3{margin:0 0 7px}.documents-hub>section p{line-height:1.6}@media(max-width:820px){.profile-workspace{display:block}.profile-workspace .profile-tabs{position:static;display:flex;overflow:auto;margin:0 -14px 15px;padding:7px;border-width:1px 0;border-radius:0;box-shadow:none}.profile-workspace .profile-tabs button{min-width:max-content}.profile-workspace .profile-tabs button i{display:none}.document-summary{grid-template-columns:1fr}}
.agenda-title-actions{display:flex;gap:9px}.appointment-result-history{display:grid;gap:8px;max-height:230px;overflow:auto;margin:12px 0;padding:12px;border:1px solid #d7e7e4;border-radius:10px;background:#f7fbfa}.appointment-result-history>.eyebrow{margin:0}.appointment-result-history article{padding:10px;border-radius:8px;background:#fff;border:1px solid #e1ecea}.appointment-result-history article b,.appointment-result-history article small{display:block}.appointment-result-history article b{font-size:11px;color:var(--teal)}.appointment-result-history article small{margin-top:2px;color:var(--muted);font-size:9px}.appointment-result-history article p{margin:7px 0 0;font-size:11px;line-height:1.45}.detail-form textarea{width:100%;resize:vertical;border:1px solid #cfdfdc;border-radius:7px;padding:11px;background:#fff;color:var(--ink);font:inherit;font-weight:500}.appointment[data-result-preview]:hover{z-index:20;overflow:visible}.appointment[data-result-preview]:hover::after{content:"Último resultado\A" attr(data-result-preview);white-space:pre-wrap;position:absolute;left:6px;top:calc(100% + 7px);width:min(340px,80vw);padding:10px 12px;border-radius:9px;background:#173a38;color:#fff;box-shadow:0 12px 30px rgba(12,42,39,.25);font-size:10px;line-height:1.45;pointer-events:none}.daily-print-form{width:min(92vw,620px)}.daily-print-form fieldset{margin:14px 0;padding:12px;border:1px solid #d7e5e2;border-radius:10px}.daily-print-form legend{padding:0 5px;color:var(--teal);font-size:11px;font-weight:850}.daily-print-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.daily-print-options label{display:flex;align-items:center;gap:8px;margin:0;padding:9px;border-radius:8px;background:#f7faf9}.daily-print-options input{width:auto;accent-color:var(--teal)}.daily-agenda-print-sheet{max-width:1100px;margin:auto;padding:30px;background:#fff;color:#172321}.daily-agenda-print-sheet>header{display:flex;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:3px solid var(--teal)}.daily-agenda-print-sheet header p{margin:0 0 5px;color:var(--teal);font-size:10px;font-weight:900;letter-spacing:.12em}.daily-agenda-print-sheet h1{margin:0 0 4px;font-size:25px}.daily-agenda-print-sheet header span,.daily-agenda-print-sheet header strong{font-size:12px}.print-selection{margin:14px 0;padding:10px;border-radius:7px;background:#edf7f5;font-size:11px}.daily-agenda-print-sheet table{width:100%;border-collapse:collapse;font-size:10px}.daily-agenda-print-sheet th{padding:8px;border-bottom:2px solid #b8d2cd;color:#315b56;text-align:left}.daily-agenda-print-sheet td{padding:9px 8px;border-bottom:1px solid #dfe8e6;vertical-align:top}.daily-agenda-print-sheet td small{display:block;margin-top:3px;color:#607572}.daily-agenda-print-sheet .amount{text-align:right;font-weight:850}.daily-agenda-print-sheet .extra-payment{background:#fff9e9}.daily-agenda-print-sheet>footer{display:grid;grid-template-columns:1fr 280px;gap:20px;margin-top:20px}.daily-agenda-print-sheet footer section{padding:14px;border:1px solid #dce7e5;border-radius:9px}.daily-agenda-print-sheet footer h2{margin:0 0 9px;font-size:13px}.daily-agenda-print-sheet footer p{display:flex;justify-content:space-between;margin:5px 0;font-size:10px}.daily-agenda-print-sheet .print-total{display:grid;align-content:center;gap:5px;background:#edf7f5}.print-total span,.print-total small{font-size:9px;font-weight:800;color:#55716d}.print-total b{font-size:25px;color:var(--teal)}.print-signatures{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:55px}.print-signatures span{padding-top:7px;border-top:1px solid #879895;font-size:9px}@media(max-width:600px){.agenda-title-actions{align-items:stretch;flex-direction:column}.daily-print-options{grid-template-columns:1fr}}@media print{body.printing-daily-agenda>*:not(#dailyAgendaPrintSheet){display:none!important}body.printing-daily-agenda #dailyAgendaPrintSheet{display:block!important;max-width:none;padding:0}.daily-agenda-print-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-agenda-print-sheet table{page-break-inside:auto}.daily-agenda-print-sheet tr{page-break-inside:avoid}.daily-agenda-print-sheet>footer{page-break-inside:avoid}}
@media print{body.printing-client-list>*:not(#clientListPrintSheet){display:none!important}body.printing-client-list #clientListPrintSheet{display:block!important;max-width:none;padding:0}.client-list-print-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact}.client-list-print-sheet table{page-break-inside:auto}.client-list-print-sheet tr{page-break-inside:avoid}.client-list-print-sheet th,.client-list-print-sheet td{font-size:8px}}
