:root{--bg:#0b0b10;--panel:#171724;--panel2:#222235;--text:#f5f5f7;--muted:#aaaabc;--accent:#b8182b;--accent2:#e22f44;--border:#34344a;--good:#44d98f;--warn:#ffb400;--bad:#ff4e4e}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,rgba(184,24,43,.24),transparent 30%),linear-gradient(135deg,#08080d,#171724);color:var(--text);font-family:"Inter","Segoe UI Variable","Segoe UI",system-ui,-apple-system,"Roboto","Helvetica Neue",Arial,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card,.card{background:rgba(23,23,36,.95);border:1px solid var(--border);border-radius:18px;box-shadow:0 20px 70px rgba(0,0,0,.35)}.login-card{width:min(440px,100%);padding:28px}.logo{display:block;width:170px;margin:0 auto 22px}h1,h2,h3{margin:0 0 14px}.login-card h1{text-align:center;color:var(--accent2);font-size:1.45rem}.field{display:grid;gap:6px;margin:12px 0}label,.small{color:var(--muted);font-size:.88rem}input,select,textarea{width:100%;background:#11111b;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:11px}textarea{min-height:90px}.btn{border:0;border-radius:12px;padding:10px 14px;background:var(--accent);color:#fff;font-weight:700}.btn:hover{background:var(--accent2)}.btn.secondary{background:#44445a}.btn.bad{background:#8a1e2a}.btn.warn{background:#8a6000}.btn.ghost{background:transparent;border:1px solid var(--border)}.btn.full{width:100%}.shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.side{background:rgba(15,15,24,.97);border-right:1px solid var(--border);padding:18px;height:100vh;position:sticky;top:0;overflow:auto}.side .logo{width:145px}.nav{display:grid;gap:8px;margin-top:18px}.nav button{text-align:left;background:transparent;color:var(--text);border:1px solid transparent;padding:12px;border-radius:12px}.nav button:hover,.nav button.active{background:rgba(184,24,43,.18);border-color:rgba(184,24,43,.45)}.main{padding:20px}.top{display:flex;justify-content:space-between;gap:12px;align-items:center;background:rgba(23,23,36,.9);border:1px solid var(--border);border-radius:18px;padding:14px 18px;margin-bottom:18px}.card{padding:18px}.grid{display:grid;gap:16px}.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0;align-items:center}.tablewrap{overflow:auto;border:1px solid var(--border);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:#11111b;color:var(--muted);font-size:.78rem;text-transform:uppercase}.badge{display:inline-flex;border-radius:99px;padding:4px 8px;font-size:.78rem;background:#303046}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.num{font-size:2rem;color:var(--accent2);font-weight:800}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions .btn{font-size:.84rem;padding:7px 9px}.modalbg{position:fixed;inset:0;background:rgba(0,0,0,.78);display:grid;place-items:center;z-index:99;padding:16px}.modal{width:min(820px,100%);max-height:92vh;overflow:auto}.watermark{position:fixed;right:30px;bottom:30px;width:280px;opacity:.045;pointer-events:none}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{position:static;height:auto}.nav{grid-template-columns:repeat(2,1fr)}.cols4,.cols2{grid-template-columns:1fr}.top{flex-direction:column;align-items:stretch}.watermark{display:none}}


/* ===== V3.6 MOBILE NATIVE UI ===== */

@media (max-width: 768px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    touch-action: manipulation;
  }

  body {
    background: #0b0b10;
    font-size: 16px;
  }

  .shell {
    display: block !important;
    min-height: 100vh;
    padding-bottom: 86px;
  }

  .side {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto !important;
    height: 78px !important;
    width: 100% !important;
    z-index: 999;
    padding: 6px 8px env(safe-area-inset-bottom);
    border-right: 0;
    border-top: 1px solid var(--border);
    background: rgba(12,12,18,.98);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
  }

  .side > .logo,
  .side > h3,
  .side > p,
  .side > div {
    display: none !important;
  }

  .nav {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr);
    gap: 4px;
    width: 100%;
    margin: 0;
  }

  .nav button {
    padding: 8px 4px !important;
    min-height: 58px;
    border-radius: 14px;
    font-size: 0;
    text-align: center !important;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    white-space: nowrap;
  }

  .nav button::first-letter {
    font-size: 24px;
  }

  .nav button[data-v="dashboard"]::after { content: "Panel"; font-size: 10px; margin-top: 3px; color: var(--muted); }
  .nav button[data-v="inventory"]::after { content: "Inventario"; font-size: 10px; margin-top: 3px; color: var(--muted); }
  .nav button[data-v="mobile"]::after { content: "Móvil"; font-size: 10px; margin-top: 3px; color: var(--muted); }
  .nav button[data-v="excel"]::after { content: "Excel"; font-size: 10px; margin-top: 3px; color: var(--muted); }
  .nav button[data-v="admin"]::after { content: "Admin"; font-size: 10px; margin-top: 3px; color: var(--muted); }
  .nav button[data-v="moves"]::after { content: "Mov."; font-size: 10px; margin-top: 3px; color: var(--muted); }

  .nav button.active {
    background: rgba(184,24,43,.32);
    border-color: rgba(184,24,43,.65);
  }

  .main {
    padding: 12px !important;
    padding-bottom: 110px !important;
  }

  .top {
    position: sticky;
    top: 0;
    z-index: 50;
    border-radius: 0 0 18px 18px;
    margin: -12px -12px 14px;
    padding: 14px 14px calc(14px + env(safe-area-inset-top));
    background: rgba(18,18,28,.98);
    backdrop-filter: blur(12px);
    display: block !important;
  }

  .top b {
    display: block;
    font-size: 15px;
    line-height: 1.2;
  }

  .top .small {
    font-size: 12px;
  }

  .top .btn,
  .top button {
    margin-top: 10px;
    width: 100%;
    min-height: 44px;
  }

  .grid,
  .cols2,
  .cols4 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .card {
    border-radius: 18px !important;
    padding: 14px !important;
    margin-bottom: 12px;
  }

  .card h2 {
    font-size: 21px;
  }

  .card h3 {
    font-size: 18px;
  }

  .toolbar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 12px 0 !important;
  }

  .toolbar .btn,
  .toolbar button,
  .toolbar input,
  .toolbar select {
    width: 100% !important;
    min-height: 46px;
  }

  input, select, textarea {
    min-height: 46px;
    border-radius: 14px !important;
    font-size: 16px !important;
  }

  .btn, button {
    min-height: 46px;
    border-radius: 14px !important;
    font-size: 15px;
  }

  .tablewrap {
    border: 0 !important;
    overflow: visible !important;
  }

  table, thead, tbody, tr, th, td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  thead {
    display: none !important;
  }

  tbody {
    display: grid !important;
    gap: 12px;
  }

  tr {
    background: rgba(23,23,36,.98);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 12px;
    box-shadow: 0 10px 28px rgba(0,0,0,.22);
  }

  td {
    border: 0 !important;
    padding: 6px 0 !important;
  }

  td:nth-child(1)::before { content: "Código: "; color: var(--muted); font-weight: 700; }
  td:nth-child(3)::before { content: "Categoría: "; color: var(--muted); font-weight: 700; }
  td:nth-child(4)::before { content: "Recinto: "; color: var(--muted); font-weight: 700; }
  td:nth-child(5)::before { content: "Cantidad: "; color: var(--muted); font-weight: 700; }
  td:nth-child(6)::before { content: "Estado: "; color: var(--muted); font-weight: 700; }

  td:nth-child(2) {
    padding-top: 0 !important;
    font-size: 17px;
  }

  td:nth-child(7) {
    padding-top: 10px !important;
  }

  .actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .actions .btn,
  .actions button {
    width: 100%;
    min-height: 42px;
  }

  .modalbg {
    align-items: flex-end !important;
    padding: 0 !important;
  }

  .modal {
    width: 100% !important;
    max-width: none !important;
    max-height: 94vh !important;
    border-radius: 24px 24px 0 0 !important;
    overflow-y: auto;
    padding: 16px !important;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
  }

  .modal .grid,
  .modal .cols2 {
    grid-template-columns: 1fr !important;
  }

  .login {
    padding: 18px;
    min-height: 100svh;
  }

  .login-card {
    width: 100% !important;
    max-width: 420px;
    border-radius: 24px;
    padding: 22px !important;
  }

  .login-card .logo {
    width: 150px;
  }

  .watermark {
    display: none !important;
  }

  #qrLabel {
    width: 100% !important;
    max-width: 340px !important;
  }
}

