:root{
  --bg:#06101b;--bg-2:#091725;--panel:#0d1d2d;--panel-2:#102538;--line:rgba(154,195,219,.14);
  --text:#ecf7ff;--muted:#89a6b9;--cyan:#2bd6c4;--blue:#3e8cff;--yellow:#ffc95c;--red:#ff6b72;--green:#58dc9b;
  --shadow:0 20px 50px rgba(0,0,0,.22);--radius:20px;--radius-sm:13px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 70% -10%,rgba(31,112,158,.18),transparent 33%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px 18px;background:linear-gradient(180deg,rgba(10,25,39,.96),rgba(6,16,27,.98));border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:4px 8px 26px}.brand img{width:43px;height:43px}.brand span{display:flex;align-items:baseline;gap:7px}.brand strong{font-size:22px;letter-spacing:-.5px}.brand small{font-size:10px;letter-spacing:2px;color:var(--cyan);font-weight:800}.main-nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:13px;width:100%;padding:12px 13px;border:0;border-radius:12px;background:transparent;color:var(--muted);text-align:left;transition:.2s}.nav-item span{font-size:18px;width:24px;text-align:center}.nav-item b{font-size:14px;font-weight:650}.nav-item:hover,.nav-item.active{color:var(--text);background:linear-gradient(90deg,rgba(43,214,196,.14),rgba(62,140,255,.07));box-shadow:inset 3px 0 var(--cyan)}.sidebar-footer{margin-top:auto;display:grid;gap:10px}.source-status{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);padding:10px}.source-status i{width:8px;height:8px;border-radius:50%;background:var(--yellow);box-shadow:0 0 12px currentColor}.source-status.online i{background:var(--green)}.ghost-button,.icon-button,.text-button,.secondary-button,.primary-button{border:0;border-radius:11px;font-weight:700;transition:.2s}.ghost-button{background:rgba(255,255,255,.04);color:var(--muted);padding:10px 12px;text-align:left}.ghost-button:hover{color:var(--text);background:rgba(255,255,255,.08)}
