@import url(https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&display=swap);:root{--bg:#f5f2ed;--bg2:#eae6df;--surface:rgba(255,255,255,.92);--surface-hi:rgba(255,255,255,.96);--glass:rgba(0,0,0,.03);--glass-hover:rgba(0,0,0,.06);--border:rgba(60,100,50,.15);--border-bright:rgba(60,100,50,.3);--border-gold:rgba(184,134,11,.28);--green:#2e7d32;--green-light:#4caf50;--green-bright:#66bb6a;--green-dim:#1b5e20;--gold:#b8860b;--gold-dim:#8b6508;--gold-soft:rgba(184,134,11,.1);--text:#1a2e18;--text-2:#3d5c38;--text-3:#6b8f64;--text-inv:#f5f2ed;--danger:#d32f2f;--success:#2e7d32;--warning:#e65100;--r-xs:6px;--r-sm:12px;--r-md:18px;--r-lg:24px;--r-xl:32px;--r-2xl:40px;--r-full:999px;--sh-xs:0 1px 4px rgba(0,0,0,.06);--sh-sm:0 3px 10px rgba(0,0,0,.08);--sh-md:0 6px 24px rgba(0,0,0,.10);--sh-lg:0 14px 48px rgba(0,0,0,.12);--sh-xl:0 24px 64px rgba(0,0,0,.16);--sh-gold:0 4px 20px rgba(184,134,11,.14);--t:.18s cubic-bezier(.4,0,.2,1);--t-slow:.30s cubic-bezier(.4,0,.2,1);--t-spring:.40s cubic-bezier(.34,1.56,.64,1);--header-h:56px;--bottom-nav-h:64px;--tab-h:48px;--touch-min:48px;--touch-comfy:56px}*,::after,::before{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:'DM Sans',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;touch-action:pan-y;background-image:radial-gradient(ellipse 100% 60% at 10% -10%,rgba(46,125,50,.06) 0,transparent 55%),radial-gradient(ellipse 80% 50% at 90% 110%,rgba(184,134,11,.04) 0,transparent 50%)}.serif,h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;letter-spacing:-.02em;line-height:1.2}button,input,select,textarea{font-family:'DM Sans',system-ui,sans-serif}input,select,textarea{font-size:16px;background:rgba(0,0,0,.04);border:1.5px solid var(--border);border-radius:var(--r-full);color:var(--text);padding:0 20px;width:100%;outline:0;min-height:var(--touch-comfy);line-height:var(--touch-comfy);-webkit-appearance:none;appearance:none;transition:border-color var(--t),box-shadow var(--t),background var(--t)}textarea{border-radius:var(--r-lg)!important;padding:16px 20px;min-height:96px;line-height:1.6;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(184,134,11,.1);background:rgba(255,255,255,.8)}input::placeholder,textarea::placeholder{color:var(--text-3)}select option{background:#fff}input[type=date]::-webkit-calendar-picker-indicator{filter:none}.label,label{display:block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px}.field-group{margin-bottom:20px}.field-group:last-child{margin-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;font-weight:600;padding:0 24px;min-height:var(--touch-comfy);border-radius:var(--r-full);border:1.5px solid transparent;cursor:pointer;transition:all var(--t);white-space:nowrap;letter-spacing:.01em;text-decoration:none;user-select:none;-webkit-user-select:none}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:not-allowed!important;transform:none!important;box-shadow:none!important;pointer-events:none}.btn-primary{background:linear-gradient(135deg,#43a047,var(--green-dim));color:#fff;box-shadow:0 3px 16px rgba(46,125,50,.42)}.btn-primary:hover{box-shadow:0 5px 24px rgba(46,125,50,.58);transform:translateY(-1px)}.btn-ghost{background:var(--glass);border-color:var(--border);color:var(--text-2)}.btn-ghost:hover{background:var(--glass-hover);border-color:var(--border-bright);color:var(--text)}.btn-gold{background:var(--gold-soft);border-color:var(--border-gold);color:var(--gold)}.btn-gold:hover{background:rgba(184,134,11,.18);border-color:var(--gold)}.btn-danger{background:rgba(239,83,80,.12);border-color:rgba(239,83,80,.3);color:var(--danger)}.btn-sm{min-height:40px;padding:0 16px;font-size:13px}.btn-lg{min-height:60px;padding:0 32px;font-size:16px}.btn-full{width:100%}.btn-icon{min-height:var(--touch-comfy);padding:0;width:var(--touch-comfy);border-radius:var(--r-full);font-size:20px}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);padding:20px;margin-bottom:14px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--sh-sm)}.card-title{font-family:'DM Serif Display',serif;font-size:17px;color:var(--gold);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.app-header{height:calc(var(--header-h) + env(safe-area-inset-top));padding:0 16px;padding-top:env(safe-area-inset-top);background:rgba(255,255,255,.97);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:300;display:flex;align-items:center;gap:10px;flex-shrink:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.logo-mark{width:28px;height:36px;flex-shrink:0;background:linear-gradient(150deg,var(--gold) 0,var(--gold-dim) 100%);clip-path:polygon(20% 0%,80% 0%,100% 14%,100% 100%,0% 100%,0% 14%);border-radius:3px;box-shadow:0 2px 10px rgba(184,134,11,.22)}.header-title{font-family:'DM Serif Display',serif;font-size:18px;color:var(--text);line-height:1.1}.header-sub{font-size:10px;color:var(--text-3);font-weight:600;letter-spacing:.04em;margin-top:1px}.tabs{display:flex;border-bottom:1px solid var(--border);background:rgba(255,255,255,.8);overflow-x:auto;flex-shrink:0;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:0 20px;min-height:var(--tab-h);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);cursor:pointer;border-bottom:2.5px solid transparent;transition:all var(--t);white-space:nowrap;display:flex;align-items:center;gap:6px;user-select:none}.tab:hover{color:var(--text-2)}.tab.active{color:var(--gold);border-bottom-color:var(--gold)}.tab-panel{display:none}.tab-panel.active{display:block}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.98);border-top:1px solid var(--border);z-index:300;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.nav-items{display:flex;height:var(--bottom-nav-h)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-3);font-size:10px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color var(--t);position:relative;min-height:var(--touch-min);user-select:none}.nav-item .ni-icon{font-size:22px;line-height:1;transition:transform var(--t-spring)}.nav-item.active{color:var(--gold)}.nav-item.active .ni-icon{transform:scale(1.12)}.nav-badge{position:absolute;top:6px;right:calc(50% - 20px);background:#e53935;color:#fff;font-size:9px;font-weight:800;padding:1px 5px;border-radius:var(--r-full);min-width:17px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.4)}.coords-pill{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.04);border:1.5px solid var(--border);border-radius:var(--r-full);padding:10px 14px 10px 16px;margin-bottom:16px;min-height:52px;transition:border-color var(--t)}.coords-pill.locked{border-color:rgba(46,125,50,.35);background:rgba(46,125,50,.08)}.gps-dot{width:10px;height:10px;border-radius:50%;background:var(--text-3);flex-shrink:0;transition:all var(--t)}.gps-dot.active{background:var(--success);box-shadow:0 0 0 4px rgba(102,187,106,.22)}.gps-dot.searching{background:var(--gold);animation:pulse-dot 1.2s ease-in-out infinite}.gps-dot.error{background:var(--danger)}@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.coords-text{flex:1;font-size:13px;font-weight:500;color:var(--text-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accuracy-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--r-full);flex-shrink:0}.acc-good{color:var(--success);background:rgba(102,187,106,.12)}.acc-ok{color:var(--gold);background:rgba(240,192,64,.12)}.acc-poor{color:var(--text-3);background:rgba(0,0,0,.04)}.gps-status-bar{display:none;margin-top:8px;padding:10px 16px;border-radius:var(--r-full);font-size:13px;font-weight:500}.gps-status-bar.ok{display:block;background:rgba(46,125,50,.15);border:1px solid rgba(102,187,106,.3);color:var(--success)}.gps-status-bar.err{display:block;background:rgba(239,83,80,.12);border:1px solid rgba(239,83,80,.3);color:var(--danger)}.gps-status-bar.loading{display:block;background:rgba(240,192,64,.09);border:1px solid rgba(240,192,64,.25);color:var(--gold)}.gps-banner{display:none;padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.02em;border-radius:var(--r-full);white-space:nowrap}.gps-banner.watching{display:inline-flex;background:rgba(184,134,11,.15);color:var(--gold);border:1px solid rgba(184,134,11,.3)}.gps-banner.locked{display:inline-flex;background:rgba(46,125,50,.15);color:var(--success);border:1px solid rgba(102,187,106,.3)}.mini-map-wrap{display:none;position:relative;border-radius:var(--r-xl);overflow:hidden;border:1.5px solid var(--border);margin-bottom:6px;height:260px;background:#e8e5de;box-shadow:var(--sh-sm);animation:fadeIn var(--t-slow) ease}.mini-map-wrap.visible{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}#mini-map{width:100%;height:100%}.mini-map-overlay{position:absolute;bottom:10px;left:10px;background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:var(--r-full);padding:5px 12px;font-size:11px;font-weight:600;color:var(--text);pointer-events:none;backdrop-filter:blur(8px)}.photo-drop{border:2px dashed rgba(100,185,75,.3);border-radius:var(--r-xl);padding:32px 20px;text-align:center;cursor:pointer;transition:all var(--t);overflow:hidden}.photo-drop:hover{border-color:var(--green-light);background:rgba(76,175,80,.06)}.photo-drop.has-photo{padding:0;border-style:solid;border-color:rgba(240,192,64,.5)}.photo-drop-label{color:var(--text-3);font-size:13px;line-height:1.8}.photo-drop-label .drop-icon{font-size:32px;margin-bottom:8px;display:block}.photo-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.ai-result{display:none;background:rgba(184,134,11,.04);border:1.5px solid rgba(184,134,11,.18);border-radius:var(--r-lg);padding:16px;margin-top:14px;animation:fadeIn var(--t) ease}.ai-result.active{display:block}.ai-result-title{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;display:flex;align-items:center;gap:8px}.ai-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--r-full);font-size:12px;font-weight:600;background:rgba(184,134,11,.08);border:1px solid rgba(184,134,11,.22);color:var(--gold);margin:3px 3px 3px 0}.ai-transcription{font-family:'DM Serif Display',serif;font-size:14px;color:var(--text);line-height:1.8;padding:14px 18px;background:rgba(0,0,0,.04);border-radius:0 var(--r-md) var(--r-md) 0;border-left:3px solid var(--gold);margin-top:12px}.record-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);padding:16px;margin-bottom:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--sh-xs);transition:border-color var(--t),box-shadow var(--t),transform var(--t);cursor:pointer}.record-card:active{transform:scale(.99);border-color:var(--border-bright)}.record-name{font-family:'DM Serif Display',serif;font-size:18px;color:var(--text);margin-bottom:3px}.record-dates{font-size:13px;color:var(--gold);font-weight:600;margin-bottom:5px}.record-meta{font-size:12px;color:var(--text-3);line-height:1.7}.record-coords{font-size:11px;color:var(--text-3);font-weight:500;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 12px;border-radius:var(--r-full);letter-spacing:.03em}.badge-pending{background:rgba(240,192,64,.14);color:var(--gold);border:1px solid rgba(240,192,64,.3)}.badge-pushed{background:rgba(102,187,106,.14);color:var(--success);border:1px solid rgba(102,187,106,.3)}.badge-error{background:rgba(239,83,80,.12);color:var(--danger);border:1px solid rgba(239,83,80,.3)}.status-bar{display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:var(--r-full);font-size:13px;font-weight:500;margin-bottom:14px}.s-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.status-ok{background:rgba(46,125,50,.14);border:1px solid rgba(102,187,106,.3);color:var(--success)}.status-ok .s-dot{background:var(--success);box-shadow:0 0 0 3px rgba(102,187,106,.2)}.status-warn{background:rgba(240,192,64,.1);border:1px solid rgba(240,192,64,.28);color:var(--gold)}.status-warn .s-dot{background:var(--gold)}.status-err{background:rgba(239,83,80,.12);border:1px solid rgba(239,83,80,.3);color:var(--danger)}.status-err .s-dot{background:var(--danger)}.push-bar{background:rgba(240,192,64,.06);border:1.5px solid var(--border-gold);border-radius:var(--r-xl);padding:16px 20px;margin-bottom:16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;box-shadow:var(--sh-gold)}.push-bar-info strong{color:var(--text);font-size:14px;display:block}.push-bar-info span{color:var(--text-3);font-size:12px}.toast{position:fixed;bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 12px);left:50%;transform:translateX(-50%) translateY(14px);background:rgba(255,255,255,.97);border:1.5px solid var(--border);color:var(--text);padding:12px 24px;border-radius:var(--r-full);font-size:14px;font-weight:500;opacity:0;transition:all var(--t);pointer-events:none;z-index:500;white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;box-shadow:var(--sh-lg);backdrop-filter:blur(16px)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.ok{border-color:rgba(102,187,106,.45)}.toast.err{border-color:rgba(239,83,80,.45)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(184,134,11,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.spinner-sm{width:12px;height:12px;border-width:1.5px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:56px 24px;color:var(--text-3)}.empty-state .es-icon{font-size:48px;display:block;margin-bottom:16px;opacity:.35}.empty-state p{font-size:14px;line-height:1.8}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.leaflet-container{background:#e8e5de;font-family:'DM Sans',sans-serif}.leaflet-popup-content-wrapper{background:rgba(255,255,255,.97);color:var(--text);border:1.5px solid var(--border);border-radius:var(--r-lg)!important;font-family:'DM Sans',sans-serif;font-size:13px;box-shadow:var(--sh-md);backdrop-filter:blur(14px)}.leaflet-popup-tip{background:rgba(255,255,255,.97)}.leaflet-popup-close-button{color:var(--text-3)!important;font-size:20px!important;padding:6px 8px!important}.leaflet-control-zoom a{background:rgba(255,255,255,.95)!important;color:var(--text)!important;border-color:var(--border)!important;min-width:36px!important;min-height:36px!important;font-size:18px!important;line-height:36px!important}.leaflet-control-zoom a:hover{background:rgba(255,255,255,.98)!important;color:var(--text)!important}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:99px}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:NaNs!important;transition-duration:NaNs!important}}@media (max-width:768px){:root{--header-h:52px}.grid-2,.grid-3{grid-template-columns:1fr}.tabs{display:none}.bottom-nav{display:block}.tab-panel{padding:16px 14px;padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 16px)}.card{padding:16px;border-radius:var(--r-lg)}.push-bar{flex-direction:column;align-items:stretch}}@media (min-width:769px){.tab-panel{padding:20px}.toast{bottom:24px}}@media (max-width:480px){body{font-size:14px}.btn-lg{min-height:56px;font-size:15px}}@media (prefers-contrast:high){:root{--border:rgba(60,100,50,.35);--text-3:#4a6e44}}