:root{--bg-base: #0a0b0d;--bg-elevated: #111316;--bg-surface: #16181c;--bg-overlay: #1c1f24;--bg-hover: #22262d;--border-subtle: #1f2227;--border-default: #2a2e35;--border-strong: #3a3f48;--text-primary: #f5f6f7;--text-secondary: #b4b8be;--text-tertiary: #7e8388;--text-disabled: #4d5258;--accent: #d4ff3a;--accent-dim: #a8cc2e;--accent-bg: rgba(212, 255, 58, .08);--critical: #ff5247;--critical-bg: rgba(255, 82, 71, .1);--warning: #ffb946;--warning-bg: rgba(255, 185, 70, .1);--success: #5dd39e;--success-bg: rgba(93, 211, 158, .1);--info: #6bb6ff;--info-bg: rgba(107, 182, 255, .1);--font-serif: "Instrument Serif", Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--font-sans: "Geist", -apple-system, sans-serif;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 4px 12px rgba(0,0,0,.3);--shadow-lg: 0 12px 36px rgba(0,0,0,.5)}[data-theme=light]{--bg-base: #f5f6f8;--bg-elevated: #ffffff;--bg-surface: #ffffff;--bg-overlay: #eef0f3;--bg-hover: #e7eaee;--border-subtle: #e4e7eb;--border-default: #d3d8de;--border-strong: #b8c0ca;--text-primary: #14161a;--text-secondary: #48515c;--text-tertiary: #78828c;--text-disabled: #adb4bb;--accent: #6a8a00;--accent-dim:#527000;--accent-bg: rgba(106,138,0,.09);--critical: #c9302a;--critical-bg: rgba(201,48,42,.09);--warning: #a05c00;--warning-bg: rgba(160,92,0,.09);--success: #1a7a56;--success-bg: rgba(26,122,86,.09);--info: #1a5fa8;--info-bg: rgba(26,95,168,.09);--shadow-sm: 0 1px 2px rgba(0,0,0,.07);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 12px 36px rgba(0,0,0,.12)}[data-theme=light] body:before{background-image:radial-gradient(circle at 15% 0%,rgba(106,138,0,.05) 0%,transparent 40%),radial-gradient(circle at 85% 100%,rgba(26,95,168,.04) 0%,transparent 40%)}[data-theme=light] .card{box-shadow:0 1px 3px #0000000f,0 1px 8px #0000000a}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle at 15% 0%,rgba(212,255,58,.04) 0%,transparent 40%),radial-gradient(circle at 85% 100%,rgba(107,182,255,.03) 0%,transparent 40%)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}h1,h2,h3,h4{font-weight:400;letter-spacing:-.02em}h1{font-family:var(--font-serif);font-size:2.5rem;line-height:1.1}h2{font-family:var(--font-serif);font-size:1.75rem;line-height:1.2}h3{font-size:1.05rem;font-weight:500;letter-spacing:-.01em}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.serif{font-family:var(--font-serif)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}::selection{background:var(--accent);color:var(--bg-base)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:all .12s ease;white-space:nowrap}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg-base);font-weight:600}.btn-primary:hover{background:var(--accent-dim);border-color:var(--accent-dim)}.btn-danger{border-color:var(--critical);color:var(--critical)}.btn-danger:hover{background:var(--critical-bg)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--bg-hover)}.btn-sm{padding:4px 10px;font-size:12px}.input,.select,.textarea{width:100%;padding:9px 12px;background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color .12s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent)}.input::placeholder{color:var(--text-tertiary)}.textarea{resize:vertical;min-height:80px}.label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:6px;font-weight:500}.card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.card-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.card-body{padding:20px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.table td{padding:12px 14px;border-bottom:1px solid var(--border-subtle)}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .1s ease}.table tbody tr:hover{background:var(--bg-surface)}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;letter-spacing:.04em;border-radius:3px;text-transform:uppercase;font-family:var(--font-mono)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-critical{background:var(--critical-bg);color:var(--critical)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-muted{background:var(--bg-surface);color:var(--text-tertiary)}.badge-accent{background:var(--accent-bg);color:var(--accent)}.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);font-weight:500}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px}.dot-live{background:var(--success);box-shadow:0 0 0 3px #5dd39e33;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #5dd39e33}50%{box-shadow:0 0 0 6px #5dd39e00}}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.fade-in{animation:fadeIn .28s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--text-tertiary)}.empty-state .serif{font-size:1.5rem;color:var(--text-secondary);margin-bottom:8px}.toast-container{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px}.toast{background:var(--bg-overlay);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:12px 16px;min-width:280px;max-width:400px;box-shadow:var(--shadow-lg);animation:slideIn .2s ease-out;border-left:3px solid var(--accent)}.toast.error{border-left-color:var(--critical)}.toast.success{border-left-color:var(--success)}@keyframes slideIn{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease-out}.modal{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{padding:18px 22px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:22px}.modal-footer{padding:14px 22px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:8px}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.site-card{padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0;transition:border-color .15s ease,transform .15s ease}.site-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.site-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.site-card__code{font-size:11px;color:var(--accent);letter-spacing:.06em}.site-card__name{font-family:var(--font-serif);font-weight:400;font-size:22px;line-height:1.15;margin:4px 0 6px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.site-card__address{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-card__stats{display:grid;grid-template-columns:1fr 1fr 1.1fr;background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.site-card__stats>div{padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.site-card__stats>div+div{border-left:1px solid var(--border-subtle)}.site-card__stat-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.site-card__stat-value{font-size:18px;line-height:1.2}.site-card__coords{font-size:11px;line-height:1.5;color:var(--text-secondary)}.site-card__actions{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;border-top:1px solid var(--border-subtle);padding-top:14px;margin-top:auto}.site-card__actions .btn{grid-column:span 2;justify-content:center;white-space:nowrap;min-width:0;padding:7px 8px}.site-card__actions .site-card__wide{grid-column:span 3}.site-card__actions--single .btn{grid-column:1 / -1}.btn-outline-danger{border-color:var(--critical);color:var(--critical)}.btn-outline-danger:hover{background:var(--critical-bg)}@media (max-width: 480px){.site-grid{grid-template-columns:1fr}}
