:root{--navy:#123b5d;--blue:#1b628a;--green:#16845a;--ink:#26343f;--muted:#6c7882;--bg:#f3f6f8;--white:#fff;--line:#e1e7eb;--shadow:0 18px 50px rgba(18,59,93,.10);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}a{text-decoration:none;color:inherit}.container{width:min(1160px,92%);margin:auto}.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(225,231,235,.8)}.nav{height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.brand img{width:52px;height:52px;object-fit:contain}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1.2px}.brand strong{font-size:18px}.menu{display:flex;align-items:center;gap:20px;font-size:14px;font-weight:700}.menu a:hover{color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:13px;padding:13px 20px;font-weight:800;cursor:pointer;font-size:14px}.btn-primary{background:var(--blue);color:#fff}.btn-green{background:var(--green);color:#fff}.btn-light{background:#fff;color:var(--navy);border:1px solid var(--line)}.hero{min-height:610px;background:linear-gradient(90deg,rgba(9,35,54,.78),rgba(9,35,54,.18)),url('assets/panoramica-frontal.jpg') center/cover;display:flex;align-items:center;color:#fff}.hero-content{max-width:760px;padding:90px 0}.eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;opacity:.9}.hero h1{font-size:clamp(42px,6vw,68px);line-height:1.02;margin:15px 0}.hero p{font-size:20px;max-width:620px;opacity:.92}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.section{padding:75px 0}.section-title{max-width:720px;margin-bottom:34px}.section-title h2{font-size:34px;margin:0 0 8px}.section-title p{color:var(--muted);margin:0}.grid{display:grid;gap:20px}.cards{grid-template-columns:repeat(4,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.card img{width:100%;height:170px;object-fit:cover}.card-body{padding:20px}.card h3{margin:0 0 7px}.card p{margin:0;color:var(--muted);font-size:14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}.split img{width:100%;height:390px;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}.pill{display:inline-flex;padding:7px 11px;border-radius:99px;background:#eaf7f1;color:var(--green);font-size:11px;font-weight:800}.footer{background:#0f2f48;color:#dbe8ef;padding:50px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer small{color:#9eb4c2}.auth-wrap{min-height:calc(100vh - 78px);display:grid;place-items:center;padding:45px 0;background:linear-gradient(135deg,#eaf0f4,#f7fafb)}.auth-card{width:min(470px,92%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.auth-logo{text-align:center}.auth-logo img{width:82px}.auth-card h1{text-align:center;margin:10px 0 5px}.auth-card .sub{text-align:center;color:var(--muted);margin:0 0 25px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.field input{width:100%;padding:14px;border:1px solid #d6dfe5;border-radius:12px;font-size:15px;outline:none}.field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,98,138,.12)}.error{background:#fff0f0;color:#a73434;padding:10px 12px;border-radius:10px;font-size:13px;margin:12px 0}.info{background:#eef6fb;color:#2c5d78;padding:12px 14px;border-radius:12px;font-size:13px}.dashboard{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 78px)}.sidebar{background:#102f48;color:#dbe8ef;padding:25px 16px}.side-brand{padding:0 12px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:15px}.side-brand img{width:54px}.side-link{display:flex;padding:11px 12px;border-radius:11px;font-size:13px;font-weight:700;margin:3px 0}.side-link:hover,.side-link.active{background:rgba(255,255,255,.09);color:#fff}.dash-main{padding:34px}.dash-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.dash-head h1{margin:0;font-size:28px}.muted{color:var(--muted)}.status{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.status-row{display:flex;align-items:center;gap:10px}.dot{width:12px;height:12px;border-radius:50%;background:#d64545}.dot.green{background:#22a06b}.status h2{margin:6px 0}.stats{grid-template-columns:repeat(4,1fr);margin-top:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.stat strong{display:block;font-size:27px}.op-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:20px;margin-top:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.panel h3{margin-top:0}.pilot{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #edf0f2}.pilot:last-child{border-bottom:0}.badge{font-size:11px;font-weight:800;padding:5px 8px;border-radius:8px;background:#eef2f4}.badge.ro{background:#eaf7f1;color:var(--green)}.notice{border-left:4px solid var(--blue);padding:12px 15px;background:#f2f7fa;border-radius:8px;margin:10px 0}.hidden{display:none!important}.mobile-menu{display:none}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}.table th{color:var(--muted)}@media(max-width:950px){.menu{display:none}.mobile-menu{display:block}.cards{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.sidebar{display:none}.dash-main{padding:22px}.stats{grid-template-columns:repeat(2,1fr)}.op-grid,.split{grid-template-columns:1fr}.hero{min-height:560px}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.brand strong{font-size:15px}.cards,.stats,.footer-grid{grid-template-columns:1fr}.hero h1{font-size:44px}.hero p{font-size:17px}.section{padding:55px 0}.dash-head{align-items:flex-start;flex-direction:column}.btn{width:100%}.hero-actions .btn{width:auto}.table{font-size:12px}.table th:nth-child(3),.table td:nth-child(3){display:none}}

.fields-section{background:#eef4f7}.field-cards{grid-template-columns:repeat(2,1fr)}.field-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-columns:1.15fr 1fr}.field-card img{width:100%;height:100%;min-height:310px;object-fit:cover}.field-kicker{font-size:11px;font-weight:800;color:var(--green);letter-spacing:1px}.field-card h3{font-size:24px;margin:5px 0 10px;color:var(--navy)}.maps-btn{margin-top:20px}.maps-btn:hover{transform:translateY(-1px)}
@media(max-width:950px){.field-cards{grid-template-columns:1fr}.field-card{grid-template-columns:1fr}.field-card img{height:240px;min-height:0}}

/* Ajuste visual FASE 1: navegación y pie de página */
.menu a{font-size:14px}.menu .btn{padding:14px 22px}.footer-grid{grid-template-columns:1.15fr .85fr 1.4fr}.footer .maps-btn{display:inline-flex;width:auto}

/* Actividades: aviones y veleros unificados */
.activities-grid{grid-template-columns:repeat(4,1fr)}
.activity-feature{grid-column:span 2}
.activity-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef2f4}
.activity-photo-pair img{width:100%;height:220px;object-fit:cover}
.activity-feature .card-body{min-height:130px}
@media(max-width:950px){.activities-grid{grid-template-columns:repeat(2,1fr)}.activity-feature{grid-column:span 2}.activity-photo-pair img{height:210px}}
@media(max-width:560px){.activities-grid{grid-template-columns:1fr}.activity-feature{grid-column:span 1}.activity-photo-pair img{height:180px}}

/* Ajustes finales de presentación pública */
.footer-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:10px}.footer-field-pair p{margin:8px 0 0}.footer-field-pair .maps-btn{margin-top:10px;padding:10px 13px;font-size:12px}.footer-fields>strong{display:block;margin-bottom:4px}
@media(max-width:950px){.footer-field-pair{gap:16px}}
@media(max-width:560px){.footer-field-pair{grid-template-columns:1fr;gap:8px}}
.activity-photo-pair{grid-template-columns:1fr 1fr;gap:6px}.activity-photo-pair img{height:220px;display:block}

