:root{
  --ink:#0f172a;--paper:#f8fafc;--paper-dark:#e2e8f0;
  --water:#2c5282;--water-light:#3b6da8;--water-pale:#eff5ff;
  --moss:#16a34a;--gold:#eab308;--gold-light:#facc15;
  --rust:#ef4444;--cream:#ffffff;--shadow:rgba(15,23,42,.06);
  --radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:28px;
  --glass-bg:rgba(248,250,252,.78);--glass-border:rgba(248,250,252,.5);--glass-blur:20px;
  --shadow-xs:0 1px 2px rgba(15,23,42,.04);
  --shadow-sm:0 1px 3px rgba(15,23,42,.07),0 1px 2px rgba(15,23,42,.04);
  --shadow-md:0 4px 12px rgba(15,23,42,.09),0 2px 4px rgba(15,23,42,.04);
  --shadow-lg:0 12px 30px rgba(15,23,42,.13),0 4px 10px rgba(15,23,42,.06);
  --shadow-xl:0 25px 50px rgba(15,23,42,.16),0 10px 20px rgba(15,23,42,.08);
}
body.predator-mode{--water:#581c87;--water-light:#7e22ce;--water-pale:#faf5ff;--gold:#a855f7;--gold-light:#c084fc;}
body.paylake-mode{--water:#166534;--water-light:#16a34a;--water-pale:#f0fdf4;--gold:#15803d;--gold-light:#4ade80;}
body.dark-mode{
  --ink:#e2e8f0;--paper:#0f172a;--paper-dark:#1e293b;
  --water-pale:#1e293b;--cream:#1e293b;
  --glass-bg:rgba(15,23,42,.85);--glass-border:rgba(30,41,59,.5);
  --shadow-xs:0 1px 2px rgba(0,0,0,.15);
  --shadow-sm:0 1px 3px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15);
  --shadow-md:0 4px 12px rgba(0,0,0,.25),0 2px 4px rgba(0,0,0,.15);
  --shadow-lg:0 12px 30px rgba(0,0,0,.35),0 4px 10px rgba(0,0,0,.2);
  --shadow-xl:0 25px 50px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.25);
}
body.dark-mode{background:linear-gradient(180deg,#0f172a 0%,#1a1a2e 100%);}
body.dark-mode.predator-mode{background:linear-gradient(180deg,#0f172a 0%,#1a0a2e 100%);}
body.dark-mode.paylake-mode{background:linear-gradient(180deg,#0f172a 0%,#0a2e1a 100%);}
body.dark-mode .catch-card,
body.dark-mode .modal-box,
body.dark-mode .add-rig-form,
body.dark-mode .rig-item,
body.dark-mode .prebait-card,
body.dark-mode .forecast-day-card,
body.dark-mode .stat-big-card,
body.dark-mode .friend-catch-card,
body.dark-mode .form-section,
body.dark-mode .photo-upload,
body.dark-mode .map-toggle-bar{background:#1e293b;}
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea{background:#1e293b;color:#e2e8f0;border-color:#334155;}
body.dark-mode input:focus,
body.dark-mode select:focus,
body.dark-mode textarea:focus{background:#0f172a;border-color:var(--water);}
body.dark-mode .mform-group input,
body.dark-mode .mform-group select,
body.dark-mode .mform-group textarea{background:#1e293b;color:#e2e8f0;border-color:#334155;}
body.dark-mode .google-btn{background:#1e293b;color:#e2e8f0;border-color:#334155;}
body.dark-mode .catch-card-header{border-bottom-color:#334155;}
body.dark-mode .notif-panel{background:#1e293b;}
body.dark-mode .notif-item{border-bottom-color:#334155;}
body.dark-mode .admin-create-form,
body.dark-mode .admin-stat-card,
body.dark-mode .admin-chart-box,
body.dark-mode .admin-feed{background:#1e293b;}
body.dark-mode .weight-badge{color:#0f172a;}
body.dark-mode .auth-error{background:#3b1111;border-color:#7f1d1d;color:#fca5a5;}
body.dark-mode .paylake-selected{background:#14532d;border-color:#16a34a;}
body.dark-mode .pls-name{color:#4ade80;}
body.dark-mode .setting-block{border-color:#334155;}
body.dark-mode .left-panel{background:#0f172a;}
body.dark-mode .panel-tabs{background:#0f172a;}
body.dark-mode .mode-toggle{background:#334155;}
body.dark-mode .stat-pill{background:#334155;}
body.dark-mode .toggle-pill{background:#334155;border-color:#334155;}
body.dark-mode .toggle-pill.active{background:var(--water-pale);border-color:var(--water-light);}
body.dark-mode .tab-btn:hover:not(.active){background:#334155;color:#e2e8f0;}
body.dark-mode .map-container{background:#0f172a;}
body.dark-mode .stats-filter-row{background:#0f172a;}
body.dark-mode .stats-filter-btn{border-color:#334155;color:#94a3b8;}
body.dark-mode .stats-summary-bar{background:#334155;}
body.dark-mode .ssb-item{background:#1e293b;}
body.dark-mode .profile-stat{background:#1e293b;}
body.dark-mode .profile-action-btn{background:#1e293b;border-color:#334155;}
body.dark-mode .photo-grid-item{background:#1e293b;}
body.dark-mode .privacy-setting-row{border-color:#334155;}
body.dark-mode .friend-list-item:hover{background:#334155;}
body.dark-mode .friend-catch-card{border-bottom-color:#334155;}
body.dark-mode .fcc-avatar{background:#334155;}
body.dark-mode .friend-search-row input{background:#1e293b;color:#e2e8f0;}
body.dark-mode .rig-chip{background:#1e293b;border-color:#334155;color:#94a3b8;}
body.dark-mode .rig-chip.active{background:var(--water);border-color:var(--water);color:white;}
body.dark-mode .location-display{background:#1e293b;border-color:#334155;}
body.dark-mode .modal-close{background:#334155;color:#94a3b8;}
body.dark-mode .modal-divider{color:#475569;}
body.dark-mode .catch-weather-mini{background:#334155;}
body.dark-mode .map-instruction{background:rgba(15,23,42,.85);color:#e2e8f0;border-color:#334155;}
body.dark-mode .screen-tab-nav{background:#0f172a;}
body.dark-mode .admin-tabs{background:#0f172a;}
body.dark-mode .admin-content{background:#0f172a;}
body.dark-mode .admin-table tr:hover td{background:#334155;}
body.dark-mode .forecast-day-card.today{background:#334155;border-color:var(--water);}
body.dark-mode .pb-card{background:#1e293b;}
body.dark-mode .pb-emoji{background:#334155;}
body.dark-mode .user-pill{background:#334155;border-color:#334155;}
body.dark-mode .user-pill:hover{background:#475569;border-color:#475569;}
body.dark-mode .help-btn{background:#334155;color:#e2e8f0;}
body.dark-mode .hdivider{background:#334155;}
body.dark-mode .map-toggle-bar:hover{background:#334155;}
body.dark-mode .photo-upload-text{color:#94a3b8;}
body.dark-mode .empty-state{color:#64748b;}
body.dark-mode .friends-empty{color:#64748b;}
body.dark-mode .public-toggle-track{background:#334155;}
body.dark-mode .stats-container{background:#0f172a;}
body.dark-mode .calendar-container{background:#0f172a;}
body.dark-mode .rigs-list{background:#0f172a;}
*{box-sizing:border-box;margin:0;padding:0;}
body.no-transition,body.no-transition *,body.no-transition *::before,body.no-transition *::after{transition:none!important;animation:none!important;}
body{font-family:'Plus Jakarta Sans',sans-serif;background:linear-gradient(180deg,var(--paper) 0%,#eff5ff 100%);color:var(--ink);height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;}
body.predator-mode{background:linear-gradient(180deg,var(--paper) 0%,#f5f3ff 100%);}
body::before{display:none;}

/* ── SVG ICONS ── */
.icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;}
.icon-lg{width:22px;height:22px;}
.icon-sm{width:14px;height:14px;}
.bnav-btn .icon{width:24px;height:24px;stroke-width:1.6;}
.section-label .icon{width:16px;height:16px;stroke-width:2;}
.tab-btn .icon{width:15px;height:15px;vertical-align:-2px;margin-right:2px;}

/* ── MODALS ── */
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:7000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s ease;}
.modal-overlay.show{opacity:1;pointer-events:all;}
.modal-box{background:white;border-radius:var(--radius-lg);padding:28px 24px;width:380px;max-width:94vw;box-shadow:var(--shadow-xl);transform:translateY(24px) scale(.96);transition:transform .35s cubic-bezier(.34,1.56,.64,1);position:relative;max-height:92vh;overflow-y:auto;}
.modal-overlay.show .modal-box{transform:translateY(0) scale(1);}
.modal-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;margin-bottom:4px;color:var(--ink);}
.modal-sub{font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px;}
.modal-divider{display:flex;align-items:center;gap:10px;margin:12px 0;color:#cbd5e1;font-size:11px;font-family:'JetBrains Mono',monospace;}
.modal-divider::before,.modal-divider::after{content:'';flex:1;height:1px;background:var(--paper-dark);}
.modal-switch{text-align:center;margin-top:10px;font-size:12px;color:#94a3b8;}
.modal-switch a{color:var(--water);cursor:pointer;text-decoration:underline;}
.modal-close{position:absolute;top:12px;right:14px;background:var(--paper);border:none;font-size:16px;cursor:pointer;color:#94a3b8;z-index:1;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.modal-close:hover{background:var(--paper-dark);color:var(--ink);}
.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:12px;padding:10px 14px;font-size:12px;margin-bottom:10px;display:none;}
.auth-error.show{display:block;}
.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:white;color:var(--ink);border:1.5px solid var(--paper-dark);border-radius:14px;padding:12px 16px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s;box-shadow:var(--shadow-sm);}
.google-btn:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1;transform:translateY(-1px);}
.google-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.google-btn svg{width:18px;height:18px;flex-shrink:0;}
.mform-group{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;}
.mform-group label{font-size:11px;font-family:'JetBrains Mono',monospace;color:#64748b;text-transform:uppercase;letter-spacing:.3px;}
.mform-group input,.mform-group select,.mform-group textarea{background:var(--paper);border:1.5px solid var(--paper-dark);border-radius:12px;padding:10px 14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;outline:none;width:100%;transition:all .25s;}
.mform-group input:focus,.mform-group select:focus{border-color:var(--water);background:white;box-shadow:0 0 0 4px rgba(44,82,130,.1);}
.msubmit-btn{width:100%;padding:12px;background:var(--ink);color:white;border:none;border-radius:14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s;margin-top:4px;}
.msubmit-btn:hover{background:var(--water);transform:translateY(-1px);box-shadow:0 4px 12px rgba(44,82,130,.2);}
.msubmit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}

/* ── HEADER ── */
header{background:var(--paper);color:var(--ink);padding:12px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--paper-dark);position:sticky;top:0;z-index:1000;gap:10px;flex-wrap:wrap;box-shadow:var(--shadow-xs);}
.logo{display:flex;align-items:baseline;gap:8px;cursor:pointer;}
.logo-main{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;color:var(--ink);}
.logo-main span{color:var(--gold);}
.logo-sub{font-family:'JetBrains Mono',monospace;font-size:9px;color:#94a3b8;letter-spacing:2px;text-transform:uppercase;}
.header-right{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.mode-toggle{display:flex;background:var(--paper-dark);border:none;border-radius:22px;overflow:visible;padding:3px;gap:2px;}
.mode-btn{padding:6px 14px;border:none;background:transparent;font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;cursor:pointer;transition:all .25s ease;white-space:nowrap;border-radius:18px;}
.mode-btn.active{background:var(--gold);color:white;font-weight:600;box-shadow:0 2px 8px rgba(234,179,8,.3);}
.stat-pill{background:var(--paper-dark);border:none;border-radius:20px;padding:5px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--ink);display:flex;align-items:center;gap:6px;}
.stat-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);}
.hdivider{width:1px;height:18px;background:var(--paper-dark);}
.toggle-pill{background:var(--paper-dark);border:1px solid var(--paper-dark);border-radius:20px;padding:5px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;cursor:pointer;transition:all .25s;white-space:nowrap;user-select:none;}
.toggle-pill.active{background:var(--water-pale);border-color:var(--water-light);color:var(--water);font-weight:500;}
.toggle-pill:hover:not(.active){color:var(--ink);background:#f1f5f9;}
/* map overlay buttons — sat toggle + zoom (on inline/prebait maps) */
.map-layer-btn{position:absolute;bottom:10px;left:10px;z-index:500;background:rgba(248,250,252,.92);border:1px solid rgba(226,232,240,.6);color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:10px;padding:6px 12px;border-radius:16px;cursor:pointer;line-height:1.3;white-space:nowrap;box-shadow:var(--shadow-sm);}
.map-layer-btn.sat-active{background:rgba(44,82,130,.85);color:#fff;}
.map-zoom-btn{position:absolute;z-index:500;background:rgba(248,250,252,.92);border:1px solid rgba(226,232,240,.6);color:var(--ink);font-size:16px;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;right:10px;box-shadow:var(--shadow-sm);transition:background-color .2s,box-shadow .2s;}
.map-zoom-btn:hover{background:white;box-shadow:var(--shadow-md);}
.map-zoom-in{bottom:48px;}
.map-zoom-out{bottom:10px;}
.help-btn{width:28px;height:28px;border-radius:50%;border:none;background:var(--paper-dark);color:var(--ink);font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.help-btn:hover{background:var(--water-pale);color:var(--water);}
.user-pill{display:flex;align-items:center;gap:6px;background:var(--paper-dark);border:1px solid var(--paper-dark);border-radius:22px;padding:4px 12px 4px 4px;cursor:pointer;transition:all .2s;}
.user-pill:hover{background:#dbeafe;border-color:var(--water-light);}
.user-avatar{width:24px;height:24px;border-radius:50%;border:2px solid var(--gold);background:linear-gradient(135deg,var(--gold),var(--gold-light));display:flex;align-items:center;justify-content:center;font-size:11px;color:white;font-weight:700;flex-shrink:0;overflow:hidden;}
.user-avatar img{width:100%;height:100%;object-fit:cover;}
.user-name{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--ink);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.signin-btn{background:linear-gradient(135deg,var(--gold),var(--gold-light));border:none;color:white;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;padding:6px 14px;border-radius:18px;transition:all .2s;font-weight:500;}
.signin-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(234,179,8,.3);}

/* ── SCREENS / BOTTOM NAV ── */
#screens-wrapper{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;position:relative;z-index:1;}
.screen{display:none;flex:1;min-height:0;overflow:hidden;flex-direction:column;}
.screen.active{display:flex;}
.bottom-nav{position:relative;background:var(--paper);border-top:1px solid var(--paper-dark);display:flex;flex-shrink:0;z-index:200;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 10px var(--shadow);}
.bnav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px 8px;border:none;background:transparent;cursor:pointer;transition:all .25s ease;gap:3px;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;position:relative;}
.bnav-btn .bnav-icon{font-size:22px;line-height:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
.bnav-btn .bnav-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#94a3b8;letter-spacing:.3px;text-transform:uppercase;transition:color .25s;}
.bnav-btn.active .bnav-icon{transform:scale(1.2);}
.bnav-btn.active .bnav-label{color:var(--water);font-weight:600;}
.bnav-btn.active::after{content:'';position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 4px);left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--water);}

/* ── LAYOUT ── */
.app-layout{display:grid;grid-template-columns:420px 1fr;flex:1;min-height:0;overflow:hidden;}
.left-panel{background:var(--paper);border-right:1px solid var(--paper-dark);display:flex;flex-direction:column;overflow:hidden;}
.panel-tabs{display:flex;border-bottom:none;background:var(--paper);overflow-x:auto;flex-shrink:0;padding:8px 10px 6px;gap:4px;}
.panel-tabs::-webkit-scrollbar{height:0;}
.tab-btn{flex:none;padding:8px 14px;border:none;background:transparent;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.3px;color:#94a3b8;cursor:pointer;transition:all .25s ease;border-bottom:none;margin-bottom:0;white-space:nowrap;border-radius:20px;}
.tab-btn.active{color:white;background:var(--water);box-shadow:0 2px 8px rgba(44,82,130,.25);}
.tab-btn:hover:not(.active){color:var(--ink);background:var(--paper-dark);}
.tab-content{display:none;flex:1;overflow-y:auto;flex-direction:column;}
.tab-content.active{display:flex;}

/* ── FORM ── */
.form-section{padding:14px 16px;border-bottom:none;margin:0 12px 8px;background:white;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);}
.form-section:first-child{margin-top:12px;}
.section-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--water);margin-bottom:10px;display:flex;align-items:center;gap:7px;transition:color .4s;}
.section-label::after{content:'';flex:1;height:1px;background:linear-gradient(to right,var(--water-pale),transparent);opacity:1;}
.location-display{background:var(--water-pale);border:1.5px solid rgba(44,82,130,.2);border-radius:14px;padding:10px 14px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--water);display:flex;align-items:center;gap:10px;min-height:42px;transition:all .3s;}
.location-display.required-missing{border-color:var(--rust);background:#fef2f2;}
.location-display .hint{color:#94a3b8;font-style:italic;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:8px;}
.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:8px;}
label{font-size:11px;font-family:'JetBrains Mono',monospace;font-weight:500;letter-spacing:.3px;color:#64748b;text-transform:uppercase;}
label .req{color:var(--rust);margin-left:2px;}
input,select,textarea{background:var(--paper);border:1.5px solid var(--paper-dark);border-radius:12px;padding:10px 14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;color:var(--ink);transition:all .25s ease;width:100%;outline:none;}
input:focus,select:focus,textarea:focus{border-color:var(--water);background:white;box-shadow:0 0 0 4px rgba(44,82,130,.1);}
input.required-missing,select.required-missing{border-color:var(--rust);background:#fef2f2;box-shadow:0 0 0 4px rgba(239,68,68,.08);}
textarea{resize:vertical;min-height:56px;border-radius:12px;}

/* ── MAP SECTION ── */
.map-section{display:flex;flex-direction:column;gap:0;}
.map-toggle-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--paper);border-bottom:none;border-radius:12px;cursor:pointer;user-select:none;transition:all .25s;margin-bottom:4px;}
.map-toggle-bar:hover{background:var(--paper-dark);}
.map-toggle-bar-left{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--water);}
.map-toggle-bar-right{display:flex;align-items:center;gap:6px;}
.map-inline{overflow:hidden;transition:height .4s cubic-bezier(.4,0,.2,1);height:200px;position:relative;z-index:0;border-radius:12px;margin:0 4px;}
.map-inline.collapsed{height:0;}
.map-inline.expanded{height:320px;}
#catches-map-wrap.expanded{height:260px;}
#map-inline{width:100%;height:200px;}
.map-expand-btn{background:var(--water);color:white;border:none;border-radius:10px;padding:6px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .2s;box-shadow:0 2px 6px rgba(44,82,130,.2);}
.map-expand-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(44,82,130,.3);}

/* ── FULLSCREEN MAP ── */
.fullscreen-map-overlay{position:fixed;inset:0;z-index:5000;display:none;flex-direction:column;}
.fullscreen-map-overlay.show{display:flex;}
#map-fullscreen{flex:1;width:100%;}
.fsmap-header{background:var(--ink);color:white;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:none;flex-shrink:0;}
.fsmap-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:700;}
.fsmap-actions{display:flex;gap:8px;align-items:center;}
.fsmap-close-btn{background:var(--rust);color:white;border:none;border-radius:12px;padding:8px 16px;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;transition:all .2s;}
.fsmap-close-btn:hover{background:#dc2626;transform:translateY(-1px);}
.fsmap-confirm-btn{background:var(--moss);color:white;border:none;border-radius:12px;padding:8px 16px;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(34,197,94,.2);}
.fsmap-confirm-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(34,197,94,.3);}
.fsmap-sat-btn{padding:6px 14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;border-radius:16px;cursor:pointer;white-space:nowrap;transition:all .2s;}
.fsmap-sat-btn.sat-active{background:var(--water);border-color:var(--water);}

/* ── GPS BUTTON ── */
.loc-row{display:flex;gap:8px;align-items:stretch;}
.loc-row .location-display{flex:1;}
.gps-btn{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--moss),#16a34a);color:white;border:none;border-radius:14px;padding:10px 14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .25s ease;white-space:nowrap;flex-shrink:0;box-shadow:0 4px 12px rgba(34,197,94,.25);}
.gps-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(34,197,94,.35);}
.gps-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.gps-label{display:flex;flex-direction:column;line-height:1.25;}
.gps-label strong{font-size:12px;}
.gps-label small{font-size:9px;opacity:.7;font-family:'JetBrains Mono',monospace;}

/* ── RIG CHIPS ── */
.rig-selector{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.rig-chip{background:var(--paper);border:1.5px solid var(--paper-dark);border-radius:20px;padding:6px 14px;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;transition:all .25s ease;white-space:nowrap;user-select:none;}
.rig-chip:hover{border-color:var(--water-light);background:var(--water-pale);}
.rig-chip.active{background:var(--water);border-color:var(--water);color:white;box-shadow:0 2px 8px rgba(44,82,130,.2);}

/* ── PHOTO UPLOAD ── */
.photo-upload{border:2px dashed var(--paper-dark);border-radius:var(--radius-md);padding:20px 14px;text-align:center;cursor:pointer;transition:all .3s ease;position:relative;background:var(--paper);}
.photo-upload:hover{border-color:var(--water-light);background:var(--water-pale);border-style:solid;}
.photo-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.photo-upload.has-photos input[type=file]{pointer-events:none;}
.photo-upload-text{font-size:11px;color:#94a3b8;}
.photo-upload-text strong{display:block;font-size:16px;margin-bottom:2px;}
/* ── PHOTO PREVIEW THUMBS (upload form) ── */
.photo-preview-grid{display:flex;gap:8px;flex-wrap:wrap;padding:2px 0;}
.photo-preview-thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-sm);}
.photo-preview-thumb img{width:100%;height:100%;object-fit:cover;}
.photo-thumb-remove{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.6);border:none;color:#fff;border-radius:50%;width:20px;height:20px;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:background-color .2s;}
.photo-thumb-remove:hover{background:rgba(239,68,68,.8);}
.photo-preview-add{width:72px;height:72px;border-radius:12px;border:2px dashed var(--paper-dark);display:flex;align-items:center;justify-content:center;font-size:26px;color:#cbd5e1;cursor:pointer;flex-shrink:0;transition:all .25s;}
.photo-preview-add:hover{border-color:var(--water);color:var(--water);background:var(--water-pale);border-style:solid;}
/* ── SLIDER ── */
.catch-slider{position:relative;width:100%;overflow:hidden;background:#111;}
.slider-track{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform;}
/* Width is set via offsetWidth in JS (translateX px), so flex-basis just needs to fill the container */
.slider-img{flex:0 0 100%;width:100%;max-width:100%;object-fit:cover;display:block;aspect-ratio:4/5;}
.catch-single-img{width:100%;display:block;object-fit:cover;aspect-ratio:4/5;}
.slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.82);color:var(--ink);border:1px solid rgba(255,255,255,.4);border-radius:16px;width:32px;height:48px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;z-index:2;transition:background-color .2s,box-shadow .2s;box-shadow:var(--shadow-sm);}
.slider-btn:hover{background:white;box-shadow:var(--shadow-md);}
.slider-prev{left:6px;}.slider-next{right:6px;}
.slider-pill-counter{position:absolute;bottom:8px;right:8px;background:rgba(15,23,42,.6);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;padding:4px 10px;border-radius:20px;z-index:2;letter-spacing:.3px;pointer-events:none;}
/* ── FRIEND CATCH CARD (Instagram-style) ── */
.friend-catch-card{background:white;width:100%;max-width:500px;border-bottom:1px solid var(--paper-dark);cursor:pointer;}
.fcc-header{display:flex;align-items:center;gap:10px;padding:10px 14px;}
.fcc-avatar{width:32px;height:32px;border-radius:50%;background:var(--paper-dark);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.fcc-header-info{flex:1;min-width:0;}
.fcc-username{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fcc-time{font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;margin-top:1px;}
.fcc-photo-wrap{width:100%;background:#111;position:relative;}
.fcc-photo-wrap .catch-single-img{width:100%;display:block;object-fit:cover;aspect-ratio:4/5;}
.fcc-photo-wrap .catch-slider{width:100%;}
.fcc-photo-wrap .slider-img{aspect-ratio:4/5;object-fit:cover;object-position:center;flex:0 0 100%;}
.fcc-actions{padding:8px 14px 4px;display:flex;align-items:center;gap:8px;}
.fcc-actions .like-btn{font-size:18px;padding:4px 2px;gap:6px;}
.fcc-caption{padding:0 14px 14px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink);line-height:1.5;}
.fcc-caption .fcc-species{font-weight:600;}
.fcc-compact .fcc-compact-body{padding:0 14px 4px;font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--ink);}
.fcc-compact .fcc-compact-body .fcc-species{font-weight:600;}
/* ── PHOTO GRID COUNT BADGE ── */
.pgrid-count{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.55);color:#fff;font-family:'JetBrains Mono',monospace;font-size:9px;padding:3px 7px;border-radius:20px;letter-spacing:.3px;}
/* ── PHOTO LIGHTBOX (full-screen) ── */
#photo-lightbox{background:#000;backdrop-filter:none;align-items:stretch;justify-content:stretch;padding:0;}
.lightbox-box{width:100%;height:100%;border-radius:0;background:#000;display:flex;flex-direction:column;position:relative;overflow:hidden;}
.lightbox-top-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 18px;background:linear-gradient(rgba(0,0,0,.7),transparent);z-index:10;transition:opacity .3s;}
.lightbox-close-btn{background:rgba(255,255,255,.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:15px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .2s;}
.lightbox-close-btn:hover{background:rgba(255,255,255,.3);transform:scale(1.05);}
.lightbox-counter{color:#fff;font-family:'JetBrains Mono',monospace;font-size:11px;background:rgba(0,0,0,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:5px 12px;border-radius:20px;letter-spacing:.3px;}
.lightbox-img-wrap{flex:1;display:flex;align-items:stretch;overflow:hidden;position:relative;background:#000;touch-action:none;}
#lb-track{display:flex;width:300%;height:100%;flex:none;}
.lb-slide{width:33.333%;height:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.lb-slide img{width:100%;height:100%;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none;pointer-events:none;}
.lb-dots{display:flex;justify-content:center;gap:6px;padding:8px 0 4px;flex-shrink:0;}
.lb-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);transition:background .2s,transform .2s;}
.lb-dot.active{background:#fff;transform:scale(1.25);}
.lb-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.45);color:#fff;border:none;border-radius:20px;width:36px;height:52px;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;z-index:2;transition:background .2s,opacity .3s;opacity:0;pointer-events:none;}
.lightbox-img-wrap.lb-controls-visible .lb-nav-btn{opacity:1;pointer-events:auto;}
.lb-nav-btn:hover{background:rgba(0,0,0,.65);}
.lb-nav-prev{left:10px;}.lb-nav-next{right:10px;}
.lightbox-thumb-strip{display:flex;gap:4px;padding:8px 10px;overflow-x:auto;flex-shrink:0;background:rgba(0,0,0,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);scrollbar-width:none;-ms-overflow-style:none;z-index:10;}
.lightbox-thumb-strip::-webkit-scrollbar{display:none;}
.lb-thumb{width:48px;height:48px;flex-shrink:0;border-radius:10px;overflow:hidden;cursor:pointer;opacity:.5;transition:opacity .2s,outline .15s;outline:2px solid transparent;outline-offset:1px;}
.lb-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.lb-thumb.active{opacity:1;outline-color:#fff;}
.lightbox-info-bar{background:rgba(20,20,16,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:14px 18px calc(env(safe-area-inset-bottom,0px) + 16px);z-index:10;pointer-events:none;flex-shrink:0;border-top:1px solid rgba(255,255,255,.07);}
.lightbox-info-bar>*{pointer-events:all;}
.lightbox-info-bar strong{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;color:#fff;display:block;margin-bottom:4px;letter-spacing:.2px;}
.lightbox-info-bar .lb-meta-line{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(255,255,255,.6);margin-bottom:10px;letter-spacing:.3px;}
.lightbox-info-bar .lightbox-goto{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:7px 14px;font-family:'JetBrains Mono',monospace;font-size:10px;color:#fff;cursor:pointer;letter-spacing:.3px;transition:background .2s;}
.lightbox-info-bar .lightbox-goto:hover{background:rgba(255,255,255,.22);}
/* ── CROP MODAL ── */
#crop-modal{background:rgba(0,0,0,.92);backdrop-filter:none;align-items:stretch;justify-content:stretch;padding:0;}
.crop-box{width:100%;height:100%;background:#000;display:flex;flex-direction:column;}
.crop-header{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;background:#111;flex-shrink:0;}
.crop-title{font-family:'JetBrains Mono',monospace;font-size:12px;color:#fff;letter-spacing:.5px;}
.crop-cancel-btn{background:none;border:none;color:rgba(255,255,255,.7);font-family:'JetBrains Mono',monospace;font-size:12px;cursor:pointer;padding:4px;}
.crop-confirm-btn{background:var(--water);border:none;color:#fff;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;cursor:pointer;padding:6px 14px;border-radius:10px;}
.crop-confirm-btn:disabled{opacity:.5;pointer-events:none;}
.crop-area{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000;}
.crop-area img{max-height:100%;display:block;}
.crop-hint{display:flex;align-items:center;justify-content:center;gap:12px;font-family:'JetBrains Mono',monospace;font-size:10px;color:rgba(255,255,255,.4);padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 10px);flex-shrink:0;background:#111;}
.crop-rotate-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;font-family:'JetBrains Mono',monospace;font-size:11px;padding:5px 12px;border-radius:20px;cursor:pointer;white-space:nowrap;transition:background .2s;}
.crop-rotate-btn:hover{background:rgba(255,255,255,.22);}
.crop-exif-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;padding:5px 10px;border-radius:14px;cursor:pointer;transition:background .2s;}
.crop-exif-btn:hover{background:rgba(255,255,255,.22);}
.crop-preview-row{display:flex;align-items:center;gap:8px;padding:6px 16px;background:#111;flex-shrink:0;}
.crop-thumb-preview{width:48px;height:48px;border-radius:12px;object-fit:cover;border:2px solid rgba(255,255,255,.2);}
.crop-preview-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:rgba(255,255,255,.4);}
/* ── EXIF DIALOG ── */
.exif-dialog{position:absolute;bottom:0;left:0;right:0;background:rgba(17,17,17,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:16px;z-index:10;border-top:1px solid rgba(255,255,255,.1);border-radius:16px 16px 0 0;}
.exif-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:700;color:#fff;margin-bottom:12px;}
.exif-items{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.exif-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;cursor:pointer;transition:background .2s;}
.exif-item:hover{background:rgba(255,255,255,.12);}
.exif-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--water);flex-shrink:0;}
.exif-label{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(255,255,255,.6);min-width:55px;}
.exif-val{font-family:'JetBrains Mono',monospace;font-size:12px;color:#fff;flex:1;}
.exif-apply-btn{width:100%;padding:11px;background:var(--water);color:#fff;border:none;border-radius:12px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;}
.exif-apply-btn:hover{opacity:.9;}
/* ── ADMIN CREATE USER FORM ── */
.admin-create-form{background:var(--paper-dark);border-radius:12px;padding:12px;margin-bottom:14px;}
.admin-create-form-title{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#888;margin-bottom:8px;}
.admin-create-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.admin-create-row input{flex:1;min-width:120px;background:#fff;border:1px solid var(--paper-dark);border-radius:10px;padding:6px 9px;font-family:'JetBrains Mono',monospace;font-size:11px;}
.admin-create-btn{background:var(--water);color:#fff;border:none;border-radius:10px;padding:6px 14px;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;white-space:nowrap;}
.admin-create-btn:disabled{opacity:.5;}
.admin-create-err{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--rust);min-height:14px;}
/* ── MAP POPUP ACTION BUTTONS ── */
.popup-actions{display:flex;gap:6px;margin-top:7px;}
.popup-btn{background:var(--paper-dark);border:none;border-radius:10px;padding:3px 8px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;}
.popup-btn.del{background:#fde8e4;color:var(--rust);}

/* ── NOTIFICATION BADGE ── */
.bnav-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;}
.notif-badge{position:absolute;top:-5px;right:-7px;background:#c0392b;color:#fff;border-radius:10px;min-width:16px;height:16px;font-family:'JetBrains Mono',monospace;font-size:9px;display:flex;align-items:center;justify-content:center;padding:0 3px;font-weight:700;line-height:1;border:1.5px solid var(--paper);}
/* ── MAP START CITY SETTING ── */
.setting-block{border:1px solid var(--paper-dark);border-radius:12px;padding:10px 12px;margin:10px 13px 0;}
.setting-block-title{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#888;margin-bottom:7px;}
.setting-row{display:flex;gap:8px;align-items:center;}
.setting-row input{flex:1;}
.setting-status{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;margin-top:5px;min-height:14px;}
/* ── WEATHER ── */
.weather-card{background:linear-gradient(135deg,#2c5282,#1e3a5f);border-radius:var(--radius-md);padding:14px 14px;color:white;display:none;box-shadow:0 4px 15px rgba(44,82,130,.2);}
.weather-card.visible{display:block;}
.weather-card-title{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;opacity:.8;margin-bottom:8px;}
.weather-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.weather-item{background:rgba(255,255,255,.18);border-radius:12px;padding:8px 4px;text-align:center;border:1px solid rgba(255,255,255,.1);}
.weather-item .w-icon{font-size:13px;}
.weather-item .w-val{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;margin:1px 0;display:block;line-height:1.3;}
.weather-item .w-label{font-size:8px;opacity:.65;}
.weather-loading{text-align:center;padding:8px;font-family:'JetBrains Mono',monospace;font-size:11px;color:#888;display:none;}
.weather-loading.visible{display:block;}
/* ── FORECAST ── */
.forecast-scroll{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:4px 13px 14px;}
.forecast-day-card{min-width:0;background:white;border:none;border-radius:var(--radius-md);padding:10px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:var(--shadow-sm);transition:all .25s ease;}
.forecast-day-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.forecast-day-card.today{background:var(--water-pale);border:1.5px solid var(--water-light);box-shadow:0 2px 8px rgba(44,82,130,.15);}
.fdc-day{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;color:#aaa;}
.fdc-day.today{color:var(--water);font-weight:700;}
.fdc-icon{font-size:20px;line-height:1.1;}
.fdc-temp{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;color:var(--ink);}
.fdc-temp-min{font-family:'JetBrains Mono',monospace;font-size:10px;color:#aaa;}
.fdc-wind{font-family:'JetBrains Mono',monospace;font-size:9px;color:#888;}
.fdc-precip{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--water);}
.fdc-water{font-family:'JetBrains Mono',monospace;font-size:9px;color:#5e9cb8;border-top:1px solid var(--paper-dark);padding-top:3px;margin-top:1px;}
/* ── SHARE CARD ── */
.share-card-box{max-width:420px;width:calc(100vw - 24px);padding:20px 18px 18px;}
.share-card-canvas-wrap{width:100%;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg);margin-bottom:16px;}
#share-card-canvas{width:100%;height:auto;display:block;}
.share-card-toggles{margin-bottom:12px;}
.sct-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#aaa;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:7px;}
.sct-chips{display:flex;gap:6px;flex-wrap:wrap;}
.sct-chip{padding:6px 14px;border-radius:20px;border:1.5px solid var(--paper-dark);background:var(--paper);font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;cursor:pointer;transition:all .25s;user-select:none;}
.sct-chip.active{background:var(--water-pale);border-color:var(--water);color:var(--water);}
.share-card-actions{display:flex;gap:8px;}
.share-action-btn{flex:1;padding:10px;border:none;border-radius:12px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s;}
.share-action-btn.download{background:var(--paper-dark);color:var(--ink);border-radius:12px;}
.share-action-btn.download:hover{background:var(--ink);color:white;transform:translateY(-1px);}
.share-action-btn.share{background:var(--water);color:#fff;border-radius:12px;}
.share-action-btn.share:hover{box-shadow:0 4px 12px rgba(44,82,130,.3);transform:translateY(-1px);}
.card-action-btn.share-btn{background:var(--water-pale);color:var(--water);border-radius:14px;padding:5px 10px;font-size:11px;font-family:'JetBrains Mono',monospace;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.card-action-btn.share-btn:hover{background:var(--water);color:white;}
.submit-btn{width:100%;padding:14px;background:var(--water);color:white;border:none;border-radius:var(--radius-md);font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 15px rgba(44,82,130,.3);}
.submit-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(44,82,130,.4);}
.submit-btn:active{transform:translateY(0);box-shadow:0 2px 8px rgba(44,82,130,.2);}
.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.form-section.sticky-save{position:sticky;bottom:0;background:var(--paper);border-bottom:none;border-top:1px solid var(--paper-dark);z-index:10;margin:0;border-radius:0;padding:12px 16px;box-shadow:0 -4px 12px var(--shadow);}

/* ── CATCH LIST ── */
.catches-list{flex:1;overflow-y:auto;padding:12px;position:relative;}
.ptr-indicator{text-align:center;padding:10px;font-family:'JetBrains Mono',monospace;font-size:11px;color:#94a3b8;display:none;}
.ptr-indicator.show{display:block;}
.empty-state{text-align:center;padding:48px 20px;color:#cbd5e1;}
.empty-state .fish-icon{font-size:42px;margin-bottom:12px;opacity:.5;}
.empty-state p{font-family:'JetBrains Mono',monospace;font-size:12px;line-height:1.8;}
.catch-card{background:white;border-radius:var(--radius-md);border:none;margin-bottom:10px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;box-shadow:var(--shadow-sm);}
.catch-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.catch-card.result-bite{background:#fefce8;}
.catch-card.result-lost{background:#fef2f2;}
body.dark-mode .catch-card.result-bite{background:rgba(202,138,4,.1);}
body.dark-mode .catch-card.result-lost{background:rgba(239,68,68,.08);}
@keyframes slideIn{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.catch-card.new{animation:slideIn .4s cubic-bezier(.34,1.56,.64,1);}
.catch-card-header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #f1f5f9;}
.catch-card-img{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--water-pale),#dbeafe);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden;position:relative;}
.catch-card-img img{width:100%;height:100%;object-fit:cover;}
.catch-card-title{flex:1;}
.catch-card-title h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:700;margin-bottom:2px;}
.catch-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;display:flex;gap:8px;flex-wrap:wrap;}
.weight-badge{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:11px;padding:4px 10px;border-radius:16px;flex-shrink:0;font-weight:600;}
.card-action-btn{background:none;border:none;cursor:pointer;color:#cbd5e1;font-size:14px;padding:4px;transition:all .2s;align-self:flex-start;border-radius:12px;}
.card-action-btn:hover{color:var(--water);background:var(--water-pale);}
.card-action-btn.del:hover{color:var(--rust);background:rgba(239,68,68,.08);}
.catch-card-body{padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.catch-detail{display:flex;flex-direction:column;gap:2px;}
.catch-detail .d-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#cbd5e1;text-transform:uppercase;letter-spacing:.5px;}
.catch-detail .d-val{color:var(--ink);font-size:12px;font-weight:500;}
.catch-weather-mini{grid-column:1/-1;background:var(--water-pale);border-radius:10px;padding:6px 12px;display:flex;gap:10px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--water);}

/* ── STATS ── */
/* Stats screen full-width wrapper */
.stats-screen-wrap{width:100%;max-width:100%;display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0;}
.stats-container{padding:0 13px 13px;flex:1;}

/* Time filter row */
.stats-filter-row{display:flex;gap:6px;padding:8px 13px;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--paper);border-bottom:1px solid var(--paper-dark);flex-shrink:0;}
.stats-filter-btn{flex:none;padding:6px 14px;border:1.5px solid var(--paper-dark);border-radius:20px;background:transparent;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;color:#94a3b8;transition:all .25s;white-space:nowrap;}
.stats-filter-btn.active{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(234,179,8,.25);}
.stats-custom-range{padding:8px 13px;background:var(--paper-dark);border-bottom:1px solid var(--paper-dark);}
.stats-custom-inner{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}
.stats-custom-inner .form-group{margin:0;}
.stats-custom-inner label{font-size:10px;}

/* Stats grid — responsive */
.stats-grid{display:grid;grid-template-columns:1fr;gap:14px;padding:14px 0;}
@media(min-width:640px){.stats-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1100px){.stats-grid{grid-template-columns:1fr 1fr 1fr;}}
.stats-full-row{grid-column:1/-1;}
.stat-section{margin-bottom:16px;}
.stat-section-title{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:9px;display:flex;align-items:center;gap:7px;}
.stat-section-title::after{content:'';flex:1;height:1px;background:var(--gold);opacity:.3;}
.stat-bar-row{display:flex;align-items:center;gap:7px;margin-bottom:5px;}
.stat-bar-label{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink);min-width:105px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stat-bar-track{flex:1;height:9px;background:var(--paper-dark);border-radius:10px;overflow:hidden;}
.stat-bar-fill{height:100%;border-radius:10px;background:var(--water);width:0;transition:width .7s ease;}
.stat-bar-count{font-family:'JetBrains Mono',monospace;font-size:11px;color:#888;min-width:20px;text-align:right;}
.stat-big-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px;}
.stat-big-card{background:white;border:none;border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-sm);}
.stat-big-card .sbc-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:21px;font-weight:900;color:var(--water);line-height:1;}
.stat-big-card .sbc-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:#aaa;margin-top:3px;text-transform:uppercase;letter-spacing:.5px;}
.stat-empty{text-align:center;padding:36px 16px;color:#bbb;font-family:'JetBrains Mono',monospace;font-size:11px;line-height:1.7;}

/* Summary bar */
.stats-summary-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--paper-dark);border-radius:10px;overflow:hidden;margin-bottom:14px;}
.ssb-item{background:var(--paper);padding:12px 8px;text-align:center;}
.ssb-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;color:var(--ink);line-height:1.1;}
.ssb-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#888;text-transform:uppercase;letter-spacing:.6px;margin-top:2px;}
.ssb-caught .ssb-val{color:var(--moss);}
.ssb-lost .ssb-val{color:var(--rust);}

/* Monthly chart */
.monthly-chart-section{overflow:hidden;}
.month-legend{display:flex;gap:12px;padding:0 0 8px;flex-wrap:wrap;}
.month-leg-item{display:flex;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
.month-leg-dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.monthly-chart-bars{display:flex;gap:4px;align-items:flex-end;overflow-x:auto;padding-bottom:4px;min-height:110px;}
.month-col{display:flex;flex-direction:column;align-items:center;flex:none;min-width:30px;}
.month-total-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#aaa;margin-bottom:2px;min-height:12px;}
.month-bar-stack{width:20px;height:80px;display:flex;flex-direction:column-reverse;border-radius:3px;overflow:hidden;background:var(--paper-dark);}
.month-seg{width:100%;flex:none;transition:height .3s ease;}
.month-seg.seg-caught{background:var(--moss);}
.month-seg.seg-lost{background:var(--rust);}
.month-seg.seg-bite{background:var(--gold);}
.month-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#888;margin-top:4px;}

/* ── CALENDAR TAB ── */
.calendar-container{padding:13px;flex:1;overflow-y:auto;}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cal-nav-btn{background:var(--paper-dark);border:none;border-radius:10px;padding:6px 12px;font-family:'JetBrains Mono',monospace;font-size:12px;cursor:pointer;transition:background .2s;}
.cal-nav-btn:hover{background:var(--water);color:white;}
.cal-month-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:700;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:12px;}
.cal-day-name{text-align:center;font-family:'JetBrains Mono',monospace;font-size:9px;color:#aaa;padding:4px 0;text-transform:uppercase;}
.cal-day{text-align:center;padding:6px 4px;border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:12px;cursor:default;transition:all .2s;position:relative;}
.cal-day.has-catch{background:var(--water-pale);color:var(--water);cursor:pointer;font-weight:700;border:1.5px solid var(--water-light);border-radius:10px;}
.cal-day.has-catch:hover{background:var(--water);color:white;}
.cal-day.selected{background:var(--gold);color:white;font-weight:700;}
.cal-day.today{box-shadow:0 0 0 2px var(--gold);}
.cal-day.empty{opacity:0;}
.cal-day .cal-dot{width:4px;height:4px;border-radius:50%;background:var(--water);margin:2px auto 0;}
.cal-day-catches{margin-top:8px;}
.cal-day-catches-title{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--gold);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:7px;}

/* ── RIGS TAB ── */
.rigs-list{padding:12px;}
.add-rig-form{background:white;border:none;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow-sm);}
.rig-item{display:flex;align-items:center;justify-content:space-between;background:white;border:none;border-radius:12px;padding:10px 14px;margin-bottom:6px;box-shadow:var(--shadow-xs);transition:all .2s;}
.rig-item-name{display:flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;}
.rig-item-tag{background:var(--paper-dark);border-radius:10px;padding:2px 7px;font-size:10px;color:#888;}
.rig-delete{background:none;border:none;cursor:pointer;color:#ccc;font-size:13px;transition:color .2s;}
.rig-delete:hover{color:var(--rust);}
.rig-save-btn{width:100%;padding:10px;background:var(--ink);color:white;border:none;border-radius:12px;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;transition:all .25s;}
.rig-save-btn:hover{background:var(--water);transform:translateY(-1px);box-shadow:0 4px 12px rgba(44,82,130,.2);}

/* ── PRE-BAITING TAB ── */
.prebait-container{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.prebait-map-wrap{height:220px;position:relative;flex-shrink:0;}
#map-prebait{width:100%;height:100%;}
.prebait-expand-btn{position:absolute;top:8px;right:8px;z-index:400;background:var(--ink);color:white;border:none;border-radius:10px;padding:5px 10px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;}
.prebait-sessions{flex:1;overflow-y:auto;padding:10px;}
.prebait-add-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--moss),#16a34a);color:white;border:none;border-radius:14px;font-family:'JetBrains Mono',monospace;font-size:12px;cursor:pointer;transition:all .25s;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 2px 8px rgba(34,197,94,.2);}
.prebait-add-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(34,197,94,.3);}
.prebait-card{background:white;border:none;border-radius:14px;padding:12px 14px;margin-bottom:8px;box-shadow:var(--shadow-sm);}
.prebait-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.prebait-card-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:700;}
.prebait-card-date{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
.prebait-card-body{font-family:'JetBrains Mono',monospace;font-size:11px;color:#555;line-height:1.6;}
.prebait-marker{width:28px;height:28px;background:var(--gold);border:3px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;}

/* ── MAP (right panel) ── */
.map-container{position:relative;isolation:isolate;}
#map{width:100%;height:100%;}
.map-instruction{position:absolute;top:13px;left:50%;transform:translateX(-50%);background:rgba(248,250,252,.92);color:var(--ink);padding:8px 18px;border-radius:26px;font-family:'JetBrains Mono',monospace;font-size:11px;z-index:500;pointer-events:none;border:1px solid rgba(226,232,240,.6);white-space:nowrap;box-shadow:var(--shadow-md);transition:opacity .4s;}
.map-instruction.hide{opacity:0;}
.custom-marker{width:28px;height:28px;background:var(--ink);border:3px solid var(--gold);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 8px rgba(0,0,0,.4);position:relative;}
.custom-marker::after{content:'🎣';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);font-size:11px;}
.custom-marker.pred-pin{border-color:#b07ae8;}
.custom-marker.pred-pin::after{content:'🎯';}
.custom-marker.pay-pin{border-color:#4caf50;background:#1b5e20;}
.custom-marker.pay-pin::after{content:'🏕️';}
.custom-marker.muted-pin{opacity:.45;filter:grayscale(.6);}
.custom-marker.sel-pin{border-color:var(--water-light);background:var(--water);animation:pulse 1.5s infinite;}
@keyframes pulse{0%,100%{box-shadow:0 2px 8px rgba(0,0,0,.4),0 0 0 0 rgba(74,144,184,.4);}50%{box-shadow:0 2px 8px rgba(0,0,0,.4),0 0 0 8px rgba(74,144,184,0);}}

/* ── PROFILE MODAL ── */
.profile-avatar-big{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-light));display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:white;margin:0 auto 14px;overflow:hidden;border:3px solid var(--gold);box-shadow:0 4px 15px rgba(234,179,8,.25);}
.profile-avatar-big img{width:100%;height:100%;object-fit:cover;}
.profile-stat-row{display:flex;gap:10px;margin:12px 0;}
.profile-stat{flex:1;background:var(--paper);border-radius:14px;padding:12px;text-align:center;}
.profile-stat .ps-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:900;color:var(--water);}
.profile-stat .ps-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#aaa;text-transform:uppercase;letter-spacing:.5px;margin-top:2px;}
.profile-section-title{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin:14px 0 8px;}
.profile-action-btn{width:100%;padding:12px 16px;background:var(--paper);border:1.5px solid var(--paper-dark);border-radius:14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;color:var(--ink);cursor:pointer;text-align:left;display:flex;align-items:center;gap:10px;margin-bottom:6px;transition:all .25s;}
.profile-action-btn:hover{border-color:var(--water-light);background:var(--water-pale);transform:translateY(-1px);}
.profile-action-btn .pa-icon{font-size:16px;flex-shrink:0;}
.profile-signout-btn{width:100%;padding:10px;background:none;border:1.5px solid rgba(155,58,42,.3);border-radius:12px;color:var(--rust);font-family:'JetBrains Mono',monospace;font-size:12px;cursor:pointer;transition:all .2s;margin-top:8px;}
.profile-signout-btn:hover{background:rgba(155,58,42,.08);}
.invite-box{background:var(--paper);border:1.5px solid var(--paper-dark);border-radius:12px;padding:12px;margin-top:8px;}
.invite-url{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--water);word-break:break-all;margin:6px 0;}
.copy-btn{background:var(--ink);color:var(--paper);border:none;border-radius:10px;padding:6px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;margin-top:4px;}

/* ── EDIT MODAL ── */
#edit-modal .modal-box{width:420px;}
.edit-actions{display:flex;gap:8px;margin-top:12px;}
.edit-save-btn{flex:1;padding:12px;background:var(--water);color:white;border:none;border-radius:14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s;box-shadow:0 2px 8px rgba(44,82,130,.2);}
.edit-save-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(44,82,130,.3);}
.edit-save-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.edit-cancel-btn{padding:12px 16px;background:var(--paper-dark);color:var(--ink);border:none;border-radius:14px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;cursor:pointer;transition:all .2s;}

/* ── TOUR ── */
.tour-overlay{position:fixed;inset:0;z-index:8500;display:none;}
.tour-overlay.active{display:block;}
.tour-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.tour-highlight{position:fixed;border-radius:10px;box-shadow:0 0 0 4px var(--gold),0 0 0 9999px rgba(0,0,0,.55);pointer-events:none;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:8501;}
.tour-card{position:fixed;background:var(--ink);color:white;border-radius:20px;padding:20px 22px 16px;width:300px;box-shadow:var(--shadow-xl);border:none;z-index:8502;}
.tour-step-num{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--gold);letter-spacing:2px;text-transform:uppercase;margin-bottom:5px;}
.tour-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:900;margin-bottom:6px;}
.tour-card p{font-size:13px;line-height:1.6;color:#ccc;}
.tour-nav{display:flex;align-items:center;justify-content:space-between;margin-top:12px;}
.tour-dots{display:flex;gap:5px;}
.tour-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2);transition:background .2s;}
.tour-dot.active{background:var(--gold);}
.tour-btn{background:var(--water);color:white;border:none;border-radius:12px;padding:8px 16px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;}
.tour-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(44,82,130,.3);}
.tour-skip{background:none;border:none;color:#555;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;}

/* ── INSTALL BANNER ── */
.install-banner{position:fixed;bottom:0;left:0;right:0;background:var(--ink);color:white;padding:14px 18px;display:flex;align-items:center;gap:12px;z-index:6000;border-top:none;transform:translateY(100%);transition:transform .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 -4px 20px rgba(15,23,42,.2);}
.install-banner.show{transform:translateY(0);}
.install-banner-text{flex:1;font-size:13px;line-height:1.4;}
.install-banner-text strong{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;margin-bottom:1px;}
.install-banner-text small{color:#777;font-family:'JetBrains Mono',monospace;font-size:10px;}
.install-btn{background:var(--water);color:white;border:none;border-radius:12px;padding:10px 16px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;}
.install-dismiss{background:none;border:none;color:#555;font-size:18px;cursor:pointer;padding:3px;}

::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--paper-dark);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:#94a3b8;}
.toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:white;padding:12px 18px;border-radius:14px;font-family:'JetBrains Mono',monospace;font-size:12px;z-index:9900;box-shadow:var(--shadow-lg);transform:translateY(80px);opacity:0;pointer-events:none;transition:all .4s cubic-bezier(.34,1.56,.64,1);}
.toast.show{transform:translateY(0);opacity:1;pointer-events:auto;}

/* ── MOBILE ── */
@media(max-width:768px){
  header{padding:10px 14px;}
  .logo-main{font-size:18px;}
  .stat-pill{display:none;}
  .hdivider{display:none;}
  .mode-btn{padding:5px 10px;font-size:9px;}
  .app-layout{grid-template-columns:1fr;flex:1;min-height:0;overflow:hidden;}
  .map-container{display:none!important;visibility:hidden!important;pointer-events:none!important;}
  .map-container *{visibility:hidden!important;}
  .left-panel{min-height:0;}
  .tab-btn{font-size:10px;padding:7px 12px;}
  .toast{bottom:80px;right:12px;left:12px;text-align:center;}
  .form-row-3{grid-template-columns:1fr 1fr;}
  .gps-label small{display:none;}
  .form-section{margin:0 8px 6px;padding:12px 14px;}
  .notif-panel{right:8px;left:8px;width:auto;}
  #tab-overview .calendar-container{flex:none;overflow-y:visible;}
  #tab-overview .stats-container{flex:none;}
  .stat-bar-label{min-width:80px;}
  .ssb-val{font-size:18px;}
}
@media(min-width:769px){
  .map-section{display:none;}
  .prebait-map-wrap{height:280px;}
}

/* ── ADMIN SCREEN ── */
#screen-admin{flex-direction:column;}
.admin-layout{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;}
.admin-tabs{display:flex;gap:4px;border-bottom:none;flex-shrink:0;background:var(--paper);padding:8px 10px 6px;}
.admin-tab-btn{flex:1;padding:8px 14px;border:none;background:transparent;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;color:#94a3b8;border-bottom:none;margin-bottom:0;transition:all .25s;letter-spacing:.3px;border-radius:20px;}
.admin-tab-btn:hover{color:var(--ink);background:var(--paper-dark);}
.admin-tab-btn.active{color:white;background:var(--water);font-weight:600;box-shadow:0 2px 8px rgba(44,82,130,.25);}
.admin-content{flex:1;overflow-y:auto;padding:16px;}
.admin-empty{font-family:'JetBrains Mono',monospace;font-size:12px;color:#888;text-align:center;padding:40px;}
.admin-loading{font-family:'JetBrains Mono',monospace;font-size:12px;color:#888;text-align:center;padding:40px;}
.admin-error{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--rust);text-align:center;padding:20px;}

/* Admin users table */
.admin-table{width:100%;border-collapse:collapse;font-size:12px;}
.admin-table th{font-family:'JetBrains Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#888;padding:6px 8px;border-bottom:2px solid var(--paper-dark);text-align:left;white-space:nowrap;}
.admin-table td{padding:9px 8px;border-bottom:1px solid var(--paper-dark);vertical-align:middle;}
.admin-table tr:hover td{background:var(--paper-dark);}
.admin-table tr.disabled-row td{opacity:.45;}
.admin-user-name{font-weight:600;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;}
.admin-user-email{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
.admin-user-username{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--gold);}
.admin-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#aaa;white-space:nowrap;}
.admin-badge{display:inline-block;padding:2px 7px;border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.5px;}
.admin-badge.ok{background:#d4f0d4;color:#2a6a2a;}
.admin-badge.blocked{background:#fde8e8;color:var(--rust);}
.admin-actions{display:flex;gap:4px;flex-wrap:wrap;}
.admin-btn{padding:4px 8px;border:none;border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;white-space:nowrap;transition:opacity .15s;}
.admin-btn:hover{opacity:.8;}
.admin-btn.block{background:#fff3cd;color:#856404;}
.admin-btn.unblock{background:#d4f0d4;color:#2a6a2a;}
.admin-btn.reset{background:var(--water-pale);color:var(--water);}
.admin-btn.delete{background:#fde8e8;color:var(--rust);}

/* Admin photo grid */
.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;}
.admin-photo-item{position:relative;border-radius:12px;overflow:hidden;background:var(--paper-dark);}
.admin-photo-item img{width:100%;aspect-ratio:1;object-fit:cover;display:block;}
.admin-photo-meta{padding:5px 7px;font-family:'JetBrains Mono',monospace;font-size:9px;color:#888;line-height:1.5;}
.admin-photo-del{position:absolute;top:5px;right:5px;background:rgba(155,58,42,.85);color:#fff;border:none;border-radius:10px;padding:3px 7px;font-size:11px;cursor:pointer;}
.admin-photo-del:hover{background:var(--rust);}

/* Admin stats */
.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:20px;}
.admin-kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
.admin-stat-card{background:var(--paper-dark);border-radius:10px;padding:14px 16px;}
.admin-stat-card .asc-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:26px;font-weight:900;}
.admin-stat-card .asc-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;margin-top:2px;text-transform:uppercase;letter-spacing:.5px;}
.asc-delta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;margin-top:4px;}
.asc-delta-up{color:var(--moss);font-weight:600;}
.admin-user-stats-table .admin-table td:nth-child(n+3){text-align:center;}
/* Admin section headers */
.admin-section-title{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#888;margin:22px 0 10px;}
/* Growth charts */
.admin-growth-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px;}
.admin-chart-box{background:var(--paper-dark);border-radius:10px;padding:14px 16px;}
.admin-chart-title{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--ink);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;}
/* Recent feed */
.admin-feed{background:var(--paper-dark);border-radius:10px;overflow:hidden;margin-bottom:20px;}
.admin-feed-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--paper);font-size:12px;}
.admin-feed-row:last-child{border-bottom:none;}
.admin-feed-species{flex:1;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:12px;}
.admin-feed-meta{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.admin-feed-user{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--gold);}
.admin-feed-time{font-family:'JetBrains Mono',monospace;font-size:10px;color:#aaa;flex-shrink:0;min-width:80px;text-align:right;}
.admin-feed-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;padding:2px 6px;border-radius:12px;}
.admin-feed-badge.caught{background:#d4f0d4;color:#2a6a2a;}
.admin-feed-badge.lost{background:#fde8e8;color:var(--rust);}
.admin-feed-badge.bite{background:#fff3cd;color:#856404;}
/* Horizontal bar charts */
.admin-analytics-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px;}
.admin-hbar-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.admin-hbar-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;min-width:90px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-hbar-track{flex:1;height:8px;background:var(--paper);border-radius:4px;overflow:hidden;}
.admin-hbar-fill{height:100%;border-radius:4px;transition:width .3s ease;}
.admin-hbar-count{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;min-width:24px;text-align:right;}
.admin-empty-small{font-family:'JetBrains Mono',monospace;font-size:11px;color:#aaa;padding:12px 0;}
/* User health */
.admin-health-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.admin-health-chip{font-family:'JetBrains Mono',monospace;font-size:10px;padding:4px 10px;border-radius:20px;background:var(--paper-dark);}
.admin-badge.health-active{background:#d4f0d4;color:#2a6a2a;}
.admin-badge.health-warn{background:#fff3cd;color:#856404;}
.admin-badge.health-risk{background:#fde8e8;color:var(--rust);}
.admin-badge.health-never{background:#eee;color:#888;}

@media(max-width:768px){
  .admin-content{padding:10px;}
  .admin-table th:nth-child(4),.admin-table td:nth-child(4){display:none;}
  .admin-photo-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));}
  .admin-growth-row,.admin-analytics-row{grid-template-columns:1fr;}
  .admin-feed-time{display:none;}
  .admin-kpi-grid{grid-template-columns:repeat(3,1fr);}
}

/* ── USERNAME ROW ── */
.username-row{display:flex;gap:8px;align-items:center;}
.username-row input{flex:1;min-width:0;background:white;border:1.5px solid var(--paper-dark);border-radius:10px;padding:9px 11px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;outline:none;width:auto;transition:border-color .2s;}
.username-row input:focus{border-color:var(--water-light);box-shadow:0 0 0 3px rgba(74,144,184,.1);}
.username-random-btn{flex-shrink:0;background:var(--paper-dark);border:none;border-radius:10px;padding:9px 12px;font-size:16px;cursor:pointer;line-height:1;transition:background .2s;}
.username-random-btn:hover{background:var(--gold-light);}

/* ── PUBLIC TOGGLE ── */
.public-toggle-row{margin-top:4px;}
.public-toggle-label{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;}
.public-toggle-label input{display:none;}
.public-toggle-track{position:relative;width:40px;height:22px;background:var(--paper-dark);border-radius:11px;transition:background .3s ease;flex-shrink:0;}
.public-toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;background:#94a3b8;border-radius:50%;transition:all .3s cubic-bezier(.34,1.56,.64,1);}
.public-toggle-label input:checked~.public-toggle-track{background:var(--water);}
.public-toggle-label input:checked~.public-toggle-track .public-toggle-thumb{left:21px;background:white;box-shadow:0 1px 3px rgba(0,0,0,.15);}
.public-toggle-text{font-family:'JetBrains Mono',monospace;font-size:11px;color:#aaa;}

/* ── PHOTO GRID ── */
#screen-photos{flex-direction:column;}
.photos-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:1px solid var(--paper-dark);}
.photos-stats{font-family:'JetBrains Mono',monospace;font-size:10px;color:#666;padding-right:16px;}
.photo-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;align-content:start;}
.photo-grid-item{aspect-ratio:1;overflow:hidden;cursor:pointer;position:relative;background:var(--paper-dark);border-radius:4px;}
.photo-grid-item img{width:100%;height:100%;object-fit:cover;transition:transform .2s,opacity .3s ease;}
.photo-grid-item:hover img{transform:scale(1.04);}
.photo-grid-item:active{transform:scale(.97);transition:transform .12s ease;}
.photo-grid-item .pgrid-likes{position:absolute;bottom:6px;right:6px;font-family:'JetBrains Mono',monospace;font-size:10px;color:#fff;background:rgba(0,0,0,.55);padding:3px 7px;border-radius:20px;letter-spacing:.3px;}
.photos-empty{grid-column:1/-1;text-align:center;font-family:'JetBrains Mono',monospace;font-size:12px;color:#666;padding:60px 20px;line-height:1.8;}

/* ── SCREEN TABS (friends + photos screens) ── */
.screen-tab-nav{display:flex;flex-shrink:0;border-bottom:none;background:var(--paper);padding:8px 10px 6px;gap:4px;}
.screen-tab-btn{flex:1;background:none;border:none;padding:8px 14px;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;color:#94a3b8;border-bottom:none;margin-bottom:0;transition:all .25s;white-space:nowrap;border-radius:20px;}
.screen-tab-btn.active{color:white;background:var(--water);font-weight:600;box-shadow:0 2px 8px rgba(44,82,130,.25);}
.screen-tab-content{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0;}
.screen-tab-content.active{display:flex;}
/* ── FRIENDS SCREEN ── */
#screen-friends{flex-direction:column;}
.friend-search-row{display:flex;gap:6px;padding:0 12px 8px;}
.friend-search-row input{flex:1;padding:7px 10px;background:var(--paper-dark);border:none;border-radius:12px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink);}
.friend-search-btn{background:var(--water);color:#fff;border:none;border-radius:12px;padding:7px 10px;cursor:pointer;font-size:14px;}
#friend-search-results{padding:0 12px;}
.friend-result-item{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--paper-dark);}
.friend-result-item:last-child{border-bottom:none;}
.friend-result-name{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;}
.friend-add-btn{background:var(--gold);color:white;border:none;border-radius:10px;padding:5px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;cursor:pointer;transition:all .2s;}
.friend-add-btn:disabled{opacity:.5;cursor:not-allowed;}
.friends-requests-section,.friends-list-section{flex-shrink:0;}
.friend-request-item,.friend-list-item{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--paper-dark);cursor:pointer;transition:background .15s;}
.friend-list-item:hover{background:var(--paper-dark);}
.friend-list-item.selected{background:var(--ink);color:var(--paper);}
.friend-list-item.selected .friend-name{color:var(--paper);}
.friend-list-item.selected .friend-arrow{color:var(--gold);}
.friend-request-item:last-child,.friend-list-item:last-child{border-bottom:none;}
.friend-name{font-family:'JetBrains Mono',monospace;font-size:12px;}
.friend-arrow{font-family:'JetBrains Mono',monospace;font-size:12px;color:#888;transition:color .15s;}
.friend-item-actions{display:flex;align-items:center;gap:6px;}
.friend-delete-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:3px 5px;border-radius:10px;opacity:.4;transition:opacity .15s,background .15s;line-height:1;}
.friend-delete-btn:hover{opacity:1;background:rgba(155,58,42,.15);}
.all-friends-btn{border-bottom:2px solid var(--paper-dark) !important;}
.friend-accept-btn{background:var(--water);color:#fff;border:none;border-radius:10px;padding:4px 8px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;margin-left:4px;}
.friend-decline-btn{background:var(--paper-dark);color:var(--ink);border:none;border-radius:10px;padding:4px 8px;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;}
.friends-empty{font-family:'JetBrains Mono',monospace;font-size:11px;color:#666;padding:12px;text-align:center;}
.friends-feed-scroll{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column;align-items:center;}
.fcd-nav-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--paper-dark);gap:8px;}
.fcd-nav-btn{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--water);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:10px;transition:background .15s;}
.fcd-nav-btn:hover{background:var(--paper-dark);}
.fcd-nav-btn:disabled{color:#ccc;cursor:default;}
.fcd-nav-counter{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
.friends-manage-scroll{flex:1;overflow-y:auto;}
/* ── NOTIFICATION BELL ── */
.notif-bell-wrap{position:relative;display:inline-flex;align-items:center;}
.notif-bell-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:4px 6px;position:relative;line-height:1;}
.notif-bell-badge{position:absolute;top:-3px;right:-3px;background:var(--rust);color:#fff;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;min-width:17px;height:17px;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:0 4px;pointer-events:none;border:2px solid white;}
.notif-panel{position:fixed;top:52px;right:12px;width:320px;max-width:calc(100vw - 24px);background:white;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:1100;overflow:hidden;}
.notif-panel-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--paper-dark);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;}
.notif-clear-btn{background:none;border:none;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--water);padding:2px 6px;}
.notif-item{padding:10px 12px;font-family:'JetBrains Mono',monospace;font-size:11px;border-bottom:1px solid var(--paper-dark);cursor:pointer;transition:background .15s;line-height:1.5;}
.notif-item:hover{background:var(--paper-dark);}
.notif-item:last-child{border-bottom:none;}
.notif-empty{padding:14px 12px;font-family:'JetBrains Mono',monospace;font-size:11px;color:#888;text-align:center;}
/* ── STATS SCREEN ── */
#screen-stats .left-panel{max-width:520px;}
.stats-tab-btn{flex:1;padding:8px 14px;background:none;border:none;border-bottom:none;font-family:'JetBrains Mono',monospace;font-size:11px;cursor:pointer;color:#94a3b8;transition:all .25s;border-radius:20px;margin:4px 2px;}
.stats-tab-btn.active{color:white;background:var(--water);font-weight:600;box-shadow:0 2px 8px rgba(44,82,130,.25);}
/* ── PRIVACY SETTINGS ── */
.privacy-setting-row{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--paper-dark);}
.privacy-setting-info{flex:1;margin-right:12px;}
.privacy-setting-title{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;margin-bottom:2px;}
.privacy-setting-desc{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
/* ── PB RECORDS ── */
.pb-card{display:flex;align-items:center;gap:12px;padding:12px;background:white;border-radius:14px;margin-bottom:8px;box-shadow:var(--shadow-sm);transition:all .25s;}
.pb-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);}
.pb-thumb{width:48px;height:48px;border-radius:12px;object-fit:cover;flex-shrink:0;}
.pb-emoji{width:48px;height:48px;border-radius:12px;background:var(--water-pale);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.pb-card-info{flex:1;min-width:0;}
.pb-species{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:700;color:var(--ink);}
.pb-weight{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--gold);font-weight:600;margin-top:2px;}
.pb-own{background:var(--water-pale);color:var(--water);font-size:9px;padding:2px 6px;border-radius:8px;margin-left:4px;font-weight:600;letter-spacing:.3px;}
.pb-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#94a3b8;margin-top:2px;}
body.dark-mode .pb-card{background:#1e293b;}
body.dark-mode .pb-emoji{background:#334155;}
/* ── FRIEND CATCH DETAIL MODAL ── */
.fcd-username{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--gold);margin-bottom:8px;}
.fcd-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;}
.fcd-detail-item{background:var(--paper-dark);border-radius:10px;padding:6px 8px;}
.fcd-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:#888;text-transform:uppercase;letter-spacing:.5px;}
.fcd-val{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;margin-top:2px;}
.fcd-weather{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;margin-top:8px;}
.fcd-notes{font-family:'JetBrains Mono',monospace;font-size:11px;color:#666;margin-top:8px;line-height:1.5;}
/* ── PHOTO GRID FRIEND BADGE ── */
.pgrid-friend{position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,.55);color:var(--gold);font-family:'JetBrains Mono',monospace;font-size:9px;padding:3px 7px;border-radius:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 12px);}
/* .friend-catch-item kept for compat; new design uses .friend-catch-card */
.friend-catch-info{flex:1;min-width:0;}
.friend-catch-species{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:500;}
.friend-catch-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
.catch-public-icon{font-size:13px;opacity:.6;margin-right:2px;cursor:default;}
.like-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:4px 6px;border-radius:10px;transition:background .15s;display:flex;align-items:center;gap:3px;font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;}
.like-btn:hover{background:var(--paper-dark);}
.like-btn.liked{color:var(--rust);}
/* ── PAY LAKE MODE ── */
body.paylake-mode .mode-btn#btn-pay{background:#22c55e;color:#fff;}
/* Pay lake search */
.paylake-search-wrap{position:relative;}
.paylake-search-input{width:100%;box-sizing:border-box;padding:9px 12px;border:1.5px solid var(--paper-dark);border-radius:12px;font-family:'JetBrains Mono',monospace;font-size:12px;background:var(--paper);color:var(--ink);outline:none;transition:border-color .2s;}
.paylake-search-input:focus{border-color:#4caf50;}
.paylake-dropdown{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:1.5px solid var(--paper-dark);border-radius:0 0 12px 12px;z-index:200;max-height:220px;overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.12);}
.paylake-dropdown.open{display:block;}
.paylake-dropdown-item{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--paper-dark);transition:background .15s;}
.paylake-dropdown-item:last-child{border-bottom:none;}
.paylake-dropdown-item:hover{background:var(--paper-dark);}
.pli-name{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;color:var(--ink);}
.pli-meta{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;color:#888;margin-top:1px;}
.paylake-dropdown-empty{padding:10px 12px;font-family:'JetBrains Mono',monospace;font-size:11px;color:#aaa;}
/* Selected lake badge */
.paylake-selected{display:flex;align-items:center;gap:8px;background:#e8f5e9;border:1.5px solid #4caf50;border-radius:12px;padding:8px 12px;margin-top:6px;}
.pls-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;color:#1b5e20;flex:1;}
.pls-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#388e3c;}
.pls-clear{background:none;border:none;color:#888;cursor:pointer;font-size:14px;padding:0 2px;line-height:1;flex-shrink:0;}
/* Pay lake badge on catch card */
.catch-paylake-badge{font-family:'JetBrains Mono',monospace;font-size:9px;color:#388e3c;background:#e8f5e9;border-radius:4px;padding:2px 5px;display:inline-block;margin-top:2px;}
@media(max-width:768px){
  .photo-grid{grid-template-columns:repeat(3,1fr);}
}
