:root{--bg: #0d1a0d;--bg-surface: #1a2e1a;--accent: #4caf50;--accent-dim: #2e7d32;--text: #e8f5e9;--text-dim: #a5d6a7;--text-muted: #66bb6a;--error: #ef5350;--error-dim: #b71c1c;--warning: #ffa726;--border: #2e4a2e;--radius: 6px;--font-mono: "Courier New", Courier, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;line-height:1.5;min-height:100dvh}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:640px;margin:0 auto;padding:0 1rem 2rem}.app-header{padding:1.25rem 0 .75rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.app-title{font-size:1.6rem;font-weight:700;color:var(--accent);letter-spacing:.02em}.app-subtitle{font-size:.85rem;color:var(--text-muted);margin-top:.1rem}.app-main{flex:1;display:flex;flex-direction:column;gap:1.5rem}.location-display{display:flex;flex-direction:column;gap:1.25rem}.location-primary{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.grid-value{font-family:var(--font-mono);font-size:3rem;font-weight:700;color:var(--accent);letter-spacing:.08em;line-height:1.1;margin-top:.25rem}.location-coords{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.coord-row{display:flex;flex-direction:column;gap:.15rem}.coord-value{font-family:var(--font-mono);font-size:1.05rem;color:var(--text)}.location-meta{display:flex;flex-direction:column;gap:.4rem}.meta-row{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.9rem;color:var(--text-dim)}.field-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:600}.location-stale-notice{font-size:.82rem;color:var(--warning);padding:.35rem .6rem;border:1px solid var(--warning);border-radius:var(--radius);opacity:.85}.loading-state{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem 1.25rem;text-align:center;color:var(--text-dim);font-size:1.1rem}.error-message{background:#1a0d0d;border:1px solid var(--error-dim);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.error-heading{font-size:1.1rem;font-weight:600;color:var(--error)}.error-detail{font-size:.95rem;color:var(--text-dim);line-height:1.6}.action-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.btn{flex:1;min-width:140px;padding:.75rem 1rem;font-size:1rem;font-weight:600;border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent-dim);color:var(--text)}.btn-primary:not(:disabled):hover{background:var(--accent);color:#0d1a0d}.btn-secondary{background:var(--bg-surface);color:var(--accent);border:1px solid var(--border)}.btn-secondary:not(:disabled):hover{background:var(--border)}.status-panel{margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--border)}.status-panel-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.75rem}.status-list{display:flex;flex-direction:column;gap:.35rem;list-style:none}.status-row{display:flex;gap:.75rem;font-size:.85rem}.status-row dt{color:var(--text-muted);min-width:100px;flex-shrink:0}.status-row dd{color:var(--text-dim);font-family:var(--font-mono);font-size:.83rem}.status-ok{color:var(--accent)!important}.status-error{color:var(--error)!important}.status-pending{color:var(--warning)!important}@media(min-width:480px){.grid-value{font-size:4rem}.coord-row{flex-direction:row;align-items:baseline;gap:.75rem}.meta-row{gap:1rem}}
