.modal{background-color:var(--overlay);-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal);padding:var(--space-4);animation:modal-fade-in var(--transition-base) ease-out;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal__content{background-color:var(--surface);padding:var(--space-6);z-index:var(--z-modal);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-xl);text-align:center;align-items:center;gap:var(--space-3);width:100%;max-width:480px;animation:modal-pop-in var(--transition-base) cubic-bezier(.34, 1.56, .64, 1);flex-direction:column;display:flex}.modal__content .modal-btn-wrapper{margin-top:var(--space-4);gap:var(--space-3);justify-content:center;width:100%;display:flex}.modal p{color:var(--muted);font-size:var(--text-base);margin:var(--space-2) 0 var(--space-4)}.modal h3{font-size:var(--text-xl);font-weight:var(--fw-semibold)}.modal__content.download-modal{text-align:left;max-width:480px;box-shadow:none;background-color:#0000;border:none;align-items:stretch;gap:0;padding:0;animation:none}.modal-content{background-color:var(--card-bg);border-radius:var(--radius-xl);box-shadow:var(--modal-shadow);padding:0;overflow:hidden}.modal-content .modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;display:flex}.modal-content .modal-header h3{font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--foreground);margin:0}.modal-content .modal-header .modal-close{width:32px;height:32px;color:var(--muted);font-size:var(--text-lg);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-content .modal-header .modal-close:hover{background-color:var(--surface-2);color:var(--foreground)}.modal-content .download-options{padding:var(--space-5) var(--space-6)}.modal-content .download-options .date-range-group{margin-bottom:var(--space-5)}.modal-content .download-options .date-range-group h4{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--foreground);margin:0 0 var(--space-4)}.modal-content .download-options .date-range-group .form-row{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (min-width:480px){.modal-content .download-options .date-range-group .form-row{grid-template-columns:1fr 1fr}}.modal-content .download-options .format-group label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--foreground);margin-bottom:var(--space-3);display:block}.modal-content .form-group{gap:var(--space-1);flex-direction:column;display:flex}.modal-content .form-group label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--foreground)}.modal-content .form-group input[type=date]{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--input-bg);color:var(--input-text);font-size:var(--text-sm)}.modal-content .form-group input[type=date]:focus{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}.modal-content .form-group .date-hint{font-size:var(--text-xs);color:var(--muted)}.modal-content .radio-options{gap:var(--space-4);flex-wrap:wrap;display:flex}.modal-content .radio-options .radio-option{align-items:center;gap:var(--space-2);cursor:pointer;min-width:140px;padding:var(--space-3) var(--space-4);border:2px solid var(--border);border-radius:var(--radius-lg);background-color:var(--surface-1);transition:all var(--transition-fast);flex:1;display:flex}.modal-content .radio-options .radio-option input[type=radio]{display:none}.modal-content .radio-options .radio-option .radio-icon{color:var(--muted)}.modal-content .radio-options .radio-option .radio-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--foreground);display:flex}.modal-content .radio-options .radio-option:has(input:checked){border-color:var(--primary);background-color:var(--primary-soft)}.modal-content .radio-options .radio-option:has(input:checked) .radio-icon{color:var(--primary)}.modal-content .radio-options .radio-option:has(input:checked) .radio-label{color:var(--primary)}.modal-content .radio-options .radio-option:hover{border-color:var(--primary)}.modal-content .modal-actions{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-soft);background-color:var(--surface-1);display:flex}.spinner-small{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}
