:root{--bg-color:#070d1f;--bg-gradient:radial-gradient(circle at 15% 15%, #132a4a 0%, #091326 55%, #050a14 100%);--panel-bg:#101c34b8;--panel-border:#94a3b829;--panel-highlight-border:#38bdf859;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-color:#1e3a5f;--highlight-color:#38bdf8;--primary-color:#38bdf8;--teal-glow:#2dd4bf;--score-bad:#fb7185;--score-ok:#fbbf24;--score-good:#34d399}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-primary);background-attachment:fixed;justify-content:center;min-height:100vh;padding:2rem 1.25rem 3.5rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;position:relative;overflow-x:hidden}.bg-decor{filter:blur(95px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}.bg-glow-1{background:#0284c7;width:380px;height:380px;top:-120px;left:-100px}.bg-glow-2{background:#0d9488;width:420px;height:420px;bottom:-150px;right:-120px}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-container{z-index:1;flex-direction:column;gap:1.4rem;width:100%;max-width:900px;display:flex;position:relative}.app-header{text-align:center;margin-bottom:.4rem}.header-badge{letter-spacing:1.5px;color:var(--highlight-color);background:#38bdf81a;border:1px solid #38bdf840;border-radius:999px;margin-bottom:.75rem;padding:.35rem .9rem;font-size:.72rem;font-weight:700;display:inline-block}h1{letter-spacing:-.5px;background:linear-gradient(95deg,#fff 0%,#bae6fd 50%,#2dd4bf 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.45rem;font-size:clamp(1.85rem,4vw,2.55rem);font-weight:800}.subtitle{color:var(--text-secondary);max-width:580px;margin:0 auto;font-size:.98rem;line-height:1.45}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--panel-border);border-radius:20px;padding:1.5rem;transition:transform .25s,border-color .25s,box-shadow .25s;box-shadow:0 12px 36px -4px #00000073,inset 0 1px #ffffff14}h2{color:var(--text-primary);letter-spacing:-.2px;font-size:1.25rem;font-weight:700}.controls-panel{flex-direction:column;gap:1rem;padding:1.25rem 1.5rem;display:flex}.spot-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.spot-header label{color:#e2e8f0;font-size:1rem;font-weight:700}.spot-coords{color:var(--highlight-color);background:#0f172aa6;border:1px solid #38bdf833;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;font-weight:600}.spot-switcher{grid-template-columns:repeat(2,1fr);gap:.85rem;display:grid}.spot-pill{color:var(--text-secondary);cursor:pointer;text-align:left;background:#0f172a8c;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;align-items:flex-start;padding:.9rem 1.15rem;font-family:inherit;transition:all .25s;display:flex}.spot-pill:hover{color:var(--text-primary);background:#1e293bbf;transform:translateY(-1px)}.spot-pill.active{border-color:var(--highlight-color);color:#fff;background:linear-gradient(135deg,#0ea5e938 0%,#14b8a626 100%);box-shadow:0 4px 20px #38bdf82e}.spot-pill-title{margin-bottom:2px;font-size:1.05rem;font-weight:700}.spot-pill-sub{opacity:.8;font-size:.78rem}.target-filter-wrap{border-top:1px solid #ffffff14;flex-direction:column;gap:.65rem;padding-top:.9rem;display:flex}.target-filter-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.target-label{color:#cbd5e1;font-size:.86rem;font-weight:700}.target-active-badge{color:var(--teal-glow);background:#2dd4bf1f;border:1px solid #2dd4bf4d;border-radius:999px;padding:.2rem .65rem;font-size:.75rem;font-weight:700}.target-pills{flex-wrap:wrap;gap:.5rem;display:flex}.target-chip{color:var(--text-secondary);cursor:pointer;text-align:center;background:#0f172aa6;border:1px solid #ffffff17;border-radius:999px;flex:auto;padding:.5rem .85rem;font-family:inherit;font-size:.83rem;font-weight:600;transition:all .2s}.target-chip:hover{color:#fff;background:#1e293bd9}.target-chip.active{border-color:var(--teal-glow);color:#fff;background:linear-gradient(135deg,#2dd4bf38 0%,#38bdf838 100%);box-shadow:0 3px 12px #2dd4bf2e}.tabs{border:1px solid var(--panel-border);background:#0f172aa6;border-radius:16px;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:.45rem;display:grid}@media (width>=640px){.tabs{grid-template-columns:repeat(5,1fr)}}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem .5rem;font-family:inherit;font-size:.86rem;font-weight:600;transition:all .25s;display:flex}.tab-btn:hover{color:var(--text-primary);background:#ffffff0a}.tab-btn.active{color:#fff;background:#38bdf829;border-color:#38bdf866;box-shadow:0 4px 14px #00000040}.tab-icon{font-size:1rem}.tab-content{animation:.3s fadeIn;display:none}.tab-content.active{flex-direction:column;gap:1.4rem;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=680px){.hero-grid{grid-template-columns:1.15fr 1fr;align-items:stretch}}.main-score-panel{text-align:center;flex-direction:column;justify-content:space-between;align-items:center;display:flex}.panel-top-bar{justify-content:space-between;align-items:center;width:100%;margin-bottom:.75rem;display:flex}.live-pill{letter-spacing:1px;color:var(--score-good);background:#34d3991f;border:1px solid #34d3994d;border-radius:999px;align-items:center;gap:6px;padding:.25rem .65rem;font-size:.72rem;font-weight:800;display:inline-flex}.live-dot{background:var(--score-good);width:7px;height:7px;box-shadow:0 0 8px var(--score-good);border-radius:50%;animation:1.8s infinite pulseDot}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.score-circle{width:175px;height:175px;margin:.3rem auto 1rem}.circular-chart{max-width:100%;max-height:250px;margin:0 auto;display:block}.circle-bg{fill:none;stroke:#ffffff14;stroke-width:2.8px}.circle{fill:none;stroke-width:2.8px;stroke-linecap:round;transition:stroke-dasharray .9s cubic-bezier(.22,1,.36,1),stroke .4s}.percentage{fill:#fff;text-anchor:middle;font-family:inherit;font-size:.52em;font-weight:800}.score-sublabel{fill:var(--text-secondary);letter-spacing:1.5px;text-anchor:middle;font-size:.16em;font-weight:700}.message{color:#e2e8f0;max-width:92%;margin-bottom:.9rem;font-size:.98rem;line-height:1.45}.best-today-chip{color:#bae6fd;background:#0f172aa6;border:1px solid #38bdf840;border-radius:12px;width:100%;padding:.6rem .9rem;font-size:.85rem;font-weight:600}.details-panel{grid-template-columns:repeat(2,1fr);gap:.9rem;padding:1.25rem;display:grid}.detail-item{background:#0f172a8c;border:1px solid #ffffff12;border-radius:16px;flex-direction:column;justify-content:space-between;gap:.65rem;padding:1rem;transition:border-color .25s,transform .2s;display:flex}.detail-item:hover{border-color:#38bdf859;transform:translateY(-2px)}.detail-item .icon{background:#38bdf81f;border:1px solid #38bdf833;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.45rem;display:inline-flex}.detail-info{flex-direction:column;gap:2px;display:flex}.detail-info .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;font-size:.73rem;font-weight:600}.detail-info .value{color:#fff;font-size:1.02rem;font-weight:700;line-height:1.3}.selected-hour-panel{border:1px solid var(--panel-highlight-border);background:linear-gradient(145deg,#10223ed9 0%,#0c182ee6 100%);animation:.35s fadeIn}.selected-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.selected-hint{color:var(--text-secondary);font-size:.78rem}.selected-hour-grid{grid-template-columns:repeat(2,1fr);gap:.85rem;margin-bottom:1.15rem;display:grid}@media (width>=560px){.selected-hour-grid{grid-template-columns:repeat(4,1fr)}}.selected-detail-item{text-align:center;background:#070d1f8c;border:1px solid #ffffff12;border-radius:14px;flex-direction:column;align-items:center;padding:.85rem .75rem;display:flex}.selected-detail-item .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px;font-size:.72rem;font-weight:600}.selected-detail-item .value{color:#fff;font-size:.95rem;font-weight:700;line-height:1.3}.advice-box{border:1px solid #2dd4bf40;border-left:4px solid var(--teal-glow);background:#070d1fa6;border-radius:12px;padding:1.1rem 1.25rem}.advice-title{color:var(--teal-glow);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:.82rem;font-weight:800;display:block}.advice-text{color:#f1f5f9;font-size:.95rem;line-height:1.55}.forecast-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1.2rem;display:flex}.forecast-legend{color:var(--text-secondary);gap:.85rem;font-size:.78rem;display:flex}.accordion-item{background:#0f172a8c;border:1px solid #ffffff14;border-radius:14px;margin-bottom:.75rem;transition:border-color .25s;overflow:hidden}.accordion-item.active{border-color:#38bdf859}.accordion-header{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.2rem;font-weight:600;transition:background .2s;display:flex}.accordion-header:hover{background:#ffffff0a}.day-title-wrap{align-items:center;gap:.6rem;display:flex}.day-chevron{color:var(--text-secondary);font-size:.8rem;transition:transform .3s}.accordion-item.active .day-chevron{color:var(--highlight-color);transform:rotate(180deg)}.day-badges{align-items:center;gap:.6rem;font-size:.85rem;display:flex}.day-stat-pill{background:#0000004d;border:1px solid #ffffff14;border-radius:999px;padding:.25rem .65rem;font-weight:700}.accordion-body{background:#070d1f73;max-height:0;transition:max-height .4s ease-out;overflow:hidden}.accordion-item.active .accordion-body{max-height:2200px}.accordion-item.active .accordion-header{background:#38bdf812;border-bottom:1px solid #ffffff12}.forecast-list{flex-direction:column;gap:.6rem;padding:1rem;display:flex}.forecast-item{border:1px solid #ffffff0d;border-left:4px solid var(--score-bad);cursor:pointer;background:#0f172ab3;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;transition:all .2s;display:flex}.forecast-item:hover{background:#1e293bd9;transform:translate(3px)}.forecast-item.selected{background:#38bdf824;box-shadow:0 4px 14px #38bdf81f;border-color:var(--highlight-color)!important}.forecast-time{color:#fff;min-width:58px;font-size:.98rem;font-weight:700}.forecast-conditions{color:var(--text-secondary);flex-wrap:wrap;flex:1;align-items:center;gap:.45rem;font-size:.84rem;display:flex}.cond-chip{color:#cbd5e1;background:#ffffff0d;border-radius:6px;padding:.2rem .55rem;font-weight:500}.cond-chip.solunar-chip{color:#fde68a;background:#fbbf2426;border:1px solid #fbbf244d;font-weight:700}.forecast-score-wrap{justify-content:flex-end;align-items:center;gap:.6rem;min-width:105px;display:flex}.mini-score-bar{background:#ffffff1a;border-radius:999px;width:46px;height:6px;display:none;overflow:hidden}@media (width>=480px){.mini-score-bar{display:block}}.mini-score-fill{border-radius:999px;height:100%}.forecast-score{text-align:right;min-width:44px;font-size:1.08rem;font-weight:800}.mb-panel{margin-bottom:.2rem}.mb-panel h2{text-align:left;margin-bottom:.5rem}.raw-table{border-collapse:collapse;width:100%;font-size:.9rem}.raw-table th,.raw-table td{text-align:left;border-bottom:1px solid #ffffff14;padding:.75rem .6rem}.raw-table th{color:var(--highlight-color);text-transform:uppercase;letter-spacing:.6px;font-size:.78rem;font-weight:700}.raw-table tr:last-child td{border-bottom:none}.factor-desc{color:var(--text-secondary);margin-bottom:1rem;font-size:.9rem;line-height:1.5}.factor-desc strong{color:var(--highlight-color)}.raw-marea-chart{background:#070d1f80;border-radius:12px;align-items:flex-end;gap:2px;height:110px;margin-top:1rem;padding:.5rem;display:flex}.marea-bar{background:linear-gradient(to top, #38bdf833, var(--primary-color));border-radius:4px 4px 0 0;flex:1;min-height:5px;transition:height .3s}.guide-alert{background:#f43f5e24;border:1px solid #f43f5e59;border-left:4px solid #f43f5e;border-radius:12px;padding:1rem 1.25rem;font-size:.95rem;line-height:1.5;display:none}.guide-alert.visible{display:block}.fish-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem;display:grid}.fish-card{background:#0f172ad1;border:1px solid #ffffff1a;border-radius:16px;padding:1.4rem;transition:transform .25s,border-color .25s;box-shadow:0 8px 24px #00000059}.fish-card:hover{border-color:var(--primary-color);transform:translateY(-3px)}.fish-card h3{color:#fff;border-bottom:1px solid #ffffff14;margin:0 0 12px;padding-bottom:10px;font-size:1.25rem}.badges{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.badge{text-transform:uppercase;letter-spacing:.5px;color:#fff;border-radius:999px;padding:4px 11px;font-size:.72rem;font-weight:700}.badge.technique{background-color:#6d28d9}.badge.season{background-color:#0284c7}.fish-desc{color:#cbd5e1;margin:0 0 14px;font-size:.93rem;line-height:1.5}.fish-info-section{background:#070d1f99;border:1px solid #ffffff0f;border-radius:12px;padding:12px}.fish-info-item{margin-bottom:10px}.fish-info-item:last-child{margin-bottom:0}.fish-info-label{color:var(--primary-color);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;font-size:.74rem;font-weight:800;display:block}.fish-info-text{color:#e2e8f0;margin:0;font-size:.86rem;line-height:1.45}.loading{opacity:.5;pointer-events:none}.offline-banner{border:1px solid var(--score-ok);color:#fde68a;text-align:center;-webkit-backdrop-filter:blur(12px);background:#f59e0b26;border-radius:14px;padding:12px 16px;font-size:.92rem;font-weight:600;line-height:1.4;animation:.3s fadeIn;display:none;box-shadow:0 4px 15px #00000040}.offline-banner.visible{display:block}.sst-banner-panel{border-color:#2dd4bf4d}.sst-banner-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.sst-live-badge{color:#5eead4;white-space:nowrap;background:#2dd4bf29;border:1px solid #2dd4bf73;border-radius:999px;padding:.55rem 1.1rem;font-size:1.05rem;font-weight:800}.badge.thermal-hot{color:#6ee7b7;background:#10b98138;border:1px solid #34d39980}.badge.thermal-ok{color:#fde68a;background:#f59e0b38;border:1px solid #fbbf2480}.badge.thermal-cold{color:#fda4af;background:#f43f5e2e;border:1px solid #fb718566}.map-panel{flex-direction:column;gap:1.15rem;display:flex}.map-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.85rem;display:flex}.map-wind-overlay{color:#e0f2fe;background:#0f172ad9;border:1px solid #38bdf859;border-radius:12px;padding:.5rem .95rem;font-size:.85rem;font-weight:700}.amp-legend{flex-wrap:wrap;gap:.5rem;display:flex}.amp-badge{color:#e2e8f0;background:#0f172aa6;border:1px solid #ffffff1a;border-radius:8px;padding:.35rem .75rem;font-size:.76rem;font-weight:600}.amp-badge.zone-a{border-left:4px solid #ef4444}.amp-badge.zone-b{border-left:4px solid #eab308}.amp-badge.zone-c{border-left:4px solid #38bdf8}.amp-badge.zone-free{border-left:4px solid #10b981}.sorrento-map{z-index:1;background:#0b1528;border:1px solid #38bdf84d;border-radius:16px;width:100%;height:410px;overflow:hidden}.microspots-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem;display:grid}.microspot-card{cursor:pointer;background:#0f172aad;border:1px solid #ffffff14;border-radius:14px;padding:1rem;transition:all .2s}.microspot-card:hover{border-color:var(--highlight-color);background:#1e293bd9;transform:translateY(-2px)}.microspot-card h4{color:#fff;justify-content:space-between;align-items:center;margin-bottom:.35rem;font-size:.98rem;display:flex}.microspot-zone-tag{border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:700}.microspot-card p{color:var(--text-secondary);font-size:.82rem;line-height:1.4}.journal-top-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1.15rem;display:flex}.db-status-badge{color:#6ee7b7;background:#34d39924;border:1px solid #34d39959;border-radius:999px;padding:.35rem .8rem;font-size:.76rem;font-weight:700}.db-status-badge.local-fallback{color:#fde68a;background:#fbbf2424;border-color:#fbbf2459}.journal-stats-grid{grid-template-columns:repeat(2,1fr);gap:.85rem;display:grid}@media (width>=600px){.journal-stats-grid{grid-template-columns:repeat(4,1fr)}}.journal-stat-card{text-align:center;background:#0f172a99;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;gap:.3rem;padding:.9rem;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);font-size:.72rem;font-weight:600}.stat-value{color:var(--highlight-color);font-size:1.18rem;font-weight:800}.journal-form-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.telemetry-snapshot-pill{color:#bae6fd;background:#38bdf81f;border:1px solid #38bdf840;border-radius:999px;padding:.25rem .75rem;font-size:.76rem;font-weight:600}.form-grid{grid-template-columns:1fr;gap:.85rem;display:grid}@media (width>=580px){.form-grid{grid-template-columns:repeat(2,1fr)}}.form-group{flex-direction:column;gap:.35rem;display:flex}.form-group label{color:#cbd5e1;font-size:.8rem;font-weight:600}.form-group input,.form-group select{color:#fff;background:#070d1fb3;border:1px solid #ffffff24;border-radius:10px;outline:none;padding:.68rem .85rem;font-family:inherit;font-size:.92rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--highlight-color)}.form-actions{justify-content:flex-end;margin-top:1.1rem;display:flex}.btn-submit-catch{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0ea5e9 0%,#14b8a6 100%);border:none;border-radius:12px;padding:.75rem 1.4rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #0ea5e94d}.btn-submit-catch:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0ea5e973}.catches-list{flex-direction:column;gap:.85rem;margin-top:1rem;display:flex}.catch-card{border:1px solid #ffffff14;border-left:4px solid var(--teal-glow);background:#0f172ab8;border-radius:14px;flex-direction:column;gap:.55rem;padding:1rem 1.15rem;display:flex}.catch-card-top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.catch-title{color:#fff;font-size:1.08rem;font-weight:800}.catch-meta{color:var(--text-secondary);font-size:.8rem}.catch-telemetry-row{flex-wrap:wrap;gap:.4rem;display:flex}.catch-notes-text{color:#e2e8f0;font-size:.86rem;font-style:italic}.btn-delete-catch{color:#fda4af;cursor:pointer;background:#f43f5e24;border:1px solid #f43f5e4d;border-radius:8px;padding:.3rem .6rem;font-size:.76rem;font-weight:700;transition:all .2s}.btn-delete-catch:hover{color:#fff;background:#f43f5e47}.empty-catches{text-align:center;color:var(--text-secondary);padding:2rem 1rem;font-size:.92rem}
