@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_1e504277-module__bmC67a__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_1e504277-module__bmC67a__variable{--font-dm-sans:"DM Sans","DM Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_ada24a78-module__IAHeqW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_ada24a78-module__IAHeqW__variable{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}
*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;font-size:16px}body{font-family:var(--font-dm-sans),-apple-system,BlinkMacSystemFont,sans-serif;color:#f1f5f9;background:#000;min-height:100vh;line-height:1.6}.site-intro{margin-bottom:30px}.app{flex-direction:column;min-height:100vh;display:flex}.header{z-index:1000;background:linear-gradient(#0c1829 0%,#0c1829fa 70%,#0c182900 100%);padding:24px 20px;position:relative}.header-content{max-width:1200px;margin:0 auto}.logo{align-items:center;gap:14px;margin-bottom:6px;text-decoration:none;display:flex}.logo-icon{filter:drop-shadow(0 0 10px #06b6d466);width:44px;height:44px}.logo h1{background:linear-gradient(135deg,#f1f5f9,#94a3b8);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:700}.subtitle{color:#ffffff80;padding-left:58px;font-size:15px}.header-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.nav-menu{align-items:center;gap:0;display:flex}.nav-dropdown{position:relative}.nav-dropdown-button{color:#fffc;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:15px;font-weight:500;transition:all .2s;display:flex}.nav-dropdown-button:hover{color:#22d3ee;background:#22d3ee1a}.nav-link{color:#fffc;border-radius:8px;align-items:center;padding:8px 16px;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-link:hover{color:#22d3ee;background:#22d3ee1a}.auth-btn{cursor:pointer;background:0 0;border:none;gap:8px;font-family:inherit}.auth-avatar{border-radius:50%}.auth-btn-skeleton{background:#ffffff1a;border-radius:8px;width:70px;height:36px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.8}}.nav-dropdown-icon{transition:transform .2s}.nav-dropdown:hover .nav-dropdown-icon{transform:rotate(180deg)}.nav-dropdown-menu{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:10000;background:#0f172a;border:1px solid #ffffff26;border-radius:12px;min-width:200px;margin-top:8px;padding:8px;animation:.2s dropdownFadeIn;position:absolute;top:100%;right:0;box-shadow:0 10px 40px #000c,0 0 0 1px #00000080}.nav-dropdown-menu:before{content:"";height:8px;position:absolute;top:-8px;left:0;right:0}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.nav-dropdown-item{color:#fffc;white-space:nowrap;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:block}.nav-dropdown-item:hover{color:#22d3ee;background:#22d3ee1a}.main{z-index:10;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:0 20px 40px;position:relative}.chart-section{margin-bottom:30px}.chart-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-section-header h2,.chart-section-header .forecast-selector{margin-bottom:0}.chart-section h2{color:#fffc;align-items:center;gap:10px;margin-bottom:16px;font-size:18px;font-weight:600;display:flex}.chart-section h2:before{content:"";background:linear-gradient(#06b6d4,#3b82f6);border-radius:2px;width:4px;height:20px}.tide-table{margin-bottom:30px}.tide-table h2{color:#fffc;align-items:center;gap:10px;margin-bottom:16px;font-size:18px;font-weight:600;display:flex}.tide-table h2:before{content:"";background:linear-gradient(#06b6d4,#3b82f6);border-radius:2px;width:4px;height:20px}.tide-table-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172a99;border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.tide-row{grid-template-columns:100px 1fr 80px;align-items:center;gap:16px;padding:16px 20px;transition:background .15s;display:grid}.tide-row:hover{background:#ffffff08}.tide-row+.tide-row{border-top:1px solid #ffffff0d}.tide-type{font-size:14px;font-weight:600}.tide-row.high .tide-type{color:#fbbf24}.tide-row.low .tide-type{color:#60a5fa}.tide-time{color:#ffffffb3;font-size:14px}.tide-value{font-family:var(--font-jetbrains-mono),monospace;text-align:right;color:#ffffffe6;font-size:15px;font-weight:600}.loading{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:300px;display:flex}.loading-wave{width:80px;height:40px;position:relative}.loading-wave:before,.loading-wave:after{content:"";background:linear-gradient(90deg,#06b6d4,#3b82f6);border-radius:50%;width:100%;height:100%;animation:1.5s ease-in-out infinite wave-loading;position:absolute}.loading-wave:after{opacity:.5;animation-delay:.3s}@keyframes wave-loading{0%,to{transform:scaleX(1)scaleY(.5)}50%{transform:scaleX(.8)scaleY(1)}}.loading p{color:#fff9;font-size:15px}.error{text-align:center;background:#ef44441a;border:1px solid #ef444433;border-radius:16px;padding:60px 20px}.error p{color:#fca5a5;margin-bottom:20px}.error button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s}.error button:hover{transform:translateY(-2px);box-shadow:0 4px 20px #ef444466}.footer{text-align:center;z-index:10;background:#0f172a80;border-top:1px solid #ffffff0d;padding:24px 20px;position:relative}.footer p{color:#fff6;font-size:13px}.footer a{color:#22d3ee;text-decoration:none;transition:color .15s}.footer a:hover{color:#67e8f9}.footer .disclaimer,.footer .copyright{color:#ffffff4d;margin-top:8px;font-size:11px}.footer .copyright{margin-bottom:10px}.footer .build-info{color:#ffffff40;font-size:10px;font-family:var(--font-jetbrains-mono),monospace;margin-top:4px}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg,#ffffff0a 0%,#ffffff1a 50%,#ffffff0a 100%) 0 0/600px 100%;border-radius:6px;animation:1.6s ease-in-out infinite shimmer}.skeleton-tide-info{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:30px;display:grid}.skeleton-tide-card{-webkit-backdrop-filter:blur(16px);background:#0f172a99;border:1px solid #ffffff0f;border-radius:20px;flex-direction:column;gap:20px;min-height:260px;padding:28px;display:flex}.skeleton-chart-section{margin-bottom:30px}.skeleton-chart-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.skeleton-chart-area{border-radius:16px;height:260px}.skeleton-tide-table{margin-bottom:30px}.skeleton-table-rows{background:#0f172a99;border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.skeleton-tide-row{grid-template-columns:100px 1fr 80px;align-items:center;gap:16px;padding:16px 20px;display:grid}.skeleton-tide-row+.skeleton-tide-row{border-top:1px solid #ffffff0d}@media (max-width:768px){.header{padding:20px 16px}.header-top{flex-direction:row;align-items:flex-start}.logo h1{font-size:22px}.logo-icon{width:36px;height:36px}.subtitle{padding-left:50px;font-size:13px}.nav-dropdown-button{padding:6px 12px;font-size:14px}.nav-dropdown-menu{right:0}.main{padding:0 16px 30px}.tide-row{grid-template-columns:80px 1fr 70px;gap:10px;padding:14px 16px}.tide-type,.tide-time{font-size:13px}.tide-value{font-size:14px}.skeleton-tide-row{grid-template-columns:80px 1fr 70px;gap:10px;padding:14px 16px}}@media (max-width:480px){.logo h1{font-size:20px}.subtitle{margin-top:8px;padding-left:0}.chart-section h2,.tide-table h2{font-size:16px}}
