:root{--navy:#031827;--navy2:#062b40;--panel:#07364e;--panel2:#0a415b;--line:rgba(95,213,226,.28);--cyan:#34e0e0;--coral:#ff7f54;--orange:#ffae3d;--white:#f7fcff;--muted:#a8c8d3;--green:#35d39b;--red:#ff5c59;--shadow:0 16px 40px rgba(0,7,18,.28)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% 0,#0b4963 0,#031827 56%,#020d16 100%);color:var(--white);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}button,a{font:inherit}button{cursor:pointer}svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.site-shell{min-height:100vh}

.topbar{height:70px;display:flex;align-items:center;padding:6px clamp(18px,3vw,48px);gap:28px;background:#fff;border-bottom:1px solid #d7e6eb;position:sticky;top:0;z-index:50;box-shadow:0 3px 14px rgba(4,40,60,.08)}.brand{display:flex;align-items:center}.brand img{width:235px;height:58px;object-fit:contain}.topbar nav{display:flex;gap:28px;align-items:center;margin-left:auto}.topbar nav a,.topbar nav button,.top-actions a{border:0;background:none;color:#0a3650;text-decoration:none;font-size:13px;font-weight:800;padding:7px 0}.topbar nav a:hover,.topbar nav button:hover,.top-actions a:hover{color:#0aa8b3}.top-actions{display:flex;gap:15px;align-items:center}.top-actions a{font-size:11px}

.approved-hero{width:100%;background:#031827;overflow:hidden}.approved-hero-image{display:block;width:100%;height:auto;max-height:300px;object-fit:cover;object-position:center top}
.activity-strip{width:min(1660px,97vw);margin:0 auto;padding:0 34px 10px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;background:linear-gradient(180deg,#031827,#062b40 94%)}.activity-card{position:relative;border:0;background:none;padding:0;border-radius:13px;overflow:visible;transition:.16s}.activity-card img{display:block;width:100%;height:auto;border-radius:13px}.activity-card:hover{transform:translateY(-2px)}.activity-card.active{box-shadow:0 0 0 2px rgba(71,245,238,.82),0 0 18px rgba(52,224,224,.42);border-radius:13px}.activity-card.active:not(.activity-surf)::after{content:'✓';position:absolute;right:4px;top:3px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#25d5db;color:white;font-size:14px;font-weight:950;box-shadow:0 0 10px rgba(37,213,219,.68)}.surf-active-img{display:none!important}.activity-surf.active .surf-active-img{display:block!important}.activity-surf.active .surf-inactive-img{display:none!important}

.dashboard{width:min(1660px,97vw);margin:0 auto;padding:0 0 18px}.island-panel,.zones-panel{border:1px solid rgba(87,208,222,.34);background:linear-gradient(145deg,rgba(4,35,54,.97),rgba(5,46,67,.96));border-radius:20px;box-shadow:var(--shadow)}.island-panel{display:grid;grid-template-columns:215px 1fr;padding:18px 18px 15px;min-height:180px}.island-intro{padding:8px 15px 0 7px}.island-intro h2,.zones-intro h2{font-style:italic;margin:0;font-size:23px;line-height:1.03}.island-intro p{margin:5px 0 9px;color:#1cd4df;font-size:12px;font-weight:800}.island-intro ul{list-style:none;padding:0;margin:0;display:grid;gap:5px;font-size:11px;color:#d9edf2}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:-1px;background:#768c97}.dot.ready{background:var(--green)}.dot.warn{background:var(--orange)}.dot.wait{background:#7f94a0}.dot.error{background:var(--red)}.island-intro small{display:block;margin-top:10px;color:#83aebb;font-size:9px;line-height:1.35}.island-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.island-card{position:relative;border:1px solid rgba(81,205,220,.30);border-radius:14px;background:linear-gradient(180deg,rgba(10,73,96,.86),rgba(5,36,55,.98));color:#fff;padding:7px 7px 8px;min-width:0;transition:.18s}.island-card:hover{transform:translateY(-2px);border-color:var(--cyan)}.island-card.active{border-color:#3feeee;box-shadow:0 0 0 2px rgba(34,220,226,.26),0 0 20px rgba(27,219,225,.34)}.island-shape{height:76px;display:grid;place-items:center;border-radius:11px;background:radial-gradient(circle at 48% 48%,rgba(23,203,213,.18),rgba(4,42,63,.08) 65%);overflow:hidden}.island-shape svg{width:100%;height:100%;padding:4px;stroke:none;filter:drop-shadow(0 4px 7px rgba(0,0,0,.55))}.island-card strong{display:block;text-align:center;font-size:10px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island-state{display:flex;align-items:center;justify-content:center;margin-top:4px;background:#f3f7f9;color:#173647;border-radius:999px;padding:3px 6px;min-height:21px}.island-state em{font-style:normal;font-size:8px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island-state .dot{width:8px;height:8px;margin-right:4px}

.metric-grid{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:7px;margin-top:8px}.metric-card{position:relative;min-height:116px;border:1px solid rgba(88,206,221,.38);border-radius:14px;color:#fff;text-decoration:none;padding:12px 10px 9px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto auto;align-items:center;text-align:left;overflow:hidden;transition:.18s;grid-column:span 2;background:linear-gradient(145deg,#0b536d,#083b59)}.metric-card.weather-secondary{background:linear-gradient(145deg,#122f49,#0a2239);border-color:rgba(132,172,203,.38)}.metric-card:hover{transform:translateY(-2px);border-color:var(--cyan)}.metric-card.priority{box-shadow:inset 0 0 0 1px rgba(37,225,226,.15)}.metric-card.priority:after{content:'';position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,var(--cyan),transparent)}.metric-card i{grid-row:1/4;font-style:normal;color:#52e5ea;font-size:32px;display:grid;place-items:center}.metric-card.weather-secondary i{color:#b8d9ea}.metric-card.alerts i{color:var(--orange)}.metric-card span{font-size:9px;font-weight:900;letter-spacing:.05em}.metric-card strong{font-size:20px;line-height:1.02;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-card small{font-size:8px;color:#accbd4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-card.tides{grid-column:span 3}.metric-card.radio{grid-column:span 3}.metric-card.alerts.has-alert{border-color:rgba(255,161,42,.7);background:linear-gradient(145deg,#493218,#122d3e)}

.zones-panel{display:grid;grid-template-columns:210px 1fr;gap:12px;margin-top:8px;padding:13px 14px}.zones-intro{padding:4px 8px}.zones-intro p{font-size:10px;color:#c6dce3;line-height:1.45;margin:7px 0 10px}.zones-intro a{display:inline-block;background:#087d96;color:#fff;text-decoration:none;border:1px solid #1ed9e0;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:900}.zone-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.zone-card{position:relative;min-height:132px;border:1px solid rgba(93,211,224,.35);border-radius:13px;overflow:hidden;color:#fff;background:linear-gradient(135deg,#075774,#0b2539);padding:11px;display:flex;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:center}.zone-card:nth-child(1){background-image:url('zone-1.jpg')}.zone-card:nth-child(2){background-image:url('zone-2.jpg')}.zone-card:nth-child(3){background-image:url('zone-3.jpg')}.zone-card:nth-child(4){background-image:url('zone-4.jpg')}.zone-card:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,30,48,.08),rgba(2,20,33,.90) 82%)}.zone-card>*{position:relative}.zone-card.active{border-color:#5cf4ef;box-shadow:0 0 0 2px rgba(80,239,233,.28),0 0 20px rgba(25,214,220,.18)}.zone-card b{position:absolute;top:7px;left:8px;background:#0a7e93;border-radius:999px;padding:4px 7px;font-size:8px}.zone-card strong{font-size:15px;font-style:italic}.zone-card span{font-size:9px;color:#b9dae2}.zone-card small{display:block;margin-top:5px;background:rgba(243,247,248,.92);color:#173746;align-self:flex-start;border-radius:8px;padding:5px 8px;font-weight:850;font-size:8px}.zone-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.zone-actions .zone-select,.zone-actions a{display:grid;place-items:center;text-align:center;text-decoration:none;border-radius:8px;padding:7px 6px;font-size:8px;font-weight:900;border:1px solid rgba(255,255,255,.72)}.zone-actions .zone-select{background:linear-gradient(135deg,#19d9e0,#8ce9e6);color:#083248}.zone-actions a{background:#f3f7f8;color:#173746}.zone-actions a.webcam-link{background:linear-gradient(135deg,#ff8b57,#ffb13f);color:#3a1b07;border-color:#ffc58d}.zone-actions .zone-select:hover,.zone-actions a:hover{transform:translateY(-1px)}

footer{min-height:54px;display:flex;align-items:center;justify-content:center;gap:20px;background:#fff;color:#0b6680;border-top:1px solid #d7e6eb;margin-top:8px;border-radius:0 0 18px 18px;letter-spacing:.18em;font-size:8px}footer img{width:130px;height:42px;object-fit:contain}footer small{color:#5f7f8d}footer b{color:#17afba}

.drawer{position:fixed;inset:0;z-index:100;pointer-events:none}.drawer.open{pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;border:0;background:rgba(0,7,16,.66);opacity:0;transition:.2s}.drawer.open .drawer-backdrop{opacity:1}.drawer-panel{position:absolute;right:0;top:0;height:100%;width:min(760px,92vw);background:#062337;border-left:1px solid var(--line);transform:translateX(100%);transition:.24s;display:flex;flex-direction:column}.drawer.open .drawer-panel{transform:none}.drawer-panel>header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px;border-bottom:1px solid var(--line)}.drawer-panel>header p{margin:0;color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.08em}.drawer-panel>header h2{margin:4px 0 0;font-size:24px}.drawer-panel>header button{border:0;background:none;color:#fff;font-size:30px}.drawer-body{padding:18px;overflow:auto}.drawer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.drawer-stat,.drawer-note{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:14px;padding:14px}.drawer-stat span{display:block;color:#9fd4df;font-size:9px;font-weight:900}.drawer-stat strong{display:block;margin-top:5px;font-size:17px}.drawer-note{margin-top:12px;color:#d9eef3;font-size:13px;line-height:1.5}.drawer-link{display:inline-block;margin-top:12px;background:#0b8098;color:#fff;text-decoration:none;border:1px solid #24d8df;border-radius:999px;padding:9px 13px;font-size:11px;font-weight:900}.portus-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.portus-tabs button{border:1px solid var(--line);background:#0a405a;color:#fff;border-radius:999px;padding:7px 10px}.portus-tabs button.active{background:#18bac5}.portus-frame{width:100%;height:62vh;border:1px solid var(--line);border-radius:14px;background:#fff}.source-drawer-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.source-drawer-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.05);color:#fff;text-decoration:none;font-weight:850}.alert-list{display:grid;gap:10px}.alert-item{border:1px solid rgba(255,169,64,.35);background:#2f2416;border-radius:14px;padding:14px}.alert-item p{margin:6px 0 0;color:#e9ded0;font-size:13px}

.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,92vw);background:#fff;color:#0a3650;border-radius:22px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.login-card img{display:block;width:220px;max-width:80%;margin:0 auto 18px}.login-card span{display:block;text-align:center;color:#0aa8b3;font-weight:900;font-size:11px;letter-spacing:.08em}.login-card h1{text-align:center;margin:8px 0 3px}.login-card p{text-align:center;margin:0 0 18px}.login-card label{display:block;font-size:12px;font-weight:850;margin-bottom:6px}.login-card input{width:100%;border:1px solid #b7d0d9;border-radius:12px;padding:11px 12px;font-size:16px}.login-card button{width:100%;margin-top:10px;border:0;border-radius:12px;background:#0a8297;color:#fff;padding:11px;font-weight:900}.login-error{margin-top:10px;color:#a32626;font-size:12px;text-align:center}

@media(max-width:1000px){.topbar nav{display:none}.top-actions{margin-left:auto}.brand img{width:190px}.activity-strip{padding:0 16px 9px;gap:7px}.island-panel{display:block}.island-intro{display:flex;align-items:center;gap:12px;padding:0 2px 10px}.island-intro ul,.island-intro small{display:none}.island-strip{display:flex;overflow-x:auto;gap:8px}.island-card{flex:0 0 118px}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-card{grid-column:span 2}.metric-card.tides,.metric-card.radio{grid-column:span 3}.zones-panel{display:block}.zones-intro{display:flex;align-items:center;justify-content:space-between;gap:10px}.zones-intro p{display:none}.zone-strip{display:flex;overflow-x:auto}.zone-card{flex:0 0 260px}}
@media(max-width:720px){.topbar{height:60px;padding:5px 12px}.brand img{width:155px;height:48px}.approved-hero-image{height:155px;object-fit:cover;object-position:center top}.activity-strip{display:flex;overflow-x:auto;padding:0 8px 8px;gap:8px;scroll-snap-type:x mandatory}.activity-card{flex:0 0 132px;scroll-snap-align:start}.dashboard{width:100%;padding:0 8px 12px}.island-panel{border-radius:16px;padding:12px 9px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.metric-card,.metric-card.tides,.metric-card.radio{grid-column:span 2;min-height:104px}.zones-panel{padding:12px 9px;border-radius:16px}.zone-actions{grid-template-columns:1fr 1fr 1fr}footer{gap:7px;font-size:6px;letter-spacing:.08em;min-height:48px;border-radius:0}footer img{width:80px;height:34px}footer span:nth-of-type(n+3),footer b:nth-of-type(n+2),footer small{display:none}.drawer-panel{width:100vw}.drawer-grid,.source-drawer-list{grid-template-columns:1fr}.portus-frame{height:62vh}}


/* V6.1 · responsive fiel: misma V6, sin rediseño móvil */
@media(max-width:720px){
  .approved-hero{background:#031827}
  .approved-hero-image{
    display:block;
    width:100%;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center top!important;
  }
  .activity-strip{
    width:100%;
    margin:0;
    padding:0 8px 8px;
    display:flex;
    overflow-x:auto;
    gap:8px;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .activity-strip::-webkit-scrollbar{display:none}
  .activity-card{flex:0 0 132px;scroll-snap-align:start}
  .activity-card img{width:100%;height:auto;object-fit:contain}
  .dashboard{width:100%;padding:0 8px 12px}
  .island-panel{border-radius:16px;padding:12px 9px}
  .island-strip{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none}
  .island-strip::-webkit-scrollbar{display:none}
  .island-card{flex:0 0 116px}
  .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .metric-card,.metric-card.tides,.metric-card.radio{grid-column:span 2;min-height:104px}
  .zones-panel{padding:12px 9px;border-radius:16px}
  .zone-strip{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none}
  .zone-strip::-webkit-scrollbar{display:none}
  .zone-card{flex:0 0 260px}
  .zone-actions{grid-template-columns:1fr 1fr 1fr}
  footer{gap:7px;font-size:6px;letter-spacing:.08em;min-height:48px;border-radius:0}
  footer img{width:80px;height:34px}
  footer span:nth-of-type(n+3),footer b:nth-of-type(n+2),footer small{display:none}
  .drawer-panel{width:100vw}
  .drawer-grid,.source-drawer-list{grid-template-columns:1fr}
  .portus-frame{height:62vh}
}
