body { font-family: sans-serif; background: #f4f6f9; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; padding: 15px; box-sizing: border-box; }
#app-container { background: #fff; width: 100%; max-width: 420px; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
h2 { margin-top: 0; }
h3 { margin-top: 25px; margin-bottom: 8px; border-top: 1px solid #eee; padding-top: 15px; }
input, select, button, textarea { width: 100%; padding: 12px; margin: 8px 0; border-radius: 6px; border: 1px solid #ccc; font-size: 16px; box-sizing: border-box; font-family: inherit; }
textarea { resize: vertical; min-height: 70px; }
button { background: #007bff; color: white; font-weight: bold; cursor: pointer; border: none; }
button:hover { background: #0056b3; }
button.secondary { background: #6c757d; }
button.secondary:hover { background: #545b62; }
button.danger { background: #dc3545; }
button.danger:hover { background: #a71d2a; }
button.success { background: #28a745; }
button.success:hover { background: #1e7e34; }

.caution { background: #fff3cd; color: #856404; padding: 12px; border-radius: 6px; font-size: 12px; border: 1px solid #ffeeba; }
.spinner { border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; width: 40px; height: 40px; animation: spin 2s linear infinite; margin: 20px auto; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

#announcement-box { background: #eef4ff; border: 1px solid #cddcf0; border-radius: 6px; padding: 12px; margin-bottom: 15px; font-size: 14px; white-space: pre-wrap; }

#confirm-send-panel { background: #f0f7ff; border: 1px solid #b8d7fb; border-radius: 6px; padding: 12px; margin-top: 10px; }
#confirm-send-text { font-size: 14px; font-weight: bold; }

.admin-card { border: 1px solid #e0e0e0; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.admin-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.admin-card-header strong { font-size: 15px; }
.admin-status-blocked { color: #dc3545; font-size: 12px; font-weight: bold; }
.admin-status-active { color: #28a745; font-size: 12px; font-weight: bold; }

.toggle-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 14px; }
.toggle-switch { position: relative; display: inline-block; width: 44px; height: 24px; margin: 0; }
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .2s; border-radius: 24px; }
.toggle-slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: .2s; border-radius: 50%; }
.toggle-switch input:checked + .toggle-slider { background-color: #28a745; }
.toggle-switch input:checked + .toggle-slider:before { transform: translateX(20px); }

.admin-card-actions { display: flex; gap: 8px; margin-top: 10px; }
.admin-card-actions button { margin: 0; width: auto; flex: 1; padding: 8px; font-size: 13px; }

.ticket-card { border: 1px solid #e0e0e0; border-radius: 8px; padding: 12px; margin-bottom: 10px; font-size: 13px; }
.ticket-card img { max-width: 100%; border-radius: 6px; margin-top: 8px; }
.ticket-meta { color: #777; font-size: 11px; margin-top: 4px; }