:root{--primary:#0d9488;--primary-hover:#0f766e;--bg-base:#f8fafc;--bg-panel:#fff;--text-main:#0f172a;--text-muted:#64748b;--border-color:#e2e8f0;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--radius-lg:16px;--radius-md:12px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-main);font-family:Outfit,sans-serif;overflow:hidden}.app-container{width:100vw;height:100vh;display:flex}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border-color);width:400px;min-width:350px;box-shadow:var(--shadow-md);z-index:10;flex-direction:column;display:flex;position:relative}.header{padding:24px 24px 16px}.header h1{color:var(--primary);align-items:center;gap:8px;margin-bottom:4px;font-size:28px;font-weight:700;display:flex}.header p{color:var(--text-muted);font-size:14px}.search-section{flex-direction:column;gap:12px;padding:0 24px 16px;display:flex}.search-box{align-items:center;display:flex;position:relative}.search-icon{width:18px;height:18px;color:var(--text-muted);position:absolute;left:14px}.search-box input{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-base);outline:none;width:100%;padding:14px 16px 14px 40px;font-family:inherit;font-size:15px;transition:all .2s}.search-box input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #0d948826}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:14px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:flex}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.location-icon{width:18px;height:18px}.filter-status{color:var(--text-muted);border-bottom:1px solid var(--border-color);padding:0 24px 12px;font-size:13px;font-weight:500}.mosque-list{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:16px 24px;display:flex;overflow-y:auto}.mosque-list::-webkit-scrollbar{width:6px}.mosque-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.mosque-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-shrink:0;padding:12px;transition:all .2s;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000d}.mosque-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.mosque-card.active{border-color:var(--primary);background-color:#f0fdfa;box-shadow:0 0 0 2px #0d948833}.card-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.card-title{color:var(--text-main);font-size:16px;font-weight:600;line-height:1.3}.card-distance{color:var(--primary);white-space:nowrap;background:#ccfbf1;border-radius:20px;margin-left:12px;padding:4px 8px;font-size:12px;font-weight:600}.card-address{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.badge-muhammadiyah{color:#854d0e;text-transform:uppercase;letter-spacing:.5px;background-color:#fef08a;border-radius:12px;margin-bottom:8px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.logo-muhammadiyah{width:24px;height:24px;margin-bottom:6px;display:block}.category-filters{gap:8px;margin-bottom:4px;display:flex}.btn-filter{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;background:#fff;flex:1;padding:8px 0;font-size:13px;font-weight:600;transition:all .2s}.btn-filter:hover{background:var(--bg-base)}.btn-filter.active{background:var(--primary);color:#fff;border-color:var(--primary)}.card-footer{color:var(--text-muted);border-top:1px dashed var(--border-color);justify-content:space-between;align-items:center;padding-top:12px;font-size:12px;display:flex}.card-region{align-items:center;gap:4px;display:flex}.btn-nav{color:var(--primary);align-items:center;gap:4px;font-weight:600;text-decoration:none;display:flex}.btn-nav:hover{text-decoration:underline}.map-container{z-index:1;flex:1;position:relative}#map{width:100%;height:100%}.loading-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;font-size:14px;display:flex}.spinner{border:3px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;margin-bottom:16px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fab-add{background:var(--primary);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-lg);cursor:pointer;z-index:1000;border:none;border-radius:28px;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute;bottom:24px;right:24px}.fab-add:hover{background:var(--primary-hover);transform:scale(1.05)translateY(-2px)}.fab-add svg{width:24px;height:24px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;opacity:0;pointer-events:none;background:#0f172a66;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-content{border-radius:var(--radius-lg);width:90%;max-width:450px;box-shadow:var(--shadow-lg);background:#fff;padding:24px;transition:transform .3s;transform:translateY(20px)}.modal-overlay.active .modal-content{transform:translateY(0)}.modal-content h2{color:var(--text-main);margin-bottom:8px;font-size:20px}.modal-desc{color:var(--text-muted);margin-bottom:20px;font-size:14px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-main);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group input{border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.form-group input[readonly]{color:var(--text-muted);background:#f1f5f9}.form-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.btn-outline{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;background:#fff;padding:10px 16px;font-family:inherit;font-weight:600}.btn-claim{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:#f8fafc;border-radius:12px;align-items:center;gap:4px;margin-bottom:8px;padding:4px 8px;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.btn-claim:hover{color:#854d0e;background:#fef08a;border-color:#fde047}.map-add-mode{cursor:crosshair!important}@media (width<=768px){.app-container{flex-direction:column-reverse}.sidebar{border-right:none;border-top:1px solid var(--border-color);width:100%;height:50vh}.map-container{height:50vh}}
