: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}}