/* Corrección final: pie compacto con los dos campos en columnas independientes */
.footer-grid{grid-template-columns:1.35fr .9fr 1.15fr 1.15fr;gap:24px;align-items:start}
.footer-field p{margin:8px 0 10px}
.footer-field .maps-btn{display:inline-flex;width:auto;padding:10px 13px;font-size:12px}
/* Actividades: dos fotografías de aviones realmente juntas */
.activity-photo-pair{grid-template-columns:1fr 1fr;gap:6px}
.activity-photo-pair img{height:230px}
@media(max-width:950px){.footer-grid{grid-template-columns:1fr 1fr}.activity-photo-pair img{height:210px}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr}.activity-photo-pair{grid-template-columns:1fr 1fr}.activity-photo-pair img{height:180px}}

/* Acceso de socios: contraseña visible y recuperación */
.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:transparent;border-radius:9px;cursor:pointer;font-size:18px}.password-toggle:hover{background:#eef2f4}.reset-link{display:block;margin:12px auto 0;border:0;background:transparent;color:var(--blue);font-weight:800;font-size:12px;cursor:pointer}.reset-link:hover{text-decoration:underline}.reset-link:disabled{opacity:.55;cursor:not-allowed}

/* Área de socios: vista compacta para mostrar más información en pantalla */
.portal-compact{padding-top:22px;padding-bottom:24px}.portal-compact .dash-head{margin-bottom:16px}.portal-compact .dash-head h1{font-size:24px}.portal-compact .dash-head p{font-size:13px}.portal-compact .status{padding:17px 20px;border-radius:18px}.portal-compact .status h2{font-size:19px;margin:4px 0}.portal-compact .status .action-row{margin-top:12px}.portal-compact .stats{gap:14px;margin-top:14px}.portal-compact .stat{padding:14px 16px;border-radius:15px}.portal-compact .stat strong{font-size:22px}.portal-compact .stat .muted{font-size:12px}.portal-compact .op-grid{gap:14px;margin-top:14px}.portal-compact .panel{padding:16px 18px;border-radius:17px}.portal-compact .panel h3{font-size:16px;margin-bottom:7px}.portal-compact .panel p.muted{font-size:12px;margin:5px 0 10px}.portal-compact .pilot{padding:8px 0}.portal-compact .badge{font-size:10px;padding:4px 7px}.portal-compact .btn{padding:10px 15px;font-size:12px}.portal-compact .action-row{gap:8px}
@media(max-width:950px){.portal-compact{padding-top:18px}.portal-compact .op-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.portal-compact .op-grid{grid-template-columns:1fr}}


/* Corrección definitiva: los botones azules mantienen el texto blanco al pasar el ratón. */
.btn.btn-primary:hover,.btn.btn-primary:focus,.btn.btn-primary:active,.menu .btn.btn-primary:hover,.menu .btn.btn-primary:focus,.menu .btn.btn-primary:active{color:#fff !important;background:var(--blue) !important;text-decoration:none !important}


/* REV.56 — optimización móvil de portada y área de operaciones */
@media(max-width:560px){
  body{overflow-x:hidden}
  .topbar .container.nav{padding-left:18px;padding-right:18px;gap:10px;min-height:76px}
  .brand{min-width:0;gap:9px;flex:1}
  .brand img{width:48px;height:48px}
  .brand strong{font-size:13px;line-height:1.08;display:block;white-space:normal}
  .brand small{font-size:9px;letter-spacing:1px;line-height:1.1;display:block;margin-top:3px}
  .mobile-menu{font-size:12px;padding:11px 14px!important;white-space:nowrap;width:auto!important;flex:0 0 auto}
  .hero{min-height:500px}
  .hero-content{padding:58px 0 70px}
  .hero h1{font-size:36px;line-height:1.04;word-break:normal;overflow-wrap:anywhere;max-width:100%}
  .hero p{font-size:16px;line-height:1.35}
  .eyebrow{font-size:10px;letter-spacing:1.4px}
  .hero-actions .btn{font-size:12px;padding:12px 17px}
  .operation-topbar .container.nav{display:flex;flex-wrap:wrap;align-items:center;padding-top:10px;padding-bottom:10px;min-height:0}
  .operation-topbar .brand{flex:1 1 145px}
  .operation-topbar .brand strong{font-size:13px}
  .operation-topbar .brand small{font-size:8px}
  .operation-nav-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:7px!important}
  .operation-nav-actions #memberLabel{grid-column:1 / -1;text-align:left;font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .operation-nav-actions .btn{width:100%!important;padding:9px 8px!important;font-size:10px!important;white-space:nowrap}
  .portal-compact{padding:12px 14px 20px}
  .portal-compact .dash-head{margin-bottom:10px}
  .portal-compact .dash-head .pill{font-size:9px}
  .portal-compact .dash-head h1{font-size:21px}
  .portal-compact .dash-head p{font-size:11px}
}


/* REV.57 — cabeceras móviles sin solapamientos */
@media(max-width:560px){
  .topbar .container.nav{height:auto!important;min-height:0!important;}
  .topbar:not(.operation-topbar) .container.nav{flex-wrap:nowrap;align-items:center;}
  .topbar:not(.operation-topbar) .container.nav .btn{width:auto!important;flex:0 0 auto;padding:10px 13px!important;font-size:11px!important;white-space:nowrap;}
  .topbar:not(.operation-topbar) .brand{min-width:0;flex:1 1 auto;}
  .topbar:not(.operation-topbar) .brand strong{font-size:13px;line-height:1.05;}
  .topbar:not(.operation-topbar) .brand small{font-size:8px;}
  .operation-topbar .container.nav{height:auto!important;min-height:0!important;display:flex;flex-wrap:wrap;align-items:center;padding-top:9px;padding-bottom:9px;}
  .operation-topbar .brand{flex:1 1 170px;min-width:150px;}
  .operation-topbar .operation-nav-actions{width:100%;}
  .operation-topbar .operation-nav-actions .btn{width:100%!important;}
  .operation-topbar + .dash-main{padding-top:14px;}
}

/* REV.60 — mejora específica para móvil: Registro de Operaciones
   Todo este bloque está limitado a pantallas de 700px o menos. */
@media (max-width:700px){
  /* Cabecera más limpia y compacta */
  .operation-topbar .container.nav{
    padding:8px 12px 9px!important;
    gap:8px;
  }
  .operation-topbar .brand img{width:43px;height:43px}
  .operation-topbar .brand strong{font-size:12px!important}
  .operation-topbar .brand small{font-size:8px!important}
  .operation-nav-actions{gap:6px!important}
  .operation-nav-actions #memberLabel{
    font-size:10px!important;
    padding:0 2px;
  }
  .operation-nav-actions .btn{
    min-height:40px;
    font-size:11px!important;
    padding:9px 6px!important;
    border-radius:10px;
  }

  /* Contenido principal: máximo aprovechamiento de la pantalla */
  .portal-compact{
    width:100%;
    padding:10px 10px 22px!important;
  }
  .portal-compact .dash-head{
    margin-bottom:9px;
    padding:0 3px;
  }
  .portal-compact .dash-head .pill{
    font-size:8px;
    padding:5px 8px;
    letter-spacing:.2px;
  }
  .portal-compact .dash-head h1{
    font-size:20px!important;
    line-height:1.15;
    margin-top:5px;
  }
  .portal-compact .dash-head p{
    font-size:10px!important;
    margin-top:3px;
    line-height:1.3;
  }

  /* Estado de la jornada */
  .portal-compact .status{
    padding:15px 13px!important;
    border-radius:16px;
    box-shadow:0 8px 24px rgba(18,59,93,.08);
  }
  .portal-compact .status-row{
    gap:8px;
    font-size:13px;
  }
  .portal-compact .dot{width:11px;height:11px;flex:0 0 11px}
  .portal-compact .status h2{
    font-size:18px!important;
    line-height:1.2;
    margin:5px 0 2px!important;
  }
  .portal-compact .status > .muted{
    font-size:11px;
  }

  /* Botones principales: grandes y fáciles de pulsar con el dedo */
  .portal-compact .status .action-row{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:11px;
  }
  .portal-compact .status .action-row .btn{
    width:100%!important;
    min-height:46px;
    padding:11px 10px!important;
    font-size:12px!important;
    border-radius:11px;
  }
  .portal-compact .status .action-row #historyLink{
    min-height:40px;
  }

  /* Mensajes de error/confirmación legibles sin ocupar demasiado */
  .portal-compact .error{
    font-size:12px;
    margin:10px 0 0;
    padding:9px 10px;
  }

  /* Resumen de la jornada en 2 x 2 */
  .portal-compact .stats{
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:9px;
  }
  .portal-compact .stat{
    min-height:72px;
    padding:11px 12px!important;
    border-radius:13px;
  }
  .portal-compact .stat .muted{
    font-size:10px!important;
    line-height:1.2;
  }
  .portal-compact .stat strong{
    font-size:20px!important;
    line-height:1.2;
    margin-top:3px;
  }

  /* Socios presentes y gestión */
  .portal-compact .op-grid{
    grid-template-columns:1fr!important;
    gap:9px;
    margin-top:9px;
  }
  .portal-compact .panel{
    padding:14px 13px!important;
    border-radius:16px;
  }
  .portal-compact .panel h3{
    font-size:15px!important;
    margin-bottom:6px;
  }
  .portal-compact .panel p.muted{
    font-size:11px!important;
    line-height:1.4;
  }

  /* Cada socio ocupa una fila cómoda para consultar con el dedo */
  .portal-compact .pilot{
    min-height:54px;
    padding:9px 0;
    gap:8px;
  }
  .portal-compact .pilot > span:first-child{
    min-width:0;
    flex:1;
  }
  .portal-compact .pilot strong{
    font-size:13px;
    line-height:1.2;
  }
  .portal-compact .pilot small{
    font-size:10px;
    line-height:1.2;
  }
  .portal-compact .badge{
    flex:0 0 auto;
    font-size:9px!important;
    padding:5px 6px!important;
    white-space:nowrap;
  }

  /* Cierre de jornada: botón claramente separado */
  .portal-compact #closeOperation{
    width:100%!important;
    min-height:46px;
    font-size:12px!important;
    border-radius:11px;
  }
  .portal-compact .confirm{
    padding:12px;
    margin-top:10px;
    border-radius:12px;
  }
  .portal-compact .confirm .action-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  .portal-compact .confirm .action-row .btn{
    width:100%!important;
    min-height:42px;
    padding:9px 6px!important;
    font-size:11px!important;
  }
}

