* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Tajawal', sans-serif; } body { background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab); background-size: 400% 400%; animation: gradientBG 15s ease infinite; min-height: 100vh; display: flex; justify-content: center; align-items: flex-start; color: #333; overflow-x: hidden; position: relative; padding: 20px; } @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .container { width: 100%; max-width: 600px; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(12px); border-radius: 25px; border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25); overflow: hidden; position: relative; z-index: 10; margin-top: 80px; margin-bottom: 40px; animation: fadeInDown 0.8s ease-out forwards; } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } } .header { background: rgba(255, 255, 255, 0.1); padding: 30px 20px; text-align: center; color: white; position: relative; } .header h1 { font-size: 2.4rem; font-weight: 700; margin-bottom: 8px; text-shadow: 0 3px 6px rgba(0,0,0,0.3); } .header h2 { font-size: 1.5rem; font-weight: 400; opacity: 0.9; text-shadow: 0 2px 4px rgba(0,0,0,0.2); } .content { padding: 25px 30px; color: #333; } .search-bar { position: relative; margin-bottom: 25px; } .search-bar input { width: 100%; padding: 15px 50px 15px 20px; border: 2px solid #ddd; background: rgba(255, 255, 255, 0.8); border-radius: 12px; font-size: 1.1rem; transition: all 0.3s; } .search-bar input:focus { border-color: #2196f3; box-shadow: 0 0 10px rgba(33, 150, 243, 0.4); background: white; outline: none; } .search-bar .fa-search { position: absolute; top: 50%; right: 20px; transform: translateY(-50%); color: #777; font-size: 1.2rem; } .pos-list { display: grid; gap: 20px; } .pos-card { background: rgba(255, 255, 255, 0.3); border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 15px; padding: 20px; transition: all 0.3s ease; position: relative; } .pos-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0,0,0,0.1); } .pos-card-header { display: flex; align-items: center; margin-bottom: 15px; } .pos-card-header i { font-size: 1.8rem; color: #1976d2; margin-left: 15px; } .pos-card-header h3 { font-size: 1.4rem; color: #0d47a1; margin: 0; } .pos-info-line { display: flex; align-items: center; color: #444; margin-bottom: 10px; font-size: 1rem; } .pos-info-line i { width: 20px; text-align: center; margin-left: 10px; color: #555; } .pos-info-line a { color: #444; text-decoration: none; transition: color 0.3s; } .pos-info-line a:hover { color: #1976d2; } .status-badge { position: absolute; top: 15px; left: 15px; padding: 5px 12px; border-radius: 20px; font-size: 0.85rem; font-weight: 600; color: white; } .status-badge.open { background: #4caf50; } .status-badge.closed { background: #f44336; } .map-button { display: inline-block; margin-top: 15px; padding: 10px 20px; background: linear-gradient(to left, #0d47a1, #1976d2); color: white; border-radius: 8px; text-decoration: none; font-weight: 500; transition: all 0.3s; } .map-button:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(13, 71, 161, 0.4); } .theme-switcher { position: absolute; top: 15px; left: 50%; transform: translateX(-50%); z-index: 20; } .theme-btn { background: rgba(255, 255, 255, 0.2); border: 1px solid rgba(255, 255, 255, 0.3); color: white; padding: 10px 20px; border-radius: 30px; cursor: pointer; font-size: 1rem; backdrop-filter: blur(5px); transition: all 0.3s; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .theme-btn:hover { background: rgba(255, 255, 255, 0.4); transform: translateY(-2px); } .notification { position: fixed; top: 20px; right: 20px; background: #4caf50; color: white; padding: 15px 25px; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.2); transform: translateX(200%); transition: transform 0.5s ease; z-index: 1000; } .notification.show { transform: translateX(0); } .theme-panel { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.8); background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(15px); border-radius: 20px; padding: 30px; box-shadow: 0 20px 40px rgba(0,0,0,0.3); width: 90%; max-width: 550px; z-index: 200; opacity: 0; visibility: hidden; transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); border: 1px solid rgba(255, 255, 255, 0.3); } .theme-panel.active { opacity: 1; visibility: visible; transform: translate(-50%, -50%) scale(1); } .theme-panel h3 { text-align: center; margin-bottom: 25px; color: white; font-size: 2rem; padding-bottom: 15px; border-bottom: 2px solid rgba(255, 255, 255, 0.2); text-shadow: 0 2px 4px rgba(0,0,0,0.2); } .theme-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 20px; } .theme-option { height: 120px; border-radius: 15px; display: flex; flex-direction: column; justify-content: center; align-items: center; color: white; cursor: pointer; transition: all 0.3s; position: relative; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.2); } .theme-option:hover { transform: translateY(-8px) scale(1.05); box-shadow: 0 12px 25px rgba(0,0,0,0.3); } .theme-option i { font-size: 2.2rem; margin-bottom: 12px; text-shadow: 0 2px 5px rgba(0,0,0,0.3); } .theme-option span { font-weight: bold; font-size: 1.1rem; text-shadow: 0 1px 3px rgba(0,0,0,0.4); } .theme-sunset { background: linear-gradient(135deg, #ff7e5f, #feb47b); } .theme-forest { background: linear-gradient(135deg, #0bab64, #3bb78f); } .theme-royal { background: linear-gradient(135deg, #4776E6, #8E54E9); } .theme-midnight { background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); } .theme-light { background: linear-gradient(135deg, #3498db, #2ecc71); } .theme-dark { background: linear-gradient(135deg, #2c3e50, #1a1a2e); } .theme-ocean { background: linear-gradient(135deg, #1a2a6c, #009fff); } .theme-twilight { background: linear-gradient(135deg, #8e2de2, #4a00e0); } .close-panel { position: absolute; top: 15px; left: 15px; background: rgba(231, 76, 60, 0.8); color: white; width: 35px; height: 35px; border-radius: 50%; display: flex; justify-content: center; align-items: center; cursor: pointer; transition: all 0.3s; border: 1px solid rgba(255,255,255,0.3); } .close-panel:hover { transform: rotate(90deg); background: #c0392b; } .overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(5px); z-index: 150; opacity: 0; visibility: hidden; transition: all 0.3s; } .overlay.active { opacity: 1; visibility: visible; } body.sunset-theme { background: linear-gradient(-45deg, #ff7e5f, #feb47b, #ffc3a0, #ff7e5f); background-size: 400% 400%; animation: gradientBG 15s ease infinite; } body.forest-theme { background: linear-gradient(-45deg, #138808, #228B22, #0bab64, #3bb78f); background-size: 400% 400%; animation: gradientBG 15s ease infinite; } body.royal-theme { background: linear-gradient(-45deg, #4776E6, #8E54E9, #6a11cb, #2575fc); background-size: 400% 400%; animation: gradientBG 15s ease infinite; } body.midnight-theme { background: linear-gradient(-45deg, #0f0c29, #302b63, #24243e, #0f0c29); background-size: 400% 400%; animation: gradientBG 15s ease infinite; } body.light-theme, body.ocean-theme, body.twilight-theme { background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab); background-size: 400% 400%; animation: gradientBG 15s ease infinite; } body.dark-theme .container, body.midnight-theme .container { background: rgba(40, 40, 60, 0.3); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.15); color: #f0f0f0; } body.dark-theme .pos-card-header h3, body.midnight-theme .pos-card-header h3 { color: #90caf9; } body.dark-theme .pos-info-line, body.dark-theme .pos-info-line a, body.dark-theme .pos-info-line i, body.midnight-theme .pos-info-line, body.midnight-theme .pos-info-line a, body.midnight-theme .pos-info-line i { color: #e0e0e0; } @media (max-width: 480px) { .container { margin-top: 100px; } .content { padding: 20px 15px; } } /* Loading spinner */ .spinner { display: inline-block; width: 50px; height: 50px; border: 5px solid rgba(255,255,255,0.3); border-radius: 50%; border-top-color: #1976d2; animation: spin 1s ease-in-out infinite; margin: 30px auto; display: block; } @keyframes spin { to { transform: rotate(360deg); } } .data-loading { text-align: center; padding: 30px; color: #0d47a1; font-size: 1.2rem; } .no-data { grid-column: 1 / -1; text-align: center; padding: 30px; } .no-data i { font-size: 3rem; color: #f44336; margin-bottom: 15px; } .no-data h3 { color: #f44336; margin-bottom: 10px; }