/* iPhone standalone PWA */
@media all and (display-mode: standalone) {
  body {
    user-select: none;
    -webkit-user-select: none;
  }
}
/* === Splash Screen Olympia v3.9 === */
#splash-screen {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: radial-gradient(circle at top, #2b0f16 0%, #09090d 55%, #000 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: white;
  text-align: center;
  transition: opacity .45s ease, visibility .45s ease;
}

#splash-screen img {
  width: 130px;
  height: auto;
  filter: drop-shadow(0 14px 32px rgba(0,0,0,.45));
  animation: splashPulse 1.7s ease-in-out infinite;
}

#splash-screen h1 {
  margin: 8px 0 0;
  font-size: 30px;
  letter-spacing: .4px;
}

#splash-screen p {
  margin: 0;
  opacity: .76;
  font-size: 15px;
}

#splash-screen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes splashPulse {
  0%, 100% { transform: scale(1); opacity: .96; }
  50% { transform: scale(1.045); opacity: 1; }
}
/* ===== DASHBOARD PRO v3.9 ===== */

.dashboard-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 15px;
    margin-top: 20px;
}

.dashboard-card {
    background: white;
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    transition: 0.2s;
}

.dashboard-card:hover {
    transform: translateY(-3px);
}

.dashboard-card h3 {
    margin: 0;
    font-size: 15px;
    color: #666;
}

.dashboard-card p {
    margin-top: 10px;
    font-size: 28px;
    font-weight: bold;
    color: #111;
}
/* ===== RESTYLING V4 COMPACT ===== */

