:root{--bg:#f7f1df;--bg-soft:#fff8e6d1;--panel:#fffcf3eb;--panel-strong:#fffaf0;--line:#12463f24;--line-strong:#12463f47;--text:#234542;--text-soft:#5c746e;--accent:#12463f;--accent-soft:#1f6f63;--accent-ghost:#12463f14;--danger:#b54830;--danger-soft:#b548301f;--warning:#c67a1f;--warning-soft:#c67a1f26;--success:#1c8a65;--shadow:0 20px 70px #223a3324;--font-display:"Trebuchet MS", "Avenir Next", "Segoe UI", sans-serif;--font-body:"Avenir Next", "Segoe UI", sans-serif;--font-mono:"Consolas", "SFMono-Regular", monospace;color:var(--text);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:radial-gradient(circle at top right, #317e6721, transparent 26rem), radial-gradient(circle at left 10% bottom 15%, #eaa75029, transparent 22rem), linear-gradient(180deg, #fbf6e7 0%, var(--bg) 100%);margin:0}.auth-shell{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.auth-card{border:1px solid var(--line);background:var(--panel);width:min(100%,30rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:1.6rem;gap:1rem;padding:1.4rem;display:grid}.auth-card h1{font-family:var(--font-display);margin:0;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1}.auth-card p{color:var(--text-soft);margin:0;line-height:1.5}.auth-badge{color:var(--accent-soft);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;display:inline-flex}.auth-form{gap:.9rem;display:grid}.auth-submit{background:var(--accent);color:#fff;border:0;border-radius:1rem;justify-content:center;align-items:center;min-height:3rem;font-weight:700;display:inline-flex}.auth-submit:disabled{opacity:.7;cursor:progress}button,input{font:inherit}button{cursor:pointer}code{font-family:var(--font-mono);background:#12463f14;border-radius:999px;padding:.12rem .38rem;font-size:.92em}.app-shell{width:min(1480px,100% - 2rem);margin:0 auto;padding:1.5rem 0 2rem;position:relative}.background-orb{filter:blur(4px);opacity:.55;pointer-events:none;border-radius:50%;width:18rem;height:18rem;position:fixed}.background-orb--one{background:radial-gradient(circle,#1f6f633d,#0000 70%);top:3rem;right:4rem}.background-orb--two{background:radial-gradient(circle,#eaa75042,#0000 68%);bottom:2rem;left:0}.topbar,.workspace{gap:1.2rem;display:grid}.topbar{grid-template-columns:1fr;margin-bottom:1.2rem}.workspace{grid-template-columns:1fr;align-items:start}.hero-card,.search-card,.map-card,.status-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:1.6rem;position:relative;overflow:hidden}.hero-card,.search-card,.status-card{padding:1.35rem}.map-card{padding:1.1rem}.eyebrow{color:var(--accent-soft);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.85rem;font-weight:700;display:inline-flex}.hero-card h1{max-width:15ch;font-family:var(--font-display);letter-spacing:-.05em;margin:.9rem 0 .8rem;font-size:clamp(2rem,4vw,3.65rem);line-height:.97}.hero-copy{max-width:58ch;color:var(--text-soft);margin:0;line-height:1.55}.hero-metrics{flex-wrap:wrap;gap:.7rem;margin-top:1.1rem;display:flex}.metric-chip,.meta-pill,.stat-card{border:1px solid var(--line);background:#ffffffc2}.metric-chip{border-radius:1.1rem;min-width:9rem;padding:.8rem .95rem}.metric-chip span,.stat-card span{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;display:block}.metric-chip strong,.stat-card strong{margin-top:.3rem;font-size:1.02rem;display:block}.panel-title-row{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.95rem;display:flex}.panel-title-row h2,.selected-point-card h3{font-family:var(--font-display);margin:0;font-size:1.2rem}.panel-caption{color:var(--text-soft);font-size:.92rem}.search-input{border:1px solid var(--line-strong);background:#ffffffdb;border-radius:1.1rem;align-items:center;gap:.75rem;padding:.92rem 1rem;display:flex}.search-input input{width:100%;color:var(--text);background:0 0;border:0;outline:0}.session-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.session-badge{border:1px solid var(--line);text-align:right;background:#ffffffc2;border-radius:1rem;gap:.1rem;padding:.7rem .9rem;display:grid}.session-badge strong{font-size:.95rem}.session-badge span{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.result-list{gap:.65rem;max-height:28rem;padding-right:.15rem;display:grid;overflow:auto}.result-item{border:1px solid var(--line);width:100%;color:inherit;text-align:left;background:#ffffffb3;border-radius:1rem;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.95rem 1rem;transition:transform .14s,border-color .14s,background .14s;display:grid}.result-item:hover,.result-item.is-selected{background:#f6fffbf5;border-color:#12463f59;transform:translateY(-1px)}.result-main,.result-meta{gap:.2rem;display:grid}.result-main strong{font-size:1rem}.result-main span,.result-meta span{color:var(--text-soft);font-size:.88rem}.inline-warning,.inline-error,.empty-state{border-radius:1rem;padding:.9rem 1rem}.inline-warning{background:var(--warning-soft);color:#85541b;border:1px solid #c67a1f33;margin-bottom:.8rem}.inline-error{color:#8f3624;background:#b5483017;border:1px solid #b5483033;margin-bottom:.8rem}.empty-state{text-align:center;min-height:14rem;color:var(--text-soft);border:1px dashed var(--line-strong);background:#ffffff8f;place-items:center;display:grid}.empty-state.compact{min-height:0}.map-summary{text-align:right;color:var(--text-soft);font-size:.9rem;display:grid}.map-meta-strip{display:none}.meta-pill{color:var(--text);border-radius:999px;align-items:center;gap:.42rem;padding:.65rem .85rem;display:inline-flex}.map-stage-shell{gap:.8rem;display:grid}.map-fullscreen-layer{z-index:79;overscroll-behavior:contain;position:fixed;inset:0}.map-stage-shell.is-fullscreen{z-index:80;padding-top:calc(.35rem + env(safe-area-inset-top));padding-right:calc(.35rem + env(safe-area-inset-right));padding-bottom:calc(.35rem + env(safe-area-inset-bottom));padding-left:calc(.35rem + env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f1dffa;grid-template-rows:auto minmax(0,1fr);position:fixed;inset:0}.map-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.map-stage-shell.is-fullscreen .map-toolbar{border:1px solid var(--line);background:#ffffffe6;border-radius:.85rem;justify-content:flex-end;align-items:center;padding:.25rem}.map-viewport-frame{width:100%;min-height:min(72vh,980px);display:grid}.map-viewport-frame--fullscreen{height:100%;min-height:0}.map-viewport{border:1px solid var(--line);background:linear-gradient(#12463f05,#12463f0f),repeating-linear-gradient(45deg,#12463f05,#12463f05 10px,#12463f08 10px 20px);border-radius:1.4rem;place-items:center;width:100%;height:100%;min-height:100%;display:grid;overflow:hidden}.map-viewport--fullscreen{height:100%;min-height:0}.map-content{width:fit-content;min-width:0;height:fit-content;min-height:0;padding:0;display:block}.map-stage-shell.is-fullscreen .map-content{padding:0}.map-plane{touch-action:none;border-radius:1.1rem;width:min(100%,1300px);position:relative;overflow:hidden;box-shadow:0 18px 45px #1a352f29}.map-plane.is-saving{cursor:progress}.map-plane:not(.map-plane--empty){cursor:crosshair}.map-media{object-fit:fill;pointer-events:none;background:#edf0e8;width:100%;height:100%;display:block}.map-empty{text-align:center;background:linear-gradient(#12463f12,#12463f05);place-items:center;gap:.4rem;width:100%;height:100%;padding:1.4rem;display:grid}.map-empty p{max-width:36ch;color:var(--text-soft);margin:0}.map-grid{pointer-events:none;background-color:#0000;background-image:linear-gradient(#12463f14 1px,#0000 1px),linear-gradient(90deg,#12463f14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:12% 12%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.map-point{width:.42rem;height:.42rem;box-shadow:0 0 0 1.1px var(--accent), 0 1px 3px #12463f29;transform-origin:50%;z-index:2;background:#f7fff9;border:0;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.map-point.is-selected{box-shadow:0 0 0 1.2px #fff, 0 0 0 2.2px var(--danger);z-index:4}.map-point.is-live{pointer-events:none;z-index:5;background:#f7fbff;width:.5rem;height:.5rem;box-shadow:0 0 0 1.1px #2f80ed,0 0 0 2.2px #2f80ed1f,0 1px 4px #2f80ed2e}.map-point.is-pending{box-shadow:0 0 0 1px var(--warning), 0 1px 3px #c67a1f29;pointer-events:none;z-index:6;background:#fff4cc;animation:1.2s ease-in-out infinite pendingFlash}.map-point-delete{color:var(--danger);white-space:nowrap;z-index:7;background:#fff3f0fa;border:1px solid #b5483047;border-radius:999px;align-items:center;gap:.45rem;padding:.55rem .8rem;display:inline-flex;position:absolute;box-shadow:0 10px 24px #29201d2e}.map-point-delete:hover{background:#fff}.ghost-button:disabled,.icon-button:disabled{opacity:.45;cursor:default}.status-card{gap:.95rem;display:grid}.gps-badge{border-radius:999px;align-items:center;gap:.6rem;width:fit-content;padding:.75rem .9rem;font-weight:700;display:inline-flex}.gps-badge__dot{background:currentColor;border-radius:50%;width:.7rem;height:.7rem}.gps-badge--excellent{color:var(--success);background:#1c8a6524}.gps-badge--good{color:var(--accent-soft);background:#1f6f631f}.gps-badge--warning{background:var(--warning-soft);color:var(--warning)}.gps-badge--muted{color:var(--text-soft);background:#5c746e1f}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.stat-card{border-radius:1rem;padding:.85rem}.projection-hint{color:var(--text-soft);font-size:.92rem}.icon-button,.ghost-button{border:1px solid var(--line);color:var(--text);background:#ffffffc7;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;display:inline-flex}.icon-button{width:2.45rem;height:2.45rem}.ghost-button{padding:.65rem .95rem}.icon-button:hover,.ghost-button:hover{background:#fff;border-color:#12463f4d}.icon-button.danger{color:var(--danger);background:#ffffffeb}.toast{z-index:40;border:1px solid #0000;border-radius:1rem;padding:.9rem 1rem;position:fixed;bottom:1.2rem;right:1.2rem;box-shadow:0 14px 36px #21362f2e}.toast--success{background:#f2fff8f5;border-color:#1c8a6540}.toast--error{background:#fff3f0f5;border-color:#b548303d}.toast--info{background:#f5fafff5;border-color:#12463f2e}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.28)}}@keyframes pendingFlash{0%,to{opacity:1}50%{opacity:.42}}@media (width<=1180px){.map-viewport{min-height:58vh}}@media (width<=720px){.app-shell{width:min(100%,100% - 1rem);padding:.7rem 0 1rem}.hero-card,.search-card,.status-card,.map-card{border-radius:1.25rem}.hero-card,.search-card,.status-card{padding:1rem}.map-card{padding:.85rem}.hero-card h1{max-width:none;font-size:2.25rem}.panel-title-row{flex-direction:column;align-items:flex-start}.result-item{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.map-toolbar,.map-stage-shell.is-fullscreen .map-toolbar{justify-content:flex-start}.map-content{padding:.55rem}.map-viewport{min-height:52vh}}
