:root{
  /* Paleta ClubSpa — inspirada en moodboard */
  --gold:#C4A87C;          /* arena cálida */
  --gold-light:#D9C4A4;    /* arena clara */
  --gold-dark:#8A6840;     /* ámbar profundo */
  --cream:#F5EFE5;         /* marfil cálido */
  --dark:#1A1714;          /* casi negro */
  --dark-2:#2C2825;
  --dark-3:#3D3A35;
  --mid:#6B6560;
  --light:#EDE7DA;         /* borde cálido */
  --white:#FFFFFF;
  --sage:#A8BDA2;          /* verde salvia (moodboard) */
  --green:#7A9E7E;         /* verde spa profundo */
  --teal:#3D7A72;          /* verde agua/piscina */
  --terracotta:#9B6B52;    /* terracota */
  --red:#8B3A3A;
  --blue:#3A5F8B;
  --amber:#8B6B2A;
  --purple:#5A3A8B;
}
*{margin:0;padding:0;box-sizing:border-box}body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--dark);min-height:100vh;font-size:16px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:'Cormorant Garamond',serif}
#loginScreen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--dark) 0%,var(--dark-2) 50%,#2A2318 100%);position:relative;overflow:hidden}
#loginScreen::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(184,150,110,.15) 0%,transparent 60%)}
.login-card{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);border:1px solid rgba(184,150,110,.3);border-radius:16px;padding:48px;width:420px;position:relative;z-index:1;box-shadow:0 32px 64px rgba(0,0,0,.4)}
.login-logo{text-align:center;margin-bottom:36px}.login-logo h1{color:var(--gold-light);font-size:2.4rem;font-weight:300;letter-spacing:.08em}.login-logo span{color:var(--mid);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase}
.login-card label{display:block;color:var(--gold-light);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px}
.login-card input{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(184,150,110,.25);border-radius:8px;padding:12px 16px;color:var(--cream);font-family:'DM Sans',sans-serif;font-size:.9rem;outline:none}
.login-card input:focus{border-color:var(--gold)}.login-card input::placeholder{color:rgba(255,255,255,.25)}.login-field{margin-bottom:20px}
.btn-login{width:100%;background:var(--gold);border:none;border-radius:8px;padding:14px;color:var(--dark);font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;margin-top:8px;transition:all .2s}.btn-login:hover{background:var(--gold-light)}
.login-error{color:#E87070;font-size:.8rem;margin-top:12px;text-align:center;display:none}
.demo-hints{margin-top:28px;padding-top:24px;border-top:1px solid rgba(184,150,110,.15)}.demo-hints p{color:rgba(255,255,255,.35);font-size:.72rem;margin-bottom:8px;letter-spacing:.1em;text-transform:uppercase}
.demo-user{display:flex;justify-content:space-between;padding:6px 10px;border-radius:6px;cursor:pointer}.demo-user:hover{background:rgba(184,150,110,.1)}.demo-user span:first-child{color:var(--gold-light);font-size:.78rem}.demo-user span:last-child{color:var(--mid);font-size:.72rem}
#app{display:none;flex-direction:column;min-height:100vh}
.topbar{background:var(--dark);color:var(--cream);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:60px;border-bottom:1px solid rgba(184,150,110,.2);position:sticky;top:0;z-index:200}
.topbar-left{display:flex;align-items:center;gap:20px}.topbar h1{font-size:1.4rem;font-weight:400;color:var(--gold-light);letter-spacing:.05em}
.topbar-search{position:relative}.topbar-search input{background:rgba(255,255,255,.08);border:1px solid rgba(196,168,124,.2);border-radius:20px;padding:7px 16px 7px 36px;color:var(--cream);font-size:.88rem;width:240px;outline:none}.topbar-search::before{content:'🔍';position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.75rem}
.topbar-right{display:flex;align-items:center;gap:16px}
.user-pill{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);padding:6px 14px;border-radius:20px;border:1px solid rgba(184,150,110,.15);cursor:pointer;transition:background .15s}.user-pill:hover{background:rgba(255,255,255,.12)}
.user-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}
.user-info span{display:block;font-size:.84rem;color:var(--gold-light)}.user-info small{font-size:.74rem;color:var(--mid)}
.btn-logout{background:none;border:1px solid rgba(184,150,110,.2);color:var(--mid);padding:5px 12px;border-radius:12px;cursor:pointer;font-size:.78rem}.btn-logout:hover{border-color:var(--gold);color:var(--gold-light)}
.layout{display:flex;flex:1}
.sidebar{width:260px;background:var(--dark-2);border-right:1px solid rgba(184,150,110,.15);padding:20px 0;overflow-y:auto;position:sticky;top:60px;height:calc(100vh - 60px);flex-shrink:0}
.sidebar-section{margin-bottom:8px}.sidebar-label{padding:8px 20px 6px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mid)}
.sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;color:rgba(255,255,255,.65);font-size:.91rem;transition:all .15s;border-left:3px solid transparent}
.sidebar-item:hover{background:rgba(184,150,110,.08);color:var(--cream)}.sidebar-item.active{background:rgba(184,150,110,.12);color:var(--gold-light);border-left-color:var(--gold)}
.sidebar-item .icon{font-size:1rem;width:20px;text-align:center}.sidebar-badge{margin-left:auto;background:var(--gold);color:var(--dark);font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:10px;min-width:20px;text-align:center}
.sidebar-divider{height:1px;background:rgba(184,150,110,.1);margin:10px 20px}
.main{flex:1;overflow-y:auto;background:var(--cream)}.page{display:none;padding:28px}.page.active{display:block}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.page-header h2{font-size:1.9rem;font-weight:400}.page-header p{color:var(--mid);font-size:.9rem;margin-top:2px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.9rem;cursor:pointer;transition:all .2s;border:none;font-weight:500}
.btn-primary{background:var(--gold);color:var(--dark)}.btn-primary:hover{background:var(--gold-light);transform:translateY(-1px)}.btn-secondary{background:var(--white);color:var(--dark);border:1px solid var(--light)}.btn-secondary:hover{border-color:var(--gold)}.btn-danger{background:#8B3A3A;color:var(--white)}.btn-sm{padding:6px 13px;font-size:.83rem}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.metric-card{background:var(--white);border-radius:12px;padding:20px;border:1px solid var(--light);cursor:pointer;transition:all .2s;border-top:3px solid var(--gold)}.metric-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-2px)}.metric-card .val{font-size:2rem;font-weight:600;font-family:'Cormorant Garamond',serif}.metric-card .lbl{font-size:.85rem;color:var(--mid);margin-top:4px}.metric-card .sub{font-size:.78rem;color:var(--gold);margin-top:6px;font-weight:500}
/* Dashboard — Semaforos por mesa */
.dash-mesa-section{margin-bottom:16px;background:var(--white);border:1px solid var(--light);border-radius:14px;overflow:hidden;transition:box-shadow .2s}
.dash-mesa-section:hover{box-shadow:0 4px 20px rgba(0,0,0,.06)}
.dash-mesa-default{border-color:var(--gold-light);border-width:2px}
.dash-mesa-header{display:flex;align-items:center;gap:10px;padding:16px 20px;cursor:pointer;border-bottom:1px solid var(--light);transition:background .15s}
.dash-mesa-header:hover{background:rgba(184,150,110,.04)}
.dash-mesa-icon{font-size:1.4rem}
.dash-mesa-name{font-size:1.05rem;font-weight:700;color:var(--dark);font-family:'DM Sans',sans-serif}
.dash-mesa-badge{font-size:.65rem;background:var(--gold);color:var(--dark);padding:3px 10px;border-radius:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.dash-mesa-arrow{margin-left:auto;color:var(--gold-dark);font-size:.85rem;font-weight:600;opacity:.6}
.dash-mesa-semaforos{display:grid;grid-template-columns:1fr 1fr;gap:0}
.semaforo-card{padding:20px;cursor:pointer;transition:background .15s}
.semaforo-card:hover{background:rgba(184,150,110,.03)}
.semaforo-card:first-child{border-right:1px solid var(--light)}
.semaforo-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--mid);margin-bottom:6px}
.semaforo-big{font-size:2.4rem;font-weight:700;font-family:'Cormorant Garamond',serif;color:var(--dark);line-height:1.1;margin-bottom:10px}
.semaforo-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-bottom:12px;background:var(--cream)}
.semaforo-bar-seg{height:100%;transition:width .3s}
.semaforo-bar-seg:first-child{border-radius:4px 0 0 4px}
.semaforo-bar-seg:last-child{border-radius:0 4px 4px 0}
.semaforo-detail{display:flex;flex-wrap:wrap;gap:6px}
.sem-chip{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:10px;display:inline-flex;align-items:center;gap:4px}
.sem-rojo{background:rgba(192,57,43,.08);color:#C0392B}
.sem-amarillo{background:rgba(212,160,23,.1);color:#9A7B00}
.sem-verde{background:rgba(39,174,96,.08);color:#1E8449}
/* Indicadores personalizados */
.dash-indicadores{display:flex;flex-wrap:wrap;gap:10px;padding:14px 20px;border-top:1px solid var(--light);background:rgba(245,239,229,.3)}
.indicador-card{flex:1;min-width:140px;max-width:220px;background:var(--white);border:1px solid var(--light);border-left:4px solid var(--teal);border-radius:10px;padding:14px 16px;transition:box-shadow .2s}
.indicador-card:hover{box-shadow:0 2px 10px rgba(0,0,0,.06)}
.indicador-val{font-size:1.6rem;font-weight:700;font-family:'Cormorant Garamond',serif;line-height:1.1}
.indicador-titulo{font-size:.75rem;color:var(--mid);margin-top:4px;font-weight:500;letter-spacing:.02em}

.table-wrap{background:var(--white);border-radius:12px;border:1px solid var(--light);overflow:hidden}.table-header{padding:16px 20px;border-bottom:1px solid var(--light);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.filter-select{background:var(--cream);border:1px solid var(--light);border-radius:8px;padding:7px 12px;font-size:.88rem;color:var(--dark);cursor:pointer;outline:none}
table{width:100%;border-collapse:collapse}th{background:var(--cream);padding:11px 16px;text-align:left;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);border-bottom:1px solid var(--light)}td{padding:13px 16px;font-size:.91rem;border-bottom:1px solid rgba(0,0,0,.04);vertical-align:middle;line-height:1.45}tr:hover td{background:rgba(184,150,110,.04)}
.ticket-id{font-family:'DM Sans',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.03em;color:var(--gold-dark)}.ticket-title{font-weight:500;cursor:pointer;color:var(--dark);font-size:.92rem}.ticket-title:hover{color:var(--gold-dark);text-decoration:underline}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.78rem;font-weight:600}
.badge-abierta{background:rgba(122,158,126,.15);color:#4A7C59}.badge-progreso{background:rgba(61,122,114,.13);color:#2D6B64}.badge-espera{background:rgba(196,168,124,.18);color:#8A6840}.badge-cerrada{background:#F0EDEA;color:#6B6560}
.badge-alta{background:#FBEAEA;color:#8B1A1A}.badge-media{background:#FFF4E5;color:#8B5A00}.badge-baja{background:#EBF5EC;color:#2D6A35}
.badge-role-admin{background:rgba(90,58,139,.12);color:#5A3A8B}.badge-role-agente{background:rgba(61,122,114,.12);color:#3D7A72}.badge-role-usuario{background:rgba(122,158,126,.15);color:#4A7C59}.badge-role-supervisor{background:rgba(155,107,82,.15);color:#9B6B52}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200}.overlay.open{display:flex;align-items:center;justify-content:center}
.modal{background:var(--white);border-radius:16px;padding:32px;width:560px;max-width:95vw;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 24px 64px rgba(0,0,0,.2)}.modal-wide{width:780px}.modal h3{font-size:1.5rem;font-weight:400;margin-bottom:8px}.modal-close{position:absolute;top:20px;right:20px;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--mid)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid var(--light);border-radius:8px;padding:10px 14px;font-family:'DM Sans',sans-serif;font-size:.9rem;color:var(--dark);outline:none;background:var(--white)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold)}.form-group textarea{resize:vertical;min-height:80px}
.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px;border-top:1px solid var(--light)}
/* ---- Detail panel: full-page layout ---- */
.detail-panel{
  position:fixed;inset:0;top:60px;
  background:var(--cream);
  z-index:150;
  display:flex;flex-direction:column;
  transform:translateY(100%);
  transition:transform .38s cubic-bezier(.4,0,.2,1);
  overflow:hidden;
}
.detail-panel.open{transform:translateY(0)}

/* Header barra oscura con info ticket */
.detail-header{
  padding:0 28px;
  height:58px;
  border-bottom:2px solid rgba(196,168,124,.25);
  background:var(--dark);
  color:var(--cream);
  flex-shrink:0;
  display:flex;
  align-items:center;
  gap:16px;
}
.dp-back-btn{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(196,168,124,.25);
  color:var(--gold-light);
  padding:5px 14px;
  border-radius:20px;
  font-size:.78rem;
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
  white-space:nowrap;
  transition:all .15s;
  flex-shrink:0;
}
.dp-back-btn:hover{background:rgba(196,168,124,.15);border-color:var(--gold)}
.dp-header-info{flex:1;min-width:0;display:flex;align-items:center;gap:14px}
.dp-header-id{font-family:'DM Sans',sans-serif;font-size:1.1rem;font-weight:800;letter-spacing:.04em;color:var(--gold);white-space:nowrap}
.dp-header-sep{color:rgba(255,255,255,.2);font-size:1.1rem}
.dp-header-title{font-size:1rem;font-weight:500;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px}

/* Dos columnas */
.detail-columns{
  display:grid;
  grid-template-columns:42% 58%;
  flex:1;
  overflow:hidden;
}
.detail-col-left{
  overflow-y:auto;
  padding:24px 28px;
  border-right:1px solid var(--light);
  background:var(--white);
}
.detail-col-right{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--cream);
}
.detail-activity-feed{
  flex:1;
  overflow-y:auto;
  padding:20px 24px;
}
.detail-footer{padding:12px 20px;border-top:1px solid var(--light);background:var(--white);flex-shrink:0}

/* Compatibilidad mobile: seguimos usando detail-body para overrides */
.detail-body{flex:1;overflow-y:auto;padding:20px 24px}
.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}.detail-meta-item{background:var(--cream);border:1px solid var(--light);border-radius:8px;padding:10px 12px}.detail-meta-item .key{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mid);margin-bottom:4px}.detail-meta-item .val{font-size:.93rem;font-weight:500;color:var(--dark)}
.activity-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--light);font-size:.88rem;line-height:1.55}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);margin-top:6px;flex-shrink:0;box-shadow:0 0 0 2px rgba(196,168,124,.2)}.activity-item .act-time{color:var(--mid);font-size:.78rem;margin-top:4px}
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.catalog-card{background:var(--white);border-radius:12px;border:1px solid var(--light);padding:18px;cursor:pointer;transition:all .2s}.catalog-card:hover{border-color:var(--gold);box-shadow:0 4px 16px rgba(184,150,110,.15);transform:translateY(-2px)}
.catalog-card .cat-mesa{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:600;margin-bottom:6px}.catalog-card .cat-name{font-size:1rem;font-weight:500;margin-bottom:6px}.catalog-card .cat-desc{font-size:.83rem;color:var(--mid);line-height:1.5}
.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.user-card{background:var(--white);border-radius:12px;border:1px solid var(--light);padding:18px}.uc-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;color:var(--white);flex-shrink:0}.user-card-actions{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--light)}
.abm-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}.abm-list{background:var(--white);border-radius:12px;border:1px solid var(--light);overflow:hidden;max-height:calc(100vh - 200px);overflow-y:auto}
.abm-list-header{padding:12px 16px;border-bottom:1px solid var(--light);background:var(--cream);display:flex;align-items:center}.abm-list-search{width:100%;border:none;background:transparent;font-size:.88rem;outline:none}
.abm-list-item{padding:11px 14px;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;display:flex;align-items:center;gap:10px}.abm-list-item:hover{background:rgba(184,150,110,.06)}.abm-list-item.selected{background:rgba(184,150,110,.12);border-left:3px solid var(--gold)}
.abm-form-panel{background:var(--white);border-radius:12px;border:1px solid var(--light);padding:24px}
.mesa-group-header{padding:7px 14px;background:var(--cream);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mid);font-weight:600;border-bottom:1px solid var(--light);position:sticky;top:0;z-index:1}
.vis-layout{display:grid;grid-template-columns:280px 1fr;gap:20px}.vis-service-list{background:var(--white);border-radius:12px;border:1px solid var(--light);overflow:hidden;max-height:calc(100vh - 200px);overflow-y:auto}.vis-service-header{padding:12px 16px;border-bottom:1px solid var(--light);background:var(--cream);position:sticky;top:0;z-index:2}
.vis-search{width:100%;border:1px solid var(--light);border-radius:8px;padding:8px 12px;font-size:.82rem;outline:none;font-family:'DM Sans',sans-serif}
.vis-service-item{padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer}.vis-service-item:hover{background:rgba(184,150,110,.06)}.vis-service-item.selected{background:rgba(184,150,110,.12);border-left:3px solid var(--gold)}.vis-service-item .vsn{font-size:.88rem;font-weight:500}.vis-service-item .vsm{font-size:.76rem;color:var(--mid);margin-top:2px}
.vis-panel{background:var(--white);border-radius:12px;border:1px solid var(--light);padding:24px}
.vis-panel-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--light)}
.vis-legend{display:flex;gap:16px;font-size:.75rem;color:var(--mid);margin-bottom:16px;padding:10px 14px;background:var(--cream);border-radius:8px}.vis-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.access-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:8px;margin-bottom:4px}.access-row:hover{background:rgba(0,0,0,.02)}.access-row-left{display:flex;align-items:center;gap:10px}.access-row-name{font-size:.85rem;font-weight:500}.access-row-sub{font-size:.72rem;color:var(--mid)}
.acc-btn{padding:5px 12px;border-radius:6px;font-size:.72rem;font-weight:600;cursor:pointer;border:1.5px solid transparent;opacity:.6}.acc-btn.active-btn{opacity:1;transform:scale(1.05)}.acc-btn-visible{background:#EBF5EC;color:#2D6A35;border-color:#2D6A35}.acc-btn-hidden{background:#FBEAEA;color:#8B1A1A;border-color:#8B1A1A}.acc-btn-inherit{background:var(--cream);color:var(--mid);border-color:var(--light)}.acc-btn:hover{opacity:1}
.acc-btn-partial{background:#FFF4E5;color:#8B5A00;border-color:#8B5A00}
.vis-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--mid);gap:12px}.vis-empty .ve-icon{font-size:2.5rem;opacity:.4}
.tickets-tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--white);padding:4px;border-radius:10px;border:1px solid var(--light);width:fit-content}
.tickets-tab{padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.88rem;display:flex;align-items:center;gap:4px}.tickets-tab.active{background:var(--dark);color:var(--gold-light)}.tickets-tab:not(.active):hover{background:var(--cream)}
.observer-section{margin:16px 0;padding:14px;background:rgba(61,122,114,.05);border:1px solid rgba(61,122,114,.18);border-radius:10px}.observer-section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:10px;display:flex;justify-content:space-between}
.observer-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.observer-chip{display:flex;align-items:center;gap:6px;background:var(--white);border:1px solid rgba(61,122,114,.22);border-radius:20px;padding:4px 10px 4px 4px;font-size:.78rem}
.oc-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff}.oc-remove{background:none;border:none;font-size:.7rem;cursor:pointer;color:var(--mid)}
.add-observer-btn{background:none;border:1px dashed rgba(61,122,114,.35);color:var(--teal);padding:4px 12px;border-radius:20px;font-size:.75rem;cursor:pointer;font-family:'DM Sans',sans-serif}
.act-observer-badge{background:rgba(61,122,114,.1);color:var(--teal);font-size:.68rem;padding:2px 8px;border-radius:10px;font-weight:600;margin-left:8px}
.comment-toolbar{display:flex;gap:6px;margin-bottom:8px;align-items:center;padding:6px 0}.comment-type-btn{background:var(--cream);border:1.5px solid var(--light);padding:6px 14px;border-radius:8px;font-size:.82rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:600;color:var(--mid)}.comment-type-btn.selected{background:var(--dark);color:var(--gold-light);border-color:var(--dark)}.comment-type-btn.selected-private{background:#8B3A3A;color:#fff;border-color:#8B3A3A}
.act-private{background:rgba(139,58,58,.04);border-radius:8px;padding:6px 0 6px 6px;border-left:3px solid #8B3A3A}.act-private-badge{background:rgba(139,58,58,.1);color:#8B3A3A;font-size:.65rem;padding:1px 6px;border-radius:6px;font-weight:700;margin-left:6px}
.act-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.act-attach-thumb{width:60px;height:60px;object-fit:cover;border-radius:6px;border:1px solid var(--light);cursor:pointer}
.comment-attach-bar{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.attach-btn{background:none;border:1px dashed var(--light);color:var(--mid);padding:5px 12px;border-radius:8px;font-size:.75rem;cursor:pointer;font-family:'DM Sans',sans-serif}
.attach-file-chip{display:flex;align-items:center;gap:6px;background:var(--cream);border:1px solid var(--light);border-radius:8px;padding:4px 8px;font-size:.75rem}.afc-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}.afc-remove{background:none;border:none;font-size:.72rem;cursor:pointer;color:var(--mid)}
.obs-search-input{width:100%;border:1px solid var(--light);border-radius:8px;padding:10px 14px;font-size:.88rem;outline:none;font-family:'DM Sans',sans-serif}
.obs-suggestion-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer}.obs-suggestion-item:hover{background:rgba(184,150,110,.08)}
.obs-od-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#fff;flex-shrink:0}
.notif-check{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:.82rem}.notif-check input[type=checkbox]{accent-color:var(--gold);width:16px;height:16px}
.mesas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.mesa-select-card{background:var(--white);border:2px solid var(--light);border-radius:12px;padding:16px;cursor:pointer;text-align:center}.mesa-select-card:hover,.mesa-select-card.selected{border-color:var(--gold);background:rgba(184,150,110,.05)}
.toast{position:fixed;bottom:24px;right:24px;background:var(--dark);color:var(--cream);padding:14px 20px;border-radius:10px;font-size:.85rem;z-index:9999;border-left:3px solid var(--gold);box-shadow:0 8px 24px rgba(0,0,0,.3);transform:translateY(100px);opacity:0;transition:all .3s}.toast.show{transform:translateY(0);opacity:1}
.empty-state{text-align:center;padding:60px 20px;color:var(--mid)}.empty-state .es-icon{font-size:3rem;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:1.2rem;margin-bottom:8px;color:var(--dark)}
.task-section{margin:16px 0;padding:16px;background:var(--white);border:1px solid var(--light);border-radius:12px}
.task-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.task-header-title{font-size:.88rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:6px}
.task-progress-wrap{flex:1;display:flex;align-items:center;gap:8px}.task-progress-bar{flex:1;height:7px;background:var(--light);border-radius:4px;overflow:hidden}.task-progress-fill{height:100%;background:#4A7C59;border-radius:4px;transition:width .3s}.task-progress-text{font-size:.72rem;font-weight:700;color:var(--mid)}
.task-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.task-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid var(--light);background:var(--cream)}.task-item.task-done{opacity:.55;background:rgba(74,124,89,.04)}.task-item.task-done .task-desc-text{text-decoration:line-through;color:var(--mid)}
.task-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--light);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;background:var(--white)}.task-check:hover{border-color:var(--gold)}.task-check.checked{background:#4A7C59;border-color:#4A7C59;color:#fff}
.task-desc-text{font-size:.9rem;font-weight:500}.task-meta{display:flex;gap:8px;margin-top:4px;font-size:.78rem;color:var(--mid);flex-wrap:wrap}.task-meta-tag{background:var(--white);border:1px solid var(--light);padding:1px 7px;border-radius:8px;font-size:.74rem}.task-meta-overdue{color:#8B3A3A;font-weight:600}.task-resp-editable{cursor:pointer;transition:background .15s}.task-resp-editable:hover{background:rgba(61,122,114,.12);border-color:var(--teal)}
.task-del{background:none;border:none;font-size:.75rem;cursor:pointer;color:var(--mid);opacity:.5}.task-del:hover{opacity:1;color:#8B3A3A}
.task-add-btn{background:none;border:1px dashed var(--light);color:var(--mid);padding:6px 14px;border-radius:8px;font-size:.78rem;cursor:pointer;font-family:'DM Sans',sans-serif;width:100%;text-align:left}.task-add-btn:hover{border-color:var(--gold);color:var(--gold-dark)}
.mt-card{background:var(--white);border:1px solid var(--light);border-radius:12px;padding:16px;margin-bottom:10px;cursor:pointer}.mt-card:hover{border-color:var(--gold)}.mt-card-header{display:flex;align-items:flex-start;gap:10px}.mt-ticket-ref{font-size:.82rem;color:var(--gold-dark);font-weight:700;font-family:'DM Sans',sans-serif;letter-spacing:.03em}.mt-overdue{border-left:3px solid #8B3A3A}
.rte-wrap{border:1px solid var(--light);border-radius:8px;overflow:hidden;margin-bottom:16px}
.rte-toolbar{display:flex;gap:2px;padding:6px 8px;background:var(--cream);border-bottom:1px solid var(--light);flex-wrap:wrap;align-items:center}
.rte-btn{width:30px;height:30px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:.85rem;color:var(--dark);display:flex;align-items:center;justify-content:center;font-family:'DM Sans',serif;padding:0}.rte-btn:hover{background:var(--light)}
.rte-sep{width:1px;height:20px;background:var(--light);margin:0 3px}
.rte-body{min-height:180px;max-height:400px;padding:12px 16px;outline:none;font-size:.9rem;line-height:1.75;color:var(--dark);overflow-y:auto;font-family:'DM Sans',sans-serif}
.rte-body:focus{box-shadow:inset 0 0 0 1px var(--gold)}.rte-body img{max-width:100%;border-radius:6px;margin:8px 0}.rte-body blockquote{border-left:3px solid var(--gold);padding-left:12px;margin:8px 0;color:var(--mid)}.rte-body ul,.rte-body ol{padding-left:24px;margin:6px 0}.rte-body a{color:var(--blue)}
.cf-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--light)}.cf-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cf-list{display:flex;flex-direction:column;gap:6px}.cf-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--light);border-radius:8px;background:var(--cream)}.cf-item-drag{color:var(--mid);font-size:1rem}.cf-item-info{flex:1;min-width:0}
.cf-item-name{font-size:.83rem;font-weight:600}.cf-item-meta{font-size:.72rem;color:var(--mid);margin-top:2px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.cf-type-badge{background:rgba(58,95,139,.1);color:#3A5F8B;padding:1px 7px;border-radius:6px;font-size:.68rem;font-weight:700}.cf-id-badge{background:rgba(90,58,139,.08);color:#5A3A8B;padding:1px 7px;border-radius:6px;font-size:.68rem;font-family:monospace;font-weight:600}
.cf-val-tag{background:rgba(139,106,42,.1);color:#8B6B2A;padding:1px 6px;border-radius:6px;font-size:.65rem}
.cf-item-actions{display:flex;gap:4px}.cf-req{color:#8B3A3A;font-weight:700}
.cf-field-group{margin-bottom:14px}.cf-field-group label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);margin-bottom:6px}
.cf-field-group label .req{color:#8B3A3A;margin-left:2px}.cf-field-group input,.cf-field-group select,.cf-field-group textarea{width:100%;border:1px solid var(--light);border-radius:8px;padding:10px 14px;font-size:.85rem;color:var(--dark);outline:none;font-family:'DM Sans',sans-serif;background:var(--white)}.cf-field-group input:focus,.cf-field-group select:focus,.cf-field-group textarea:focus{border-color:var(--gold)}
.cf-field-group .field-error{border-color:#8B3A3A!important;background:rgba(139,58,58,.03)}.cf-error-msg{color:#8B3A3A;font-size:.72rem;margin-top:4px}
.cf-checkbox-group{display:flex;flex-wrap:wrap;gap:6px}.cf-checkbox-item{display:flex;align-items:center;gap:6px;background:var(--white);border:1px solid var(--light);border-radius:8px;padding:6px 12px;font-size:.82rem;cursor:pointer;transition:all .15s}.cf-checkbox-item:hover{border-color:var(--gold)}.cf-checkbox-item.checked{background:rgba(74,124,89,.08);border-color:#4A7C59}
.cf-checkbox-item input{accent-color:var(--gold);width:16px;height:16px}
.cf-dropzone{border:2px dashed var(--light);border-radius:10px;padding:24px;text-align:center;cursor:pointer;transition:all .15s;color:var(--mid);font-size:.82rem}.cf-dropzone:hover,.cf-dropzone.dragover{border-color:var(--gold);background:rgba(184,150,110,.04)}
.desc-html{font-size:.85rem;line-height:1.6;color:var(--dark)}.desc-html img{max-width:100%;border-radius:6px;margin:6px 0}.desc-html blockquote{border-left:3px solid var(--gold);padding-left:10px;margin:6px 0;color:var(--mid)}.desc-html ul,.desc-html ol{padding-left:20px;margin:4px 0}.desc-html a{color:var(--blue)}
.badge-resuelta{background:#E8E2D9;color:#555}.badge-cancelada{background:#FBEAEA;color:#8B1A1A}.badge-pendiente-cierre{background:rgba(155,107,82,.15);color:#9B6B52}
.btn-cancel{background:#6B6560;color:var(--white);border:none}.btn-cancel:hover{background:#555}
.estado-group{display:flex;border:1px solid var(--light);border-radius:10px;overflow:hidden;background:var(--white)}
.estado-group .eg-btn{flex:1;padding:8px 4px;font-size:.82rem;font-weight:600;text-align:center;cursor:pointer;border:none;background:transparent;color:var(--mid);transition:all .15s;font-family:'DM Sans',sans-serif;white-space:nowrap}
.estado-group .eg-btn:not(:last-child){border-right:1px solid var(--light)}
.estado-group .eg-btn:hover{background:var(--cream);color:var(--dark)}
.estado-group .eg-btn.eg-active{background:var(--teal);color:var(--white)}
.estado-actions{display:flex;gap:8px;margin-top:10px;align-items:center}
.estado-actions .ea-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:8px;font-size:.8rem;font-weight:500;cursor:pointer;border:1px solid var(--light);background:var(--white);color:var(--mid);transition:all .15s;font-family:'DM Sans',sans-serif}
.estado-actions .ea-btn:hover{border-color:var(--gold);color:var(--dark)}
.estado-actions .ea-btn.ea-espera.ea-active{background:rgba(196,168,124,.15);border-color:var(--gold);color:var(--gold-dark)}
.estado-actions .ea-btn.ea-autorizacion{border-color:rgba(155,107,82,.3);color:#9B6B52}
.estado-actions .ea-btn.ea-autorizacion:hover{background:rgba(155,107,82,.08)}
.estado-actions .ea-cancel{margin-left:auto;background:none;border:none;color:var(--mid);font-size:.78rem;cursor:pointer;padding:6px 8px;font-family:'DM Sans',sans-serif;opacity:.7}
.estado-actions .ea-cancel:hover{color:#8B3A3A;opacity:1}
/* Workflow designer */
.wf-n{min-width:140px;padding:10px;font-size:.78rem}
.wf-n-start{background:rgba(61,122,114,.1);border-left:3px solid var(--teal);padding:10px 14px;border-radius:6px;color:var(--teal)}
.wf-n-end{background:rgba(107,101,96,.1);border-left:3px solid var(--mid);padding:10px 14px;border-radius:6px;color:var(--mid)}
.wf-n-tarea{background:rgba(196,168,124,.08);border-left:3px solid var(--gold);padding:10px;border-radius:6px}
.wf-n-aprob{background:rgba(155,107,82,.08);border-left:3px solid #9B6B52;padding:10px;border-radius:6px}
#wf-drawflow .drawflow-node{background:var(--white);border:1px solid var(--light);border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.05);padding:0}
#wf-drawflow .drawflow-node.selected{border-color:var(--teal)}
#wf-drawflow .input,#wf-drawflow .output{background:var(--teal);border-color:var(--teal)}
.modal-wide{max-width:1100px;width:95vw}
.links-section{margin:16px 0;padding:14px;background:rgba(90,58,139,.04);border:1px solid rgba(90,58,139,.12);border-radius:10px}
.links-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#5A3A8B;margin-bottom:10px;display:flex;justify-content:space-between}
.link-chip{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid rgba(90,58,139,.15);border-radius:8px;padding:8px 12px;margin-bottom:6px;cursor:pointer;transition:all .15s}.link-chip:hover{border-color:var(--purple)}
.link-chip-id{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--purple);font-size:.85rem}
.link-chip-title{font-size:.78rem;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.link-chip-remove{background:none;border:none;font-size:.72rem;cursor:pointer;color:var(--mid);opacity:.5;padding:2px}.link-chip-remove:hover{opacity:1;color:#8B3A3A}
.cancel-banner{background:#FBEAEA;border:1px solid rgba(139,58,58,.2);border-radius:10px;padding:14px;margin-bottom:16px}
.cancel-banner-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#8B3A3A;margin-bottom:6px}
.cancel-banner-reason{font-size:.82rem;line-height:1.5}.cancel-banner-meta{font-size:.72rem;color:var(--mid);margin-top:6px}
.tr-cancelled td{opacity:.45;text-decoration:line-through}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(184,150,110,.3);border-radius:3px}


/* ============================================================
   MOBILE RESPONSIVE
   ============================================================ */

.hamburger-btn{display:none;background:none;border:none;color:var(--gold-light);font-size:1.4rem;cursor:pointer;padding:4px 8px;line-height:1;flex-shrink:0}
.notification-bell{position:relative;cursor:pointer;padding:4px}
.mobile-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:199}
.mobile-sidebar-overlay.open{display:block}
.fab-nuevo-ticket{display:none;position:fixed;bottom:24px;right:20px;width:52px;height:52px;border-radius:50%;background:var(--gold);color:var(--dark);border:none;font-size:1.5rem;font-weight:700;cursor:pointer;z-index:140;box-shadow:0 4px 20px rgba(0,0,0,.25);align-items:center;justify-content:center;line-height:1}
.mob-info-toggle-btn{display:none}.mob-search-btn{display:none}.mob-search-bar{display:none}

@media(max-width:768px){

  /* ── BASE ── */
  body{font-size:17px}

  /* ── TOPBAR ── */
  .hamburger-btn{display:flex;align-items:center}
  .topbar{padding:0 12px;gap:8px}
  .topbar-left{gap:8px;flex:1;min-width:0}
  .topbar-left h1{font-size:1.15rem}
  .topbar-search{display:none}
  .mob-search-bar{display:none;position:fixed;top:0;left:0;right:0;z-index:300;background:var(--dark);padding:10px 14px;gap:10px;align-items:center}
  .mob-search-bar.open{display:flex}
  .mob-search-bar input{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(196,168,124,.3);border-radius:20px;padding:10px 16px;color:var(--cream);font-size:.92rem;outline:none}
  .mob-search-bar input::placeholder{color:rgba(255,255,255,.35)}
  .mob-search-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(196,168,124,.2);color:var(--gold-light);font-size:1rem;cursor:pointer;flex-shrink:0}
  .topbar-right{gap:8px}
  .user-info{display:none}
  .user-pill{padding:4px 8px;gap:6px}
  .btn-logout{padding:6px 12px;font-size:.82rem}

  /* ── SIDEBAR drawer ── */
  .sidebar{position:fixed;left:0;top:60px;bottom:0;height:calc(100vh - 60px);z-index:200;transform:translateX(-100%);transition:transform .3s ease;width:280px}
  .sidebar.mobile-open{transform:translateX(0)}
  .sidebar-item{font-size:.98rem;padding:13px 20px}
  .sidebar-label{font-size:.74rem}

  /* ── LAYOUT ── */
  .layout{display:block}
  .main{width:100%;min-height:calc(100vh - 60px)}
  .page{padding:14px 12px}

  /* ══════════════════════════════════════════════
     DETAIL PANEL MOBILE — MODO CHAT WHATSAPP
     1. Header fijo (ID + Volver + "Ver info")
     2. Info del ticket (colapsable, cerrada por defecto)
     3. Feed de actividad scrolleable (último abajo)
     4. Footer fijo: input + adjuntar + comentar
  ══════════════════════════════════════════════ */

  /* Panel: flex column contenido, sin scroll propio */
  .detail-panel{
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }

  /* Header compacto */
  .detail-header{
    flex-shrink:0;
    height:auto;
    min-height:52px;
    padding:8px 10px;
    gap:6px;
    flex-wrap:wrap;
    position:relative;
    z-index:5;
  }
  .dp-back-btn{padding:7px 12px;font-size:.82rem;min-height:36px;border-radius:20px}
  .dp-header-info{gap:4px;min-width:0;flex:1;flex-wrap:wrap}
  .dp-header-id{font-size:.88rem}
  .dp-header-sep{color:rgba(255,255,255,.2);font-size:.82rem}
  .dp-header-title{font-size:.82rem;font-weight:400;color:var(--gold-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw}
  #dp-badges{order:1;width:100%;gap:4px;flex-wrap:wrap;margin-top:2px}
  #dp-badges .badge{font-size:.68rem;padding:2px 6px}

  /* Botón "Ver info" — solo mobile */
  .mob-info-toggle-btn{
    display:inline-flex;align-items:center;gap:4px;
    background:rgba(196,168,124,.15);
    border:1px solid rgba(196,168,124,.3);
    color:var(--gold-light);
    padding:5px 11px;border-radius:16px;
    font-size:.78rem;font-weight:600;
    cursor:pointer;font-family:"DM Sans",sans-serif;
    white-space:nowrap;flex-shrink:0;order:1;
  }

  /* Columnas: flex vertical ocupando todo el espacio restante */
  .detail-columns{
    display:flex;flex-direction:column;
    flex:1;overflow:hidden;min-height:0;
  }

  /* INFO: colapsable, cerrada por defecto */
  .detail-col-left{
    flex-shrink:0;max-height:0;overflow:hidden;
    padding:0 14px;
    background:var(--white);border-right:none;border-bottom:none;
    transition:max-height .3s cubic-bezier(.4,0,.2,1),padding .3s ease;
  }
  .detail-col-left.mob-info-open{
    max-height:75vh;overflow-y:auto;
    padding:14px 14px 80px;
    border-bottom:2px solid var(--light);
  }

  /* Columna derecha: flex:1 para llenar espacio */
  .detail-col-right{
    flex:1;display:flex;flex-direction:column;
    overflow:hidden;min-height:0;background:var(--cream);
  }

  /* Feed de actividad: scrolleable, contenido hacia abajo */
  .detail-activity-feed{
    flex:1;overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:12px 12px 6px;
    display:flex;flex-direction:column;
  }
  /* Mensajes en orden cronologico, empujados al fondo como WhatsApp */
  #dp-activity{
    margin-top:auto;
  }
  /* Ocultar título en mobile */
  .activity-feed-title{display:none}

  /* Burbuja de chat */
  .activity-item{
    font-size:.93rem;line-height:1.55;
    padding:0;border-bottom:none;margin-bottom:8px;
    align-items:flex-start;
    gap:0;
  }
  .activity-item > div:last-child{
    background:var(--white);
    border-radius:4px 14px 14px 14px;
    padding:9px 13px;
    box-shadow:0 1px 3px rgba(0,0,0,.07);
    border:1px solid var(--light);
    max-width:90%;display:inline-block;
    word-break:break-word;
  }
  .act-private > div:last-child{
    background:rgba(139,58,58,.05);
    border-color:rgba(139,58,58,.18);
    border-radius:4px 14px 14px 14px;
  }
  .activity-dot{display:none}
  .activity-item .act-time{font-size:.74rem;color:var(--mid);margin-top:4px;display:block}

  /* FOOTER fijo dentro del flex (no fixed en viewport) */
  .detail-footer{
    flex-shrink:0;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
    background:var(--white);
    border-top:1.5px solid var(--light);
    box-shadow:0 -3px 14px rgba(0,0,0,.08);
  }

  /* Toolbar público/privado */
  .comment-toolbar{gap:6px;margin-bottom:8px;padding:0}
  .comment-type-btn{font-size:.82rem;padding:7px 14px;min-height:38px;border-radius:18px}
  .add-observer-btn{font-size:.78rem;padding:6px 11px;min-height:38px}

  /* Ocultar barra RTE (negrita etc.) */
  .rte-toolbar{display:none}

  /* Input chat: redondeado tipo iMessage */
  .rte-wrap{
    border-radius:22px;border:1.5px solid var(--light);
    overflow:hidden;margin-bottom:0;background:var(--cream);
  }
  .rte-wrap:focus-within{border-color:var(--gold)}
  #dp-comment-rte{
    min-height:44px !important;max-height:100px !important;
    font-size:.97rem !important;padding:10px 14px !important;
    line-height:1.5 !important;background:transparent;
  }

  /* Fila adjuntar + botón enviar */
  .comment-attach-bar{
    margin-top:8px;gap:8px;
    display:flex;align-items:center;flex-wrap:nowrap;
  }
  .attach-btn{
    background:var(--cream);border:1.5px solid var(--light);
    border-radius:22px;font-size:1.1rem;padding:9px 12px;
    min-height:44px;min-width:44px;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;cursor:pointer;gap:5px;
  }
  .attach-btn-label{display:none} /* solo ícono */

  /* BOTÓN COMENTAR full-width */
  .btn-comentar{
    width:100%;justify-content:center;
    font-size:1rem;font-weight:600;
    padding:13px 20px;border-radius:14px;
    letter-spacing:.02em;margin-top:8px;
    box-shadow:0 3px 12px rgba(196,168,124,.35);
  }

  /* Detail meta: 1 col */
  .detail-meta{grid-template-columns:1fr}
  .detail-meta-item{padding:12px 14px}
  .detail-meta-item .key{font-size:.76rem}
  .detail-meta-item .val{font-size:1rem}

  /* Badges generales */
  .badge{font-size:.82rem;padding:3px 10px}

  /* Tickets tabla */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:560px}
  td{font-size:.97rem;padding:14px 12px}
  th{font-size:.8rem}
  .ticket-id{font-size:1rem}
  .ticket-title{font-size:.97rem}

  /* Tabs */
  .tickets-tabs{overflow-x:auto;white-space:nowrap;width:100%;padding-bottom:2px}
  .tickets-tab{flex-shrink:0;font-size:.92rem;padding:9px 16px}

  /* Filtros */
  .table-header{gap:6px;padding:10px 12px}
  .filter-select{padding:8px 10px;font-size:.92rem}

  /* Botones */
  .btn{font-size:.95rem;padding:10px 18px}
  .btn-sm{font-size:.88rem;padding:9px 14px}

  /* Métricas */
  .metrics-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
  .metric-card{padding:14px}
  .metric-card .val{font-size:1.7rem}
  .metric-card .lbl{font-size:.9rem}
  .dash-mesa-semaforos{grid-template-columns:1fr}
  .semaforo-card:first-child{border-right:none;border-bottom:1px solid var(--light)}
  .semaforo-big{font-size:2rem}
  .semaforo-card{padding:16px}
  .dash-mesa-section{margin-bottom:12px}
  .sem-chip{font-size:.68rem;padding:2px 8px}

  /* Formularios */
  .form-grid{grid-template-columns:1fr}
  .form-group input,.form-group select,.form-group textarea{font-size:.97rem;padding:12px 14px}
  .form-group label{font-size:.82rem}

  /* Modal */
  .modal{padding:20px 14px;border-radius:12px;padding-bottom:0;display:flex;flex-direction:column}
  #modalContent{flex:1;overflow-y:auto;padding-bottom:8px}
  .modal .form-actions{
    position:sticky;bottom:0;background:var(--white);
    margin:0 -14px -20px;padding:12px 14px 20px;
    border-top:1px solid var(--light);z-index:10;
  }

  /* ABM layouts */
  .abm-layout{grid-template-columns:1fr}
  .vis-layout{grid-template-columns:1fr}

  /* Page header */
  .page-header{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:16px}
  .page-header h2{font-size:1.65rem}
  .page-header p{font-size:.95rem}
  .page-header>div:last-child{width:100%}
  .page-header .btn{width:100%;justify-content:center}

  /* Catálogo */
  .catalog-grid{grid-template-columns:1fr}
  .catalog-card .cat-name{font-size:1.05rem}
  .catalog-card .cat-desc{font-size:.88rem}

  /* Usuarios */
  .users-grid{grid-template-columns:1fr}
  .user-card-actions{flex-wrap:wrap}
  .user-card-actions .btn{flex:1;justify-content:center;min-width:80px}

  /* Mesas wizard */
  .mesas-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .mesa-select-card{padding:14px 8px;font-size:.95rem}

  /* Tasks */
  .task-desc-text{font-size:.97rem}
  .task-meta{font-size:.82rem}
  .task-check{width:26px;height:26px;flex-shrink:0}

  /* Observer chips */
  .observer-chips{flex-wrap:wrap}
  .observer-chip{font-size:.85rem;padding:5px 12px 5px 5px}

  /* Login */
  .login-card{width:96vw;padding:28px 18px}

  /* FAB */
  .fab-nuevo-ticket{display:flex}
  /* Padding para que el FAB no tape paginado / ultima fila */
  .main{padding-bottom:90px}

  /* Toast */
  .toast{right:12px;left:12px;bottom:24px;text-align:center}

  /* Notificaciones */
  .notif-item .nt{font-size:.95rem}
  .notif-item .nm{font-size:.82rem}

}

.mention{background:rgba(58,95,139,.12);color:#3A5F8B;border-radius:4px;padding:1px 5px;font-weight:600;display:inline-block;cursor:default}
.notif-panel{position:absolute;top:44px;right:0;width:340px;max-height:440px;background:var(--white);border:1px solid var(--light);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.15);z-index:200;overflow:hidden;display:none;flex-direction:column}
.notif-panel.open{display:flex}
.notif-panel-head{padding:12px 16px;border-bottom:1px solid var(--light);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.notif-panel-head h4{font-family:'Cormorant Garamond',serif;font-size:1rem}
.notif-list{overflow-y:auto;flex:1}
.notif-item{padding:12px 16px;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .1s}
.notif-item:hover{background:var(--cream)}
.notif-unread{background:rgba(255,255,255,.85)}
.notif-item .nt{font-size:.88rem;line-height:1.45;color:var(--dark)}
.notif-item .nm{font-size:.78rem;color:var(--mid);margin-top:3px}
.notif-unread .nt{font-weight:600}
.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);flex-shrink:0}
.mpd-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:.82rem;border-bottom:1px solid rgba(0,0,0,.04)}
.mpd-item:hover{background:var(--cream)}
.mpd-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#fff;flex-shrink:0}

/* === TEMAS DE COLOR === */
body.theme-dark{--cream:#1A1714;--white:#2C2825;--light:#3D3A35;--dark:#F5EFE5;--dark-2:#EDE7DA;--dark-3:#D9C4A4;--mid:#A8A29E;--gold:#C4A87C;--gold-light:#D9C4A4;--gold-dark:#C4A87C}
body.theme-dark .topbar,body.theme-dark .sidebar,body.theme-dark .detail-header{background:#111;border-color:rgba(196,168,124,.15)}
body.theme-dark .login-card{background:#2C2825}
body.theme-dark input,body.theme-dark select,body.theme-dark textarea{background:var(--white);color:var(--dark);border-color:var(--light)}
body.theme-blue{--cream:#EEF2F7;--white:#FFFFFF;--light:#D0D9E6;--gold:#3A6FA0;--gold-light:#5A8FC0;--gold-dark:#2A4F70;--teal:#2A6A8A;--sage:#7AA0C0}
body.theme-blue .topbar,body.theme-blue .sidebar{background:#1A2A3A}
body.theme-blue .detail-header{background:#1A2A3A}
body.theme-green{--cream:#F0F5F0;--white:#FFFFFF;--light:#C8DCC8;--gold:#4A7C59;--gold-light:#6A9C79;--gold-dark:#3A5C49;--teal:#3D7A72;--sage:#A8BDA2}
body.theme-green .topbar,body.theme-green .sidebar{background:#1A2A1A}
body.theme-green .detail-header{background:#1A2A1A}
/* === TAMANO FUENTE === */
body.font-sm{font-size:14px}
body.font-lg{font-size:18px}
/* === PERFIL === */
.profile-page{max-width:600px;margin:0 auto}
.profile-section{background:var(--white);border:1px solid var(--light);border-radius:12px;padding:20px;margin-bottom:16px}
.profile-section h3{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mid);margin-bottom:14px}
.profile-avatar-wrap{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.profile-avatar-img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.profile-avatar-initials{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#fff}
.theme-btn{width:40px;height:40px;border-radius:10px;border:2px solid var(--light);cursor:pointer;transition:all .15s}
.theme-btn:hover,.theme-btn.active{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.font-btn{padding:6px 14px;border-radius:8px;border:1px solid var(--light);cursor:pointer;font-family:'DM Sans',sans-serif;background:var(--white);transition:all .15s}
.font-btn:hover,.font-btn.active{border-color:var(--gold);background:var(--gold);color:#fff}
.mention-dropdown{position:absolute;background:var(--white);border:1px solid var(--light);border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.12);max-height:180px;overflow-y:auto;z-index:1000;min-width:200px}
.mention-item{padding:8px 14px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:8px}
.mention-item:hover,.mention-item.active{background:var(--cream)}
.mention-item .mi-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;flex-shrink:0}
.mention-item .mi-name{font-weight:500}
.mention-item .mi-role{font-size:.72rem;color:var(--mid);margin-left:auto}
.mention-chip{background:rgba(61,122,114,.12);color:var(--teal);border-radius:4px;padding:1px 4px;font-weight:600;cursor:default}
.ayuda-contenido h4{margin:16px 0 8px;color:var(--gold-dark);font-size:.92rem;font-weight:700}
.ayuda-contenido h4:first-child{margin-top:0}
.ayuda-contenido ul,.ayuda-contenido ol{margin:8px 0;padding-left:24px}
.ayuda-contenido li{margin-bottom:6px}
.ayuda-contenido p{margin:8px 0}
/* ============================================================ */

@media(max-width:768px){
  /* Re-aplicamos notif-panel aquí abajo para pisar la .notif-panel base que estaba suelta fuera del media query principal */
  .notif-panel{
    position:fixed !important;
    top:60px !important;
    left:4px !important;
    right:4px !important;
    width:auto !important;
    max-height:70vh !important;
    border-radius:12px !important;
    z-index:250 !important;
    box-shadow:0 8px 32px rgba(0,0,0,.25) !important;
  }
}

