/* Darefani Modal Sheet v2 | Bootstrap 4.5 | opt-in: .df-sheet | mobile + tablet <= 991.98px */
.df-sheet .df-sheet-handle{display:none}
.df-sheet .modal-content{display:flex;flex-direction:column;overflow:hidden;border:0;border-radius:17px;max-height:86vh}
.df-sheet .modal-header,.df-sheet .modal-footer{flex-shrink:0}
.df-sheet .modal-body{flex:1 1 auto;min-height:100px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.df-sheet .modal-footer{border-top:1px solid #edf0ed;padding:10px 13px}
.df-sheet .df-sheet-actions{display:flex;align-items:center;gap:9px;width:100%}
.df-sheet .df-sheet-actions .btn{flex:1 1 0;min-width:0;margin:0;border-radius:10px;min-height:40px;font-size:13px}
.df-sheet .modal-footer .btn-success{background:#32976e;border-color:#32976e}
.df-sheet .modal-footer .btn-success:hover{background:#28815d;border-color:#28815d}
.df-sheet .modal-footer .btn-success:disabled{opacity:.55}
.df-sheet .modal-body .list-group{display:flex;flex-direction:column;gap:6px;padding:3px 2px 9px}
.df-sheet .modal-body .list-group-item{flex-shrink:0;min-height:46px;padding:9px 12px;border:1px solid #e4eae6!important;border-radius:11px!important;outline:none;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}
.df-sheet .modal-body .list-group-item:hover{background:#f6faf8}
.df-sheet .modal-body .list-group-item[aria-selected="true"]{background:#eefaf3!important;border-color:#43bc82!important;box-shadow:0 0 0 1px rgba(49,169,107,.15);color:#236d4c}
.df-sheet .modal-body .list-group-item:focus-visible{outline:2px solid #299969;outline-offset:2px}
.df-sheet .df-select-indicator{width:18px;height:18px;border:1.5px solid #cdd6d0;border-radius:50%;background:#fff;flex:0 0 18px;display:inline-flex;align-items:center;justify-content:center;margin-left:0;margin-right:10px;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.df-sheet .df-select-indicator::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .18s ease}
.df-sheet .list-group-item[aria-selected="true"] .df-select-indicator{background:#32976e;border-color:#32976e;box-shadow:0 0 0 3px rgba(50,151,110,.10)}
.df-sheet .list-group-item[aria-selected="true"] .df-select-indicator::after{transform:scale(1)}
.df-sheet .df-sheet-clear-selection{border:0;background:none;color:#288961;cursor:pointer;font-size:12px;padding:2px 4px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.df-sheet .df-sheet-clear-selection:focus-visible{outline:2px solid #32976e;outline-offset:2px}
.df-sheet .df-sheet-search .form-control{height:43px;padding-right:42px;padding-left:42px;border-radius:10px;background:#f7f9f8;border:1px solid #e1e7e3;box-shadow:none;font-size:13px}
.df-sheet .df-sheet-search .form-control:focus{border-color:#32976e;background:#fff}
.df-sheet .df-sheet-search-icon{position:absolute;right:15px;top:14px;color:#78857f;pointer-events:none}
.df-sheet .df-sheet-clear-search{position:absolute;left:9px;top:7px;width:28px;height:28px;border:0;background:transparent;color:#78857f;cursor:pointer}
.df-sheet .df-sheet-scope{font-size:12px;line-height:1.6;color:#578069;background:#f2faf5;border-radius:9px;padding:6px 9px;display:flex;align-items:center;gap:5px;min-width:0}
.df-sheet .df-sheet-scope .df-sheet-scope-text{min-width:0;flex:1}
.df-sheet .modal-body{padding:5px 12px 8px}
/* City: retain existing native radio controls and current city-selection JS */
#globalCityModal .modal-dialog{max-width:520px}
#globalCityModal .modal-header{padding:16px 14px 10px}
#globalCityModal .global-city-search-box .form-control{height:43px;border-radius:10px;background:#f7f9f8;border:1px solid #e1e7e3;padding-right:42px;padding-left:42px;box-shadow:none;font-size:13px}
#globalCityModal .global-city-search-box .form-control:focus{border-color:#32976e;background:#fff}
#globalCityModal .global-city-search-icon{position:absolute;right:15px;top:14px;color:#78857f;pointer-events:none}
#globalCityModal .global-city-clear{position:absolute;left:10px;top:8px;width:28px;height:28px;background:transparent;border:0;color:#777;cursor:pointer}
#globalCityModal .global-city-item{display:block;cursor:pointer;text-align:right}
#globalCityModal .global-city-item .custom-control{display:flex;align-items:center;min-height:27px;margin:0;padding:0 0 0 31px}
#globalCityModal .global-city-item .custom-control-label{display:block;flex:1;min-width:0;position:relative;cursor:pointer;text-align:right;font-size:13px;font-weight:600;line-height:1.6;white-space:normal}
#globalCityModal .global-city-item .custom-control-label::before,#globalCityModal .global-city-item .custom-control-label::after{right:auto!important;left:-27px!important;top:50%!important;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
#globalCityModal .global-city-item .custom-control-label::before{background:#fff;border:1.5px solid #ccd5d0}
#globalCityModal .global-city-item .custom-control-input{left:0;right:auto;top:50%;width:21px;height:21px;margin-top:-10px;z-index:1}
#globalCityModal .global-city-item .custom-control-input:checked~.custom-control-label::before{background-color:#32976e;border-color:#32976e}
#globalCityModal .global-city-item .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 3px rgba(50,151,110,.15)}
#globalCityModal .global-city-item .custom-control-input:checked~.custom-control-label::after{background-size:11px}
/* Village */
#globalVillageModal .modal-dialog{max-width:540px}
#globalVillageModal .modal-header{padding:16px 14px 10px}
#globalVillageModal .global-village-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:right;background:#fff;color:#26342c;cursor:pointer;font-size:13px;line-height:1.6}
#globalVillageModal .global-village-item .global-village-name{flex:1;min-width:0}
/* Place: ceremony and burial modes */
#globalPlaceModal .modal-dialog{max-width:720px}
#globalPlaceModal .modal-header{padding:16px 14px 10px;border-bottom:1px solid #f1f3f1}
#globalPlaceModal .global-place-category-section{border-bottom:1px solid #f0f0f0;padding-bottom:7px;margin-bottom:9px!important}
#globalPlaceModal .global-place-filters{display:flex;align-items:center;gap:6px;overflow-x:auto;white-space:nowrap;padding:2px 2px 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
#globalPlaceModal .global-place-type-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid #dce5df;border-radius:18px;background:#fff;color:#58645e;font-size:12px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
#globalPlaceModal .global-place-type-btn:hover{background:#f0f8f3;border-color:#99cfad}
#globalPlaceModal .global-place-type-btn.is-active{background:#278755;border-color:#278755;color:#fff;font-weight:600}
#globalPlaceModal .global-place-type-btn:focus-visible{outline:2px solid #278755;outline-offset:2px}
#globalPlaceModal .global-place-type-count{font-size:11px;opacity:.8}
#globalPlaceModal .global-place-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:7px;text-align:right;background:#fff;cursor:pointer}
#globalPlaceModal .global-place-content{flex:1;min-width:0}
#globalPlaceModal .global-place-name{display:block;font-size:13px;font-weight:600;line-height:1.6}
#globalPlaceModal .global-place-meta{display:block;font-size:11px;color:#828c86;line-height:1.65;margin-top:2px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:991.98px){
    .df-sheet.modal{padding:0!important;overflow:hidden!important}
    .df-sheet .modal-dialog,.df-sheet .modal-dialog-bottom{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;display:block!important;align-items:normal!important;margin:0!important;pointer-events:none;transform:translate3d(0,var(--df-sheet-y,0px),0)!important;transition:transform .28s cubic-bezier(.22,1,.36,1)!important}
    .df-sheet .modal-dialog-centered::before{content:none!important;display:none!important}
    .df-sheet.fade:not(.show) .modal-dialog{transform:translate3d(0,100%,0)!important}
    .df-sheet .modal-content{pointer-events:auto;height:var(--df-sheet-height,76vh);max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px);border-radius:20px 20px 0 0!important;box-shadow:0 -8px 35px rgba(0,0,0,.10);transition:height .28s cubic-bezier(.22,1,.36,1)!important}
    .df-sheet.df-sheet-dragging .modal-dialog,.df-sheet.df-sheet-dragging .modal-content{transition:none!important}
    .df-sheet .df-sheet-handle{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:29px;margin:0;border:0;background:transparent;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
    .df-sheet .df-sheet-handle::after{content:"";display:block;width:42px;height:5px;border-radius:10px;background:#c8ceca;transition:background-color .2s}
    .df-sheet .df-sheet-handle:active{cursor:grabbing}
    .df-sheet .df-sheet-handle:focus-visible{outline:2px solid #32976e;outline-offset:-5px}
    .df-sheet .df-sheet-handle:focus-visible::after{background:#32976e}
    .df-sheet .modal-header{flex-shrink:0}
    .df-sheet .modal-body{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain}
    .df-sheet .modal-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
    .df-sheet .modal-body .list-group{gap:6px}
    .df-sheet .modal-body .list-group-item{min-height:43px;padding:8px 10px}
    #globalCityModal .modal-header,#globalVillageModal .modal-header,#globalPlaceModal .modal-header{padding:0 13px 9px}
}
@media(max-width:575.98px){
    .df-sheet .modal-body{padding:5px 10px 7px}
    .df-sheet .modal-body .list-group{gap:5px}
    .df-sheet .df-sheet-actions .btn{min-height:38px}
    .df-sheet .modal-footer{padding:9px 11px calc(10px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){
    .df-sheet .modal-dialog,.df-sheet .modal-content,.df-sheet .modal-body .list-group-item,.df-sheet .df-select-indicator,.df-sheet .df-select-indicator::after,.df-sheet .global-city-item .custom-control-label::before,.df-sheet .global-city-item .custom-control-label::after{transition:none!important}
}
/* Keep the existing city modal's two footer buttons equal-width. */
#globalCityModal .modal-footer{gap:9px}
#globalCityModal .modal-footer>.btn{flex:1 1 0;min-width:0;margin:0}