/* En teléfonos muy estrechos, priorizamos legibilidad sobre información secundaria. */
@media (max-width:380px){
  .operation-topbar .operation-nav-actions .btn{font-size:10px!important}
  .portal-compact .dash-head h1{font-size:19px!important}
  .portal-compact .status h2{font-size:17px!important}
  .portal-compact .stat strong{font-size:18px!important}
  .portal-compact .pilot strong{font-size:12px}
}

/* =========================================================
   REV.61 — MEJORA EXCLUSIVA PARA MÓVIL · MI LICENCIA
   No afecta a pantallas de PC.
   ========================================================= */
@media (max-width: 768px){
  .license-wrap{max-width:none;margin:0;padding:0 2px}
  .license-panel{
    padding:16px 10px!important;
    border-radius:16px!important;
    box-shadow:none!important;
  }
  .license-panel h1{
    font-size:23px!important;
    margin-bottom:5px!important;
  }
  .license-panel > p.muted{
    font-size:12px!important;
    line-height:1.35!important;
    margin:0 0 12px!important;
  }
  .license-thumb{
    width:100%!important;
    max-height:none!important;
    margin:8px auto 12px!important;
    border-radius:10px!important;
  }
  .license-empty{
    padding:28px 12px!important;
    margin-bottom:12px!important;
    border-radius:12px!important;
    font-size:13px!important;
  }
  .license-actions{
    display:block!important;
    margin:8px 0 12px!important;
  }
  .license-actions .btn{
    width:100%!important;
    min-height:46px!important;
    font-size:12px!important;
    border-radius:11px!important;
  }
  .license-upload{
    margin-top:12px!important;
    padding:14px 10px!important;
    border-radius:12px!important;
  }
  .license-upload strong{
    display:block;
    font-size:13px!important;
    line-height:1.3!important;
  }
  .license-help{
    font-size:11px!important;
    line-height:1.35!important;
    margin:6px 0 9px!important;
  }
  .license-upload input[type="file"]{
    display:block;
    width:100%!important;
    box-sizing:border-box;
    font-size:12px!important;
    margin:7px auto 11px!important;
  }
  .license-upload .btn{
    width:100%!important;
    min-height:46px!important;
    font-size:12px!important;
    border-radius:11px!important;
  }
  .license-modal{
    padding:8px!important;
  }
  .license-modal img{
    max-width:100vw!important;
    max-height:88vh!important;
    border-radius:4px!important;
  }
  .license-close{
    top:10px!important;
    right:10px!important;
    width:42px!important;
    height:42px!important;
    z-index:102!important;
  }
}

@media (max-width:380px){
  .license-panel{padding:14px 7px!important}
  .license-panel h1{font-size:21px!important}
  .license-upload{padding:12px 8px!important}
}
