:root{--color-primary: #2D5A27;--color-secondary: #8B4513;--color-accent: #FFD700;--color-danger: #DC143C;--color-safe: #4169E1;--color-bg: #1A1A2E;--color-bg-light: #252542;--color-text: #F5F5DC;--color-text-dim: #A0A0A0;--color-disabled: #696969;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-full: 9999px;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.25rem;--font-xl: 1.5rem;--font-2xl: 2rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5)}body{color:var(--color-text);background-color:var(--color-bg)}h1,h2,h3,h4,h5,h6{font-family:Cinzel,serif;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:var(--font-md);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background-color:var(--color-primary);color:var(--color-text)}.btn-primary:hover{background-color:#3d7a37}.btn-secondary{background-color:var(--color-secondary);color:var(--color-text)}.btn-accent{background-color:var(--color-accent);color:var(--color-bg)}.btn-danger{background-color:var(--color-danger);color:var(--color-text)}.btn:disabled{background-color:var(--color-disabled);cursor:not-allowed}.panel{background-color:var(--color-bg-light);border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-md)}.progress-bar{height:8px;background-color:var(--color-bg);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background-color:var(--color-primary);transition:width .3s ease}.progress-bar-fill.health{background-color:#4caf50}.progress-bar-fill.stamina{background-color:#2196f3}.progress-bar-fill.xp{background-color:var(--color-accent)}.leaflet-container{background-color:var(--color-bg)!important}.leaflet-control-zoom{border:none!important}.leaflet-control-zoom a{background-color:var(--color-bg-light)!important;color:var(--color-text)!important;border:none!important}.leaflet-control-zoom a:hover{background-color:var(--color-primary)!important}.interaction-circle{stroke:var(--color-accent);stroke-width:2;stroke-dasharray:10,5;fill:#ffd7001a;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.resource-marker{width:32px;height:32px;background-color:var(--color-bg-light);border:2px solid var(--color-text);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:transform .2s ease}.resource-marker:hover{transform:scale(1.2)}.resource-marker.depleted{opacity:.4;cursor:not-allowed}.notification{position:fixed;top:var(--spacing-md);right:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);background-color:var(--color-bg-light);box-shadow:var(--shadow-lg);animation:slideIn .3s ease;z-index:1000}.notification.success{border-left:4px solid #4CAF50}.notification.error{border-left:4px solid var(--color-danger)}.notification.info{border-left:4px solid var(--color-safe)}.notification.warning{border-left:4px solid var(--color-accent)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.spinner{width:40px;height:40px;border:4px solid var(--color-bg-light);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hud{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:500}.hud>*{pointer-events:auto}button,a,input,select{touch-action:manipulation}.hud{-webkit-user-select:none;user-select:none}@supports (padding-bottom: env(safe-area-inset-bottom)){.hud{padding-bottom:env(safe-area-inset-bottom)}}@media (max-width: 640px){.btn{min-height:44px;padding:10px var(--spacing-md)}.resource-marker:hover{transform:none}.notification{position:static;width:100%;margin-bottom:var(--spacing-sm);animation:none}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:20px!important}.panel-scroll{max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch}}.leaflet-container{-ms-touch-action:none;touch-action:none}
