@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=dark]{--color-bg: #0d1117;--color-bg-elevated: #161b22;--color-text-primary: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-muted: #94a3b8;--color-text-dim: #64748b;--color-accent-blue: #3b82f6;--color-accent-green: #10b981;--color-accent-amber: #f59e0b;--color-accent-red: #ef4444;--color-accent-purple: #818cf8;--color-accent-cyan: #06b6d4;--color-accent-violet: #a78bfa;--color-border-default: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .12);--color-border-active: rgba(255, 255, 255, .16);--color-surface-hover: rgba(255, 255, 255, .04);--color-surface-active: rgba(255, 255, 255, .06);--glass-blur: saturate(180%) blur(20px);--glass-panel-bg: rgba(13, 17, 23, .78);--glass-panel-border: rgba(255, 255, 255, .08);--glass-panel-shadow: 0 8px 32px rgba(0, 0, 0, .4), inset 0 .5px 0 0 rgba(255, 255, 255, .1);--glass-surface-bg: rgba(13, 17, 23, .68);--glass-surface-border: rgba(255, 255, 255, .08);--glass-surface-shadow: 0 4px 16px rgba(0, 0, 0, .3), inset 0 .5px 0 0 rgba(255, 255, 255, .08);--glass-subtle-bg: rgba(13, 17, 23, .55);--glass-subtle-border: rgba(255, 255, 255, .08);--glass-subtle-shadow: inset 0 .5px 0 0 rgba(255, 255, 255, .06);--scrollbar-thumb: rgba(255, 255, 255, .12);--scrollbar-thumb-hover: rgba(255, 255, 255, .2);color-scheme:dark}:root[data-theme=light]{--color-bg: #f8fafc;--color-bg-elevated: #ffffff;--color-text-primary: #0f172a;--color-text-secondary: #334155;--color-text-muted: #475569;--color-text-dim: #64748b;--color-accent-blue: #2563eb;--color-accent-green: #059669;--color-accent-amber: #d97706;--color-accent-red: #dc2626;--color-accent-purple: #7c3aed;--color-accent-cyan: #0891b2;--color-accent-violet: #8b5cf6;--color-border-default: rgba(15, 23, 42, .08);--color-border-hover: rgba(15, 23, 42, .12);--color-border-active: rgba(15, 23, 42, .16);--color-surface-hover: rgba(15, 23, 42, .04);--color-surface-active: rgba(15, 23, 42, .06);--glass-panel-bg: rgba(255, 255, 255, .82);--glass-panel-border: rgba(15, 23, 42, .08);--glass-panel-shadow: 0 8px 32px rgba(15, 23, 42, .12), inset 0 .5px 0 0 rgba(255, 255, 255, .6);--glass-surface-bg: rgba(255, 255, 255, .72);--glass-surface-border: rgba(15, 23, 42, .06);--glass-surface-shadow: 0 4px 16px rgba(15, 23, 42, .08), inset 0 .5px 0 0 rgba(255, 255, 255, .5);--glass-subtle-bg: rgba(255, 255, 255, .55);--glass-subtle-border: rgba(15, 23, 42, .06);--glass-subtle-shadow: inset 0 .5px 0 0 rgba(255, 255, 255, .4);--scrollbar-thumb: rgba(15, 23, 42, .15);--scrollbar-thumb-hover: rgba(15, 23, 42, .25);color-scheme:light}@media(prefers-color-scheme:light){:root[data-theme=system]{--color-bg: #f8fafc;--color-bg-elevated: #ffffff;--color-text-primary: #0f172a;--color-text-secondary: #334155;--color-text-muted: #475569;--color-text-dim: #64748b;--color-accent-blue: #2563eb;--color-accent-green: #059669;--color-accent-amber: #d97706;--color-accent-red: #dc2626;--color-accent-purple: #7c3aed;--color-accent-cyan: #0891b2;--color-accent-violet: #8b5cf6;--color-border-default: rgba(15, 23, 42, .08);--color-border-hover: rgba(15, 23, 42, .12);--color-border-active: rgba(15, 23, 42, .16);--color-surface-hover: rgba(15, 23, 42, .04);--color-surface-active: rgba(15, 23, 42, .06);--glass-panel-bg: rgba(255, 255, 255, .82);--glass-panel-border: rgba(15, 23, 42, .08);--glass-panel-shadow: 0 8px 32px rgba(15, 23, 42, .12), inset 0 .5px 0 0 rgba(255, 255, 255, .6);--glass-surface-bg: rgba(255, 255, 255, .72);--glass-surface-border: rgba(15, 23, 42, .06);--glass-surface-shadow: 0 4px 16px rgba(15, 23, 42, .08), inset 0 .5px 0 0 rgba(255, 255, 255, .5);--glass-subtle-bg: rgba(255, 255, 255, .55);--glass-subtle-border: rgba(15, 23, 42, .06);--glass-subtle-shadow: inset 0 .5px 0 0 rgba(255, 255, 255, .4);--scrollbar-thumb: rgba(15, 23, 42, .15);--scrollbar-thumb-hover: rgba(15, 23, 42, .25);color-scheme:light}}:root[data-theme=light] .map-overlay,:root[data-theme=system] .map-overlay{--color-text-primary: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-muted: #94a3b8;--color-text-dim: #64748b;--color-border-default: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .12);--color-border-active: rgba(255, 255, 255, .16);--color-surface-hover: rgba(255, 255, 255, .04);--color-surface-active: rgba(255, 255, 255, .06);--glass-panel-bg: rgba(13, 17, 23, .78);--glass-panel-border: rgba(255, 255, 255, .08);--glass-panel-shadow: 0 8px 32px rgba(0, 0, 0, .4), inset 0 .5px 0 0 rgba(255, 255, 255, .1);--glass-surface-bg: rgba(13, 17, 23, .68);--glass-surface-border: rgba(255, 255, 255, .08);--glass-surface-shadow: 0 4px 16px rgba(0, 0, 0, .3), inset 0 .5px 0 0 rgba(255, 255, 255, .08);--glass-subtle-bg: rgba(13, 17, 23, .55);--glass-subtle-border: rgba(255, 255, 255, .08);--glass-subtle-shadow: inset 0 .5px 0 0 rgba(255, 255, 255, .06)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background .2s ease,color .2s ease}::selection{background:var(--color-accent-blue);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px;transition:background .15s ease}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:transparent}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.7}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.98) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes pulse-border{0%,to{border-color:#3b82f633}50%{border-color:#3b82f680}}.row-hover{transition:background .15s ease}.row-hover:hover{background:var(--color-surface-hover)}.row-hover:hover .contract-delete-btn{opacity:1!important}.contract-delete-btn:hover{color:var(--color-accent-red)!important}.skeleton{background:var(--color-surface-active);border-radius:4px;animation:skeleton-pulse 1.5s ease-in-out infinite}.tabnum{font-variant-numeric:tabular-nums}.leaflet-container{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}@media(pointer:coarse){button,[role=button],select{min-height:44px}}