.main{min-width:0;padding:27px 32px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow,.card-kicker{margin:0 0 5px;color:#7da2b9;font-size:10px;font-weight:850;letter-spacing:1.7px}.topbar h1{margin:0;font-size:29px;letter-spacing:-1px}.top-actions{display:flex;align-items:center;gap:10px}.live-pill{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid rgba(88,220,155,.18);border-radius:99px;font-size:10px;font-weight:850;letter-spacing:1px;color:#9fecc5;background:rgba(88,220,155,.06)}.live-pill span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 2s infinite}.icon-button{width:39px;height:39px;background:rgba(255,255,255,.06);color:var(--text);font-size:20px}.icon-button:hover{transform:rotate(35deg);background:rgba(255,255,255,.1)}.primary-button{padding:11px 15px;background:linear-gradient(135deg,var(--cyan),#26aacc);color:#03202a;box-shadow:0 8px 24px rgba(43,214,196,.15)}.primary-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.secondary-button{padding:10px 14px;background:rgba(255,255,255,.07);color:var(--text);border:1px solid var(--line)}.text-button{background:transparent;color:#7fc9e8;padding:8px}.text-button:hover{color:var(--text)}
.alert-bar{padding:12px 15px;margin:-8px 0 18px;border-radius:12px;background:rgba(255,107,114,.1);border:1px solid rgba(255,107,114,.22);color:#ffc3c7;font-size:13px}.view{display:none;animation:fade .25s ease}.view.active{display:block}.panel,.assessment-card{background:linear-gradient(155deg,rgba(16,37,56,.94),rgba(11,27,42,.96));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:15px}.assessment-card,.weather-card,.sea-card{min-height:252px;padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head a{font-size:11px;color:#78b8d7;text-decoration:none}.data-age{font-size:10px;color:var(--muted)}.assessment-main{display:flex;align-items:center;gap:17px;margin:25px 0 16px}.signal-orb{width:78px;height:78px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(88,220,155,.22),rgba(88,220,155,.05));border:1px solid rgba(88,220,155,.3);box-shadow:0 0 34px rgba(88,220,155,.1)}.signal-orb span{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#062519;font-size:21px;font-weight:900}.assessment-card.yellow .signal-orb{background:radial-gradient(circle,rgba(255,201,92,.22),rgba(255,201,92,.05));border-color:rgba(255,201,92,.3)}.assessment-card.yellow .signal-orb span{background:var(--yellow);color:#332200}.assessment-card.red .signal-orb{background:radial-gradient(circle,rgba(255,107,114,.22),rgba(255,107,114,.05));border-color:rgba(255,107,114,.3)}.assessment-card.red .signal-orb span{background:var(--red);color:#350006}.assessment-main h2{margin:0 0 6px;font-size:25px;letter-spacing:-.6px}.assessment-main p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.assessment-reasons{display:flex;flex-wrap:wrap;gap:7px;min-height:28px}.reason-chip{padding:6px 9px;border-radius:99px;background:rgba(255,255,255,.06);font-size:11px;color:#bdd3df}.captain-note{margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:#819ead}.weather-main{display:flex;align-items:center;gap:17px;margin:28px 0 23px}.weather-icon{font-size:42px;color:var(--yellow);filter:drop-shadow(0 0 14px rgba(255,201,92,.18))}.weather-main div{display:flex;flex-direction:column}.weather-main strong{font-size:42px;letter-spacing:-2px;line-height:.95}.weather-main span:last-child{font-size:13px;color:var(--muted);margin-top:8px}.metric-grid{display:grid;border-top:1px solid var(--line);padding-top:16px}.metric-grid.three{grid-template-columns:repeat(3,1fr)}.metric-grid>div{display:flex;flex-direction:column;gap:2px}.metric-grid>div+div{border-left:1px solid var(--line);padding-left:15px}.metric-grid small,.sea-main small{font-size:10px;color:var(--muted)}.metric-grid b{font-size:17px}.metric-grid em{font-style:normal;font-size:10px;color:#7393a7}.sea-main{display:flex;align-items:center;justify-content:space-between;margin:27px 0 22px}.sea-main>div:first-child{display:flex;flex-direction:column}.sea-main strong{font-size:45px;letter-spacing:-2px}.sea-main span{font-size:11px;color:var(--muted)}.direction-dial{width:79px;height:79px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(62,140,255,.16),transparent 65%);border:1px dashed rgba(126,178,215,.22);position:relative}.direction-dial i{font-style:normal;font-size:31px;color:#65b8ff;transition:transform .5s}.direction-dial span{position:absolute;bottom:7px;font-weight:700;color:#bcd9e8;font-size:10px}
.forecast-strip{margin-top:15px;padding:17px 20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-title h3,.view-heading h2,.ais-toolbar h2{margin:0;font-size:18px;letter-spacing:-.3px}.legend{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:7px}.legend i{width:7px;height:7px;border-radius:50%}.wind-dot{background:var(--cyan)}.wave-dot{background:var(--blue)}.forecast-windows{display:grid;grid-template-columns:repeat(5,1fr);margin-top:16px}.forecast-item{padding:9px 17px;border-left:1px solid var(--line)}.forecast-item:first-child{border-left:0;padding-left:0}.forecast-item:last-child{padding-right:0}.forecast-item header{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-bottom:9px}.forecast-bars{display:grid;gap:5px}.bar-line{display:grid;grid-template-columns:39px 1fr 46px;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.bar-track{height:5px;border-radius:5px;background:rgba(255,255,255,.06);overflow:hidden}.bar-track i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--cyan),#65e6c2)}.bar-line.wave .bar-track i{background:linear-gradient(90deg,var(--blue),#65b8ff)}.bar-line b{color:var(--text);text-align:right;font-size:11px}
.content-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:15px;margin-top:15px}.operations-panel,.tide-panel{padding:20px}.trip-list{display:grid;gap:9px;margin-top:16px}.trip-row{display:grid;grid-template-columns:67px 1fr auto;align-items:center;gap:12px;padding:13px;background:rgba(255,255,255,.035);border:1px solid transparent;border-radius:13px}.trip-row:hover{border-color:var(--line)}.trip-time{font-size:19px;font-weight:850}.trip-info strong{display:block;font-size:13px}.trip-info span{font-size:11px;color:var(--muted)}.trip-pax{text-align:right}.trip-pax strong{display:block;font-size:18px}.trip-pax small{font-size:9px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--yellow);margin-right:6px}.status-dot.confirmed{background:var(--green)}.status-dot.cancelled{background:var(--red)}.empty-state{padding:28px 10px;text-align:center;color:var(--muted);font-size:13px}.source-chip,.progress-pill{padding:6px 9px;border-radius:99px;background:rgba(62,140,255,.09);color:#91c4ff;font-size:9px;font-weight:800}.tide-chart{height:123px;margin-top:13px;position:relative}.tide-chart svg{width:100%;height:100%;overflow:visible}.tide-line{fill:none;stroke:url(#tideGradient);stroke-width:3}.tide-area{fill:url(#tideArea)}.tide-axis{stroke:rgba(255,255,255,.08);stroke-width:1}.tide-label{fill:#7898aa;font-size:9px}.tide-extremes{display:flex;gap:8px;overflow:auto;padding:5px 0 2px}.tide-event{min-width:88px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04)}.tide-event small{display:block;color:var(--muted);font-size:9px}.tide-event b{font-size:12px}.warning-note{font-size:10px;line-height:1.45;color:#819eaf;margin:10px 0 0}.map-preview-panel{margin-top:15px;padding:20px}.map-summary{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:15px;margin-top:15px}.map{background:#0a1824;border-radius:15px;overflow:hidden;min-height:345px}.leaflet-container{background:#091925;font-family:inherit}.leaflet-control-attribution{font-size:8px!important;background:rgba(5,15,25,.7)!important;color:#7893a5!important}.leaflet-control-attribution a{color:#8ebbd2!important}.stop-summary{display:grid;align-content:start;gap:9px}.stop-card{padding:13px;border-radius:13px;background:rgba(255,255,255,.035);border:1px solid var(--line)}.stop-card header{display:flex;justify-content:space-between;gap:10px}.stop-card strong{font-size:12px}.stop-card b{font-size:15px;color:#84d6ff}.stop-card p{margin:6px 0 0;color:var(--muted);font-size:10px}.stop-marker{width:22px;height:22px;border-radius:50%;background:rgba(255,201,92,.25);border:2px solid var(--yellow);box-shadow:0 0 0 8px rgba(255,201,92,.08)}.ship-marker{width:15px;height:15px;background:var(--cyan);clip-path:polygon(50% 0,100% 100%,50% 78%,0 100%);filter:drop-shadow(0 0 5px rgba(43,214,196,.8))}
.view-heading,.ais-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}.view-heading{padding:5px 2px 4px}.ais-toolbar{padding:17px 20px}.filter-row{display:flex;align-items:end;gap:9px}.filter-row label{display:grid;gap:5px;font-size:9px;color:var(--muted)}select,input,textarea{width:100%;background:#091a29;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 11px;outline:none}select:focus,input:focus,textarea:focus{border-color:rgba(43,214,196,.55);box-shadow:0 0 0 3px rgba(43,214,196,.07)}.ais-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:15px}.full-map{min-height:calc(100vh - 173px);border:1px solid var(--line);box-shadow:var(--shadow)}.ais-side{padding:16px;min-height:calc(100vh - 173px)}.ais-stats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding-bottom:13px}.ais-stats div{text-align:center}.ais-stats div+div{border-left:1px solid var(--line)}.ais-stats small{display:block;color:var(--muted);font-size:9px}.ais-stats strong{font-size:19px}.tab-switch{display:grid;grid-template-columns:repeat(3,1fr);background:rgba(255,255,255,.04);padding:3px;border-radius:10px;margin:13px 0}.tab-switch button{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:8px;font-size:11px;font-weight:700}.tab-switch button.active{background:rgba(255,255,255,.08);color:var(--text)}.ais-list{display:grid;gap:7px;max-height:calc(100vh - 335px);overflow:auto}.ais-item{padding:11px;border-radius:11px;background:rgba(255,255,255,.035);border:1px solid transparent}.ais-item:hover{border-color:var(--line)}.ais-item header{display:flex;justify-content:space-between;gap:8px}.ais-item strong{font-size:11px}.ais-item b{font-size:13px;color:#7fd5ff}.ais-item p{margin:5px 0 0;color:var(--muted);font-size:9px}.demo-banner{color:#ffd993!important;background:rgba(255,201,92,.07);border:1px solid rgba(255,201,92,.15);border-radius:9px;padding:9px}
.board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.day-column{background:linear-gradient(155deg,rgba(16,37,56,.94),rgba(11,27,42,.96));border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-height:330px}.day-column>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.day-column h3{margin:0;font-size:14px}.day-column header span{font-size:10px;color:var(--muted)}.trip-card{padding:14px;border-radius:13px;background:rgba(255,255,255,.045);margin-bottom:9px;border-left:3px solid var(--yellow)}.trip-card.confirmed{border-left-color:var(--green)}.trip-card.cancelled{border-left-color:var(--red);opacity:.65}.trip-card header{display:flex;justify-content:space-between}.trip-card time{font-size:18px;font-weight:850}.trip-card .badge{font-size:8px;padding:4px 6px;border-radius:99px;background:rgba(255,255,255,.06);color:var(--muted)}.trip-card p{margin:8px 0 0;font-size:10px;color:var(--muted)}.trip-card footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:10px;padding-top:9px}.trip-card footer b{font-size:11px}.trip-card footer button,.row-action{border:0;background:transparent;color:#82cbe8;font-size:10px;padding:3px}.people-list,.time-list,.maintenance-board,.log-list{display:grid;gap:9px}.people-list,.time-list{margin-top:14px}.person-row,.time-row,.maintenance-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;background:rgba(255,255,255,.035);border-radius:13px}.avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,rgba(43,214,196,.25),rgba(62,140,255,.25));font-weight:850}.row-copy strong{display:block;font-size:12px}.row-copy span{font-size:10px;color:var(--muted)}.status-badge{font-size:9px;padding:5px 7px;border-radius:99px;background:rgba(88,220,155,.08);color:#91e9bd}.checklist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.checklist-card{padding:19px;background:linear-gradient(155deg,rgba(16,37,56,.94),rgba(11,27,42,.96));border:1px solid var(--line);border-radius:var(--radius)}.checklist-card h3{margin:0 0 15px}.check-item{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--line);cursor:pointer}.check-item:first-of-type{border-top:0}.check-item input{position:absolute;opacity:0;pointer-events:none}.check-box{width:23px;height:23px;border:1px solid rgba(160,194,213,.25);border-radius:7px;display:grid;place-items:center;color:transparent;transition:.2s}.check-item.done .check-box{background:var(--green);border-color:var(--green);color:#052317}.check-item span:last-child{font-size:12px}.check-item.done span:last-child{text-decoration:line-through;color:var(--muted)}.maintenance-board{grid-template-columns:repeat(2,1fr)}.maintenance-row{grid-template-columns:10px 1fr auto;background:var(--panel);border:1px solid var(--line)}.priority-line{width:6px;height:44px;border-radius:5px;background:var(--yellow)}.priority-line.high{background:var(--red)}.priority-line.low{background:var(--green)}.maintenance-row.done{opacity:.55}.log-entry{display:grid;grid-template-columns:104px 1fr;gap:18px;padding:18px;background:linear-gradient(155deg,rgba(16,37,56,.94),rgba(11,27,42,.96));border:1px solid var(--line);border-radius:var(--radius)}.log-date{font-size:11px;color:var(--muted)}.log-date strong{display:block;font-size:18px;color:var(--text)}.log-content h3{margin:0 0 6px;font-size:15px}.log-content p{margin:0;color:#a9c0ce;font-size:12px;line-height:1.55}.log-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.log-meta span{font-size:9px;padding:5px 7px;border-radius:99px;background:rgba(255,255,255,.05);color:var(--muted)}
dialog{width:min(570px,calc(100% - 28px));border:1px solid var(--line);border-radius:20px;padding:0;background:#0c1c2b;color:var(--text);box-shadow:0 40px 100px rgba(0,0,0,.55)}dialog::backdrop{background:rgba(2,8,14,.74);backdrop-filter:blur(6px)}dialog form{padding:21px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.dialog-head h2{margin:0}.close-button{border:0;background:rgba(255,255,255,.06);color:var(--muted);width:34px;height:34px;border-radius:10px;font-size:20px}.form-fields,.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-fields label,.settings-grid label{display:grid;gap:6px;font-size:10px;color:var(--muted)}.form-fields label.full,.settings-help{grid-column:1/-1}.form-fields textarea{min-height:90px;resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}code{color:#92d8f7;background:rgba(255,255,255,.05);padding:2px 5px;border-radius:5px}.settings-help{font-size:11px;color:var(--muted);line-height:1.5}.toast{position:fixed;right:22px;bottom:22px;transform:translateY(80px);opacity:0;transition:.25s;background:#e9f9ff;color:#09202b;border-radius:11px;padding:12px 15px;font-size:12px;font-weight:750;box-shadow:0 12px 40px rgba(0,0,0,.25);z-index:200}.toast.show{transform:translateY(0);opacity:1}.toast.error{background:#ffd9dc;color:#4a080e}.mobile-nav{display:none}.loading-card{position:relative;overflow:hidden}.loading-card:after,.skeleton-lines:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.035) 40%,transparent 60%);animation:shimmer 1.5s infinite}.skeleton-lines{position:relative;min-height:150px}
@keyframes pulse{50%{opacity:.45;transform:scale(.85)}}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:1180px){.hero-grid{grid-template-columns:1fr 1fr}.assessment-card{grid-column:1/-1;min-height:210px}.assessment-main{margin:17px 0 10px}.map-summary{grid-template-columns:1fr}.stop-summary{grid-template-columns:repeat(3,1fr)}.ais-layout{grid-template-columns:1fr}.full-map{min-height:590px}.ais-side{min-height:0}.ais-list{max-height:390px}.board-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.app-shell{display:block}.sidebar{display:none}.main{padding:18px 14px 94px}.topbar{margin-bottom:17px}.topbar h1{font-size:24px}.live-pill{display:none}.hero-grid,.content-grid,.checklist-grid,.maintenance-board{grid-template-columns:1fr}.assessment-card{grid-column:auto}.forecast-windows{overflow-x:auto;grid-template-columns:repeat(5,155px);padding-bottom:4px}.forecast-item{padding:9px 13px}.map-summary{display:block}.stop-summary{grid-template-columns:1fr;margin-top:11px}.map{min-height:330px}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:80;left:0;right:0;bottom:0;padding:7px 6px calc(7px + env(safe-area-inset-bottom));background:rgba(6,16,27,.94);border-top:1px solid var(--line);backdrop-filter:blur(15px)}.mobile-nav button{border:0;background:transparent;color:#6f8ca0;display:grid;place-items:center;gap:2px;font-size:9px;padding:5px}.mobile-nav button span{font-size:18px}.mobile-nav button.active{color:var(--cyan)}.view-heading,.ais-toolbar{align-items:flex-start;flex-direction:column}.filter-row{width:100%;overflow-x:auto}.filter-row label{min-width:124px}.ais-layout{display:block}.full-map{min-height:520px}.ais-side{margin-top:12px}.board-grid{grid-template-columns:1fr}.form-fields,.settings-grid{grid-template-columns:1fr}.form-fields label.full,.settings-help{grid-column:auto}.log-entry{grid-template-columns:1fr}.top-actions .primary-button{display:none}.weather-card,.sea-card,.assessment-card{min-height:0}.toast{left:14px;right:14px;bottom:84px;text-align:center}}
@media(max-width:470px){.metric-grid>div+div{padding-left:10px}.metric-grid b{font-size:15px}.assessment-main h2{font-size:21px}.signal-orb{width:66px;height:66px}.weather-main strong,.sea-main strong{font-size:38px}.ais-toolbar{padding:15px}.section-title{align-items:flex-start}.legend{display:none}}

/* ==========================================================
   Brimir Ops v4 — Eyjafjörður Live & Hvalagrunnur
   ========================================================== */
.whale-button{border:0;border-radius:12px;padding:11px 15px;background:linear-gradient(135deg,#5ea8ff,#7d74ff);color:#fff;font-weight:850;box-shadow:0 10px 28px rgba(94,168,255,.2);white-space:nowrap}.whale-button:hover{filter:brightness(1.08);transform:translateY(-1px)}.whale-button.large{padding:13px 18px;font-size:13px}.live-map-header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;margin-bottom:12px}.live-map-header h2{margin:0 0 7px;font-size:23px;letter-spacing:-.7px}.live-map-header p{margin:0;max-width:760px;color:var(--muted);font-size:12px;line-height:1.55}.time-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;margin-bottom:12px}.time-preset{display:flex;gap:4px;background:rgba(255,255,255,.035);padding:4px;border-radius:11px}.time-preset button{border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:11px;font-weight:800;padding:8px 11px}.time-preset button.active{background:rgba(43,214,196,.13);color:var(--cyan);box-shadow:inset 0 0 0 1px rgba(43,214,196,.16)}.playback-controls{display:flex;align-items:center;gap:9px;flex:1;max-width:520px}.playback-controls .icon-button{flex:0 0 auto;font-size:13px}.playback-controls .icon-button:hover{transform:none}.playback-controls label{width:100%;display:grid;grid-template-columns:115px 1fr;align-items:center;gap:10px;color:var(--muted);font-size:10px}.playback-controls input[type=range]{height:7px;padding:0;border:0;background:rgba(255,255,255,.08);accent-color:var(--cyan)}.ais-layout.v4{grid-template-columns:minmax(0,1fr) 355px}.map-stage{position:relative;min-width:0}.map-stage .full-map{min-height:calc(100vh - 252px);border-radius:var(--radius)}.map-legend{position:absolute;left:12px;bottom:12px;z-index:500;display:flex;flex-wrap:wrap;gap:8px 13px;max-width:calc(100% - 24px);padding:8px 10px;border:1px solid rgba(154,195,219,.16);border-radius:11px;background:rgba(5,15,25,.82);backdrop-filter:blur(8px);font-size:9px;color:#b3c8d4}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{display:block;width:17px;height:4px;border-radius:9px}.map-legend .speed-fast{background:#2bd6c4}.map-legend .speed-slow{background:#f0c75e}.map-legend .speed-stop{background:#ff9248}.map-legend .confirmed-whale{width:11px;height:11px;border-radius:50%;background:#5ea8ff}.map-empty{position:absolute;z-index:550;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:5px;width:min(380px,calc(100% - 40px));padding:22px;border:1px solid var(--line);border-radius:15px;background:rgba(7,18,29,.92);text-align:center;box-shadow:var(--shadow)}.map-empty strong{font-size:16px}.map-empty span{font-size:11px;color:var(--muted);line-height:1.5}.ais-layout.v4 .ais-side{min-height:calc(100vh - 252px)}.data-freshness{margin:11px 0 2px;padding:9px 10px;border-radius:9px;background:rgba(255,201,92,.07);color:#e9c77d;font-size:10px;line-height:1.4}.data-freshness.connected{background:rgba(88,220,155,.07);color:#83dfb1}.tab-switch.three{grid-template-columns:repeat(3,1fr)}.analysis-settings{margin-top:10px;border-top:1px solid var(--line);padding-top:9px}.analysis-settings summary{cursor:pointer;color:var(--muted);font-size:10px;font-weight:750}.filter-row.stacked{display:grid;grid-template-columns:1fr 1fr;margin-top:9px}.vessel-toggle-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:7px}.vessel-toggle-row>label{display:grid;place-items:center}.vessel-toggle-row>label input{position:absolute;opacity:0}.vessel-toggle-row>label span{display:block;width:19px;height:19px;border:1px solid rgba(154,195,219,.3);border-radius:6px;background:rgba(255,255,255,.03)}.vessel-toggle-row>label input:checked+span{background:var(--cyan);border-color:var(--cyan);box-shadow:inset 0 0 0 4px #0c2630}.vessel-toggle-row>button{border:0;background:transparent;color:inherit;text-align:left;padding:4px;width:100%}.ship-marker-v4{position:relative;display:flex;align-items:center;gap:8px;width:max-content;filter:drop-shadow(0 3px 5px rgba(0,0,0,.55))}.ship-marker-v4 i{display:block;width:16px;height:22px;background:#eaf8ff;clip-path:polygon(50% 0,90% 100%,50% 78%,10% 100%);transform:rotate(var(--heading));transform-origin:center}.ship-marker-v4 span{display:block;padding:4px 7px;border:1px solid rgba(255,255,255,.13);border-radius:7px;background:rgba(5,17,28,.88);color:#f4fbff;font-size:9px;font-weight:800;white-space:nowrap}.whale-map-marker{position:relative;width:34px;height:34px;display:grid;place-items:center;border:2px solid #b7d5ff;border-radius:50%;background:linear-gradient(135deg,#5ea8ff,#7467e8);font-size:17px;box-shadow:0 0 0 6px rgba(94,168,255,.13),0 6px 16px rgba(0,0,0,.3)}.whale-map-marker span{position:absolute;right:-5px;top:-5px;min-width:17px;height:17px;padding:0 3px;display:grid;place-items:center;border:2px solid #0a1b2a;border-radius:99px;background:#fff;color:#132c3b;font-size:8px;font-weight:900}.stop-card.whale{border-color:rgba(94,168,255,.22);background:rgba(94,168,255,.06)}
.whale-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:15px}.whale-stats article{padding:20px;display:grid;gap:6px}.whale-stats small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.3px}.whale-stats strong{font-size:34px;letter-spacing:-1px}.whale-database-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:15px}.whale-database-grid>.panel{padding:20px}.species-stats{display:grid;gap:14px;margin-top:18px}.species-row{display:grid;gap:7px}.species-row>div:first-child{display:flex;align-items:end;justify-content:space-between;gap:10px}.species-row strong{font-size:12px}.species-row span{font-size:9px;color:var(--muted)}.species-bar{height:6px;border-radius:8px;background:rgba(255,255,255,.055);overflow:hidden}.species-bar i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#5ea8ff,#7d74ff)}.whale-recent{display:grid;gap:8px;margin-top:15px;max-height:580px;overflow:auto}.whale-record{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:12px;border:1px solid transparent;border-radius:13px;background:rgba(255,255,255,.035)}.whale-record:hover{border-color:var(--line)}.whale-record-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:rgba(94,168,255,.12);font-size:19px}.whale-record header{display:flex;justify-content:space-between;gap:10px}.whale-record strong{font-size:12px}.whale-record b{color:#9bc7ff}.whale-record p{margin:4px 0;color:#b5c8d4;font-size:10px}.whale-record small{display:block;color:var(--muted);font-size:9px;line-height:1.45}.whale-dialog{width:min(720px,calc(100% - 24px))}.gps-status{padding:10px 12px;margin-bottom:10px;border-radius:10px;background:rgba(94,168,255,.08);color:#a9ceff;font-size:10px}.whale-picker-map{min-height:245px;border:1px solid var(--line);border-radius:13px}.picker-help{margin:6px 2px 13px;color:var(--muted);font-size:9px}.whale-fields{grid-template-columns:repeat(2,1fr)}
@media(max-width:1180px){.ais-layout.v4{grid-template-columns:1fr}.ais-layout.v4 .ais-side{min-height:0}.map-stage .full-map{min-height:610px}.whale-database-grid{grid-template-columns:1fr}}
@media(max-width:860px){.top-actions{gap:6px}.top-actions .whale-button{font-size:0;padding:10px}.top-actions .whale-button:before{content:'🐋';font-size:18px}.live-map-header{align-items:flex-start;flex-direction:column}.time-toolbar{align-items:stretch;flex-direction:column}.time-preset{display:grid;grid-template-columns:repeat(5,1fr)}.time-preset button{padding:8px 5px}.playback-controls{max-width:none}.playback-controls label{grid-template-columns:94px 1fr}.map-stage .full-map{min-height:530px}.map-legend{right:10px;left:10px}.mobile-nav{grid-template-columns:repeat(6,1fr)}.whale-stats{grid-template-columns:repeat(3,1fr);gap:8px}.whale-stats article{padding:14px}.whale-stats strong{font-size:27px}.whale-fields{grid-template-columns:1fr}.whale-fields label.full{grid-column:auto}.whale-dialog form{padding:15px}.whale-picker-map{min-height:210px}}
@media(max-width:470px){.live-map-header h2{font-size:20px}.live-map-header .whale-button{width:100%}.filter-row.stacked{grid-template-columns:1fr}.ais-stats strong{font-size:16px}.map-stage .full-map{min-height:475px}.map-legend{font-size:8px;gap:6px 9px}.whale-stats small{font-size:8px}.whale-stats strong{font-size:23px}.whale-record{padding:10px}}


/* Brimir Ops v4.2 — hvalaspottar og örugg vistun */
.time-toolbar{flex-wrap:wrap}.sighting-overlay-controls{display:flex;align-items:center;gap:8px;padding:5px 7px;border:1px solid var(--line);border-radius:11px;background:rgba(94,168,255,.05)}.overlay-toggle{display:flex;align-items:center;gap:7px;white-space:nowrap;color:#b8d3ff;font-size:10px}.overlay-toggle input{position:absolute;opacity:0}.overlay-toggle span{width:28px;height:16px;border-radius:99px;background:rgba(255,255,255,.12);position:relative;transition:.2s}.overlay-toggle span:after{content:'';position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#8195a5;transition:.2s}.overlay-toggle input:checked+span{background:rgba(94,168,255,.42)}.overlay-toggle input:checked+span:after{left:14px;background:#dcebff}.overlay-toggle b{font-weight:800}.overlay-range{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.overlay-range select,.whale-range-label select{padding:7px 28px 7px 8px;border-radius:8px}.whale-map-panel{padding:18px;margin-bottom:15px}.whale-map-title{margin-bottom:12px}.whale-range-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.whale-map-stage{position:relative}.whale-database-map{min-height:520px;border:1px solid var(--line);border-radius:15px}.whale-map-summary{padding:11px 4px 0;color:#a9c7d9;font-size:10px}.save-status{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:rgba(94,168,255,.08);color:#b8d6ff;font-size:10px}.save-status.success{background:rgba(88,220,155,.09);color:#9de8c1}.save-status.error{background:rgba(255,107,114,.10);color:#ffc0c4}.save-status.queued{background:rgba(255,201,92,.09);color:#f2d38d}#whaleAccessField small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.whale-record{width:100%;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer}.whale-record:hover{background:rgba(94,168,255,.055);border-color:rgba(94,168,255,.18)}
@media(max-width:1050px){.sighting-overlay-controls{order:3;width:100%;justify-content:space-between}.whale-database-map{min-height:460px}}
@media(max-width:620px){.sighting-overlay-controls{align-items:stretch;flex-direction:column}.overlay-toggle,.overlay-range{justify-content:space-between}.whale-map-title{align-items:stretch;flex-direction:column}.whale-range-label{justify-content:space-between}.whale-database-map{min-height:410px}}

.build-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 7px;border:1px solid rgba(94,168,255,.22);border-radius:8px;background:rgba(94,168,255,.08);color:#a9ceff;font-size:9px;font-weight:900;letter-spacing:.6px}