@media (min-width: 901px){

  body{
    background:
      radial-gradient(circle at top left, rgba(184,24,43,.10), transparent 22%),
      linear-gradient(135deg,#07070b,#111118);
  }

  .shell{
    grid-template-columns: 230px 1fr;
  }

  .side{
    padding:14px;
    background:rgba(10,10,16,.96);
    backdrop-filter: blur(18px);
  }

  .side .logo{
    width:110px;
    opacity:.82;
    margin-bottom:14px;
  }

  .nav{
    gap:4px;
  }

  .nav button{
    padding:9px 10px;
    border-radius:10px;
    font-size:.92rem;
  }

  .main{
    padding:14px;
  }

  .top{
    padding:10px 14px;
    border-radius:14px;
    margin-bottom:12px;
    min-height:auto;
  }

  .card{
    padding:12px;
    border-radius:14px;
    background:rgba(18,18,28,.92);
    box-shadow:0 10px 30px rgba(0,0,0,.22);
  }

  .grid{
    gap:10px;
  }

  .cols4{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }

  .num{
    font-size:1.35rem;
  }

  h1{
    font-size:1.3rem;
  }

  h2{
    font-size:1rem;
    margin-bottom:10px;
  }

  h3{
    font-size:.95rem;
    margin-bottom:6px;
  }

  .toolbar{
    gap:6px;
    margin:10px 0;
  }

  input,
  select,
  textarea{
    padding:8px 10px;
    border-radius:10px;
    font-size:.92rem;
  }

  .btn{
    padding:8px 10px;
    border-radius:10px;
    font-size:.82rem;
  }

  .actions .btn{
    padding:5px 8px;
    font-size:.74rem;
  }

  .tablewrap{
    border-radius:12px;
  }

  table{
    min-width:100%;
  }

  th{
    font-size:.68rem;
    padding:8px;
    letter-spacing:.04em;
  }

  td{
    padding:7px 8px;
    font-size:.84rem;
  }

  .badge{
    padding:3px 7px;
    font-size:.7rem;
  }

  .watermark{
    width:420px;
    opacity:.025;
    filter:blur(1px);
  }

}
/* ===== RESTYLING V4.1 DENSITY + PROFESSIONAL UI ===== */

@media (min-width: 901px){

  .side{
    width:230px;
  }

  .side h3{
    font-size:.95rem;
    margin-bottom:8px;
  }

  .side p.small{
    font-size:.78rem;
    line-height:1.35;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.06);
    border-radius:12px;
    padding:8px;
  }

  .nav button{
    height:36px;
    display:flex;
    align-items:center;
    gap:8px;
  }

  .top{
    background:rgba(15,15,24,.88);
  }

  .top b{
    font-size:.95rem;
    letter-spacing:.02em;
  }

  .top .small{
    font-size:.75rem;
  }

  .card h2{
    font-size:.95rem;
    text-transform:none;
  }

  .toolbar input,
  .toolbar select{
    height:34px;
  }

  .toolbar .btn{
    height:34px;
    padding:6px 10px;
  }

  table{
    table-layout:fixed;
  }

  th:nth-child(1),
  td:nth-child(1){
    width:28%;
    max-width:280px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  th:nth-child(2),
  td:nth-child(2){
    width:25%;
  }

  th:nth-child(3),
  td:nth-child(3){
    width:8%;
  }

  th:nth-child(4),
  td:nth-child(4){
    width:10%;
  }

  th:nth-child(5),
  td:nth-child(5){
    width:5%;
    text-align:center;
  }

  th:nth-child(6),
  td:nth-child(6){
    width:8%;
  }

  th:nth-child(7),
  td:nth-child(7){
    width:16%;
  }

  td{
    line-height:1.25;
  }

  td .small{
    font-size:.72rem;
  }

  .actions{
    gap:4px;
  }

  .actions .btn{
    padding:4px 6px;
    font-size:.68rem;
    border-radius:7px;
    line-height:1.1;
  }

  .badge{
    font-size:.65rem;
  }

  .watermark{
    right:60px;
    bottom:50px;
    width:520px;
    opacity:.018;
    filter:grayscale(1) blur(1.5px);
  }
}
/* ===== RESTYLING V4.2 SIDEBAR ENTERPRISE ===== */

@media (min-width: 901px){

  .brand-block{
    display:flex;
    justify-content:center;
    padding:8px 0 18px;
    border-bottom:1px solid rgba(255,255,255,.06);
    margin-bottom:14px;
  }

  .brand-block .logo{
    width:155px;
    max-width:100%;
    opacity:.96;
    margin:0;
    filter:drop-shadow(0 0 18px rgba(255,255,255,.05));
  }

  .user-card{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px;
    margin-bottom:18px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:14px;
    background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.025));
  }

  .avatar{
    width:38px;
    height:38px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#8f1022,#e22f44);
    color:white;
    font-weight:900;
    box-shadow:0 0 0 3px rgba(255,255,255,.04);
  }

  .user-card b{
    display:block;
    font-size:.9rem;
    line-height:1.1;
  }

  .user-card span{
    display:block;
    color:var(--muted);
    font-size:.68rem;
    margin-top:2px;
    letter-spacing:.08em;
  }

  .user-card small{
    display:block;
    color:#44d98f;
    font-size:.68rem;
    margin-top:3px;
  }

  .side h3,
  .side > p.small{
    display:none;
  }

  .nav:before{
    content:"PRINCIPAL";
    color:var(--muted);
    font-size:.66rem;
    letter-spacing:.12em;
    margin:4px 0 4px 8px;
  }

  .nav button{
    position:relative;
    border-radius:11px;
    color:#d8d8e5;
  }

  .nav button.active{
    background:linear-gradient(90deg,rgba(184,24,43,.36),rgba(184,24,43,.08));
    border-color:rgba(226,47,68,.45);
  }

  .nav button.active:after{
    content:"";
    position:absolute;
    right:0;
    top:8px;
    bottom:8px;
    width:3px;
    border-radius:6px 0 0 6px;
    background:#e22f44;
    box-shadow:0 0 14px rgba(226,47,68,.8);
  }

  .side::after{
    content:"Sincronizado\A Última sync: ahora\A\A v4.0 Enterprise";
    white-space:pre-line;
    display:block;
    margin-top:18px;
    padding:12px;
    border-radius:14px;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.06);
    color:var(--muted);
    font-size:.72rem;
    line-height:1.45;
  }
}



/* ===== DASHBOARD ENTERPRISE V4.3 ===== */

