:root{
 --pink:#d96f91;--pink-dark:#b84f74;--pink-soft:#fff0f5;--navy:#173b78;
 --ink:#28222b;--muted:#756d78;--line:#eadfe4;--surface:#fff;--bg:#fbf8fa;
 --success:#16784d;--danger:#b42336;--shadow:0 12px 35px rgba(56,35,47,.08);
 --radius:18px
}
*{box-sizing:border-box}html{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}
body{margin:0;min-height:100vh;background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}
.icon{width:21px;height:21px}.app-shell{display:flex;min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:40}
.brand,.auth-brand{display:flex;align-items:center;gap:12px}.brand{padding:22px 20px 18px}
.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--pink),#ed9db4);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-1px;box-shadow:0 8px 20px rgba(217,111,145,.25)}
.brand-mark.large{width:58px;height:58px;border-radius:18px}.brand strong,.auth-brand strong{display:block;font-size:18px}.brand span,.auth-brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.nav{padding:6px 12px;overflow:auto;flex:1}.nav-item{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:12px;color:#625967;font-size:14px;font-weight:600;margin:3px 0}
.nav-item:hover{background:var(--pink-soft);color:var(--pink-dark)}.nav-item.active{background:linear-gradient(90deg,#fbe7ee,#fff4f7);color:var(--pink-dark)}
.nav-item.active .icon{color:var(--pink)}.nav-separator{height:1px;background:var(--line);margin:12px 6px}
.sidebar-footer{padding:15px 20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;background:#28a26a}
.main{margin-left:252px;min-width:0;flex:1}.topbar{height:78px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px;position:sticky;top:0;z-index:30}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.topbar h1{font-size:20px;margin:2px 0 0}.eyebrow{color:var(--pink-dark);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.branch-pill{padding:8px 11px;background:var(--pink-soft);color:var(--pink-dark);border-radius:11px;display:flex;gap:7px;align-items:center;font-size:12px;font-weight:700}.branch-pill .icon{width:16px}
.icon-btn{border:0;background:#f5f1f3;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;cursor:pointer}.link-btn{font-size:12px;color:var(--pink-dark);font-weight:700}
.user-menu{display:flex;align-items:center;gap:9px}.avatar{width:38px;height:38px;border-radius:50%;background:#173b78;color:#fff;display:grid;place-items:center;font-weight:800}.user-meta{display:flex;flex-direction:column}.user-meta strong{font-size:12px}.user-meta span{font-size:10px;color:var(--muted);margin-top:2px}
.mobile-menu{display:none}.content{padding:26px;max-width:1500px;margin:auto}
.hero-card{background:linear-gradient(120deg,#fff,#fff1f5);border:1px solid #f0dce4;border-radius:var(--radius);padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:var(--shadow)}.hero-card h2{margin:5px 0 8px;font-size:25px}.hero-card p{margin:0;color:var(--muted)}
.primary-btn,.secondary-btn{border:0;border-radius:12px;padding:11px 16px;font-weight:700;cursor:pointer;display:inline-flex;justify-content:center;align-items:center}.primary-btn{background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff;box-shadow:0 8px 18px rgba(184,79,116,.2)}.secondary-btn{background:#fff;border:1px solid var(--line);color:var(--ink)}.full{width:100%}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.metric-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 7px 24px rgba(56,35,47,.04)}.metric-card span{display:block;font-size:12px;color:var(--muted)}.metric-card strong{display:block;font-size:28px;margin:7px 0}.metric-card small{color:#918992}
.dashboard-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 7px 24px rgba(56,35,47,.04)}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-header h3{margin:4px 0 0}.panel-header a{font-size:12px;color:var(--pink-dark);font-weight:700}
.appointment-row{display:grid;grid-template-columns:125px 1fr auto;gap:14px;padding:13px 0;border-bottom:1px solid #f2ebee;align-items:center}.appointment-row:last-child{border-bottom:0}.appointment-time{font-size:12px;font-weight:700}.appointment-client strong,.appointment-client span{display:block}.appointment-client span{font-size:10px;color:var(--muted);margin-top:3px}.appointment-id{font-size:11px;color:var(--muted)}
.system-list>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #f2ebee;font-size:12px}.system-list>div:last-child{border-bottom:0}.ok-text{color:var(--success)}
.empty-state{text-align:center;padding:36px 20px;color:var(--muted);border:1px dashed #e6d5dc;border-radius:15px;background:#fffafb}.empty-state.compact{padding:24px}.empty-state h3,.empty-state h4{color:var(--ink);margin:0 0 6px}.empty-state p{margin:0}
.module-placeholder{min-height:55vh;border:1px dashed #e6d5dc;border-radius:22px;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px}.module-placeholder h2{font-size:28px;margin:8px 0}.module-placeholder p{max-width:600px;color:var(--muted);line-height:1.6}.module-icon{width:70px;height:70px;border-radius:20px;background:var(--pink-soft);color:var(--pink-dark);display:grid;place-items:center;font-weight:900;margin-bottom:17px}
.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:680px}.data-table th,.data-table td{padding:13px 12px;border-bottom:1px solid #eee6ea;text-align:left;font-size:12px}.data-table th{color:var(--muted);font-weight:700;background:#fffafb}
.auth-body{background:#f8f4f6}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.auth-brand-panel{padding:48px 7vw;background:linear-gradient(145deg,#173b78,#234f94);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-brand-panel:after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;background:rgba(217,111,145,.28);right:-130px;bottom:-120px}.auth-brand-panel .auth-brand span{color:#dbe6ff}.auth-copy{max-width:580px;position:relative;z-index:1}.auth-copy .tag{display:inline-block;background:rgba(255,255,255,.1);padding:7px 10px;border-radius:20px;font-size:11px}.auth-copy h1{font-size:44px;line-height:1.08;margin:20px 0}.auth-copy p{color:#dbe6ff;line-height:1.7}.auth-mini-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative;z-index:1}.auth-mini-cards div{padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.06)}.auth-mini-cards strong,.auth-mini-cards span{display:block}.auth-mini-cards span{font-size:11px;color:#dbe6ff;margin-top:3px}
.auth-form-panel{display:grid;place-items:center;padding:32px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.auth-card h2{font-size:30px;margin:6px 0}.muted{color:var(--muted)}.field{display:block;margin:17px 0}.field>span{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.field input,.field select{width:100%;border:1px solid #dcd1d6;border-radius:12px;padding:12px 13px;outline:0;background:#fff}.field input:focus,.field select:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(217,111,145,.12)}.password-wrap{display:flex;border:1px solid #dcd1d6;border-radius:12px;overflow:hidden}.password-wrap input{border:0!important;box-shadow:none!important}.text-button{border:0;background:#fff;color:var(--pink-dark);padding:0 12px;font-size:11px;font-weight:700;cursor:pointer}.auth-note{font-size:10px;line-height:1.5;color:var(--muted);text-align:center;margin:16px 0 0}.auth-mobile-brand{display:none}.alert{border-radius:12px;padding:11px 13px;font-size:12px;margin:14px 0}.alert.error{background:#fff0f2;color:var(--danger);border:1px solid #f5cfd6}.alert.success{background:#eefaf4;color:var(--success);border:1px solid #caebda}
.selector-body{background:linear-gradient(145deg,#fff7fa,#f4f7ff);min-height:100vh}.selector-shell{max-width:1050px;margin:auto;padding:28px}.selector-header{display:flex;justify-content:space-between;align-items:center}.selector-content{padding:65px 0}.selector-content h1{font-size:36px;margin:8px 0}.branch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}.branch-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:15px;box-shadow:var(--shadow)}.branch-card h3{margin:6px 0}.branch-card p{margin:0;color:var(--muted);font-size:12px}.branch-icon{width:46px;height:46px;border-radius:14px;background:var(--pink-soft);color:var(--pink-dark);display:grid;place-items:center;font-weight:900}.status-badge{font-size:9px;color:var(--success);background:#edf9f3;padding:5px 7px;border-radius:12px}.selector-footer-action{margin-top:24px}.installer-card{width:min(560px,calc(100% - 32px));margin:50px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}
.sidebar-backdrop{display:none}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.branch-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.22s}.main{margin-left:0}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(24,18,26,.35);z-index:35}.mobile-menu{display:grid}.topbar{padding:0 14px;height:70px}.user-meta,.branch-pill,.topbar .link-btn{display:none}.content{padding:15px}.hero-card{align-items:flex-start;flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.appointment-row{grid-template-columns:105px 1fr}.appointment-id{display:none}.branch-grid{grid-template-columns:1fr}.selector-content{padding:38px 0}}
@media(max-width:520px){.metric-grid{grid-template-columns:1fr}.auth-form-panel{padding:14px}.auth-card{padding:25px 20px}.selector-shell{padding:18px}.selector-content h1{font-size:29px}}

.nav-caption{padding:7px 12px 4px;font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:#a2979d;font-weight:800}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.page-heading h2{font-size:27px;margin:5px 0}.page-heading p{margin:0;color:var(--muted)}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span-full{grid-column:1/-1}.form-grid{display:grid;gap:0 15px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid .span2{grid-column:1/-1}.field small{display:block;color:var(--muted);font-size:10px;margin-top:5px}
.switch-list{border-top:1px solid #f0e8eb;margin-top:8px}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #f3ecef}.switch-row span{display:flex;flex-direction:column}.switch-row small{font-size:10px;color:var(--muted);margin-top:3px}.switch-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--pink)}
.hours-list{display:grid;gap:8px}.hours-row{display:grid;grid-template-columns:130px 120px 1fr 1fr;align-items:center;gap:14px;padding:10px 12px;background:#fffafb;border:1px solid #f0e4e8;border-radius:12px}.hours-row label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.hours-row input[type=time]{padding:7px 8px;border:1px solid #ddd1d6;border-radius:9px;background:#fff}.mini-check input{accent-color:var(--pink)}
.form-card{max-width:850px}.form-actions{display:flex;justify-content:flex-end;margin-top:15px}.actions{text-align:right!important}.small{padding:7px 10px;font-size:11px}.role-badge{display:inline-block;background:#eef3fb;color:var(--navy);padding:6px 9px;border-radius:12px;font-size:10px;font-weight:800}.status-badge.off{background:#f3eff1;color:#7d7378}
.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.role-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;display:flex;flex-direction:column;justify-content:space-between;min-height:190px;box-shadow:0 7px 24px rgba(56,35,47,.04)}.role-card h3{margin:8px 0}.role-card p{font-size:12px;line-height:1.5;color:var(--muted)}.role-code{font-size:9px;font-weight:800;color:var(--pink-dark);letter-spacing:.08em}.role-footer{border-top:1px solid #f0e8eb;padding-top:12px;display:flex;justify-content:space-between;font-size:11px}.role-footer a{color:var(--pink-dark);font-weight:800}.role-footer strong{color:var(--muted)}.info-strip{margin-top:16px;background:#fff7e8;border:1px solid #f3dfb6;border-radius:13px;padding:12px;font-size:11px;color:#6e5527}
.permission-groups{display:grid;grid-template-columns:1fr 1fr;gap:15px}.permission-panel .panel-header{margin-bottom:8px}.permission-panel h3{margin:0}.permission-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #f2ecef;cursor:pointer}.permission-row:last-child{border-bottom:0}.permission-row input{margin-top:3px;accent-color:var(--pink)}.permission-row span{display:flex;flex-direction:column}.permission-row strong{font-size:12px}.permission-row small{font-size:10px;color:var(--muted);margin-top:3px}.sticky-actions{position:sticky;bottom:16px;margin-top:18px;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:15px;padding:12px;display:flex;justify-content:flex-end;gap:10px;backdrop-filter:blur(10px);z-index:10}.page-flash{margin-bottom:15px}
@media(max-width:1050px){.settings-grid{grid-template-columns:1fr}.role-grid{grid-template-columns:1fr 1fr}.permission-groups{grid-template-columns:1fr}.form-grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.page-heading{flex-direction:column}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.hours-row{grid-template-columns:1fr 1fr}.hours-row>strong{grid-column:1/-1}.role-grid{grid-template-columns:1fr}}

.catalog-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}
.catalog-hub-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;align-items:center;gap:16px;min-height:125px;box-shadow:0 7px 24px rgba(56,35,47,.04);transition:.18s}
.catalog-hub-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#e5cbd5}
.catalog-hub-card.primary-catalog{background:linear-gradient(135deg,#fff,#fff1f5)}
.catalog-hub-icon{width:50px;height:50px;border-radius:15px;background:var(--pink-soft);color:var(--pink-dark);display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.catalog-hub-card span,.catalog-hub-card strong,.catalog-hub-card small{display:block}.catalog-hub-card span{font-size:12px;color:var(--muted)}.catalog-hub-card strong{font-size:25px;margin:5px 0}.catalog-hub-card small{font-size:10px;color:var(--muted)}
.heading-actions{display:flex;gap:8px;align-items:center}.filter-bar{background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px;display:flex;gap:8px;align-items:center;margin-bottom:14px}.filter-bar.wrap{flex-wrap:wrap}.filter-bar input,.filter-bar select{border:1px solid #ded3d8;border-radius:10px;padding:9px 10px;background:#fff;font-size:11px}.filter-search{min-width:230px;flex:1}.text-link{font-size:11px;color:var(--pink-dark);font-weight:700;padding:7px}.inline-form{display:inline}.text-action{border:0;background:transparent;color:var(--success);font-size:10px;font-weight:700;cursor:pointer;padding:6px}.text-action.danger{color:var(--danger)}
.tag-row{display:flex;gap:4px;flex-wrap:wrap}.mini-tag{display:inline-block;background:#f4eff2;color:#685d63;border-radius:10px;padding:4px 6px;font-size:9px;font-weight:700}.money-input{display:flex;border:1px solid #dcd1d6;border-radius:12px;overflow:hidden;align-items:center;background:#fff}.money-input>span{padding-left:11px;color:var(--muted);font-size:12px}.money-input input{border:0!important;box-shadow:none!important}.compact-strip{margin-top:10px}.field textarea{width:100%;border:1px solid #dcd1d6;border-radius:12px;padding:12px 13px;resize:vertical;font:inherit;outline:0}.field textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(217,111,145,.12)}
.product-table td,.service-table td{vertical-align:middle}
@media(max-width:1050px){.catalog-hub-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.catalog-hub-grid{grid-template-columns:1fr}.filter-bar{align-items:stretch}.filter-bar input,.filter-bar select,.filter-bar .secondary-btn{width:100%}.filter-search{min-width:0}.heading-actions{width:100%;flex-wrap:wrap}}


/* EST2-A visual hotfix */
a.catalog-hub-card{display:flex;text-decoration:none;color:inherit}
.catalog-hub-card{position:relative;overflow:hidden}
.catalog-hub-card::after{content:"";position:absolute;inset:auto -30px -30px auto;width:96px;height:96px;border-radius:50%;background:rgba(217,111,145,.06)}
.catalog-hub-card > div:last-child{min-width:0}
.catalog-hub-card strong{line-height:1.05}
.catalog-hub-card small{line-height:1.35}

.filter-bar{flex-wrap:wrap}
.filter-bar > *{flex:0 0 auto}
.filter-bar .filter-search{flex:1 1 260px}
.filter-bar select{min-width:145px}
.filter-bar .secondary-btn.small{padding-inline:16px}

.hours-list{display:grid;gap:12px}
.hours-row{
  display:grid;
  grid-template-columns:160px 120px minmax(360px,1fr);
  align-items:center;
  gap:14px;
  padding:14px 16px;
  background:#fff;
  border:1px solid #eadfe4;
  border-radius:16px;
  box-shadow:0 6px 18px rgba(56,35,47,.035)
}
.hours-day strong{display:block;font-size:14px}
.hours-day small{display:block;margin-top:4px;font-size:10px;color:var(--muted)}
.hours-closed-toggle{
  display:inline-flex!important;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:10px 12px;
  background:#fffafb;
  border:1px solid #f0e4e8;
  border-radius:12px;
  color:var(--ink)!important
}
.hours-closed-toggle span{font-size:12px;font-weight:700}
.hours-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hours-time-field{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:48px;
  padding:10px 12px;
  background:#fffafb;
  border:1px solid #f0e4e8;
  border-radius:12px;
  color:var(--ink)!important
}
.hours-time-field span{font-size:12px;font-weight:700;color:var(--ink)}
.hours-time-input{
  width:150px!important;
  max-width:100%;
  padding:9px 10px!important;
  border:1px solid #ddd1d6!important;
  border-radius:10px!important;
  background:#fff!important
}
.hours-row.is-closed{background:#fcfafb}
.hours-row.is-closed .hours-times{opacity:.55}
.hours-row.is-closed .hours-time-field{background:#f8f4f6}

@media(max-width:900px){
  .hours-row{grid-template-columns:1fr;gap:10px}
  .hours-times{grid-template-columns:1fr}
}
@media(max-width:700px){
  .filter-bar .filter-search,
  .filter-bar select,
  .filter-bar .secondary-btn.small,
  .filter-bar .text-link{width:100%}
  .hours-time-field{flex-direction:column;align-items:flex-start}
  .hours-time-input{width:100%!important}
}

/* EST2-B */
.service-assignment-list{display:grid;gap:9px}.service-assignment-row{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(120px,.55fr));gap:10px;align-items:center;padding:12px;border:1px solid #eee3e7;border-radius:14px;background:#fffafb}.service-check{display:flex;align-items:flex-start;gap:10px}.service-check input{margin-top:4px;accent-color:var(--pink)}.service-check span,.service-assignment-row label:not(.service-check){display:flex;flex-direction:column}.service-check small,.service-assignment-row label>span{font-size:10px;color:var(--muted)}.service-assignment-row input[type=number]{width:100%;border:1px solid #ddd1d6;border-radius:9px;padding:8px;background:#fff;margin-top:4px}
.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.resource-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 7px 24px rgba(56,35,47,.04)}.resource-card-head{display:flex;gap:12px;align-items:center}.resource-card h3{margin:3px 0}.resource-card-head span,.resource-card-head small{display:block;color:var(--muted);font-size:10px}.resource-card p{color:var(--muted);font-size:12px;min-height:36px;line-height:1.5}
.status-badge.warning{background:#fff4dd;color:#8b6207}.metric-word{font-size:20px!important}.client-metrics{grid-template-columns:repeat(4,1fr)}.note-form{display:grid;grid-template-columns:150px 1fr auto;gap:8px;align-items:end;margin-bottom:16px}.note-form select,.note-form textarea{border:1px solid #ddd1d6;border-radius:10px;padding:9px;background:#fff;font:inherit}.timeline-list{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:16px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid #f0e9ec}.timeline-dot{width:9px;height:9px;border-radius:50%;background:var(--pink);margin-top:5px}.timeline-item strong{font-size:10px;color:var(--pink-dark)}.timeline-item p{font-size:12px;line-height:1.5;margin:5px 0}.timeline-item small{font-size:9px;color:var(--muted)}.fiscal-card{padding:13px;border:1px solid #eee3e7;border-radius:13px;margin-bottom:9px;background:#fffafb}.fiscal-card strong,.fiscal-card span,.fiscal-card small{display:block}.fiscal-card span{font-size:12px;margin:4px 0}.fiscal-card small{color:var(--muted)}
@media(max-width:1100px){.service-assignment-row{grid-template-columns:1fr 1fr}.service-check{grid-column:1/-1}.resource-grid{grid-template-columns:repeat(2,1fr)}.client-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.service-assignment-row{grid-template-columns:1fr}.service-check{grid-column:auto}.resource-grid{grid-template-columns:1fr}.client-metrics{grid-template-columns:1fr}.note-form{grid-template-columns:1fr}}

/* EST2-C Inventario + Compras/XML */
.quick-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.quick-action-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 6px 20px rgba(56,35,47,.035)}.quick-action-card strong,.quick-action-card span{display:block}.quick-action-card strong{font-size:13px}.quick-action-card span{font-size:10px;color:var(--muted);margin-top:5px}.quick-action-card:hover{border-color:#e2c6d1;background:#fffafb}
.movement-badge{display:inline-block;background:#f3eff2;color:#665a61;border-radius:10px;padding:5px 7px;font-size:9px;font-weight:800}.warehouse-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.warehouse-stats div{background:#fffafb;border-radius:10px;padding:9px}.warehouse-stats span,.warehouse-stats strong{display:block}.warehouse-stats span{font-size:9px;color:var(--muted)}.warehouse-stats strong{font-size:14px;margin-top:3px}
.stock-low-row{background:#fffbf2}.movement-lines{display:grid;gap:7px}.movement-line{display:grid;grid-template-columns:minmax(280px,1.8fr) .55fr .65fr;gap:8px}.movement-line.two-cols{grid-template-columns:minmax(280px,1.8fr) .65fr}.movement-line.header{font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase;padding:0 7px}.movement-line select,.movement-line input{width:100%;border:1px solid #ddd1d6;border-radius:9px;padding:9px;background:#fff}
.purchase-status{display:inline-block;border-radius:10px;padding:5px 7px;font-size:9px;font-weight:800;background:#f2eff1}.purchase-status.processed{background:#edf9f3;color:var(--success)}.purchase-status.error{background:#fff0f2;color:var(--danger)}.purchase-status.uploaded,.purchase-status.processing{background:#fff6e7;color:#8b6207}.error-text{color:var(--danger)}
.upload-card{max-width:760px;margin:auto}.upload-drop{border:2px dashed #e3ced7;border-radius:18px;padding:45px 24px;text-align:center;background:#fffafb}.upload-icon{width:72px;height:72px;border-radius:20px;background:var(--pink-soft);color:var(--pink-dark);display:grid;place-items:center;font-weight:900;margin:0 auto 14px}.upload-drop h3{margin:0}.upload-drop p{font-size:11px;color:var(--muted)}.upload-drop input[type=file]{margin-top:15px;max-width:100%}
.purchase-metrics{grid-template-columns:repeat(4,1fr)}.success-state{background:#effaf4;border:1px solid #ccebdc;border-radius:14px;padding:14px;margin-bottom:15px;color:var(--success)}.success-state p{margin:5px 0 0;font-size:11px}
.xml-item-list{display:grid;gap:12px;margin-top:16px}.xml-item-card{border:1px solid #eadfe4;border-radius:16px;padding:15px;background:#fff}.xml-item-head{display:flex;justify-content:space-between;gap:16px}.xml-item-head strong,.xml-item-head small,.xml-amount strong,.xml-amount span{display:block}.xml-item-head small{font-size:9px;color:var(--muted);margin-top:4px}.xml-amount{text-align:right}.xml-amount span{font-size:10px;color:var(--muted);margin-top:3px}.xml-map-grid{display:grid;grid-template-columns:.9fr 1.6fr 1fr .8fr;gap:10px;margin-top:10px}.xml-item-status{display:flex;gap:8px;align-items:center;font-size:10px;color:var(--muted);border-top:1px solid #f2ebee;padding-top:9px}
@media(max-width:1100px){.quick-action-grid{grid-template-columns:repeat(2,1fr)}.xml-map-grid{grid-template-columns:1fr 1fr}.purchase-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.quick-action-grid{grid-template-columns:1fr}.movement-line,.movement-line.two-cols{grid-template-columns:1fr}.movement-line.header{display:none}.xml-item-head{flex-direction:column}.xml-amount{text-align:left}.xml-map-grid{grid-template-columns:1fr}.purchase-metrics{grid-template-columns:1fr}}

/* EST3-A POS */
.pos-shell-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,.85fr);gap:16px;align-items:start}.pos-catalog{min-width:0}.pos-toolbar{display:flex;gap:12px;align-items:center;padding:10px!important;margin-bottom:12px}.pos-tabs{display:flex;gap:5px}.pos-tab{border:0;background:#f5eff2;color:#756970;border-radius:10px;padding:9px 13px;font-weight:800;font-size:11px;cursor:pointer}.pos-tab.active{background:var(--pink);color:#fff}.pos-search{flex:1;border:1px solid #ddd1d6;border-radius:11px;padding:10px 12px;min-width:150px}.pos-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.pos-item-card{text-align:left;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;min-height:145px;cursor:pointer;transition:.16s;color:var(--ink)}.pos-item-card:hover{transform:translateY(-2px);border-color:#e1c5d0;box-shadow:0 8px 24px rgba(65,38,50,.08)}.pos-item-card.disabled{opacity:.48;cursor:not-allowed}.pos-item-kind{font-size:8px;font-weight:900;letter-spacing:.08em;color:var(--pink-dark);margin-bottom:8px}.pos-item-card>strong{display:block;font-size:13px}.pos-item-card>small{display:block;font-size:9px;color:var(--muted);margin-top:5px;line-height:1.4}.pos-item-footer{display:flex;justify-content:space-between;gap:8px;align-items:end;margin-top:18px}.pos-item-footer span{font-size:16px;font-weight:900}.pos-item-footer em{font-size:8px;color:var(--muted);font-style:normal;text-align:right}.pos-item-footer em.low{color:#9a6500}
.pos-cart-panel{position:sticky;top:82px;max-height:calc(100vh - 100px);overflow:auto}.cart-lines{display:grid;gap:8px;margin:12px 0}.cart-line{border:1px solid #eee3e7;border-radius:13px;padding:10px;background:#fffafb;display:grid;grid-template-columns:minmax(130px,1fr) auto auto;gap:8px;align-items:center}.cart-line-main{min-width:0}.cart-line-main strong,.cart-line-main small{display:block}.cart-line-main small{font-size:9px;color:var(--muted);margin-top:3px}.cart-pro{margin-top:6px;width:100%;border:1px solid #ddd1d6;border-radius:8px;padding:6px;font-size:10px}.cart-qty{display:flex;align-items:center;gap:3px}.cart-qty button{width:25px;height:27px;border:1px solid #e1d6db;background:#fff;border-radius:7px;cursor:pointer}.cart-qty input{width:55px;border:1px solid #ddd1d6;border-radius:7px;padding:6px;text-align:center}.cart-discount{grid-column:2/3;display:flex;align-items:center;gap:4px;font-size:9px;color:var(--muted)}.cart-discount input{width:75px;border:1px solid #ddd1d6;border-radius:7px;padding:6px}.cart-line-total{display:flex;align-items:center;gap:5px}.cart-line-total strong{font-size:12px}.cart-remove{border:0;background:transparent;color:var(--danger);font-size:18px;cursor:pointer}.cart-totals{border-top:1px solid #eee4e8;border-bottom:1px solid #eee4e8;padding:10px 0;margin:10px 0}.cart-totals>div{display:flex;justify-content:space-between;padding:4px 0;font-size:11px}.cart-total-main{font-size:16px!important;padding-top:9px!important}.cart-total-main strong{font-size:21px}.pos-pay-button{width:100%;margin-top:10px}
.payment-modal[hidden]{display:none}.payment-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.payment-modal-backdrop{position:absolute;inset:0;background:rgba(28,20,24,.55);backdrop-filter:blur(3px)}.payment-dialog{position:relative;z-index:1;width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.25);padding:20px}.payment-dialog-head{display:flex;justify-content:space-between;align-items:start}.payment-dialog-head h3{margin:4px 0}.payment-total-display{background:linear-gradient(135deg,#fff0f5,#fff);border:1px solid #efd7e0;border-radius:15px;padding:15px;margin:14px 0;display:flex;justify-content:space-between;align-items:center}.payment-total-display span{font-size:11px}.payment-total-display strong{font-size:26px}.payment-method-list{display:grid;gap:8px}.payment-method-row{display:grid;grid-template-columns:minmax(150px,1fr) 130px minmax(160px,1fr);gap:9px;align-items:center;padding:10px;border:1px solid #eee3e7;border-radius:12px}.payment-method-row strong,.payment-method-row small{display:block}.payment-method-row small{font-size:9px;color:var(--muted);margin-top:2px}.payment-method-row input{border:1px solid #ddd1d6;border-radius:9px;padding:9px;width:100%}.payment-balance-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.payment-balance-box>div{background:#faf7f8;border-radius:12px;padding:11px;display:flex;justify-content:space-between}.payment-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-open{overflow:hidden}
.payment-summary-list{display:grid}.payment-summary-list>div{display:flex;justify-content:space-between;border-bottom:1px solid #f0e8eb;padding:9px 0;font-size:11px}.danger-btn{border:0;background:#b4475a;color:#fff;padding:10px 15px;border-radius:11px;font-weight:800;cursor:pointer}
.receipt-sheet{max-width:820px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.receipt-brand{display:flex;gap:10px;align-items:center;border-bottom:1px dashed #ddd1d6;padding-bottom:15px}.receipt-brand strong,.receipt-brand span{display:block}.receipt-brand span{font-size:10px;color:var(--muted)}.receipt-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:15px 0;border-bottom:1px dashed #ddd1d6}.receipt-meta span,.receipt-meta strong{display:block}.receipt-meta span{font-size:9px;color:var(--muted)}.receipt-meta strong{font-size:11px;margin-top:3px}.receipt-table{width:100%;border-collapse:collapse;margin:12px 0}.receipt-table th,.receipt-table td{padding:9px 7px;border-bottom:1px solid #f0e9ec;text-align:right;font-size:10px}.receipt-table th:first-child,.receipt-table td:first-child{text-align:left}.receipt-table td small{display:block;color:var(--muted);margin-top:3px}.receipt-totals{margin-left:auto;width:min(330px,100%)}.receipt-totals>div,.receipt-payments>div{display:flex;justify-content:space-between;padding:5px 0;font-size:11px}.receipt-totals .main{border-top:1px solid #ddd1d6;border-bottom:1px solid #ddd1d6;margin:4px 0;padding:8px 0;font-size:15px}.receipt-payments{margin-top:18px;border-top:1px dashed #ddd1d6;padding-top:10px}.receipt-payments h4{margin:0 0 6px}.receipt-note{margin-top:14px;background:#fffafb;border-radius:10px;padding:9px;font-size:10px}.receipt-footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px}.pos-no-session{max-width:700px;margin:auto}
@media(max-width:1180px){.pos-shell-grid{grid-template-columns:1fr}.pos-cart-panel{position:static;max-height:none}.pos-catalog-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.pos-catalog-grid{grid-template-columns:repeat(2,1fr)}.payment-method-row{grid-template-columns:1fr 1fr}.payment-method-row>div{grid-column:1/-1}.receipt-meta{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pos-toolbar{flex-direction:column;align-items:stretch}.pos-catalog-grid{grid-template-columns:1fr}.cart-line{grid-template-columns:1fr auto}.cart-line-total{grid-column:1/-1;justify-content:flex-end}.cart-discount{grid-column:auto}.payment-method-row{grid-template-columns:1fr}.receipt-sheet{padding:16px}.receipt-meta{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.no-print,.sidebar-backdrop{display:none!important}.main{margin:0!important}.content{padding:0!important}.receipt-sheet{box-shadow:none;border:0;border-radius:0;max-width:none}.app-shell{display:block}.receipt-sheet *{color:#000!important}}

/* EST3-B */
.cash-movement-list{display:grid;gap:8px}.cash-movement-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 12px;border:1px solid #eee3e7;border-radius:12px;background:#fff}.cash-movement-item>div strong,.cash-movement-item>div small{display:block}.cash-movement-item>div small{font-size:9px;color:var(--muted);margin-top:3px}.cash-movement-item.cash_in>strong{color:var(--success)}.cash-movement-item.cash_out>strong{color:var(--danger)}
.cut-ledger{display:grid}.cut-ledger>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f0e9ec;font-size:11px}.cut-ledger .main{font-size:15px;padding:12px 0;border-top:1px solid #d9ccd2;border-bottom:1px solid #d9ccd2}.compact-cut>div{padding:6px 0}.cash-cut-sheet{display:grid;gap:16px}.cut-metrics{grid-template-columns:repeat(4,1fr)}
.return-lines{display:grid;gap:9px}.return-line{display:grid;grid-template-columns:auto minmax(230px,1fr) 130px 165px;gap:12px;align-items:center;border:1px solid #eee3e7;border-radius:13px;padding:12px;background:#fffafb}.return-line>div strong,.return-line>div small{display:block}.return-line>div small{font-size:9px;color:var(--muted);margin-top:4px}.return-select input{width:18px;height:18px;accent-color:var(--pink)}.field.compact{margin:0}.refund-method-list{display:grid;gap:8px;margin-bottom:12px}.return-receipt{max-width:760px}
.definitive-ticket{max-width:410px;padding:22px;margin:0 auto}.ticket-logo{text-align:center;margin-bottom:8px}.ticket-logo img{max-width:130px;max-height:70px;object-fit:contain}.ticket-business{text-align:center}.ticket-business strong{display:block;font-size:16px}.ticket-business span{display:block;font-size:9px;line-height:1.45;margin-top:2px}.ticket-rule{border-top:1px dashed #9c9297;margin:10px 0}.ticket-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ticket-meta div span,.ticket-meta div strong{display:block}.ticket-meta div span{font-size:8px;color:var(--muted)}.ticket-meta div strong{font-size:9px}.ticket-meta .wide{grid-column:1/-1}.ticket-items{display:grid;gap:8px}.ticket-item{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:10px}.ticket-item>div strong,.ticket-item>div small{display:block}.ticket-item small{font-size:8px;color:var(--muted);margin-top:2px}.ticket-totals>div,.ticket-payments>div{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:9px}.ticket-totals .main{font-size:15px;padding:7px 0}.ticket-note{font-size:8px;background:#faf7f8;border-radius:7px;padding:7px;margin-top:8px}.ticket-technical{text-align:center;font-size:7px;color:var(--muted);word-break:break-all;margin-top:8px}.ticket-footer{text-align:center;font-size:9px;line-height:1.45;margin-top:12px}.return-history-row{display:flex;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid #f0e9ec}.return-history-row strong,.return-history-row small{display:block}.return-history-row small{font-size:9px;color:var(--muted);margin-top:3px}
@media(max-width:1000px){.cut-metrics{grid-template-columns:repeat(2,1fr)}.return-line{grid-template-columns:auto 1fr 120px}.return-line>.mini-check,.return-line>.muted{grid-column:2/-1}}
@media(max-width:650px){.cut-metrics{grid-template-columns:1fr}.return-line{grid-template-columns:auto 1fr}.return-line .field.compact{grid-column:2}.return-line>.mini-check,.return-line>.muted{grid-column:2}.definitive-ticket{padding:14px}}
@media print{.cash-cut-sheet .panel{box-shadow:none}.cash-cut-sheet{display:block}.cash-cut-sheet>.dashboard-grid,.cash-cut-sheet>.panel{margin-bottom:12px}.sale-return-history{display:none!important}.definitive-ticket{border:0!important;box-shadow:none!important;border-radius:0!important;margin:0 auto!important}}

/* EST3-C — anticipos, fiscal readiness, printer bridge */
.pos-advance-panel{border:1px solid #edd7df;background:#fff8fb;border-radius:13px;padding:10px;margin:10px 0}.advance-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:start;margin-bottom:7px}.advance-panel-head strong,.advance-panel-head small{display:block}.advance-panel-head small{font-size:9px;color:var(--muted);margin-top:2px}.advance-option{display:flex;gap:9px;align-items:center;border-top:1px solid #f1e4e9;padding:8px 2px;cursor:pointer}.advance-option input{accent-color:var(--pink);width:17px;height:17px}.advance-option span strong,.advance-option span small{display:block}.advance-option span small{font-size:8px;color:var(--muted);margin-top:2px}.advance-option.disabled{opacity:.45;cursor:not-allowed}
.deposit-receipt{max-width:650px}.invoice-readiness-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.fiscal-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.fiscal-summary>div{background:#faf7f8;border-radius:10px;padding:9px}.fiscal-summary span,.fiscal-summary strong{display:block}.fiscal-summary span{font-size:8px;color:var(--muted)}.fiscal-summary strong{font-size:11px;margin-top:3px}.readiness-issues{display:grid;gap:6px;font-size:10px;color:#8a5862}.invoice-payment-source{margin-top:12px}
.printer-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.printer-choice{border:1px solid #e3d5da;background:#fff;border-radius:9px;padding:7px 10px;font-size:10px;cursor:pointer}.printer-choice:hover{border-color:#d39caf}.print-status{font-size:9px;color:var(--muted);margin-left:7px}.print-status.success{color:var(--success)}.print-status.warning{color:#9a6500}
.cash-movement-item[href]{text-decoration:none;color:inherit}
@media(max-width:850px){.invoice-readiness-grid{grid-template-columns:1fr}.fiscal-summary{grid-template-columns:1fr}}

/* EST4-A — Cita 360 / Agenda operativa */
.agenda-heading{align-items:flex-end}.agenda-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;margin-bottom:14px}.segmented{display:flex;background:#f7f1f4;border-radius:11px;padding:3px}.segmented a{padding:7px 14px;border-radius:9px;font-size:10px;font-weight:700;color:var(--muted)}.segmented a.active{background:#fff;color:var(--text);box-shadow:0 1px 4px #0000000d}.agenda-filters{display:flex;gap:7px;align-items:center}.agenda-filters select{min-width:150px}
.agenda-day-shell{overflow:auto;padding:0}.agenda-day-head{display:grid;grid-template-columns:62px repeat(var(--agenda-cols),minmax(170px,1fr));position:sticky;top:0;z-index:6;background:#fff;border-bottom:1px solid #eee3e7;min-width:700px}.agenda-time-head{border-right:1px solid #eee3e7}.agenda-prof-head{padding:10px;border-right:1px solid #eee3e7;text-align:center}.agenda-prof-head strong,.agenda-prof-head small{display:block}.agenda-prof-head small{font-size:8px;color:var(--muted);margin-top:2px}
.agenda-day-body{display:grid;grid-template-columns:62px repeat(var(--agenda-cols),minmax(170px,1fr));height:var(--agenda-height);min-width:700px;position:relative}.agenda-time-axis{position:relative;border-right:1px solid #eee3e7}.agenda-time-axis span{position:absolute;right:8px;transform:translateY(-50%);font-size:8px;color:var(--muted)}.agenda-lane{position:relative;border-right:1px solid #eee3e7;background:linear-gradient(180deg,#fff 0,#fffbfd 100%)}.agenda-hour-line{position:absolute;left:0;right:0;border-top:1px solid #f2eaed}.agenda-event{position:absolute;left:5px;right:5px;min-height:36px;border-radius:9px;padding:6px 7px;overflow:hidden;z-index:3;border-left:4px solid #ca6384;background:#fff0f5;box-shadow:0 1px 4px #5d263510;text-decoration:none;color:var(--text)}.agenda-event strong,.agenda-event span,.agenda-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-event strong{font-size:9px}.agenda-event span{font-size:9px;margin-top:2px}.agenda-event small{font-size:7px;color:var(--muted);margin-top:2px}
.status-pending_deposit{border-left-color:#d99b31!important;background:#fff9ed!important}.status-confirmed{border-left-color:#b95879!important}.status-checked_in,.status-waiting{border-left-color:#7b6bc4!important;background:#f5f2ff!important}.status-in_service{border-left-color:#4c85b6!important;background:#eff8ff!important}.status-completed,.status-ready_to_pay{border-left-color:#4c9b74!important;background:#effbf5!important}.status-paid{border-left-color:#31895f!important;background:#edf9f2!important}.status-cancelled,.status-no_show{border-left-color:#b7aeb2!important;background:#f5f3f4!important;opacity:.72}
.agenda-week-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:10px;overflow:auto;padding-bottom:5px}.agenda-week-day{min-width:180px;padding:12px}.agenda-week-day.today{outline:2px solid #e7a5ba}.week-appointment-list{display:grid;gap:7px}.week-appointment{display:block;padding:9px;border-radius:10px;border-left:4px solid #c96787;background:#fff7fa;color:var(--text);text-decoration:none}.week-appointment strong,.week-appointment span,.week-appointment small{display:block}.week-appointment strong{font-size:9px}.week-appointment span{font-size:9px;margin-top:3px}.week-appointment small{font-size:8px;color:var(--muted);margin-top:3px}
.appointment-create-grid,.appointment-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:16px;margin-bottom:16px}.appointment-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.appointment-summary>div{padding:10px;background:#faf7f8;border-radius:10px}.appointment-summary span,.appointment-summary strong{display:block}.appointment-summary span{font-size:8px;color:var(--muted)}.appointment-summary strong{font-size:12px;margin-top:3px}
.appointment-service-rows{display:grid;gap:10px}.appointment-service-row{display:grid;grid-template-columns:34px 1fr 115px;gap:12px;align-items:start;border:1px solid #eee3e7;border-radius:14px;padding:12px;background:#fff}.appointment-sequence{display:flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:#f7e1e9;font-weight:800;font-size:10px}.appointment-service-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.appointment-resource-field{grid-column:1/-1}.appointment-resource-field>span,.appointment-resource-field>small{display:block}.appointment-resource-field>span{font-size:9px;font-weight:700}.appointment-resource-field>small{font-size:8px;color:var(--muted);margin:2px 0 6px}.resource-check-grid{display:flex;flex-wrap:wrap;gap:6px}.resource-check{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #eadde2;border-radius:9px;background:#fffafb}.resource-check input{accent-color:var(--pink)}.resource-check strong,.resource-check small{display:block}.resource-check strong{font-size:9px}.resource-check small{font-size:7px;color:var(--muted)}.appointment-service-meta{text-align:right}.appointment-service-meta strong,.appointment-service-meta span,.appointment-service-meta small{display:block}.appointment-service-meta strong{font-size:13px}.appointment-service-meta span,.appointment-service-meta small{font-size:8px;color:var(--muted);margin-top:3px}.appointment-service-meta button{margin-top:9px}
.appointment-status{padding:6px 9px;border-radius:999px;background:#f7f1f4;font-size:8px;font-weight:800}.appointment-action-grid{display:flex;flex-wrap:wrap;gap:8px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.detail-list>div{padding:9px;background:#faf7f8;border-radius:9px}.detail-list span,.detail-list strong{display:block}.detail-list span{font-size:8px;color:var(--muted)}.detail-list strong{font-size:10px;margin-top:3px}
.appointment-item-list{display:grid;gap:8px}.appointment-item-card{display:grid;grid-template-columns:90px 1fr 100px;gap:12px;align-items:center;border:1px solid #eee3e7;border-radius:12px;padding:11px}.appointment-item-time strong,.appointment-item-time span,.appointment-item-main strong,.appointment-item-main span,.appointment-item-main small,.appointment-item-money strong,.appointment-item-money span{display:block}.appointment-item-time strong{font-size:12px}.appointment-item-time span,.appointment-item-main span,.appointment-item-main small,.appointment-item-money span{font-size:8px;color:var(--muted);margin-top:2px}.appointment-item-main strong{font-size:10px}.appointment-item-money{text-align:right}
.appointment-timeline{position:relative;padding-left:20px;display:grid;gap:13px}.appointment-timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;border-left:1px solid #e5d7dc}.timeline-event{position:relative}.timeline-event>i{position:absolute;left:-18px;top:5px;width:9px;height:9px;border-radius:50%;background:#c96686;border:2px solid #fff;box-shadow:0 0 0 1px #e3c7d0}.timeline-event small,.timeline-event strong,.timeline-event p{display:block}.timeline-event small{font-size:7px;color:var(--muted)}.timeline-event strong{font-size:10px;margin-top:2px}.timeline-event p{font-size:9px;margin:3px 0 0;color:#5e5559}.timeline-event.type-financial>i{background:#4d9b73}.timeline-event.type-pos>i{background:#397eae}.timeline-event.type-note>i{background:#8b70c1}.timeline-note-form{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:14px}.timeline-note-form textarea{resize:vertical}
.field-error{color:var(--danger)!important}
@media(max-width:1050px){.agenda-week-grid{grid-template-columns:repeat(7,190px)}.appointment-create-grid,.appointment-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.agenda-toolbar{align-items:stretch;flex-direction:column}.agenda-filters{display:grid;grid-template-columns:1fr 1fr auto}.appointment-service-row{grid-template-columns:28px 1fr}.appointment-service-meta{grid-column:2;text-align:left;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.appointment-service-fields{grid-template-columns:1fr}.appointment-resource-field{grid-column:1}.detail-list{grid-template-columns:1fr}.appointment-item-card{grid-template-columns:70px 1fr}.appointment-item-money{grid-column:2;text-align:left}.timeline-note-form{grid-template-columns:1fr}}

.cart-line.appointment-locked{background:#fff8fb;border-color:#e8ccd6}.locked-chip{display:inline-block;font-size:7px;font-weight:800;color:#9e4563;background:#f8dfe8;border-radius:999px;padding:3px 6px;margin-top:4px}

/* EST4-B — Phase Scheduling */
.phase-help-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.phase-total{display:flex;justify-content:space-between;align-items:center;background:#fff7fa;border-radius:11px;padding:12px;margin-top:12px}.phase-total span{font-size:9px;color:var(--muted)}.phase-total strong{font-size:18px}.phase-rows{display:grid;gap:10px}.phase-row{display:grid;grid-template-columns:52px 1fr 95px;gap:12px;border:1px solid #eadde2;border-radius:14px;padding:12px;background:#fff}.phase-order{text-align:center;background:#fff6f9;border-radius:10px;padding:9px}.phase-order strong,.phase-order span{display:block}.phase-order strong{font-size:20px}.phase-order span{font-size:7px;color:var(--muted);font-weight:800}.phase-block-switches{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0}.phase-resource-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:8px}.phase-resource-head strong{font-size:9px}.phase-resource-list{display:grid;gap:6px;margin-top:6px}.phase-resource-row{display:grid;grid-template-columns:minmax(150px,1fr) 80px auto auto;gap:6px;align-items:center}.phase-resource-row select,.phase-resource-row input{min-height:34px}.phase-actions{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
@media(max-width:800px){.phase-help-grid{grid-template-columns:1fr}.phase-row{grid-template-columns:38px 1fr}.phase-actions{grid-column:2;flex-direction:row;justify-content:flex-start}.phase-resource-row{grid-template-columns:1fr 70px}.phase-resource-row .mini-check,.phase-resource-row .text-action{grid-column:auto}}

/* EST4-B — SmartBooking técnico */
.smartbooking-panel{border-color:#e8cfda;background:linear-gradient(180deg,#fff 0,#fffafd 100%)}.smartbooking-info{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;border-radius:10px;background:#f9f4f6;margin-bottom:10px}.smartbooking-info span{font-size:8px;color:var(--muted)}.smartbooking-info strong{font-size:9px}.smartbooking-results{display:grid;gap:8px}.smart-slot{width:100%;display:grid;grid-template-columns:105px 1fr 115px;gap:12px;align-items:center;text-align:left;border:1px solid #eadbe1;background:#fff;border-radius:12px;padding:10px;cursor:pointer}.smart-slot:hover,.smart-slot.selected{border-color:#d46b8c;background:#fff5f9;box-shadow:0 3px 10px #742e4510}.smart-slot-time strong,.smart-slot-time span,.smart-slot-time small,.smart-slot-total strong,.smart-slot-total span,.smart-slot-total small{display:block}.smart-slot-time strong{font-size:18px}.smart-slot-time span,.smart-slot-time small,.smart-slot-total span,.smart-slot-total small{font-size:8px;color:var(--muted)}.smart-slot-plan{display:grid;gap:5px}.smart-slot-plan>div strong,.smart-slot-plan>div span,.smart-slot-plan>div small{display:block}.smart-slot-plan>div strong{font-size:9px}.smart-slot-plan>div span{font-size:9px;color:#8f4560}.smart-slot-plan>div small{font-size:7px;color:var(--muted);margin-top:2px}.smart-slot-total{text-align:right}.smart-slot-total strong{font-size:13px}
@media(max-width:700px){.smartbooking-info{align-items:flex-start;flex-direction:column}.smart-slot{grid-template-columns:75px 1fr}.smart-slot-total{grid-column:2;text-align:left;display:flex;gap:8px;align-items:center;flex-wrap:wrap}}

/* EST4-B — Reprogramación / fases en detalle */
.reprogram-results{display:flex;flex-wrap:wrap;gap:8px}.reprogram-slot{border:1px solid #e7d8de;background:#fff;border-radius:11px;padding:9px 13px;cursor:pointer;text-align:left}.reprogram-slot strong,.reprogram-slot span{display:block}.reprogram-slot strong{font-size:9px}.reprogram-slot span{font-size:11px;margin-top:2px}.reprogram-slot.selected,.reprogram-slot:hover{border-color:#cf6687;background:#fff4f8}.reprogram-confirm{margin-top:16px}.appointment-phase-strip{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.appointment-phase-chip{padding:5px 7px;background:#f0f7ff;border:1px solid #dbe8f2;border-radius:8px}.appointment-phase-chip.pro-free{background:#f0faf4;border-color:#d6eadf}.appointment-phase-chip strong,.appointment-phase-chip span,.appointment-phase-chip small{display:block}.appointment-phase-chip strong{font-size:8px}.appointment-phase-chip span,.appointment-phase-chip small{font-size:7px;color:var(--muted);margin-top:1px}

/* EST4-C — Booking público / días festivos */
.public-url-box{display:grid;gap:4px;background:#fff7fa;border:1px solid #ecd6df;border-radius:11px;padding:11px;margin-top:10px;overflow-wrap:anywhere}.public-url-box span{font-size:8px;color:var(--muted)}.public-url-box strong{font-size:10px}.special-closure-form{margin-bottom:16px}.special-all-day{align-self:end;min-height:58px}.special-time input:disabled{opacity:.5}
/* EST5-A — SmartGap / Lista de espera / Notificaciones */
.smartgap-title{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#f3faf6;border:1px solid #d9eadf}.smartgap-title strong{font-size:9px;color:#327255}.smartgap-title span{font-size:8px;color:var(--muted)}.smart-slot.smartgap-recommended{border-color:#93c5aa;background:#f7fcf9}.smart-slot-total em{display:inline-block;margin-top:4px;padding:3px 6px;border-radius:999px;background:#e5f5eb;color:#357457;font-size:7px;font-style:normal;font-weight:800}.notification-queue{display:grid;gap:10px}.notification-card{display:grid;grid-template-columns:180px 1fr auto;gap:14px;align-items:center}.notification-meta strong,.notification-meta small{display:block}.notification-meta strong{font-size:10px;margin-top:3px}.notification-meta small{font-size:8px;color:var(--muted);margin-top:3px}.notification-body{font-size:9px;line-height:1.5;color:#554b50;background:#faf7f8;border-radius:10px;padding:10px}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.data-table td>small{display:block;font-size:8px;color:var(--muted);margin-top:2px}.purchase-status.matched{background:#eaf7ef;color:#357457}.purchase-status.booked{background:#eef4ff;color:#3a67a2}.purchase-status.expired,.purchase-status.cancelled{background:#f2eff0;color:#756970}@media(max-width:900px){.notification-card{grid-template-columns:1fr}.notification-card .heading-actions{justify-content:flex-start}.template-grid{grid-template-columns:1fr}}

/* EST5-B — Recovery + advanced messaging */
.recovery-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.recovery-kpi{padding:15px}.recovery-kpi span,.recovery-kpi strong,.recovery-kpi small{display:block}.recovery-kpi span{font-size:8px;color:var(--muted);font-weight:700}.recovery-kpi strong{font-size:22px;margin-top:5px}.recovery-kpi small{font-size:8px;color:var(--muted);margin-top:4px}.recovery-funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.recovery-funnel>div{background:#fff7fa;border:1px solid #ead8df;border-radius:11px;padding:12px}.recovery-funnel span,.recovery-funnel strong{display:block}.recovery-funnel span{font-size:8px;color:var(--muted)}.recovery-funnel strong{font-size:18px;margin-top:4px}.notification-delivery-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.notification-delivery-chips span{font-size:7px;font-weight:800;padding:4px 7px;border-radius:999px;background:#eef8f3;color:#357457}
@media(max-width:900px){.recovery-kpi-grid{grid-template-columns:repeat(2,1fr)}.recovery-funnel{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.recovery-kpi-grid{grid-template-columns:1fr}}

/* EST6-A — Recetas / ejecución / consumo real */
.recipe-editor,.execution-service-list{display:grid;gap:12px}.recipe-row{display:grid;grid-template-columns:34px minmax(220px,1fr) 120px 110px 120px auto;gap:10px;align-items:end;border:1px solid #eadde2;border-radius:13px;padding:11px;background:#fff}.recipe-index{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f8e1e9;font-size:10px;font-weight:800;align-self:center}.recipe-planned span,.recipe-planned strong{display:block}.recipe-planned span{font-size:8px;color:var(--muted)}.recipe-planned strong{font-size:11px;margin-top:4px}.execution-service-card{overflow:hidden}.execution-confirmed-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.execution-confirmed-summary>div{border:1px solid #eadde2;border-radius:10px;padding:10px;background:#fffafd}.execution-confirmed-summary span,.execution-confirmed-summary strong{display:block}.execution-confirmed-summary span{font-size:8px;color:var(--muted)}.execution-confirmed-summary strong{font-size:10px;margin-top:4px}.execution-lines,.execution-extra-lines{display:grid;gap:7px;margin-top:12px}.execution-line{display:grid;grid-template-columns:minmax(240px,1fr) 130px 130px 55px;gap:10px;align-items:end;border:1px solid #eadde2;border-radius:11px;padding:9px}.execution-line>div:first-child strong,.execution-line>div:first-child small,.execution-line>div:nth-child(2) span,.execution-line>div:nth-child(2) strong,.execution-line label span{display:block}.execution-line>div:first-child strong{font-size:10px}.execution-line>div:first-child small,.execution-line>div:nth-child(2) span,.execution-line label span{font-size:8px;color:var(--muted)}.execution-line>div:nth-child(2) strong{font-size:10px;margin-top:3px}.execution-line input{width:100%;border:1px solid #e4d5db;border-radius:8px;padding:8px}.execution-unit{font-size:9px;color:var(--muted);padding-bottom:9px}.execution-extra{grid-template-columns:minmax(240px,1fr) 1fr 130px auto;background:#fffafd}.compact-strip{padding:9px 11px!important}
@media(max-width:1050px){.recipe-row{grid-template-columns:34px 1fr 1fr 1fr}.recipe-planned{grid-column:2/4}.recipe-row>.text-action{grid-column:4}.execution-line{grid-template-columns:1fr 120px 120px 45px}.execution-confirmed-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.recipe-row{grid-template-columns:28px 1fr}.recipe-row .field,.recipe-planned,.recipe-row>.text-action{grid-column:2}.execution-line,.execution-extra{grid-template-columns:1fr 1fr}.execution-line>div:first-child,.execution-extra>.field{grid-column:1/-1}.execution-unit{align-self:end}.execution-confirmed-summary{grid-template-columns:1fr 1fr}}

/* EST6-B — phase execution / reversals / commissions */
.recipe-row-phased{grid-template-columns:34px minmax(180px,1.4fr) minmax(180px,1fr) 120px 100px 100px auto}
.phase-execution-list{display:grid;gap:10px;margin:12px 0}.phase-execution-card{border:1px solid #eadce2;border-radius:13px;padding:12px;background:#fff}.phase-execution-card.in_progress{border-color:#d66c8f;background:#fff8fb}.phase-execution-card.completed{border-color:#cfe4d7;background:#f8fcfa}.phase-execution-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.phase-execution-head>div:first-child span,.phase-execution-head>div:first-child strong,.phase-execution-head>div:first-child small{display:block}.phase-execution-head>div:first-child span{font-size:7px;color:var(--muted);text-transform:uppercase;font-weight:800}.phase-execution-head>div:first-child strong{font-size:11px;margin-top:3px}.phase-execution-head>div:first-child small{font-size:8px;color:var(--muted);margin-top:3px}.service-general-consumption{border-top:1px dashed #eadce2;margin-top:14px;padding-top:12px}.panel-header.compact{margin-bottom:8px}.panel-header.compact h4{margin:3px 0 0;font-size:11px}
@media(max-width:900px){.recipe-row-phased{grid-template-columns:32px 1fr 1fr}.recipe-row-phased .recipe-planned{grid-column:2}.phase-execution-head{flex-direction:column}}
@media(max-width:620px){.recipe-row-phased{grid-template-columns:28px 1fr}.phase-execution-head .heading-actions{width:100%}}


/* EST8-A — Panel ejecutivo + pronóstico de inventario */
.executive-hero{align-items:center}.compact-panel{padding:9px 12px}.period-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px}.period-tab{padding:7px 11px;border-radius:10px;text-decoration:none;color:var(--muted);font-size:8px;font-weight:800}.period-tab.active{background:#f8e7ed;color:#a33c61}.period-label{margin-left:auto;font-size:8px;color:var(--muted)}
.executive-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-grid-wide{grid-template-columns:minmax(0,2fr) minmax(260px,.8fr)}.dashboard-grid-triple{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.executive-chart-panel{overflow:hidden}.mini-finance{text-align:right}.mini-finance span,.mini-finance strong{display:block}.mini-finance span{font-size:7px;color:var(--muted)}.mini-finance strong{font-size:11px;margin-top:2px}
.sales-bars{height:220px;display:flex;align-items:flex-end;gap:6px;padding:12px 2px 0;overflow-x:auto}.sales-bar-col{height:100%;min-width:34px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.sales-bar-value{font-size:6px;color:var(--muted);white-space:nowrap;margin-bottom:4px}.sales-bar-track{width:72%;height:155px;display:flex;align-items:flex-end;background:#fbf3f6;border-radius:8px;overflow:hidden}.sales-bar-fill{width:100%;background:linear-gradient(180deg,#dd7798,#bf4a70);border-radius:8px 8px 3px 3px;min-height:3px}.sales-bar-col>span{font-size:6px;color:var(--muted);margin-top:5px}.finance-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.finance-strip>div{padding:10px;border-radius:10px;background:#fff7fa;border:1px solid #f0dfe5}.finance-strip span,.finance-strip strong{display:block}.finance-strip span{font-size:7px;color:var(--muted)}.finance-strip strong{font-size:10px;margin-top:3px}.executive-system-list>div{padding:11px 0}.rank-list{display:grid;gap:3px}.rank-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #f0e5e9}.rank-row:last-child{border-bottom:0}.rank-number{display:flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:#f9e9ef;color:#b5486d;font-size:8px;font-weight:900}.rank-row strong,.rank-row small{display:block}.rank-row strong{font-size:9px}.rank-row small{font-size:7px;color:var(--muted);margin-top:2px}.rank-row b{font-size:9px}.danger-text{color:#b42318!important}
.forecast-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.forecast-top-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);margin-bottom:14px}.forecast-day-bars{display:grid;gap:7px;max-height:360px;overflow:auto}.forecast-day-row{display:grid;grid-template-columns:42px 1fr 70px;gap:8px;align-items:center}.forecast-day-row>span,.forecast-day-row>strong{font-size:7px}.forecast-day-row>strong{text-align:right}.forecast-day-track{height:9px;background:#f6edf1;border-radius:999px;overflow:hidden}.forecast-day-fill{height:100%;background:#cf5f84;border-radius:999px}.forecast-settings-form{display:grid;gap:11px}.forecast-legend{display:flex;gap:8px;align-items:center;font-size:7px;color:var(--muted)}.risk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:3px}.risk-dot.critical{background:#d92d20}.risk-dot.reorder{background:#f79009}.risk-dot.watch{background:#fdb022}.forecast-risk-badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:7px;font-weight:900;white-space:nowrap}.forecast-risk-badge.critical{background:#fee4e2;color:#b42318}.forecast-risk-badge.reorder{background:#fef0c7;color:#b54708}.forecast-risk-badge.watch{background:#fffaeb;color:#b54708}.forecast-risk-badge.ok{background:#ecfdf3;color:#027a48}.forecast-risk-row.critical td:first-child{box-shadow:inset 3px 0 0 #d92d20}.forecast-risk-row.reorder td:first-child{box-shadow:inset 3px 0 0 #f79009}.forecast-risk-row.watch td:first-child{box-shadow:inset 3px 0 0 #fdb022}.forecast-table td small{display:block;color:var(--muted);font-size:7px;margin-top:2px}
@media(max-width:1250px){.executive-kpis,.forecast-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-grid-triple{grid-template-columns:1fr 1fr}.dashboard-grid-triple>article:last-child{grid-column:1/-1}}
@media(max-width:900px){.dashboard-grid-wide,.forecast-top-grid{grid-template-columns:1fr}.finance-strip{grid-template-columns:repeat(2,1fr)}.dashboard-grid-triple{grid-template-columns:1fr}.dashboard-grid-triple>article:last-child{grid-column:auto}.period-label{width:100%;margin-left:0}.sales-bars{height:190px}}
@media(max-width:620px){.executive-kpis,.forecast-kpis{grid-template-columns:1fr 1fr}.finance-strip{grid-template-columns:1fr 1fr}.forecast-day-row{grid-template-columns:36px 1fr 58px}.sales-bar-col{min-width:28px}.sales-bar-value{display:none}}

/* EST8-B — alertas predictivas, compras sugeridas y rentabilidad avanzada */
.predictive-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.alert-settings-grid{grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);align-items:start}.predictive-alert-list{display:grid;gap:10px}.predictive-alert-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px;border:1px solid #eadce2;border-radius:14px;background:#fff}.predictive-alert-card.critical{border-color:#efb8c4;background:#fff8fa}.predictive-alert-card.warning{border-color:#efd9ab;background:#fffdf7}.predictive-alert-card.acknowledged{opacity:.78}.predictive-alert-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:#f8edf1}.predictive-alert-card.critical .predictive-alert-icon{background:#fee8ed;color:#9e2644}.predictive-alert-card.warning .predictive-alert-icon{background:#fff1d3;color:#8b5d00}.predictive-alert-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:4px}.predictive-alert-meta span{font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:#f5f1f3;border-radius:999px;padding:4px 7px}.predictive-alert-body h4{font-size:11px;margin:0 0 4px}.predictive-alert-body p{font-size:9px;color:var(--muted);margin:0 0 5px;line-height:1.45}.predictive-alert-body small{font-size:7px;color:var(--muted)}.predictive-alert-actions{display:grid;justify-items:end;gap:8px}.supplier-recommendation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.supplier-rec-card{border:1px solid #eadce2;border-radius:12px;padding:13px;background:#fff9fb}.supplier-rec-card span,.supplier-rec-card strong,.supplier-rec-card small{display:block}.supplier-rec-card span{font-size:8px;color:var(--muted)}.supplier-rec-card strong{font-size:17px;margin:4px 0}.supplier-rec-card small{font-size:7px;color:var(--muted)}.profitability-table .margin-pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:800}.margin-pill.positive{background:#eaf7ef;color:#31754e}.margin-pill.warning{background:#fff4db;color:#8d650c}.margin-pill.negative{background:#fee9ed;color:#a12e49}.compact-alert-list{display:grid;gap:8px}.compact-alert-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid #eadce2;border-radius:11px}.compact-alert-row>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-weight:900;background:#f5eef1}.compact-alert-row.critical{border-color:#efb8c4}.compact-alert-row.critical>span{color:#a12e49;background:#fee9ed}.compact-alert-row.warning{border-color:#efd9ab}.compact-alert-row div strong,.compact-alert-row div small{display:block}.compact-alert-row div strong{font-size:9px}.compact-alert-row div small{font-size:7px;color:var(--muted);margin-top:2px;line-height:1.4}.dashboard-alert-panel{margin-top:14px}
@media(max-width:1050px){.predictive-kpis,.supplier-recommendation-grid{grid-template-columns:repeat(2,1fr)}.alert-settings-grid{grid-template-columns:1fr}.predictive-alert-card{grid-template-columns:34px minmax(0,1fr)}.predictive-alert-actions{grid-column:2;justify-items:start;display:flex;flex-wrap:wrap}}
@media(max-width:600px){.predictive-kpis,.supplier-recommendation-grid{grid-template-columns:1fr}.compact-alert-row{grid-template-columns:26px minmax(0,1fr)}.compact-alert-row>a{grid-column:2}}

/* EST9-A — administración del portal público */
.admin-public-share{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:center;margin-top:14px}.admin-booking-qr{display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;min-height:210px}.admin-booking-qr svg{width:190px;height:190px;max-width:100%}.admin-share-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.admin-share-actions .secondary-btn{white-space:nowrap}
@media(max-width:720px){.admin-public-share{grid-template-columns:1fr}.admin-booking-qr{width:220px;max-width:100%;margin:auto}}
@media print{.app-sidebar,.app-header,.page-heading .heading-actions,.switch-list,.form-grid,.admin-share-actions,.alert,.flash{display:none!important}.admin-public-share{display:block}.admin-booking-qr{border:0}.panel{box-shadow:none;border:0}.app-main{margin:0!important}.app-content{padding:0!important}}


/* EST11-B — Administración de promociones */
.promo-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.promo-row-tags{margin-top:6px}.promo-status.active{background:#eaf7ef;color:#267149}.promo-status.draft{background:#fff4dd;color:#8b6207}.promo-status.inactive{background:#f1edef;color:#756a70}.promo-settings-grid .panel-help{margin:5px 0 0;color:var(--muted);font-size:9px}.promo-picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.promo-picker{border:1px solid #eadfe3;border-radius:14px;overflow:hidden;background:#fff}.promo-picker-head{padding:10px 12px;border-bottom:1px solid #eee4e8;display:flex;gap:10px;align-items:center;justify-content:space-between;background:#fffafb}.promo-picker-head strong{font-size:10px}.promo-picker-search{width:58%;min-width:130px;border:1px solid #ded3d8;border-radius:9px;padding:7px 9px;font-size:10px}.promo-picker-list{max-height:320px;overflow:auto}.promo-picker-row{display:grid;grid-template-columns:22px minmax(0,1fr) 76px;gap:8px;align-items:center;padding:9px 11px;border-bottom:1px solid #f3ecef;cursor:pointer}.promo-picker-row:last-child{border-bottom:0}.promo-picker-row>input[type=checkbox]{accent-color:var(--pink);width:17px;height:17px}.promo-picker-row span strong,.promo-picker-row span small{display:block}.promo-picker-row span strong{font-size:9px}.promo-picker-row span small{font-size:7px;color:var(--muted);margin-top:2px}.package-qty{width:68px!important;border:1px solid #ded3d8!important;border-radius:8px!important;padding:6px!important;font-size:9px!important}.promo-date-grid{max-width:650px}.promo-schedule-grid{display:grid;gap:6px;margin-top:12px}.promo-schedule-row{display:grid;grid-template-columns:145px 115px 110px 20px 110px;gap:8px;align-items:center;border:1px solid #eee3e7;border-radius:11px;padding:8px 10px;background:#fff}.promo-schedule-row.disabled{opacity:.55;background:#faf8f9}.promo-schedule-row input[type=checkbox]{accent-color:var(--pink)}.promo-schedule-row input[type=time]{border:1px solid #ddd2d7;border-radius:8px;padding:7px;font-size:9px;background:#fff}.promo-day-check,.promo-all-day{display:flex;gap:7px;align-items:center;font-size:9px}.promo-public-id{margin-top:14px;padding:10px;border-radius:10px;background:#faf5f7}.promo-public-id span,.promo-public-id code{display:block}.promo-public-id span{font-size:7px;color:var(--muted);text-transform:uppercase}.promo-public-id code{font-size:9px;margin-top:4px;word-break:break-all}.promo-table small{color:var(--muted);font-size:8px}.promo-table td{vertical-align:top}
@media(max-width:1000px){.promo-picker-grid{grid-template-columns:1fr}.promo-schedule-row{grid-template-columns:130px 110px 1fr 18px 1fr}.promo-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.promo-metrics{grid-template-columns:1fr}.promo-schedule-row{grid-template-columns:1fr 1fr}.promo-schedule-row>span{display:none}.promo-schedule-row input[type=time]{width:100%}.promo-picker-head{align-items:stretch;flex-direction:column}.promo-picker-search{width:100%}}


/* EST11-C — Promociones en Punto de Venta */
.pos-promotion-total strong{color:#b42362}
.pos-promotion-summary{margin:8px 0 2px;padding:10px 12px;border:1px solid #f2bfd2;border-radius:12px;background:#fff6f9;display:grid;gap:5px;font-size:12px}
.pos-promotion-summary strong{font-size:12px;color:#822044}
.pos-promotion-summary span{display:flex;justify-content:space-between;gap:10px;color:#5f4751}
.pos-promotion-summary span b{color:#b42362;white-space:nowrap}
.pos-promotion-summary.error{border-color:#e9a8a8;background:#fff7f7;color:#9f1f1f}
.pos-promotion-summary.error small{display:block;color:#8e3a3a}
.pos-line-promos{min-height:18px;margin-top:3px}
.pos-promotion-chip{display:inline-flex;align-items:center;border-radius:999px;padding:2px 7px;background:#fce7f0;color:#9f2456;font-size:11px;font-weight:700}
.cart-discount-readonly{font-size:11px;color:#66545c;white-space:nowrap}
.sale-promotion-list{display:grid;gap:6px;margin-top:10px}
.sale-promotion-row{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:10px;background:#fff6f9;border:1px solid #f2bfd2;font-size:12px}
.sale-promotion-row strong{color:#9f2456}

.pos-manual-promotion-panel{margin:10px 0;padding:10px;border:1px solid #ead7df;border-radius:12px;background:#fff}
.pos-manual-promotion-options{display:grid;gap:6px;margin-top:8px;max-height:180px;overflow:auto}

/* UX producción: navegación en acordeón */
.nav-home{margin-bottom:8px}
.nav-accordion{margin:3px 0}
.nav-accordion-toggle{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:12px;color:#625967;font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-align:left}
.nav-accordion-toggle:hover,.nav-accordion.is-open>.nav-accordion-toggle{background:var(--pink-soft);color:var(--pink-dark)}
.nav-accordion-title{display:flex;align-items:center;gap:13px;min-width:0}
.nav-accordion-title>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-chevron{font-size:16px;line-height:1;transition:transform .18s ease;color:#9c8e96}
.nav-accordion.is-open .nav-chevron{transform:rotate(180deg)}
.nav-accordion-panel{display:none;padding:2px 0 5px 14px}
.nav-accordion.is-open .nav-accordion-panel{display:block}
.nav-subitem{padding:9px 10px;font-size:13px;margin:2px 0}
.nav-subitem .icon{width:18px;height:18px}
.nav-accordion-toggle:focus-visible{outline:2px solid var(--pink);outline-offset:2px}

/* UX producción: flujo operativo de cita */
.operation-flow{display:grid;gap:12px}
.operation-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.operation-step{border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#fff;display:flex;align-items:center;gap:9px;min-width:0}
.operation-step i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f3eef1;color:#81747c;font-style:normal;font-size:11px;font-weight:800;flex:0 0 auto}
.operation-step span{font-size:12px;font-weight:700;color:#81747c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.operation-step.completed{background:#f7fbf8;border-color:#d7eadf}.operation-step.completed i{background:#dff2e7;color:#24724a}.operation-step.completed span{color:#315e45}
.operation-step.active{background:var(--pink-soft);border-color:#efd0db}.operation-step.active i{background:var(--pink);color:#fff}.operation-step.active span{color:var(--pink-dark)}
.operation-next-card{border:1px solid #ead9df;border-radius:14px;padding:15px;background:linear-gradient(135deg,#fff 0%,#fff8fa 100%)}
.operation-next-card h4{margin:0 0 5px;font-size:16px}.operation-next-card p{margin:0;color:var(--muted);font-size:13px}
.operation-next-card .form-actions{margin-top:12px}
.execution-next-panel{margin-bottom:16px}
.execution-next-panel .operation-next-card{border:0;padding:0;background:transparent}

@media(max-width:800px){
  .nav-accordion-toggle{min-height:44px}
  .nav-accordion-panel{padding-left:8px}
  .operation-progress{grid-template-columns:1fr 1fr}
  .operation-step{min-height:46px}
}
@media(max-width:480px){
  .operation-progress{grid-template-columns:1fr}
}
/* EST12-B · variantes en agenda / lista de espera */
.appointment-variant-field small{display:block;margin-top:4px}.waitlist-service-grid{align-items:stretch}.waitlist-service-choice{align-items:flex-start;min-width:250px}.waitlist-service-choice>span{display:grid;gap:4px;min-width:200px}.waitlist-service-choice select{width:100%;min-width:190px;padding:7px 8px;border:1px solid #eadde2;border-radius:8px;background:#fff;font:inherit}
@media(max-width:800px){.waitlist-service-choice{width:100%;min-width:0}.waitlist-service-choice>span,.waitlist-service-choice select{min-width:0;width:100%}}


/* EST12-D1 — Variantes en venta directa POS */
.pos-variant-dialog{width:min(620px,100%)}
.pos-variant-help{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.pos-variant-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.pos-variant-option{position:relative;display:block;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;cursor:pointer;transition:.16s}
.pos-variant-option:hover,.pos-variant-option.selected{border-color:#d983a2;background:#fff7fa;box-shadow:0 6px 18px rgba(83,42,59,.07)}
.pos-variant-option input{position:absolute;opacity:0;pointer-events:none}
.pos-variant-option span,.pos-variant-option strong,.pos-variant-option small,.pos-variant-option em{display:block}
.pos-variant-option strong{font-size:13px}.pos-variant-option small{font-size:9px;color:var(--muted);line-height:1.4;margin-top:4px}.pos-variant-option em{font-style:normal;font-size:11px;font-weight:800;color:var(--pink-dark);margin-top:10px}
.pos-change-variant{display:inline-block;margin-top:4px;font-size:9px}
@media(max-width:560px){.pos-variant-options{grid-template-columns:1fr}}

/* EST13-A — POS pedidos con entrega, anticipo y saldo pendiente */
.pos-delivery-mode-note{margin:0 0 12px;padding:11px 12px;border:1px solid #ead9df;border-radius:12px;background:#fff8fa;display:grid;gap:3px}.pos-delivery-mode-note strong{font-size:12px}.pos-delivery-mode-note small{font-size:10px;color:var(--muted);line-height:1.45}.pos-delivery-checkout{margin:0 0 14px;padding:13px;border:1px solid #ead9df;border-radius:14px;background:#fffafb}.pos-delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pos-delivery-grid .span2{grid-column:1/-1}.pos-settlement-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.pos-settlement-option{position:relative;display:block;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.pos-settlement-option input{position:absolute;opacity:0;pointer-events:none}.pos-settlement-option span,.pos-settlement-option strong,.pos-settlement-option small{display:block}.pos-settlement-option strong{font-size:11px}.pos-settlement-option small{font-size:9px;color:var(--muted);line-height:1.35;margin-top:3px}.pos-settlement-option.selected{border-color:#d56d92;background:#fff4f8;box-shadow:0 5px 15px rgba(120,54,80,.06)}
.est13-stats{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.est13-order-filters{align-items:end}.est13-order-filters .grow{min-width:240px;flex:1}.est13-orders-table td{vertical-align:middle}.est13-orders-table td small{display:block;color:var(--muted);margin-top:3px}.est13-orders-table .actions-cell{white-space:nowrap}.text-danger{color:#b42323!important}.est13-payment-layout{max-width:860px}.est13-balance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}.est13-balance-summary>div{padding:12px;border-radius:12px;background:#faf7f8;border:1px solid #eee3e7;display:grid;gap:4px}.est13-balance-summary span{font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:700}.est13-balance-summary strong{font-size:18px}.est13-balance-summary .balance{background:#fff4f7;border-color:#efcad7}.est13-balance-summary .balance strong{color:var(--pink-dark)}.est13-deliver-check{margin-top:14px}.est13-delivery-action{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.est13-delivery-action>div{display:grid;gap:3px}.est13-delivery-action small{color:var(--muted)}
@media(max-width:1000px){.est13-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.est13-order-filters{display:grid;grid-template-columns:1fr 1fr}.est13-order-filters .grow{min-width:0}.pos-settlement-modes{grid-template-columns:1fr}.est13-balance-summary{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.pos-delivery-grid{grid-template-columns:1fr}.pos-delivery-grid .span2{grid-column:auto}.est13-stats,.est13-order-filters,.est13-balance-summary{grid-template-columns:1fr}.est13-delivery-action{align-items:stretch;flex-direction:column}.est13-orders-table{min-width:930px}}


/* EST13-B — Alta rápida y búsqueda AJAX de cliente en Nueva cita */
.appointment-client-field{margin-top:0}.appointment-client-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.appointment-client-label-row>span{font-size:12px;font-weight:700}.appointment-new-client-btn{padding:8px 13px;font-size:11px;white-space:nowrap}.appointment-client-search-wrap{position:relative}.appointment-client-search-wrap>input[type=search]{width:100%;border:1px solid #dcd1d6;border-radius:12px;padding:12px 13px 12px 42px;outline:0;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23756d78' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 13px center}.appointment-client-search-wrap>input[type=search]:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(217,111,145,.12)}.appointment-client-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:120;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(56,35,47,.18);max-height:330px;overflow:auto}.appointment-client-result{display:block;width:100%;border:0;border-bottom:1px solid #f0e7eb;background:#fff;padding:12px 14px;text-align:left;cursor:pointer;color:var(--ink)}.appointment-client-result:last-child{border-bottom:0}.appointment-client-result:hover,.appointment-client-result:focus{background:#fff4f8;outline:0}.appointment-client-result strong,.appointment-client-result span{display:block}.appointment-client-result strong{font-size:12px}.appointment-client-result span{font-size:10px;color:var(--muted);margin-top:4px}.appointment-client-empty{padding:14px;color:var(--muted);font-size:11px}.appointment-client-empty.error{color:var(--danger)}.appointment-client-selected{margin-top:7px;padding:8px 10px;border-radius:10px;background:#faf7f8;color:var(--muted);font-size:10px}.appointment-client-selected.is-selected{background:#eef9f3;color:var(--success);font-weight:700;border:1px solid #d3ebdf}.appointment-client-dialog{width:min(680px,100%)}.appointment-client-dialog .payment-dialog-head p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.appointment-client-create-form .field{margin:12px 0}.appointment-whatsapp-optin{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:#fff7fa;border:1px solid #efdce4;border-radius:11px;font-size:10px;color:var(--muted)}.appointment-whatsapp-optin input{margin-top:1px;accent-color:var(--pink)}.appointment-client-create-error{margin-bottom:0}
@media(max-width:700px){.appointment-client-label-row{align-items:stretch;flex-direction:column}.appointment-new-client-btn{width:100%;font-size:12px}.appointment-client-results{position:fixed;left:14px;right:14px;top:auto;bottom:18px;max-height:50vh}.appointment-client-dialog .form-grid.two{grid-template-columns:1fr}}

/* EST14-A · PWA RESPONSIVE · 2026-11-06
   La vista general nunca debe crecer por una tabla, un formulario o un botón.
   En tablas extensas y agenda conservamos desplazamiento LOCAL, no zoom.
   Se mantienen intactas las reglas de impresión existentes.
*/
@media screen {
  .app-shell,.main,.content,.content>*{min-width:0;max-width:100%}
  .panel,.hero-card,.metric-card,.stat-card,.receipt-sheet,.page-heading,
  .dashboard-grid>*,.settings-grid>*,.appointment-create-grid>*,.appointment-detail-grid>*,
  .form-grid>*,.pos-shell-grid>*,.pos-catalog-grid>*,.filters-row>*,
  .xml-map-grid>*,.promo-picker-grid>*,.operation-progress>*{min-width:0}
  .topbar-left,.topbar-right,.topbar-left>div,.page-heading>div,
  .panel-header>div,.hero-card>div,.appointment-service-fields,
  .appointment-service-fields>*,.appointment-service-row>*,
  .smart-slot>*,.cart-line>*,.payment-method-row>*,.payment-dialog-head>*,
  .pos-item-footer>*,.filter-bar>*,.filters-row .field{min-width:0}
  .page-heading p,.panel-header p,.hero-card p,.appointment-client-selected,
  .payment-dialog p,.stat-card,.metric-card,.cart-line-main,
  .appointment-service-row,.appointment-item-card,.smart-slot,
  .pos-item-card,.payment-method-row,.receipt-sheet{overflow-wrap:anywhere}
  .table-wrap,.agenda-day-shell,.agenda-week-grid,.promo-picker-list{
    min-width:0;max-width:100%;width:100%;overflow-x:auto;
    -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  }
  .table-wrap .data-table{width:100%}
  .field,.field input,.field select,.field textarea,
  .filter-bar input,.filter-bar select,.filters-row input,.filters-row select,
  .pos-search,.payment-method-row input,.appointment-client-search-wrap>input[type=search],
  .promo-picker-search,.hours-time-input,.movement-line input,.movement-line select{
    max-width:100%;min-width:0;
  }
  .primary-btn,.secondary-btn,.small-btn,.text-link{max-width:100%;text-align:center;white-space:normal;overflow-wrap:anywhere}
  .heading-actions,.form-actions,.payment-actions,.sticky-actions,.row-actions{
    min-width:0;max-width:100%;flex-wrap:wrap;gap:9px;
  }
  .panel-header{gap:12px}
  .filters-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:0}
  .filters-row .field{margin:0;flex:1 1 160px}
  .filters-row>.secondary-btn,.filters-row>.primary-btn{flex:0 0 auto}
  /* EST13-A mostraba tarjetas y botones sin estilo, aunque se usaban en Pedidos. */
  .stats-grid{display:grid;gap:12px;min-width:0}
  .stat-card{padding:17px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 7px 24px rgba(56,35,47,.04)}
  .stat-card span,.stat-card small{display:block;color:var(--muted);font-size:11px}
  .stat-card strong{display:block;font-size:22px;margin:8px 0;line-height:1.2}
  .small-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--pink-dark);font-size:11px;font-weight:700;text-decoration:none;line-height:1.3}
  .small-btn.primary{color:#fff;background:var(--pink-dark);border-color:var(--pink-dark)}
  .est13-orders-table .actions-cell{white-space:normal;min-width:135px}
  .est13-orders-table .actions-cell .small-btn{margin:3px 2px}
  .receipt-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .receipt-table-wrap .receipt-table{min-width:470px}
  .payment-modal{max-width:100vw}
  .payment-dialog{max-width:100%;max-height:calc(100dvh - 28px);overscroll-behavior:contain}
  .payment-dialog-head{gap:12px;align-items:flex-start}
  .payment-dialog-head .icon-btn{flex:0 0 40px}
}
@media screen and (max-width:1100px){
  .dashboard-grid,.dashboard-grid-wide,.forecast-top-grid,.alert-settings-grid,
  .appointment-create-grid,.appointment-detail-grid{grid-template-columns:minmax(0,1fr)}
}
@media screen and (max-width:800px){
  .app-shell,.main{width:100%}
  .topbar{max-width:100%;gap:8px;padding-inline:12px}
  .topbar-left{flex:1 1 auto;gap:10px;min-width:0}
  .topbar-right{flex:0 0 auto;gap:8px}
  .topbar-left>div{overflow:hidden}
  .topbar h1{max-width:100%;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sidebar{width:min(280px,86vw);max-width:100vw}
  .content{width:100%;padding:14px 12px 28px}
  .panel,.hero-card{padding:16px}
  .page-heading{gap:12px}
  .page-heading h2{font-size:clamp(21px,5vw,27px);line-height:1.2;overflow-wrap:anywhere}
  .heading-actions{justify-content:flex-start}
  .filter-bar{align-items:stretch}
  .filter-bar>.field,.filter-bar>label{min-width:0}
  .filter-bar .filter-search,.filter-bar select{flex:1 1 100%;min-width:0}
  .metric-grid,.executive-kpis,.forecast-kpis,.est13-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .agenda-toolbar{align-items:stretch;flex-direction:column}
  .agenda-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0}
  .agenda-filters select{min-width:0;width:100%;max-width:100%}
  .agenda-filters button{grid-column:1/-1}
  .agenda-week-grid{grid-template-columns:repeat(7,190px)}
  .agenda-day-shell{max-width:100%}
  .pos-shell-grid{grid-template-columns:minmax(0,1fr)}
  .pos-cart-panel{position:static;max-height:none}
  .payment-modal{padding:10px}
  .payment-dialog{width:100%;max-height:calc(100dvh - 20px);padding:16px;border-radius:16px}
  .pos-toolbar{flex-wrap:wrap}
  .pos-search{min-width:0;width:100%}
  .filters-row>.field,.filters-row .field.grow{flex:1 1 160px;min-width:0}
  .est13-order-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .est13-order-filters>.field,.est13-order-filters>.secondary-btn{min-width:0;width:100%}
  .est13-order-filters>.secondary-btn{grid-column:1/-1}
  .est13-balance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .appointment-client-search-wrap,.appointment-client-picker{min-width:0;max-width:100%}
  .appointment-client-results{max-width:100%;overflow-y:auto}
}
@media screen and (max-width:560px){
  .panel,.hero-card{padding:13px}
  .panel-header{flex-wrap:wrap;align-items:flex-start}
  .panel-header>div{flex:1 1 180px}
  .panel-header>.primary-btn,.panel-header>.secondary-btn{flex:1 1 100%;width:100%}
  .heading-actions{width:100%}
  .heading-actions>.primary-btn,.heading-actions>.secondary-btn,
  .heading-actions>button{flex:1 1 auto;min-height:42px}
  .form-grid.two,.form-grid.three,.settings-grid,
  .appointment-service-fields,.pos-delivery-grid,.promo-picker-grid,
  .est13-order-filters{grid-template-columns:minmax(0,1fr)}
  .form-grid .span2,.pos-delivery-grid .span2{grid-column:auto}
  .appointment-service-row{grid-template-columns:26px minmax(0,1fr);gap:8px;padding:10px}
  .appointment-service-meta{grid-column:2;min-width:0}
  .appointment-item-card,.smart-slot{grid-template-columns:70px minmax(0,1fr)}
  .smart-slot-total,.appointment-item-money{grid-column:2}
  .agenda-filters{grid-template-columns:minmax(0,1fr)}
  .agenda-filters button{grid-column:auto}
  .segmented{width:100%}
  .segmented a{flex:1;text-align:center}
  .pos-toolbar{flex-direction:column;align-items:stretch}
  .pos-tabs{width:100%;min-width:0}
  .pos-tab{flex:1}
  .pos-catalog-grid{grid-template-columns:minmax(0,1fr)}
  .pos-item-card{min-height:105px}
  .cart-line{grid-template-columns:minmax(0,1fr) auto;gap:7px}
  .cart-line-total{grid-column:1/-1;justify-content:flex-end}
  .cart-discount{min-width:0}
  .payment-method-row,.payment-balance-box,.receipt-meta,.est13-balance-summary,
  .pos-settlement-modes{grid-template-columns:minmax(0,1fr)}
  .payment-balance-box>div,.payment-total-display,.payment-summary-list>div{
    gap:8px;flex-wrap:wrap;overflow-wrap:anywhere
  }
  .payment-actions>.primary-btn,.payment-actions>.secondary-btn,
  .form-actions>.primary-btn,.form-actions>.secondary-btn{flex:1 1 135px;min-height:44px}
  .sticky-actions{bottom:max(8px,env(safe-area-inset-bottom));padding:10px}
  .sticky-actions>.primary-btn,.sticky-actions>.secondary-btn{flex:1 1 130px;min-height:44px}
  .pos-delivery-checkout{padding:10px}
  .pos-delivery-grid .field{min-width:0}
  .pos-settlement-option{min-width:0}
  .est13-order-filters>.secondary-btn{grid-column:auto}
  .est13-orders-table{min-width:900px} /* desplazamiento dentro de .table-wrap */
  .appointment-new-client-btn{width:100%;min-height:44px}
  .appointment-client-label-row{flex-wrap:wrap}
  .appointment-client-label-row>span{flex:1 1 100%}
  /* Menú de resultados ligado al campo de búsqueda, sin ocupar la pantalla inferior. */
  .appointment-client-results{position:absolute;left:0;right:0;top:calc(100% + 6px);bottom:auto;max-height:min(40dvh,280px)}
}
@media screen and (max-width:390px){
  .topbar .user-menu{display:none}
  .topbar h1{font-size:16px}
  .content{padding-inline:10px}
  .page-heading .heading-actions{gap:7px}
  .metric-grid,.executive-kpis,.forecast-kpis,.est13-stats{grid-template-columns:minmax(0,1fr)}
  .receipt-sheet{padding:12px}
  .payment-dialog{padding:13px}
}
@media screen and (max-width:800px){
  /* En Safari iOS, controles inferiores a 16 px provocan zoom al recibir foco. */
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  select,textarea{font-size:16px}
  .primary-btn,.secondary-btn{min-height:42px}
  .field>span{font-size:12px}
}
@media print{.receipt-table-wrap{overflow:visible!important}.receipt-table-wrap .receipt-table{min-width:0!important}}
