:root{--color-background: #161617;--color-background-soft: #1c1c1d;--color-background-mute: #222223;--color-text: rgba(255, 255, 255, .9);--color-text-secondary: rgba(255, 255, 255, .6);--color-success: #4CAF50;--font-mono: "SF Mono", monospace}body{min-height:100vh;margin:0;background:var(--color-background);color:var(--color-text);font-family:system-ui,-apple-system,sans-serif}#app{height:100vh;width:100vw}:root{--color-background: #161617;--color-surface: rgba(22, 22, 23, .8);--color-text-primary: rgba(255, 255, 255, .9);--color-text-secondary: rgba(255, 255, 255, .6);--color-text-tertiary: rgba(255, 255, 255, .4);--color-success: #4CAF50;--color-warning: #FF9800;--color-danger: #F44336;--color-info: #2196F3;--color-water: #2196F3;--color-fuel-port: #FF9800;--color-fuel-starboard: #F44336;--color-border: rgba(255, 255, 255, .08);--color-divider: rgba(255, 255, 255, .05);--font-mono: "SF Mono", monospace;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}:root{--color-background: #ffffff;--color-surface: #f8fafc;--color-surface-hover: #f1f5f9;--color-surface-active: #e2e8f0;--color-text-primary: #1e293b;--color-text-secondary: #475569;--color-text-tertiary: #64748b;--card-background: #ffffff;--card-border: rgba(0, 0, 0, .1);--card-shadow: 0 1px 3px rgba(0, 0, 0, .1);--card-shadow-hover: 0 4px 6px rgba(0, 0, 0, .1);--card-radius: 12px;--color-wind: #1e293b;--color-wind-high: #dc2626;--color-high-wind-bg: #fee2e2;--color-high-wind-border: #dc2626}.weather-container{background:var(--card-background);border-radius:var(--card-radius);box-shadow:var(--card-shadow);border:1px solid var(--card-border);padding:16px;margin:8px 0}.forecast-card{background:var(--color-surface);border-radius:var(--card-radius);border:1px solid var(--card-border);padding:12px;transition:all .2s ease}.forecast-card:hover{background:var(--color-surface-hover);box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}.high-wind-day{background:var(--color-high-wind-bg);border-left:4px solid var(--color-high-wind-border);box-shadow:0 2px 4px #dc26261a}.date-primary{color:var(--color-text-primary);font-weight:600;font-size:1.1em}.date-secondary{color:var(--color-text-secondary);font-size:.9em}.model-name{color:var(--color-text-secondary);font-weight:500}.wind-value{color:var(--color-wind);font-weight:600;font-size:1.1em}.wind-gusts{color:var(--color-text-secondary);font-size:.9em}.wind-direction{color:var(--color-text-tertiary);font-size:.9em}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--color-background);touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}.app-header{background:#1e293b;border-bottom:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding-top:env(safe-area-inset-top);position:sticky;top:0;z-index:1000}.header-content{text-align:center;padding:4px 16px 2px}.title-group{display:flex;align-items:center;justify-content:center;gap:6px}.header-content h1{margin:0;font-size:18px;font-weight:500;color:#fff}.connection-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-danger);position:relative;transition:background-color .2s ease}.connection-dot.connected{background-color:var(--color-success)}.connection-dot:hover:after{content:attr(title);position:absolute;bottom:calc(100% + 5px);left:50%;transform:translate(-50%);padding:4px 8px;border-radius:4px;font-size:12px;background:#161617cc;color:#fff;white-space:nowrap;z-index:1000;pointer-events:none}.connection-status{display:none}.app-nav{display:flex;justify-content:space-around;padding:4px 8px;gap:8px;background:#334155}.nav-link{flex:1;text-align:center;color:#94a3b8;padding:8px 16px;border-radius:6px;font-size:14px;transition:all .2s ease;-webkit-tap-highlight-color:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:transparent;font-weight:500}.nav-link:active{background:#ffffff0d}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.router-link-active{color:#fff;background:#ffffff26}.main-content{flex:1;overflow:auto;position:relative;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}@media (max-width: 768px){.app-header{position:fixed;top:0;left:0;right:0}.main-content{margin-top:env(safe-area-inset-top);padding-top:74px}.nav-link{padding:6px;font-size:13px}}.menu-toggle{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.5rem;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;outline:none}.menu-toggle:active{opacity:.7}@media (hover: none){.menu-toggle{padding:.7rem}.menu-toggle:active{background-color:#ffffff1a;border-radius:4px}}@media (max-width: 768px){.menu-toggle{display:block}.header-content{display:flex;justify-content:space-between;align-items:center}.app-nav.mobile-menu{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#1e293b;padding:.5rem;box-shadow:0 4px 6px #0000001a;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.app-nav.mobile-menu.menu-open{display:flex}.app-nav.mobile-menu .nav-link{padding:1rem;text-align:left;border-radius:0;-webkit-tap-highlight-color:transparent}.app-nav.mobile-menu .nav-link:active{background-color:#ffffff1a}}.tide-table[data-v-dc8b596b]{overflow:hidden}table[data-v-dc8b596b]{width:100%;border-collapse:collapse}th[data-v-dc8b596b],td[data-v-dc8b596b]{padding:8px 12px;text-align:left;border-bottom:1px solid #e2e8f0;color:#1e293b;font-size:.875rem}th[data-v-dc8b596b]{background:#f8fafc;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}tr.predicted[data-v-dc8b596b]{color:#64748b;background:#f8fafc}td[data-v-dc8b596b]:nth-child(4){font-weight:600}@media (max-width: 768px){th[data-v-dc8b596b],td[data-v-dc8b596b]{padding:6px 8px;font-size:.75rem}}.depth-view[data-v-c9960200]{padding:16px;background:#fff;display:flex;flex-direction:column;align-items:center}.main-content[data-v-c9960200]{display:flex;flex-direction:column;gap:16px;width:75%;max-width:1400px;margin:24px 0}.chart-container[data-v-c9960200]{position:relative;height:500px;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:16px}.time-controls[data-v-c9960200]{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:10;display:inline-flex;gap:4px;background:#f8fafc;padding:4px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.time-controls button[data-v-c9960200]{padding:8px 16px;border-radius:6px;border:none;background:transparent;font-size:.875rem;font-weight:500;color:#64748b;transition:all .2s;cursor:pointer;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.time-controls button.active[data-v-c9960200]{background:#fff;color:#0ea5e9;box-shadow:0 1px 3px #0000001a}[data-v-c9960200] .tide-table{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden}@media (max-width: 768px){.depth-view[data-v-c9960200]{padding:8px}.main-content[data-v-c9960200]{width:100%;gap:8px;margin:8px 0}.chart-container[data-v-c9960200]{height:400px;padding:12px}.time-controls[data-v-c9960200]{top:12px;padding:3px;gap:3px}.time-controls button[data-v-c9960200]{padding:6px 12px;font-size:.8125rem}}.cameras-container[data-v-4b32dfcc]{padding:1rem;max-width:1200px;margin:0 auto;padding-top:env(safe-area-inset-top)}.camera-stack[data-v-4b32dfcc]{display:flex;flex-direction:column;gap:1rem}.camera-box[data-v-4b32dfcc]{display:flex;flex-direction:column;background:#1a1a1a;border-radius:8px;overflow:hidden}.camera-header[data-v-4b32dfcc]{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#2c3e50}.camera-header h3[data-v-4b32dfcc]{margin:0;color:#fff}.camera-content[data-v-4b32dfcc]{position:relative;width:100%;padding-top:56.25%;background:#000;cursor:pointer;-webkit-tap-highlight-color:transparent;overflow:hidden;touch-action:manipulation}.camera-iframe[data-v-4b32dfcc]{position:absolute;top:0;left:0;width:100%;height:100%;border:none;background:#000}.camera-placeholder[data-v-4b32dfcc]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666;gap:1rem;transition:background-color .2s;touch-action:manipulation;-webkit-user-select:none;user-select:none}.camera-placeholder[data-v-4b32dfcc]:hover{background-color:#ffffff1a}.camera-placeholder span[data-v-4b32dfcc]{font-size:.9rem}@media (max-width: 768px){.cameras-container[data-v-4b32dfcc]{padding:.5rem}}.wind-view[data-v-a97c79d8]{padding:24px;background:#f8fafc;min-height:100vh}.control-panel[data-v-a97c79d8]{margin-bottom:24px}.primary-controls[data-v-a97c79d8]{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.live-button[data-v-a97c79d8]{position:relative;padding:10px 20px;border:none;border-radius:8px;background:#fff;color:#64748b;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.live-button.active[data-v-a97c79d8]{background:#3b82f6;color:#fff}.pulse[data-v-a97c79d8]{position:absolute;top:50%;left:10px;transform:translateY(-50%);width:6px;height:6px;background:#22c55e;border-radius:50%;animation:pulse-a97c79d8 2s infinite}.time-controls[data-v-a97c79d8]{display:flex;gap:8px;flex-wrap:wrap}.time-controls button[data-v-a97c79d8]{padding:12px 16px;min-width:44px;min-height:44px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.875rem;font-weight:500;color:#64748b;transition:all .2s;cursor:pointer;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;position:relative;z-index:1;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (hover: hover){.time-controls button[data-v-a97c79d8]:hover{transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}}.time-controls button[data-v-a97c79d8]:active{background:#f1f5f9;transform:translateY(1px)}.time-controls button.active[data-v-a97c79d8]{background:#0ea5e9;color:#fff;border-color:#0ea5e9}@media (max-width: 768px){.time-controls[data-v-a97c79d8]{gap:6px}.time-controls button[data-v-a97c79d8]{flex:1;min-width:60px;font-size:.8125rem;padding:10px}}@supports (-webkit-touch-callout: none){.time-controls button[data-v-a97c79d8]{padding:12px 16px;margin:0;outline:none}.time-controls button[data-v-a97c79d8]:active{opacity:.8}}.chart-container[data-v-a97c79d8]{background:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 6px #0000000d;height:400px;margin-bottom:24px;position:relative;overflow:hidden}.stats-panel[data-v-a97c79d8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:24px}.stat-card[data-v-a97c79d8]{background:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 6px #0000000d;text-align:center;transition:transform .3s ease}.stat-card[data-v-a97c79d8]:hover{transform:translateY(-2px)}.stat-value[data-v-a97c79d8]{font-size:2.5rem;font-weight:700;color:#3b82f6;line-height:1;margin-bottom:8px}.stat-label[data-v-a97c79d8]{font-size:.875rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.stat-unit[data-v-a97c79d8]{font-size:.75rem;color:#94a3b8;margin-top:4px}@keyframes pulse-a97c79d8{0%{box-shadow:0 0 #22c55e66}70%{box-shadow:0 0 0 10px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes gustEffect-a97c79d8{0%{transform:scale(0);opacity:.8}to{transform:scale(4);opacity:0}}[data-v-a97c79d8] .chart-js-render-monitor{transition:all .3s ease}[data-v-a97c79d8] .chartjs-line{filter:drop-shadow(0 4px 6px rgba(59,130,246,.1))}.gust-effect[data-v-a97c79d8]{position:absolute;top:50%;right:24px;width:20px;height:20px;background:radial-gradient(circle,#3b82f680,#3b82f600 70%);border-radius:50%;pointer-events:none;animation:gustEffect-a97c79d8 1s cubic-bezier(.165,.84,.44,1) forwards}.stat-card.forecast[data-v-a97c79d8]{background:linear-gradient(to bottom right,#fff,#f0f9ff);border-left:4px solid #3b82f6}@media (max-width: 768px){.time-controls[data-v-a97c79d8]{gap:6px}.time-controls button[data-v-a97c79d8]{flex:1;min-width:60px;font-size:.8125rem}}@media screen and (max-width: 428px){.time-controls button[data-v-a97c79d8]{padding:10px 12px;margin:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}}@media (pointer: coarse){.time-controls button[data-v-a97c79d8]{transition:none}}.passage-view[data-v-02df3a95]{height:100%;padding:12px;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.passage-container[data-v-02df3a95]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:12px}.map-panel[data-v-02df3a95]{position:relative;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 4px #0000000d}#passage-map-container[data-v-02df3a95]{width:100%;height:100%}.passage-selector[data-v-02df3a95]{position:absolute;top:12px;right:12px;z-index:1}.passage-select[data-v-02df3a95]{width:200px;padding:8px 36px 8px 16px;border:none;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.875rem;font-weight:500;color:#0f172a;cursor:pointer;transition:all .2s;border-radius:8px;box-shadow:0 2px 4px #0000001a}.passage-select[data-v-02df3a95]:hover{background:#fffffff2;transform:translateY(-1px)}.passage-select[data-v-02df3a95]:focus{outline:none;background:#fff;box-shadow:0 4px 6px #0000001a}.speed-panel[data-v-02df3a95]{display:flex;flex-direction:column;gap:12px;min-height:0;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:12px;overflow:hidden}.chart-container[data-v-02df3a95]{flex:1;min-height:0;position:relative;border-radius:8px;background:#f8fafc;padding:12px}.metrics-grid[data-v-02df3a95]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-height:fit-content}.metric[data-v-02df3a95]{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f8fafc;border-radius:8px;transition:all .2s}.metric[data-v-02df3a95]:hover{background:#f1f5f9;transform:translateY(-1px)}.metric-label[data-v-02df3a95]{font-size:.75rem;color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.metric-value[data-v-02df3a95]{font-size:1.5rem;color:#0f172a;font-weight:600;line-height:1.2;margin:4px 0}.metric-unit[data-v-02df3a95]{font-size:.75rem;color:#94a3b8;font-weight:500}@media (max-width: 1024px){.passage-container[data-v-02df3a95]{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}