@media (min-width: 901px){

  .dash-enterprise{
    display:grid;
    gap:14px;
  }

  .dash-hero{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border:1px solid rgba(255,255,255,.075);
    border-radius:18px;
    padding:18px;
    background:
      radial-gradient(circle at top right, rgba(226,47,68,.14), transparent 36%),
      linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
    box-shadow:0 18px 60px rgba(0,0,0,.24);
  }

  .dash-eyebrow{
    display:inline-flex;
    color:#ff5a6b;
    font-size:.68rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.16em;
    margin-bottom:7px;
  }

  .dash-hero h2{
    margin:0;
    font-size:1.45rem;
  }

  .dash-hero p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:.86rem;
  }

  .dash-hero-actions{
    display:flex;
    gap:8px;
    align-items:center;
  }

  .dash-kpi-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
  }

  .dash-kpi{
    display:flex;
    align-items:center;
    gap:11px;
    min-height:84px;
    padding:13px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.07);
    background:linear-gradient(135deg,rgba(255,255,255,.052),rgba(255,255,255,.018));
    box-shadow:0 12px 40px rgba(0,0,0,.20);
  }

  .dash-kpi-icon{
    width:42px;
    height:42px;
    border-radius:14px;
    display:grid;
    place-items:center;
    font-size:1.16rem;
    background:rgba(255,255,255,.06);
  }

  .dash-kpi span{
    display:block;
    color:var(--muted);
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800;
  }

  .dash-kpi b{
    display:block;
    margin-top:2px;
    font-size:1.52rem;
    line-height:1;
    color:#fff;
  }

  .dash-kpi small{
    display:block;
    margin-top:5px;
    color:var(--muted);
    font-size:.68rem;
  }

  .dash-kpi.red .dash-kpi-icon{background:rgba(226,47,68,.14);color:#ff5268}
  .dash-kpi.green .dash-kpi-icon{background:rgba(68,217,143,.12);color:#44d98f}
  .dash-kpi.blue .dash-kpi-icon{background:rgba(88,144,255,.13);color:#78a5ff}
  .dash-kpi.amber .dash-kpi-icon{background:rgba(255,180,0,.13);color:#ffbf35}
  .dash-kpi.purple .dash-kpi-icon{background:rgba(156,91,255,.14);color:#ad83ff}
  .dash-kpi.cyan .dash-kpi-icon{background:rgba(36,213,232,.12);color:#24d5e8}

  .dash-grid-main{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:14px;
    align-items:start;
  }

  .dash-panel{
    min-height:230px;
  }

  .dash-alerts{
    grid-column:1 / -1;
    min-height:unset;
  }

  .dash-panel-head{
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:flex-start;
    padding-bottom:10px;
    border-bottom:1px solid rgba(255,255,255,.06);
    margin-bottom:10px;
  }

  .dash-panel-head h3{
    margin:0;
    font-size:.98rem;
  }

  .dash-panel-head p{
    margin:3px 0 0;
  }

  .activity-list,
  .venue-list,
  .alert-list{
    display:grid;
    gap:8px;
  }

  .activity-row{
    display:grid;
    grid-template-columns:12px 1fr auto;
    align-items:center;
    gap:10px;
    padding:8px;
    border-radius:12px;
    background:rgba(255,255,255,.025);
    border:1px solid rgba(255,255,255,.045);
  }

  .activity-dot{
    width:8px;
    height:8px;
    border-radius:99px;
    background:#44d98f;
    box-shadow:0 0 12px rgba(68,217,143,.8);
  }

  .activity-row b,
  .alert-row b{
    display:block;
    font-size:.78rem;
  }

  .activity-row span,
  .alert-row span{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:.7rem;
    max-width:520px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .activity-row small{
    color:var(--muted);
    font-size:.68rem;
    white-space:nowrap;
  }

  .venue-row{
    display:grid;
    gap:6px;
    padding:8px;
    border-radius:12px;
    background:rgba(255,255,255,.025);
    border:1px solid rgba(255,255,255,.045);
  }

  .venue-meta{
    display:flex;
    justify-content:space-between;
    gap:8px;
    align-items:center;
    font-size:.76rem;
  }

  .venue-meta span{
    color:#fff;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .venue-meta b{
    color:#ff5268;
  }

  .venue-bar{
    height:6px;
    border-radius:99px;
    background:rgba(255,255,255,.08);
    overflow:hidden;
  }

  .venue-bar i{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#8f1022,#ff5268);
  }

  .alert-row{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    padding:9px;
    border-radius:12px;
    background:rgba(255,255,255,.025);
    border:1px solid rgba(255,255,255,.045);
  }

  .alert-row em{
    flex:0 0 auto;
    font-style:normal;
    font-size:.68rem;
    padding:4px 8px;
    border-radius:99px;
    color:#ffbf35;
    background:rgba(255,180,0,.12);
  }

}

@media (max-width: 900px){
  .dash-enterprise{
    display:grid;
    gap:12px;
  }

  .dash-hero,
  .dash-kpi,
  .dash-panel{
    border-radius:18px;
  }

  .dash-hero{
    padding:14px;
    background:rgba(23,23,36,.95);
    border:1px solid var(--border);
  }

  .dash-hero-actions{
    display:grid;
    gap:8px;
    margin-top:12px;
  }

  .dash-kpi-grid,
  .dash-grid-main{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }

  .dash-kpi{
    display:flex;
    gap:12px;
    padding:14px;
    background:rgba(23,23,36,.95);
    border:1px solid var(--border);
    border-radius:18px;
  }

  .dash-kpi-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:rgba(255,255,255,.06);
  }

  .activity-row,
  .alert-row,
  .venue-row{
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.06);
    border-radius:14px;
    padding:10px;
  }
}




/* ===== INVENTORY PRO V4.4 ===== */

@media (min-width: 901px){

  /* Inventory shell */
  #content > section.card{
    background:
      radial-gradient(circle at top right, rgba(226,47,68,.065), transparent 32%),
      linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
    border-color:rgba(255,255,255,.08);
  }

  #content > section.card > h2{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:1.05rem;
    letter-spacing:.01em;
  }

  #content > section.card > h2::before{
    content:"";
    width:8px;
    height:20px;
    border-radius:99px;
    background:linear-gradient(180deg,#ff5268,#8f1022);
    box-shadow:0 0 18px rgba(226,47,68,.55);
  }

  /* Toolbar / filters */
  #content .toolbar{
    display:grid;
    grid-template-columns:auto auto 1fr 190px 190px 170px;
    gap:8px;
    align-items:center;
  }

  #content .toolbar .btn{
    white-space:nowrap;
  }

  #content .toolbar input,
  #content .toolbar select{
    height:36px;
    background:rgba(7,7,12,.88);
    border-color:rgba(255,255,255,.09);
  }

  #content .toolbar input:focus,
  #content .toolbar select:focus,
  input:focus,
  select:focus,
  textarea:focus{
    outline:none;
    border-color:rgba(226,47,68,.65);
    box-shadow:0 0 0 3px rgba(226,47,68,.12);
  }

  /* Table */
  .tablewrap{
    max-height:calc(100vh - 295px);
    overflow:auto;
    background:rgba(7,7,12,.38);
    border-color:rgba(255,255,255,.075);
  }

  .tablewrap table{
    border-collapse:separate;
    border-spacing:0;
  }

  .tablewrap thead th{
    position:sticky;
    top:0;
    z-index:5;
    background:rgba(12,12,18,.98);
    backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,.10);
    color:#9ea2b7;
  }

  .tablewrap tbody tr{
    transition:background .16s ease, transform .16s ease, box-shadow .16s ease;
  }

  .tablewrap tbody tr:hover{
    background:rgba(255,255,255,.035);
    box-shadow:inset 3px 0 0 rgba(226,47,68,.72);
  }

  .tablewrap td{
    border-bottom:1px solid rgba(255,255,255,.06);
  }

  .tablewrap td:nth-child(1){
    color:#d8dbe9;
    font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size:.74rem;
  }

  .tablewrap td:nth-child(2) b{
    font-size:.86rem;
    color:#fff;
  }

  .tablewrap td:nth-child(2) .small{
    color:#8e93aa;
  }

  .tablewrap td:nth-child(5){
    font-weight:900;
    color:#fff;
  }

  /* Status badges */
  .badge{
    position:relative;
    gap:5px;
    align-items:center;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.07);
    color:#eef0f8;
  }

  .badge::before{
    content:"";
    width:6px;
    height:6px;
    border-radius:999px;
    background:#44d98f;
    box-shadow:0 0 10px rgba(68,217,143,.7);
  }

  .badge.bad::before,
  .bad .badge::before{
    background:#ff4e4e;
    box-shadow:0 0 10px rgba(255,78,78,.7);
  }

  td .badge:has(+ *){}

  /* Actions */
  .actions{
    justify-content:flex-start;
    align-items:center;
  }

  .actions .btn{
    min-height:24px;
    border:1px solid rgba(255,255,255,.07);
    background:rgba(255,255,255,.07);
    color:#f5f5f7;
    box-shadow:none;
  }

  .actions .btn:hover{
    transform:translateY(-1px);
    background:rgba(255,255,255,.12);
  }

  .actions .btn:first-child{
    background:rgba(255,255,255,.04);
  }

  .actions .btn:nth-child(2){
    background:rgba(226,47,68,.78);
  }

  .actions .btn.warn{
    background:rgba(255,180,0,.62);
    color:#fff;
  }

  .actions .btn.bad{
    background:rgba(255,78,78,.62);
  }

  .actions .btn.secondary{
    background:rgba(91,96,122,.62);
  }

  /* Modal polish */
  .modal.card{
    background:
      radial-gradient(circle at top right, rgba(226,47,68,.09), transparent 32%),
      rgba(18,18,28,.98);
    border-color:rgba(255,255,255,.10);
  }

  .modal h2{
    font-size:1.12rem;
  }

  .field label{
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
}

