/* General Form Styles */
.gatherer-form { max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 5px; }
.gatherer-form p { margin-bottom: 15px; }
.gatherer-form label { font-weight: bold; }
.gatherer-form input[type="text"], .gatherer-form textarea, .gatherer-form select { width: 100%; padding: 8px; box-sizing: border-box; }
.gatherer-form button, .gatherer-form input[type="submit"] { padding: 10px 15px; background-color: #0073aa; color: #fff; border: none; border-radius: 3px; cursor: pointer; }
.gatherer-form button:hover, .gatherer-form input[type="submit"]:hover { background-color: #005177; }

/* NEW: Fieldset styles */
.gatherer-fieldset { border: 1px solid #ccc; padding: 20px; margin-bottom: 20px; border-radius: 4px; }
.gatherer-fieldset legend { font-weight: bold; font-size: 1.2em; padding: 0 10px; margin-left: 10px; }

/* --- MAP --- */
#gatherer_map_canvas, #gatherer_admin_map {
    width: 100%;
    height: 80vh;
    min-height: 500px;
    background-color: #eee;
}

/* --- ADMIN ZONE EDITOR MODAL --- */
.gatherer-admin-modal {
    position: absolute;
    top: 50px;
    right: 50px;
    width: 300px;
    background: white;
    padding: 20px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    border-radius: 8px;
    z-index: 9999;
}
.gatherer-admin-modal h3 { margin-top: 0; }
.gatherer-admin-modal label { display: block; margin-top: 10px; font-weight: 600; }
.gatherer-zone-label {
    background: transparent;
    border: none;
    box-shadow: none;
    color: #fff;
    font-weight: bold;
    text-shadow: 0 1px 3px rgba(0,0,0,0.8);
    white-space: nowrap;
}

/* Default Map View Styles */
.gatherer-map-container { position: relative; width: 100%; }
.gatherer-map-wrapper { margin-bottom: 20px; }
.gatherer-map-controls { padding: 10px 15px; background-color: #f7f7f7; border: 1px solid #ddd; border-bottom: none; display: flex; flex-wrap: wrap; gap: 15px; align-items: center; }
.gatherer-map-controls label { font-weight: bold; margin-right: 5px; }

/* --- FULLSCREEN MODE --- */
.gatherer-map-container.fullscreen-mode {
    position: fixed; top: 0; left: 0; width: 100% !important; height: 100vh !important; z-index: 99999; background: #fff; padding: 0; margin: 0;
}
.gatherer-map-container.fullscreen-mode #gatherer_map_canvas { height: 100% !important; width: 100% !important; border: none; }
body.gatherer-no-scroll { overflow: hidden; }

/* --- LEAFLET CUSTOM CONTROLS --- */
.leaflet-control-custom {
    background-color: #fff;
    width: 34px;
    height: 34px;
    line-height: 34px;
    text-align: center;
    cursor: pointer;
    border-radius: 4px;
    box-shadow: 0 1px 5px rgba(0,0,0,0.65);
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Touch-friendly size (Matches Leaflet Layers Toggle) */
.leaflet-touch .leaflet-control-custom {
    width: 44px;
    height: 44px;
    line-height: 44px;
    border: 2px solid rgba(0,0,0,0.2);
    background-clip: padding-box;
}

.leaflet-control-custom:hover {
    background-color: #f4f4f4;
}

/* Icon centering */
.leaflet-control-custom span.dashicons {
    line-height: 1; 
    font-size: 20px;
    display: block;
    margin: 0 auto;
}

/* --- DIRECTION ARROW --- */
.gatherer-direction-arrow {
    background: transparent;
    border: none;
    box-shadow: none;
}

/* --- MARKERS --- */
.gatherer-custom-marker {
    width: 100%; height: 100%;
    background-size: cover; background-position: center;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}
.marker-type-tree { border-color: #795548; }
.marker-type-plant { border-color: #8BC34A; }

.gatherer-cluster-parent .gatherer-cluster-icon {
    width: 100%; height: 100%;
    background: #4CAF50; color: white;
    border-radius: 50%; text-align: center;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid white; font-weight: bold;
}
.gatherer-cluster-parent .gatherer-cluster-icon span {
    background-color: rgba(0, 0, 0, 0.6); border-radius: 50%;
    display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
}
