/* BalıkMerası — Ana Stil Dosyası */
:root{
  --g1:#00e676;--g2:#00c853;--g3:#1b5e20;
  --bg:#0f1117;--bg2:#161b27;--bg3:#1e2535;
  --card:#1a2030;--card2:#222840;
  --border:#2a3450;--border2:#354060;
  --txt:#e8eaf0;--txt2:#8892b0;--txt3:#4a5568;
  --red:#ff5252;--amber:#ffb300;--blue:#448aff;
  --radius:14px;--rsm:9px;
  --sh:0 4px 24px rgba(0,0,0,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--txt);min-height:100vh}
button{font-family:inherit;cursor:pointer}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

.app{max-width:960px;margin:0 auto;padding:1.2rem 1rem 6rem}

/* ── TOPBAR ── */
.topbar{display:flex;align-items:center;gap:12px;margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.logo{display:flex;align-items:center;gap:10px}
.logo-icon{width:42px;height:42px;border-radius:10px;object-fit:contain;background:#fff;padding:4px;box-shadow:0 0 16px rgba(0,200,83,.3);display:block;flex-shrink:0}
.logo-icon-fb{width:42px;height:42px;background:linear-gradient(135deg,#00c853,#007c39);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 0 16px rgba(0,200,83,.3);flex-shrink:0}
.logo-name{font-size:19px;font-weight:800;color:var(--g1);letter-spacing:-.5px}
.logo-sub{font-size:10px;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;margin-top:1px}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}
#clock{font-size:12px;color:var(--txt3);text-align:right}
.info-btn{background:var(--bg3);border:1px solid var(--border2);color:var(--txt2);font-size:14px;padding:7px 12px;border-radius:var(--rsm);transition:all .15s;display:flex;align-items:center;gap:5px;white-space:nowrap;min-height:36px}
.info-btn:hover{border-color:var(--g2);color:var(--g1)}

/* ── SEARCH ── */
.search-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:10px}
.cat-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cat-tab{padding:5px 12px;font-size:12px;font-weight:600;border-radius:99px;border:1px solid var(--border2);background:transparent;color:var(--txt2);transition:all .15s;white-space:nowrap;min-height:32px}
.cat-tab:hover{border-color:var(--g1);color:var(--g1)}
.cat-tab.active{background:var(--g2);color:#000;border-color:var(--g2);font-weight:700}
.search-row{display:flex;gap:8px;position:relative}
.search-input-wrap{flex:1;position:relative}
#search-input{width:100%;padding:11px 36px 11px 38px;font-size:14px;border:1px solid var(--border2);border-radius:var(--rsm);background:var(--bg2);color:var(--txt);outline:none;transition:border-color .15s;min-height:44px}
#search-input::placeholder{color:var(--txt3)}
#search-input:focus{border-color:var(--g2);box-shadow:0 0 0 3px rgba(0,200,83,.12)}
.s-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:15px;pointer-events:none;color:var(--txt3)}
#s-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;color:var(--txt3);display:none;padding:2px;line-height:1}
#s-clear:hover{color:var(--txt)}

#gps-btn{padding:11px 14px;border-radius:var(--rsm);background:var(--bg3);border:1px solid var(--border2);color:var(--g1);font-size:18px;transition:all .15s;display:flex;align-items:center;justify-content:center;min-width:46px;min-height:44px}
#gps-btn:hover{background:var(--g3);border-color:var(--g2)}
#gps-btn.loading{animation:gps-pulse 1s infinite}
@keyframes gps-pulse{0%,100%{opacity:1}50%{opacity:.4}}

.suggestions{position:absolute;z-index:9999;width:100%;background:var(--card2);border:1px solid var(--border2);border-radius:12px;margin-top:5px;box-shadow:0 8px 32px rgba(0,0,0,.6);overflow:hidden;display:none;max-height:340px;overflow-y:auto;top:100%;left:0;}
.sug-sec{padding:5px 12px 3px;font-size:10px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;background:var(--bg3);border-bottom:1px solid var(--border)}
.sug-item{padding:9px 14px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:10px;transition:background .1s}
.sug-item:hover,.sug-item.ak{background:rgba(0,200,83,.08)}
.s-ico{font-size:16px;width:22px;text-align:center;flex-shrink:0;margin-top:1px}
.s-main{font-weight:600;color:var(--txt);line-height:1.3;font-size:13px}
.s-det{font-size:11px;color:var(--txt3);margin-top:2px}
.s-badge{font-size:10px;padding:1px 7px;border-radius:99px;font-weight:700;margin-left:6px;vertical-align:middle}
.bw{background:rgba(68,138,255,.2);color:#82b1ff}.bb{background:rgba(255,179,0,.15);color:#ffca28}.bp{background:rgba(0,200,83,.15);color:#69f0ae}.bf{background:rgba(0,229,255,.15);color:#84ffff}
.sug-load{padding:14px;text-align:center;font-size:13px;color:var(--txt3)}

/* ── MAP & CONTROLS ── */
.map-wrap{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);margin-bottom:10px;position:relative}
#map{width:100%;height:320px}
.map-badge{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(15,17,23,.85);color:var(--txt2);font-size:12px;padding:6px 14px;border-radius:99px;pointer-events:none;z-index:800;white-space:nowrap;border:1px solid var(--border);backdrop-filter:blur(4px)}

.loc-row{display:flex;align-items:center;gap:10px;margin:8px 0}
.loc-tag{font-size:12px;color:var(--txt3);flex:1}
.loc-tag strong{color:var(--g1)}

.target-fish-wrap{position:relative;margin-bottom:14px;}
#target-fish{width:100%;padding:13px 16px;background:var(--card2);color:var(--txt);border:1px solid var(--border2);border-radius:var(--rsm);outline:none;font-size:14px;font-weight:600;cursor:pointer;appearance:none;transition:border-color 0.2s;min-height:44px}
#target-fish:focus{border-color:var(--g2);box-shadow:0 0 0 3px rgba(0,200,83,.12);}
.tf-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:12px;color:var(--txt3);}

#analyze-btn{width:100%;padding:15px;font-size:15px;font-weight:700;border-radius:var(--rsm);border:none;background:linear-gradient(135deg,#00c853,#007c39);color:#fff;letter-spacing:.03em;margin-bottom:1.4rem;box-shadow:0 4px 20px rgba(0,200,83,.3);transition:all .18s;min-height:52px}
#analyze-btn:hover{box-shadow:0 6px 28px rgba(0,200,83,.45);transform:translateY(-1px)}
#analyze-btn:disabled{background:var(--bg3);color:var(--txt3);box-shadow:none;transform:none;border:1px solid var(--border)}

/* ── WELCOME CARD ── */
.welcome-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem;margin-bottom:1rem}
.welcome-card h3{font-size:16px;font-weight:800;color:var(--g1);margin-bottom:1rem;display:flex;align-items:center;gap:8px}
.welcome-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:1.2rem}
.w-step{background:var(--bg3);border:1px solid var(--border);border-radius:var(--rsm);padding:12px 14px;display:flex;gap:10px;align-items:flex-start}
.w-step-num{width:24px;height:24px;border-radius:50%;background:var(--g2);color:#000;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.w-step-ico{font-size:18px;flex-shrink:0;margin-top:1px}
.w-step-txt{font-size:12px;color:var(--txt2);line-height:1.5}
.w-step-txt strong{color:var(--txt);display:block;margin-bottom:2px;font-size:13px}

/* ── SCORE LEGEND ── */
.score-legend{border-top:1px solid var(--border);padding-top:1rem}
.score-legend-title{font-size:11px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
.legend-items{display:flex;flex-wrap:wrap;gap:8px}
.legend-item{display:flex;align-items:center;gap:7px;background:var(--bg3);border:1px solid var(--border);border-radius:99px;padding:5px 12px;font-size:12px}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.l-e{background:#00e676}.l-g{background:#69f0ae}.l-a{background:#ffb300}.l-r{background:#ff5252}
.legend-score{font-weight:800;color:var(--txt)}
.legend-label{color:var(--txt2)}

/* ── RESULTS ── */
.loading-wrap{text-align:center;padding:3rem 1rem}
.spinner{width:38px;height:38px;border:3px solid var(--border2);border-top-color:var(--g1);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 1rem}
@keyframes spin{to{transform:rotate(360deg)}}

.hero{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem;margin-bottom:10px}
.ring-wrap{position:relative;width:96px;height:96px;flex-shrink:0}
.ring-wrap svg{transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:var(--border2);stroke-width:8}
.ring-fill{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1)}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-num{font-size:26px;font-weight:900;line-height:1}
.ring-den{font-size:11px;color:var(--txt3)}
.hero-r h2{font-size:20px;font-weight:800;margin-bottom:3px}
.hero-r .sub{font-size:13px;color:var(--txt3);margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{font-size:12px;background:var(--bg3);border:1px solid var(--border);padding:4px 10px;border-radius:99px;color:var(--txt2)}

.stitle{font-size:12px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.07em;margin:0 0 8px;display:flex;align-items:center;gap:6px}

/* WEEK GRID */
.week-scroll{overflow-x:auto;margin-bottom:10px;padding-bottom:4px}
.week-scroll::-webkit-scrollbar{height:4px}
.week-scroll::-webkit-scrollbar-track{background:var(--bg2);border-radius:2px}
.week-scroll::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;min-width:490px}
.day-card{position:relative;background:var(--card);border:1.5px solid var(--border);border-radius:12px;padding:10px 6px;text-align:center;cursor:pointer;transition:all .18s}
.day-card:hover{border-color:var(--g2);transform:translateY(-2px)}
.day-card.sel{border-color:var(--g1);background:rgba(0,200,83,.08);box-shadow:0 0 0 3px rgba(0,200,83,.1)}
.d-best-badge{position:absolute;top:-10px;right:-5px;background:var(--amber);color:#000;font-size:9px;font-weight:800;padding:3px 7px;border-radius:99px;box-shadow:0 2px 8px rgba(0,0,0,0.4);border:2px solid var(--card);z-index:10;white-space:nowrap}
.d-name{font-size:10px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.d-date{font-size:9px;color:var(--txt3);margin-bottom:6px}
.d-ico{font-size:17px;margin-bottom:4px}
.d-score{font-size:21px;font-weight:900;margin-bottom:2px}
.d-grade{font-size:9px;font-weight:700;margin-bottom:5px}
.d-temp{font-size:10px;color:var(--txt3)}
.d-bar{height:3px;border-radius:99px;background:var(--border);overflow:hidden;margin-top:5px}
.d-bar-f{height:100%;border-radius:99px}

/* DETAIL (CHART & TABLE) */
.detail-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;margin-bottom:10px}
.detail-card h3{font-size:15px;font-weight:700;margin-bottom:1rem;color:var(--txt)}
.chart-wrap{height:180px;margin-bottom:1.2rem;position:relative}
.win-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-bottom:1.2rem}
.win-card{border-radius:var(--rsm);padding:11px 13px;border:1px solid}
.wg{background:rgba(0,230,118,.07);border-color:rgba(0,230,118,.3);color:#69f0ae}
.wa{background:rgba(255,179,0,.07);border-color:rgba(255,179,0,.3);color:#ffca28}
.wr{background:rgba(255,82,82,.07);border-color:rgba(255,82,82,.3);color:#ff8a80}
.w-rank{font-size:10px;font-weight:700;opacity:.7;margin-bottom:3px}
.w-time{font-size:15px;font-weight:900;margin-bottom:2px}
.w-score{font-size:12px;font-weight:600}
.w-why{font-size:11px;margin-top:4px;opacity:.75}

.tbl-wrap{overflow-x:auto}
table.htbl{width:100%;border-collapse:collapse;font-size:12.5px}
.htbl th{padding:7px 10px;text-align:left;font-size:10px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1.5px solid var(--border);background:var(--bg3);white-space:nowrap}
.htbl td{padding:7px 10px;border-bottom:1px solid var(--border)}
.htbl tr:hover td{background:rgba(255,255,255,.02)}
.htbl tr.bst td{background:rgba(0,230,118,.05)}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-weight:700;font-size:11px}
.pg{background:rgba(0,230,118,.15);color:#69f0ae}.pa{background:rgba(255,179,0,.15);color:#ffca28}.pr{background:rgba(255,82,82,.15);color:#ff8a80}
.hbar{height:5px;border-radius:99px;background:var(--border);overflow:hidden;width:50px;display:inline-block;vertical-align:middle;margin-left:6px}
.hbar-f{height:100%;border-radius:99px}

/* PARAMS */
.params-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px;margin-bottom:10px}
.param-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:11px 13px;position:relative}
.p-head{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.p-ico{font-size:19px}
.p-name{font-size:11px;color:var(--txt3);font-weight:500}
.p-val{font-size:16px;font-weight:800;margin-bottom:2px}
.p-sub{font-size:11px;color:var(--txt3)}
.p-tooltip-icon{position:absolute;top:8px;right:10px;font-size:11px;color:var(--txt3);cursor:help;opacity:.5}

/* SUN & TREND */
.sun-row{display:flex;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:10px;flex-wrap:wrap}
.sun-item{flex:1 0 120px;padding:11px 14px;display:flex;align-items:center;gap:10px;border-right:1px solid var(--border)}
.sun-item:last-child{border-right:none}
.s-e{font-size:20px}
.s-lbl{font-size:10px;color:var(--txt3);margin-bottom:2px}
.s-val{font-size:14px;font-weight:800;color:var(--txt)}

.trend-row{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:10px}
.t-arr{font-size:28px;font-weight:900;line-height:1}
.t-title{font-size:14px;font-weight:700;color:var(--txt)}
.t-sub{font-size:12px;color:var(--txt2);margin-top:3px}

/* SOLUNAR */
.sol-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;margin-bottom:10px}
.sol-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px;margin-top:.7rem}
.sol-item{background:var(--bg3);border:1px solid var(--border);border-radius:var(--rsm);padding:9px 11px}
.sol-b{display:inline-block;font-size:10px;padding:2px 8px;border-radius:99px;font-weight:700;margin-bottom:4px}
.smaj{background:rgba(0,230,118,.15);color:#69f0ae}
.smin{background:rgba(255,179,0,.12);color:#ffca28}
.sol-info{font-size:11px;color:var(--txt3);margin-top:.5rem;line-height:1.5}

/* ANALYSIS */
.ana-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;margin-bottom:10px}
.tip{display:flex;gap:10px;margin-bottom:9px;font-size:13.5px;line-height:1.7;align-items:flex-start}
.tip-i{font-size:16px;flex-shrink:0;margin-top:2px}

/* ── INFO MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:10000;display:none;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(4px)}
.modal-overlay.open{display:flex}
.modal{background:var(--card);border:1px solid var(--border2);border-radius:18px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:1.6rem;position:relative}
.modal-close{position:absolute;top:14px;right:14px;background:var(--bg3);border:1px solid var(--border2);color:var(--txt2);font-size:18px;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.modal-close:hover{color:var(--txt);border-color:var(--g2)}
.modal h2{font-size:18px;font-weight:800;color:var(--g1);margin-bottom:4px}
.modal-sub{font-size:12px;color:var(--txt3);margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.modal-section{margin-bottom:1.2rem}
.modal-section h4{font-size:12px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.7rem;display:flex;align-items:center;gap:6px}
.modal-section p{font-size:13px;color:var(--txt2);line-height:1.7;margin-bottom:.6rem}
.modal-param-list{display:flex;flex-direction:column;gap:7px}
.modal-param{display:flex;gap:10px;align-items:flex-start;background:var(--bg3);border-radius:var(--rsm);padding:9px 12px}
.modal-param-ico{font-size:18px;flex-shrink:0}
.modal-param-txt{font-size:12px;color:var(--txt2);line-height:1.5}
.modal-param-txt strong{color:var(--txt);display:block;margin-bottom:1px}
.modal-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.modal-score-item{background:var(--bg3);border-radius:var(--rsm);padding:9px 12px;border-left:3px solid}
.msi-e{border-color:#00e676}.msi-g{border-color:#69f0ae}.msi-a{border-color:#ffb300}.msi-r{border-color:#ff5252}
.msi-score{font-size:16px;font-weight:900;margin-bottom:2px}
.msi-label{font-size:12px;color:var(--txt2)}
.msi-desc{font-size:11px;color:var(--txt3);margin-top:3px}

/* ── FOOTER ── */
.site-footer{margin-top:3rem;padding:1.4rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center}
.footer-logo{font-size:22px;font-weight:900;color:var(--g1);margin-bottom:4px}
.footer-desc{font-size:12px;color:var(--txt3);max-width:460px;margin:0 auto .8rem;line-height:1.6}
.footer-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:.8rem}
.footer-tag{font-size:10px;background:var(--bg3);border:1px solid var(--border);color:var(--txt3);padding:3px 9px;border-radius:99px}
.footer-copy{font-size:11px;color:var(--txt3);opacity:.5}

/* ── MOBILE STICKY ANALYZE BTN ── */
.sticky-analyze{display:none;position:fixed;bottom:0;left:0;right:0;padding:10px 16px 14px;background:linear-gradient(to top,var(--bg) 80%,transparent);z-index:900}
.sticky-analyze button{width:100%;padding:15px;font-size:15px;font-weight:700;border-radius:var(--rsm);border:none;background:linear-gradient(135deg,#00c853,#007c39);color:#fff;letter-spacing:.03em;box-shadow:0 4px 20px rgba(0,200,83,.4);min-height:52px}
.sticky-analyze button:disabled{background:var(--bg3);color:var(--txt3);box-shadow:none;border:1px solid var(--border)}

/* ── COLORS ── */
.ce{color:#00e676}.cg{color:#69f0ae}.ca{color:#ffca28}.cr{color:#ff5252}
.fe{background:#00e676}.fg{background:#69f0ae}.fa{background:#ffb300}.fr{background:#ff5252}
.re{stroke:#00e676}.rg{stroke:#69f0ae}.ra{stroke:#ffb300}.rr{stroke:#ff5252}

/* ── BİLDİRİM BUTONU & PANEL ── */
.notif-btn{background:var(--bg3);border:1px solid var(--border2);color:var(--txt2);font-size:17px;padding:7px 11px;border-radius:var(--rsm);transition:all .15s;display:flex;align-items:center;min-height:36px;position:relative}
.notif-btn:hover{border-color:#ffb300;color:#ffb300}
.notif-btn.active{border-color:#ffb300;color:#ffb300;background:rgba(255,179,0,.1)}
.notif-dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:#ffb300;display:none}
.notif-dot.show{display:block}

.notif-panel{display:none;background:var(--card);border:1px solid var(--border2);border-radius:var(--radius);padding:1.2rem;margin-bottom:10px;animation:slideDown .2s ease}
.notif-panel.open{display:block}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.notif-panel-title{font-size:14px;font-weight:800;color:var(--txt);margin-bottom:1rem;display:flex;align-items:center;gap:8px}
.notif-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.notif-row:last-child{border-bottom:none;padding-bottom:0}
.notif-row-label{font-size:13px;color:var(--txt2);flex:1;line-height:1.4}
.notif-row-label small{display:block;font-size:11px;color:var(--txt3);margin-top:2px}
.notif-select{padding:6px 10px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--rsm);color:var(--txt);font-size:12px;min-width:100px;cursor:pointer}
.notif-select:focus{outline:none;border-color:var(--g2)}

/* Toggle Switch */
.toggle-wrap{display:flex;align-items:center;gap:8px}
.toggle-label{font-size:12px;color:var(--txt3)}
.toggle{position:relative;width:44px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0;position:absolute}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border2);transition:.3s;border-radius:24px}
.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:white;transition:.3s;border-radius:50%}
.toggle input:checked + .toggle-slider{background:var(--g2)}
.toggle input:checked + .toggle-slider:before{transform:translateX(20px)}

.notif-loc-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notif-loc-tag{font-size:12px;color:var(--txt2);flex:1;min-width:120px}
.notif-save-loc{padding:6px 12px;border-radius:var(--rsm);border:1px solid var(--g2);background:transparent;color:var(--g1);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.notif-save-loc:hover{background:rgba(0,200,83,.1)}
.notif-test-btn{padding:8px 14px;border-radius:var(--rsm);border:none;background:rgba(255,179,0,.15);color:#ffca28;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid rgba(255,179,0,.3)}
.notif-test-btn:hover{background:rgba(255,179,0,.25)}
.notif-save-btn{padding:9px 20px;border-radius:var(--rsm);border:none;background:linear-gradient(135deg,#00c853,#007c39);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}
.notif-save-btn:hover{box-shadow:0 4px 16px rgba(0,200,83,.35)}
.notif-perm-warn{background:rgba(255,82,82,.08);border:1px solid rgba(255,82,82,.3);border-radius:var(--rsm);padding:8px 12px;font-size:12px;color:#ff8a80;margin-bottom:.8rem;display:none}
.notif-perm-warn.show{display:block}

/* ── FAVORİ İSİM DİALOGU ── */
.fav-dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9500;display:none;align-items:flex-end;justify-content:center;backdrop-filter:blur(4px)}
.fav-dialog-overlay.open{display:flex}
.fav-dialog{background:var(--card);border:1px solid var(--border2);border-radius:20px 20px 0 0;width:100%;max-width:500px;padding:1.5rem 1.4rem 2rem;animation:slideUp .25s cubic-bezier(.4,0,.2,1)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.fav-dialog-handle{width:40px;height:4px;border-radius:2px;background:var(--border2);margin:0 auto .9rem}
.fav-dialog-title{font-size:16px;font-weight:800;color:var(--txt);margin-bottom:.25rem}
.fav-dialog-sub{font-size:12px;color:var(--txt3);margin-bottom:1rem;line-height:1.4}
.fav-dialog-input{width:100%;padding:13px 14px;font-size:14px;font-weight:600;border:1.5px solid var(--border2);border-radius:var(--rsm);background:var(--bg2);color:var(--txt);outline:none;margin-bottom:.8rem;font-family:inherit;transition:border-color .15s}
.fav-dialog-input:focus{border-color:var(--g2);box-shadow:0 0 0 3px rgba(0,200,83,.12)}
.fav-char-count{font-size:11px;color:var(--txt3);text-align:right;margin-bottom:.9rem;margin-top:-.4rem}
.fav-dialog-btns{display:flex;gap:8px}
.fav-dialog-cancel{flex:1;padding:12px;border-radius:var(--rsm);border:1px solid var(--border2);background:transparent;color:var(--txt2);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.fav-dialog-cancel:hover{border-color:var(--red);color:var(--red)}
.fav-dialog-ok{flex:2;padding:12px;border-radius:var(--rsm);border:none;background:linear-gradient(135deg,#ffb300,#ff8f00);color:#000;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;transition:all .15s}
.fav-dialog-ok:hover{box-shadow:0 4px 16px rgba(255,179,0,.4)}

/* ── PWA GÜNCELLEME BANNER ── */
.update-banner{position:fixed;bottom:74px;left:50%;transform:translateX(-50%) translateY(16px);background:var(--card2);border:1px solid var(--g2);border-radius:99px;padding:9px 8px 9px 16px;display:flex;align-items:center;gap:10px;font-size:13px;opacity:0;transition:all .35s;z-index:9400;pointer-events:none;white-space:nowrap;box-shadow:0 4px 28px rgba(0,0,0,.5)}
.update-banner.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.update-banner-txt{color:var(--txt2)}
.update-apply{padding:6px 14px;border-radius:99px;border:none;background:var(--g2);color:#000;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.update-dismiss{background:none;border:none;color:var(--txt3);font-size:18px;cursor:pointer;padding:2px 8px;line-height:1}

/* ── FAVORİLER ── */
.fav-bar{display:none;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:var(--rsm);padding:8px 12px;margin-bottom:10px;overflow-x:auto;flex-wrap:nowrap}
.fav-bar::-webkit-scrollbar{height:3px}
.fav-label{font-size:11px;font-weight:700;color:var(--txt3);white-space:nowrap;flex-shrink:0}
.fav-chips{display:flex;gap:6px;align-items:center}
.fav-chip{display:flex;align-items:center;gap:4px;background:var(--bg3);border:1px solid var(--border2);border-radius:99px;font-size:12px;white-space:nowrap;overflow:hidden}
.fav-chip span{padding:5px 10px 5px 8px;cursor:pointer;color:var(--txt2);transition:color .15s}
.fav-chip span:hover{color:var(--g1)}
.fav-chip button{background:none;border:none;color:var(--txt3);padding:4px 8px 4px 0;font-size:15px;cursor:pointer;line-height:1}
.fav-chip button:hover{color:var(--red)}
.fav-btn{display:none;align-items:center;gap:5px;padding:5px 12px;border-radius:99px;border:1px solid var(--border2);background:transparent;color:var(--txt3);font-size:12px;font-weight:600;transition:all .15s;cursor:pointer;white-space:nowrap;flex-shrink:0}
.fav-btn:hover{border-color:var(--amber);color:var(--amber)}
.fav-btn.fav-active{background:rgba(255,179,0,.12);border-color:var(--amber);color:var(--amber)}

/* ── PAYLAŞIM & TOAST ── */
.share-btn{display:flex;align-items:center;gap:7px;margin-top:10px;padding:9px 16px;border-radius:var(--rsm);border:1px solid var(--border2);background:var(--bg3);color:var(--txt2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;width:100%}
.share-btn:hover{border-color:var(--g2);color:var(--g1)}
#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:#222840;color:var(--g1);border:1px solid var(--g2);border-radius:99px;padding:10px 20px;font-size:13px;font-weight:600;opacity:0;transition:all .3s;z-index:20000;pointer-events:none;white-space:nowrap}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── PWA INSTALL BANNER ── */
.pwa-banner{display:none;align-items:center;gap:10px;background:linear-gradient(135deg,rgba(0,200,83,.1),rgba(0,200,83,.05));border:1px solid rgba(0,200,83,.3);border-radius:var(--rsm);padding:10px 14px;margin-bottom:10px;font-size:13px}
.pwa-banner.show{display:flex}
.pwa-banner-txt{flex:1;color:var(--txt2);line-height:1.4}
.pwa-banner-txt strong{color:var(--g1);display:block;margin-bottom:2px;font-size:13px}
.pwa-install-btn{padding:7px 14px;border-radius:var(--rsm);border:none;background:var(--g2);color:#000;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0}
.pwa-dismiss{background:none;border:none;color:var(--txt3);font-size:18px;cursor:pointer;padding:2px 6px;flex-shrink:0}

/* ── RESPONSIVE: 768px ── */
@media(max-width:768px){
  .welcome-steps{grid-template-columns:1fr 1fr}
}

/* ── RESPONSIVE: 600px ── */
@media(max-width:600px){
  #map{height:260px}
  .hero{grid-template-columns:1fr;text-align:center}
  .ring-wrap{margin:0 auto}
  .chips{justify-content:center}
  .sun-item{flex:1 0 45%;border-bottom:1px solid var(--border)}
  .modal-score-grid{grid-template-columns:1fr}
  .params-grid{grid-template-columns:1fr 1fr}
}

/* ── RESPONSIVE: 480px ── */
@media(max-width:480px){
  .app{padding:1rem .75rem 5rem}
  .logo-name{font-size:17px}
  .welcome-steps{grid-template-columns:1fr}
  .cat-tabs{gap:5px}
  .cat-tab{font-size:11px;padding:5px 10px}
  .params-grid{grid-template-columns:1fr 1fr}
  .win-grid{grid-template-columns:1fr}
  .legend-items{gap:6px}
  .sticky-analyze{display:block}
  #analyze-btn{display:none}
  .modal{padding:1.2rem}
}

/* ── RESPONSIVE: 360px ── */
@media(max-width:360px){
  .logo-sub{display:none}
  .info-btn span{display:none}
  .params-grid{grid-template-columns:1fr}
}