/* Wider inventory table behavior */
@media (min-width: 1200px){
  .tablewrap{
    max-height:calc(100vh - 280px);
  }

  th:nth-child(1),
  td:nth-child(1){
    width:25%;
  }

  th:nth-child(2),
  td:nth-child(2){
    width:24%;
  }

  th:nth-child(7),
  td:nth-child(7){
    width:18%;
  }
}

/* Compact laptop fix */
@media (min-width:901px) and (max-width:1250px){
  #content .toolbar{
    grid-template-columns:1fr 1fr;
  }

  .tablewrap{
    max-height:calc(100vh - 330px);
  }
}




/* ===== CALENDAR ENTERPRISE V5 ===== */

.calendar-enterprise{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:14px;
}

.calendar-sidebar{
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:16px;
  background:
    radial-gradient(circle at top right, rgba(226,47,68,.08), transparent 36%),
    rgba(18,18,28,.96);
  display:grid;
  gap:14px;
  align-content:start;
}

.calendar-mini-profile{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border-radius:14px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
}

.calendar-mini-avatar{
  width:42px;
  height:42px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#8f1022,#ff5268);
  color:white;
  font-weight:900;
}

.calendar-mini-profile b{
  display:block;
}

.calendar-mini-profile span{
  color:var(--muted);
  font-size:.72rem;
}

.calendar-group-block{
  display:grid;
  gap:8px;
  padding:12px;
  border-radius:14px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
}

.calendar-group-block h4{
  margin:0 0 6px;
  color:var(--muted);
  font-size:.68rem;
  letter-spacing:.14em;
}

.calendar-group-block label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.82rem;
}

.calendar-main{
  display:grid;
  gap:12px;
}

.calendar-topbar{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at top right, rgba(226,47,68,.08), transparent 32%),
    rgba(18,18,28,.96);
}

.calendar-topbar h2{
  margin:0;
}

.calendar-topbar p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:.8rem;
}

.calendar-grid{
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  overflow:hidden;
  background:rgba(18,18,28,.96);
}

.calendar-days-header{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  background:rgba(255,255,255,.03);
  border-bottom:1px solid rgba(255,255,255,.06);
}

.calendar-days-header span{
  padding:12px;
  text-align:center;
  font-size:.74rem;
  color:var(--muted);
  font-weight:700;
  letter-spacing:.06em;
}

.calendar-days{
  display:grid;
  grid-template-columns:repeat(7,1fr);
}

.calendar-day{
  min-height:140px;
  border-right:1px solid rgba(255,255,255,.04);
  border-bottom:1px solid rgba(255,255,255,.04);
  padding:8px;
  transition:.16s ease;
}

.calendar-day:hover{
  background:rgba(255,255,255,.025);
}

.calendar-day.active{
  background:rgba(226,47,68,.05);
}

.calendar-day-number{
  font-size:.76rem;
  color:var(--muted);
  margin-bottom:8px;
}

.calendar-event{
  display:grid;
  gap:2px;
  padding:6px 8px;
  border-radius:10px;
  margin-bottom:6px;
  font-size:.7rem;
  color:white;
}

