.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.45);display:none;align-items:center;justify-content:center;padding:12px;z-index:9999;overflow:hidden;}#calibrateBackdrop{z-index:100000;}.modal{width:min(980px,98vw);height:calc(100vh - 24px);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 12px 50px rgba(0,0,0,0.35);border:1px solid rgba(0,0,0,0.12);display:flex;flex-direction:column;margin:auto;}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#f3f6fb;border-bottom:1px solid rgba(0,0,0,0.08);flex-shrink:0;}.modal-header .title{font-weight:900;color:#2c3e50;}.modal-header .close{border:1px solid rgba(0,0,0,0.15);background:#fff;padding:8px 10px;border-radius:10px;cursor:pointer;font-weight:900;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:1.2em;}@media (max-width:768px){.modal-header .close{min-width:54px;min-height:54px;font-size:1.5em;padding:12px;}}.modal-body{padding:12px 14px;overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch;}.settings-tabs-container{flex-shrink:0;background:white;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}.settings-tabs-container::-webkit-scrollbar{display:none;}#map{width:100%;height:300px;border-radius:12px;border:1px solid rgba(0,0,0,0.1);overflow:hidden;}.map-modal-body #map{height:auto !important;flex:1 1 auto;min-height:150px;}@media (max-width:768px){#map{height:200px;}.map-modal-body #map{height:auto !important;min-height:120px;}}.leaflet-control-layers{border-radius:10px !important;border:1px solid rgba(0,0,0,0.15) !important;box-shadow:0 2px 8px rgba(0,0,0,0.15) !important;}.leaflet-control-layers-toggle{background-size:20px 20px !important;width:40px !important;height:40px !important;}.leaflet-control-layers-expanded{padding:10px 12px !important;background:white !important;}.leaflet-control-layers-base label{font-weight:700 !important;color:#2c3e50 !important;font-size:0.95em !important;padding:6px 0 !important;display:flex !important;align-items:center !important;gap:8px !important;cursor:pointer !important;}.leaflet-control-layers-base label:hover{background:#f8f9fa !important;border-radius:6px !important;padding-left:4px !important;padding-right:4px !important;}.leaflet-control-layers input[type="radio"]{width:18px !important;height:18px !important;cursor:pointer !important;}.pick-row{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;}.coords{font-weight:900;color:#2c3e50;font-size:0.95em;}.hint{color:#6c7a89;font-weight:800;font-size:0.85em;}.input{border:1px solid rgba(0,0,0,0.15);border-radius:12px;padding:10px 12px;font-weight:900;color:#2c3e50;min-width:220px;outline:none;}.select{border:1px solid rgba(0,0,0,0.15);border-radius:12px;padding:10px 12px;font-weight:900;color:#2c3e50;min-width:200px;outline:none;background:#fff;}.name-save-line{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}.search-box{margin-bottom:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}.search-input{flex:1;min-width:200px;border:1px solid rgba(0,0,0,0.15);border-radius:12px;padding:10px 12px;font-weight:900;color:#2c3e50;outline:none;width:100%;}.search-suggestions{position:absolute;top:100%;left:0;right:0;background:white;border:1px solid rgba(0,0,0,0.15);border-radius:12px;margin-top:4px;max-height:300px;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:1000;display:none;}.search-suggestions.active{display:block;}.search-suggestion-item{padding:12px 14px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,0.06);transition:background 0.15s;}.search-suggestion-item:last-child{border-bottom:none;}.search-suggestion-item:hover{background:#e8f2ff;}.search-suggestion-name{font-weight:900;color:#2c3e50;font-size:0.95em;margin-bottom:2px;}.search-suggestion-detail{font-weight:700;color:#6c7a89;font-size:0.8em;}.search-btn{border:1px solid rgba(0,0,0,0.15);background:#e8f2ff;color:#2c3e50;padding:10px 16px;border-radius:12px;cursor:pointer;font-weight:900;white-space:nowrap;}.search-btn:disabled{opacity:0.6;cursor:not-allowed;}.search-btn:hover:not(:disabled){background:#d0e7ff;}@media (max-width:600px){.search-box{flex-direction:column;align-items:stretch;}.search-box > div{width:100%;}.search-input{width:100%;}.search-btn{width:100%;justify-content:center;}.modal-backdrop{padding:0;align-items:flex-start;}.modal{width:100vw;height:100vh;border-radius:0;margin:0;}.modal-body{}.settings-tab{font-size:0.9em;padding:8px 12px;}}.settings-tab{padding:10px 20px;border:none;background:transparent;color:#6c7a89;font-weight:700;cursor:pointer;border-bottom:3px solid transparent;transition:all 0.2s;}.settings-tab:hover{color:#2c3e50;background:#f8f9fa;}.settings-tab.active{color:#3498db;border-bottom-color:#3498db;}.settings-content{display:none;}.settings-content.active{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-top:4px;-webkit-overflow-scrolling:touch;}.google-signin-btn{display:inline-flex;align-items:center;justify-content:center;background:white;color:#3c4043;border:1px solid #dadce0;border-radius:12px;padding:12px 24px;font-size:1em;font-weight:700;cursor:pointer;transition:all 0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.1);}.google-signin-btn:hover{background:#f8f9fa;box-shadow:0 2px 6px rgba(0,0,0,0.15);border-color:#c6c6c6;}.google-signin-btn:active{background:#e8eaed;box-shadow:0 1px 2px rgba(0,0,0,0.1);}.myday-rule-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;background:#f8f9fa;border-radius:10px;border:1px solid #e8e8e8;}.myday-rule-label{font-weight:700;color:#2c3e50;font-size:0.95em;min-width:120px;}.myday-rule-inputs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}.myday-op{padding:6px 10px;border:1px solid #dee2e6;border-radius:8px;font-size:0.9em;font-weight:600;background:white;cursor:pointer;}.myday-val{width:68px;padding:6px 10px;border:1px solid #dee2e6;border-radius:8px;font-size:0.9em;font-weight:600;text-align:center;}.myday-sep{font-size:0.85em;color:#6c7a89;font-weight:600;}.myday-unit{font-size:0.85em;color:#6c7a89;font-weight:700;}.map-modal{display:flex;flex-direction:column;}.map-modal-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:8px 10px;gap:6px;overflow:hidden;}.map-modal-body #map{flex:1 1 auto;min-height:120px;height:auto;border-radius:10px;border:1px solid rgba(0,0,0,0.1);}.map-search-row{display:flex;gap:6px;align-items:center;position:relative;}.map-search-wrap{flex:1;min-width:0;position:relative;}.map-latlon-row{display:flex;gap:6px;align-items:center;border-top:1px solid #eee;padding-top:4px;}.map-input{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d0d7de;border-radius:9px;font-size:0.9em;font-weight:600;color:#2c3e50;outline:none;background:#fff;min-width:0;}.map-input:focus{border-color:#3498db;box-shadow:0 0 0 2px rgba(52,152,219,0.15);}.map-btn{flex-shrink:0;padding:9px 12px;border:1px solid #d0d7de;border-radius:9px;background:#eaf3ff;color:#2c3e50;font-size:0.9em;font-weight:700;cursor:pointer;white-space:nowrap;min-height:40px;display:flex;align-items:center;}.map-btn:active{background:#d0e7ff;}.map-btn-green{background:#e8fff0;border-color:#27ae60;}.map-btn-close{background:#f8f9fa;}.map-select{flex:1 1 100px;min-width:0;padding:9px 8px;border:1px solid #d0d7de;border-radius:9px;font-size:0.88em;font-weight:600;color:#2c3e50;outline:none;background:#fff;}.map-save-btn{flex-shrink:0;padding:9px 14px;background:#27ae60;color:white;border:none;border-radius:9px;font-weight:700;font-size:0.9em;cursor:pointer;white-space:nowrap;min-height:40px;}.map-save-btn:disabled{opacity:0.45;cursor:not-allowed;}.map-save-btn:not(:disabled):active{background:#1e8449;}.map-coords{font-size:0.78em;color:#7f8c8d;font-weight:600;padding:2px 0;}.map-save-area{display:flex;flex-direction:column;gap:5px;border-top:1px solid #eee;padding-top:6px;flex-shrink:0;}.map-save-row{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}@media (max-width:400px){.map-save-row{flex-wrap:wrap;}.map-save-row .map-input,.map-save-row .map-select{flex:1 1 calc(50% - 5px);min-width:0;}}