@font-face { font-family: 'Utheem'; src: url('fonts/utheem.woff') format('woff'), url('fonts/utheem.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Shangu'; src: url('fonts/shangu.woff') format('woff'), url('fonts/shangu.ttf') format('truetype'); font-weight: normal; font-style: normal; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background-color: #f5f5f5; color: #333; line-height: 1.6; padding: 20px; } .container { max-width: 900px; margin: 0 auto; background-color: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); padding: 40px; } .lang-switcher { display: flex; gap: 10px; justify-content: flex-end; margin-bottom: 20px; } .lang-btn { padding: 8px 20px; border: 2px solid #007bff; background-color: white; color: #007bff; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: 500; transition: all 0.3s ease; } .lang-btn:hover { background-color: #f0f8ff; } .lang-btn.active { background-color: #007bff; color: white; } .lang-btn:focus { outline: none; box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25); } .loading { text-align: center; font-size: 18px; color: #666; padding: 40px; } .error { background-color: #fee; border: 1px solid #fcc; color: #c33; padding: 20px; border-radius: 4px; margin-bottom: 20px; } .petition-header { border-bottom: 2px solid #007bff; padding-bottom: 20px; margin-bottom: 30px; } .petition-header h1 { font-size: 32px; color: #222; margin-bottom: 10px; } .petition-header h2 { font-size: 24px; color: #555; margin-bottom: 15px; } .petition-header h2.dhivehi { font-family: 'Shangu', 'Faruma', 'MV Faseyha', 'Waheed', 'Noto Sans Thaana', sans-serif; } .dhivehi { font-family: 'Utheem', 'Faruma', 'MV Faseyha', 'Waheed', 'Noto Sans Thaana', sans-serif; direction: rtl; text-align: right; } .metadata { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 15px; font-size: 14px; color: #666; } .metadata span { background-color: #f0f0f0; padding: 6px 12px; border-radius: 4px; } .metadata span span { background-color: transparent; padding: 0; font-weight: bold; color: #333; } .author-details { background-color: #f9f9f9; padding: 20px; border-radius: 6px; margin-bottom: 30px; } .author-details h3 { font-size: 18px; color: #007bff; margin-bottom: 12px; } .author-details p { margin-bottom: 8px; } .petition-body { margin-top: 30px; } .petition-body h3 { font-size: 20px; color: #007bff; margin-top: 30px; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid #e0e0e0; } .body-content { padding: 15px; background-color: #fafafa; border-radius: 4px; line-height: 1.8; white-space: pre-wrap; } .body-content strong { color: #222; } .signature-count { font-weight: bold; } .signature-count span { color: #007bff !important; } .signature-section { margin-top: 40px; padding-top: 30px; border-top: 2px solid #e0e0e0; } .signature-section h3 { font-size: 24px; color: #007bff; margin-bottom: 25px; } .form-group { margin-bottom: 20px; } .form-group label { display: block; font-weight: 600; margin-bottom: 8px; color: #333; } .form-group input[type="text"] { width: 100%; padding: 12px; border: 2px solid #ddd; border-radius: 6px; font-size: 16px; transition: border-color 0.3s ease; } .form-group input[type="text"]:focus { outline: none; border-color: #007bff; } /* ID card input: prefix + numeric field */ .idcard-input { display: flex; align-items: center; gap: 0; max-width: 260px; border: 1px solid #ddd; border-radius: 6px; overflow: hidden; background: #fff; transition: box-shadow 0.15s ease, border-color 0.15s ease; } .idcard-prefix { padding: 10px 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; color: #333; background: transparent; border: none; /* prefix no longer has its own border */ cursor: text; } .idcard-input input[type="tel"] { padding: 10px; width: 120px; font-size: 16px; text-align: left; border: none; /* input no longer has its own border */ outline: none; background: transparent; } /* RTL adjustments: reverse order but keep the wrapper border intact */ :dir(rtl) .idcard-input { flex-direction: row-reverse; } :dir(rtl) .idcard-input input[type="tel"] { text-align: left; /* keep digits LTR within RTL page */ } /* Highlight wrapper on focus */ .idcard-input:focus-within { border-color: #007bff; box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.08); } .signature-pad-container { border: 2px solid #ddd; border-radius: 6px; background-color: white; display: block; cursor: crosshair; margin-bottom: 10px; } #signature-pad { display: block; touch-action: none; width: 100%; max-width: 100%; height: auto; aspect-ratio: 3; } .signature-actions { margin-bottom: 15px; } .form-buttons { display: flex; gap: 12px; align-items: center; } .btn-primary, .btn-secondary { padding: 12px 24px; border: none; border-radius: 6px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; } .btn-primary { background-color: #007bff; color: white; } .btn-primary:hover { background-color: #0056b3; } .btn-secondary { background-color: #6c757d; color: white; } .btn-secondary:hover { background-color: #545b62; } .form-message { padding: 12px; border-radius: 6px; margin-bottom: 15px; display: none; } .form-message.success { background-color: #d4edda; border: 1px solid #c3e6cb; color: #155724; } .form-message.error { background-color: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; } @media (max-width: 768px) { .container { padding: 20px; } .petition-header h1 { font-size: 24px; } .petition-header h2 { font-size: 18px; } .metadata { flex-direction: column; gap: 10px; } .form-buttons { flex-direction: column; width: 100%; } .form-buttons button { width: 100%; } } /* Tweet Modal Styles */ .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); animation: fadeIn 0.3s ease; } .modal.show { display: flex; justify-content: center; align-items: center; } .modal-content { background-color: white; padding: 40px; border-radius: 12px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); max-width: 500px; width: 90%; position: relative; animation: slideIn 0.3s ease; } .close-modal { position: absolute; top: 15px; right: 20px; font-size: 28px; font-weight: bold; color: #999; cursor: pointer; transition: color 0.3s ease; } .close-modal:hover { color: #333; } .modal-content h2 { font-size: 24px; color: #222; margin-bottom: 15px; } .modal-content p { font-size: 16px; color: #666; margin-bottom: 25px; line-height: 1.6; } .modal-buttons { display: flex; flex-direction: column; gap: 12px; align-items: center; width: 100%; } .modal-buttons button { width: 100%; max-width: 300px; justify-content: center; } .modal-buttons .btn-primary { background-color: #1DA1F2; display: flex; align-items: center; gap: 8px; } .modal-buttons .btn-primary:hover { background-color: #1a91da; } .modal-buttons .btn-primary i { font-size: 18px; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideIn { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @media (max-width: 768px) { .modal-content { padding: 30px 20px; max-width: 90%; } .modal-content h2 { font-size: 20px; } }