.calendar-event.red{ background:linear-gradient(135deg,#8f1022,#ff5268); }
.calendar-event.blue{ background:linear-gradient(135deg,#2952cc,#78a5ff); }
.calendar-event.green{ background:linear-gradient(135deg,#128a58,#44d98f); }
.calendar-event.amber{ background:linear-gradient(135deg,#996400,#ffbf35); }

@media(max-width:900px){
  .calendar-enterprise{
    grid-template-columns:1fr;
  }

  .calendar-days-header{
    display:none;
  }

  .calendar-days{
    grid-template-columns:1fr;
  }

  .calendar-day{
    min-height:auto;
  }
}




/* ===== CALENDAR ENTERPRISE V5.1 RESPONSIVE SIZE FIX ===== */
/* Corrige el calendario demasiado pequeño y devuelve escala visual normal. */

@media (min-width: 901px){

  body{
    font-size:15px;
  }

  .shell{
    grid-template-columns:260px minmax(0,1fr);
  }

  .side{
    width:260px;
    padding:16px;
  }

  .brand-block .logo{
    width:175px;
  }

  .main{
    padding:18px;
  }

  .top{
    min-height:62px;
    padding:14px 18px;
    margin-bottom:16px;
  }

  .top b{
    font-size:1.02rem;
  }

  .top .small{
    font-size:.82rem;
  }

  .calendar-enterprise{
    grid-template-columns:310px minmax(0,1fr);
    gap:18px;
    min-height:calc(100vh - 120px);
  }

  .calendar-sidebar{
    padding:18px;
    border-radius:20px;
    gap:16px;
  }

  .calendar-mini-profile{
    padding:13px;
  }

  .calendar-mini-avatar{
    width:48px;
    height:48px;
    font-size:1.1rem;
  }

  .calendar-mini-profile b{
    font-size:.95rem;
  }

  .calendar-mini-profile span{
    font-size:.78rem;
  }

  .calendar-sidebar .btn,
  .calendar-create-btn{
    min-height:42px;
    font-size:.9rem;
  }

  .calendar-group-block{
    padding:14px;
    gap:10px;
  }

  .calendar-group-block h4{
    font-size:.72rem;
    margin-bottom:8px;
  }

  .calendar-group-block label{
    font-size:.9rem;
  }

  .calendar-topbar{
    padding:18px 22px;
    border-radius:20px;
    min-height:74px;
  }

  .calendar-topbar h2{
    font-size:1.45rem;
  }

  .calendar-topbar p{
    font-size:.88rem;
  }

  .calendar-grid{
    border-radius:20px;
  }

  .calendar-days-header span{
    padding:14px 10px;
    font-size:.82rem;
  }

  .calendar-day{
    min-height:155px;
    padding:10px;
  }

  .calendar-day-number{
    font-size:.86rem;
    margin-bottom:10px;
  }

  .calendar-event{
    padding:8px 10px;
    border-radius:11px;
    margin-bottom:7px;
    font-size:.78rem;
    line-height:1.2;
  }

  .calendar-event b{
    font-size:.72rem;
  }

  .calendar-event span{
    font-size:.78rem;
  }
}

/* Pantallas grandes: usar mejor el espacio sin miniaturizar */
@media (min-width: 1500px){

  .shell{
    grid-template-columns:280px minmax(0,1fr);
  }

  .side{
    width:280px;
  }

  .calendar-enterprise{
    grid-template-columns:330px minmax(0,1fr);
  }

  .calendar-day{
    min-height:165px;
  }
}

/* Portátiles y pantallas 1366-1440: mantener legibilidad */
@media (min-width:901px) and (max-width:1450px){

  .shell{
    grid-template-columns:245px minmax(0,1fr);
  }

  .side{
    width:245px;
    padding:14px;
  }

  .brand-block .logo{
    width:160px;
  }

  .main{
    padding:14px;
  }

  .calendar-enterprise{
    grid-template-columns:285px minmax(0,1fr);
    gap:14px;
  }

  .calendar-day{
    min-height:135px;
  }

  .calendar-topbar h2{
    font-size:1.25rem;
  }
}

/* Evitar que Chrome devtools/zoom estrecho haga todo microscópico */
@media (min-width:901px) and (max-width:1150px){

  .calendar-enterprise{
    grid-template-columns:1fr;
  }

  .calendar-sidebar{
    grid-template-columns:1fr 1fr;
    align-items:start;
  }

  .calendar-mini-profile,
  .calendar-sidebar .btn{
    grid-column:auto;
  }

  .calendar-days{
    min-width:980px;
  }

  .calendar-grid{
    overflow:auto;
  }
}




/* ===== CALENDAR ENTERPRISE V6 GROUPS ===== */
.calendar-block-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.calendar-group-list{display:grid;gap:7px}
.cal-group{border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.035);overflow:hidden}
.cal-group summary{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center;padding:9px;cursor:pointer;list-style:none}
.cal-group summary::-webkit-details-marker{display:none}
.cal-color{width:9px;height:9px;border-radius:99px;box-shadow:0 0 12px currentColor}
.cal-group summary b{font-size:.78rem;letter-spacing:.02em}
.calendar-group-tools{display:flex;gap:4px}
.calendar-group-tools button,.cal-subgroup button,.mini-admin-btn{border:0;border-radius:7px;padding:3px 6px;background:rgba(255,255,255,.08);color:var(--text);font-size:.7rem}
.cal-subgroups{display:grid;gap:3px;padding:0 8px 8px 28px;max-height:135px;overflow:auto}
.cal-subgroup{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:5px 7px;border-radius:7px;color:var(--muted);font-size:.68rem;background:rgba(0,0,0,.12)}
.calendar-role{padding:8px 10px;border-radius:10px;font-size:.76rem;font-weight:700}
.calendar-role.admin{background:rgba(226,47,68,.14);color:#ff6b7c}
.calendar-role.editor{background:rgba(68,217,143,.12);color:#44d98f}
.calendar-role.viewer{background:rgba(88,144,255,.12);color:#78a5ff}
.calendar-event small{display:block;opacity:.78;font-size:.62rem;margin-top:2px}
@media(min-width:901px){.calendar-enterprise{grid-template-columns:340px minmax(0,1fr)}.calendar-day{min-height:155px}}




/* ===== CALENDAR ENTERPRISE V6.1 GROUPS + SCALE FIX ===== */

@media(min-width:901px){
  .calendar-v61.calendar-enterprise{
    grid-template-columns:320px minmax(0,1fr);
    gap:14px;
    min-height:auto;
  }

  .calendar-v61 .calendar-sidebar{
    align-self:start;
    max-height:none;
    overflow:visible;
    padding:14px;
  }

  .calendar-v61 .calendar-calendarios{
    max-height:none;
    overflow:visible;
  }

  .calendar-v61 .calendar-group-list{
    display:grid;
    gap:6px;
    max-height:none;
    overflow:visible;
  }

  .calendar-v61 .cal-group{
    border:1px solid rgba(255,255,255,.075);
    border-radius:10px;
    background:rgba(255,255,255,.035);
    overflow:hidden;
  }

  .calendar-v61 .cal-group summary{
    display:grid;
    grid-template-columns:14px 10px 1fr 18px auto;
    gap:7px;
    align-items:center;
    padding:8px 9px;
    min-height:34px;
    cursor:pointer;
    list-style:none;
  }

  .calendar-v61 .cal-group summary::-webkit-details-marker{
    display:none;
  }

  .calendar-v61 .cal-arrow{
    color:var(--muted);
    font-size:.7rem;
    transition:transform .15s ease;
  }

  .calendar-v61 .cal-group[open] .cal-arrow{
    transform:rotate(90deg);
  }

  .calendar-v61 .cal-color{
    width:8px;
    height:8px;
    border-radius:50%;
  }

  .calendar-v61 .cal-group summary b{
    font-size:.77rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .calendar-v61 .calendar-group-tools{
    display:flex;
    gap:4px;
  }

  .calendar-v61 .calendar-group-tools button,
  .calendar-v61 .cal-subgroup button,
  .calendar-v61 .mini-admin-btn{
    border:0;
    border-radius:7px;
    padding:3px 6px;
    background:rgba(255,255,255,.08);
    color:var(--text);
    font-size:.68rem;
  }

  .calendar-v61 .cal-subgroups{
    display:grid;
    gap:3px;
    padding:0 8px 8px 28px;
    max-height:none;
    overflow:visible;
  }

  .calendar-v61 .cal-subgroup{
    display:grid;
    grid-template-columns:1fr auto;
    gap:6px;
    align-items:center;
    min-height:26px;
    padding:4px 6px;
    border-radius:7px;
    background:rgba(0,0,0,.12);
  }

  .calendar-v61 .cal-subgroup label{
    display:flex;
    gap:7px;
    align-items:center;
    min-width:0;
    font-size:.68rem;
    color:var(--muted);
  }

  .calendar-v61 .cal-subgroup span{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .calendar-v61 .calendar-role-box{
    display:none;
  }

  .calendar-v61 .calendar-topbar{
    min-height:58px;
    padding:12px 16px;
  }

  .calendar-v61 .calendar-topbar h2{
    font-size:1.15rem;
  }

  .calendar-v61 .calendar-topbar p{
    font-size:.76rem;
  }

  .calendar-v61 .calendar-days-header span{
    padding:9px 8px;
    font-size:.72rem;
  }

  .calendar-v61 .calendar-day{
    min-height:112px;
    padding:7px;
  }

  .calendar-v61 .calendar-day-number{
    font-size:.72rem;
    margin-bottom:6px;
  }

  .calendar-v61 .calendar-event{
    padding:5px 7px;
    border-radius:8px;
    margin-bottom:5px;
    font-size:.66rem;
  }

  .calendar-v61 .calendar-event b{
    font-size:.62rem;
  }

  .calendar-v61 .calendar-event span{
    font-size:.67rem;
  }

  .calendar-v61 .calendar-event small{
    font-size:.58rem;
    opacity:.78;
  }
}

@media(min-width:1500px){
  .calendar-v61.calendar-enterprise{
    grid-template-columns:335px minmax(0,1fr);
  }

  .calendar-v61 .calendar-day{
    min-height:120px;
  }
}

@media(min-width:901px) and (max-width:1200px){
  .calendar-v61.calendar-enterprise{
    grid-template-columns:1fr;
  }

  .calendar-v61 .calendar-sidebar{
    display:block;
  }

  .calendar-v61 .calendar-days{
    min-width:920px;
  }

  .calendar-v61 .calendar-grid{
    overflow:auto;
  }
}




/* ===== CALENDAR V6.2 CHECK ALIGN + GOOGLE SYNC ===== */

.calendar-v62 .cal-subgroups{
  padding-left:24px;
}

.calendar-v62 .cal-subgroup{
  grid-template-columns:minmax(0,1fr) auto;
}

.calendar-v62 .cal-subgroup label{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  gap:8px;
  align-items:center;
  width:100%;
}

.calendar-v62 .cal-subgroup input[type="checkbox"],
.calendar-v62 .cal-group summary input[type="checkbox"]{
  width:14px;
  height:14px;
  margin:0;
  justify-self:start;
  accent-color:#e22f44;
}

.calendar-v62 .cal-subgroup span{
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.2;
}

.google-sync-box{
  border-color:rgba(66,133,244,.22);
  background:
    radial-gradient(circle at top right, rgba(66,133,244,.12), transparent 40%),
    rgba(255,255,255,.03);
}

.google-sync-state{
  font-size:.68rem;
  padding:3px 7px;
  border-radius:99px;
  color:#8ab4f8;
  background:rgba(66,133,244,.12);
}

.google-sync-box .btn{
  min-height:32px;
}

.google-sync-box .bad{
  color:#ff6b7c;
}

.calendar-v62 .calendar-event{
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}

@media(min-width:901px){
  .calendar-v62 .calendar-sidebar{
    width:auto;
  }
}



/* ===== CALENDAR ENTERPRISE V7 FINAL BASE ===== */
.calendar-v7 .calendar-topbar{padding:13px 16px}
.calendar-v7 .calendar-actions{display:flex;gap:7px;align-items:center}
.calendar-v7 .calendar-days{grid-template-columns:repeat(7,minmax(120px,1fr))}
.calendar-v7 .calendar-day{min-height:116px}
.calendar-v7 .calendar-day.muted-month{opacity:.38;background:rgba(255,255,255,.012)}
.calendar-v7 .calendar-day.active{box-shadow:inset 0 0 0 1px rgba(226,47,68,.6)}
.calendar-v7 .google-event{cursor:pointer}
.calendar-v7 .calendar-more{color:var(--muted);font-size:.62rem;padding:2px 4px}
.calendar-v7 .cal-subgroups{padding-left:24px}
.calendar-v7 .cal-subgroup label{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:center;width:100%}
.calendar-v7 .cal-subgroup input[type="checkbox"],.calendar-v7 .cal-group summary input[type="checkbox"]{width:14px;height:14px;margin:0;justify-self:start;accent-color:#e22f44}
.calendar-v7 .cal-subgroup span{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-v7 .google-sync-box{border-color:rgba(66,133,244,.22);background:radial-gradient(circle at top right, rgba(66,133,244,.12), transparent 40%),rgba(255,255,255,.03)}
.calendar-v7 .google-sync-state{font-size:.68rem;padding:3px 7px;border-radius:99px;color:#8ab4f8;background:rgba(66,133,244,.12)}
@media(min-width:901px){.calendar-v7.calendar-enterprise{grid-template-columns:330px minmax(0,1fr)}.calendar-v7 .calendar-grid{overflow:auto}}



/* ===== CALENDAR ENTERPRISE V8 COMPACT REACTIVE VIEWS ===== */
.calendar-v8{grid-template-columns:320px minmax(0,1fr)}
.calendar-v8 .calendar-sidebar{padding:12px;gap:10px}
.calendar-v8 .calendar-mini-profile{padding:8px}
.calendar-v8 .calendar-group-block{padding:10px}
.calendar-v8 .calendar-view-tabs{display:flex;gap:6px;padding:6px;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:rgba(255,255,255,.025)}
.calendar-v8 .calendar-view-tabs button{border:0;border-radius:10px;background:transparent;color:var(--muted);padding:7px 10px;font-size:.76rem;cursor:pointer}
.calendar-v8 .calendar-view-tabs button.active{background:rgba(226,47,68,.22);color:white}
.calendar-v8 .calendar-topbar{min-height:56px;padding:10px 14px}
.calendar-v8 .calendar-topbar h2{font-size:1.08rem}
.calendar-v8 .calendar-topbar p{font-size:.72rem}
.calendar-v8 .calendar-actions .btn{min-height:30px;padding:5px 9px;font-size:.72rem}
.calendar-v8 .calendar-month-view .calendar-days-header span{padding:7px 6px;font-size:.68rem}
.calendar-v8 .calendar-month-view .calendar-day{min-height:82px;padding:5px}
.calendar-v8 .calendar-day-number{font-size:.66rem;margin-bottom:4px}
.calendar-v8 .calendar-event{display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px;align-items:center;min-height:17px;padding:2px 5px;border-radius:6px;margin-bottom:3px;font-size:.58rem;line-height:1.05}
.calendar-v8 .calendar-event b{font-size:.55rem;opacity:.9}
.calendar-v8 .calendar-event span{font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-v8 .calendar-more{font-size:.56rem;color:var(--muted)}
.calendar-v8 .cal-subgroup label{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:center;width:100%}
.calendar-v8 .cal-subgroup input[type="checkbox"],.calendar-v8 .cal-group summary input[type="checkbox"]{width:14px;height:14px;margin:0;justify-self:start;accent-color:#e22f44}
.calendar-week-view{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:8px;overflow:auto}
.week-col{border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:8px;background:rgba(18,18,28,.92);min-height:420px}
.week-col h4{margin:0 0 8px;font-size:.76rem;color:var(--muted)}
.calendar-day-view,.calendar-agenda-view{border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:12px;background:rgba(18,18,28,.92)}
.day-agenda{display:grid;gap:5px}
.calendar-year-view{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.year-month{border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px;background:rgba(18,18,28,.92);cursor:pointer}
.year-month b{display:block}.year-month span{color:var(--muted);font-size:.75rem}
.agenda-row{display:grid;gap:3px;padding:8px;border-bottom:1px solid rgba(255,255,255,.06)}
.agenda-row b{font-size:.82rem}.agenda-row span{color:var(--muted);font-size:.72rem}
@media(min-width:901px){.calendar-v8 .calendar-grid{overflow:hidden}}
@media(max-width:900px){.calendar-v8{grid-template-columns:1fr}.calendar-year-view{grid-template-columns:repeat(2,1fr)}}

/* ===== OLYMPIA V95 — TIPOGRAFÍA INTER GLOBAL =====
   Ajustes finos de pesos y letter-spacing para que Inter Light se vea
   profesional en toda la app (botones, headings, números). Antes los
   font-weights 700-900 daban efecto "masa blanca" con Inter.
*/

body, button, input, select, textarea{
  font-family:"Inter","Segoe UI Variable","Segoe UI",system-ui,-apple-system,sans-serif !important;
  font-synthesis:none;
}

h1, h2, h3, h4{
  font-weight:500 !important;
  letter-spacing:-.01em;
}

.btn{
  font-weight:500 !important;
  letter-spacing:.015em !important;
}

.num{
  font-weight:300 !important;
  letter-spacing:-.02em !important;
}

th{
  font-weight:500 !important;
  letter-spacing:.06em !important;
}

.badge{
  font-weight:400 !important;
  letter-spacing:.02em !important;
}

label, .small{
  font-weight:400 !important;
}

/* Hover & focus visibles en botones */
.btn:focus-visible{
  outline:2px solid rgba(226,47,68,.55);
  outline-offset:2px;
}

input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:rgba(226,47,68,.55) !important;
  box-shadow:0 0 0 2px rgba(226,47,68,.18);
}
