/* CSP-compliant utility classes — replaces inline style="" attributes */ /* ── Empty state icons (large, muted) ── */ .empty-state-icon { font-size: var(--text-6xl); color: var(--color-accent); margin-bottom: var(--space-4); opacity: 0.9; } .empty-state-icon.error { color: var(--color-danger-text-alt); } .empty-state-icon.spinner { color: var(--color-text-medium); } /* ── Dialog header icons (accent color) ── */ .dialog-header-icon { color: var(--color-accent); } /* ── Icon spacing ── */ .icon-mr { margin-right: 5px; } .icon-ml { margin-left: var(--space-1); font-size: var(--text-xs); } /* ── Success check icon ── */ .check-icon { color: var(--color-success-border); } /* ── Move dialog ── */ .move-dialog-hint { margin: 0 0 var(--space-3); color: var(--color-text-muted); font-size: var(--text-base); } .folder-select-container { max-height: 220px; overflow-y: auto; } /* ── Share dialog sections ── */ .share-section { margin: 15px 0; } /* ── Search spinner ── */ .search-spinner { margin-right: var(--space-2); } /* ── Search empty state text ── */ .search-empty-text { color: var(--text-secondary, var(--color-text-subtle)); } /* ── Notification upload current file ── */ .notif-upload-current { font-size: var(--text-2xs); color: var(--color-text-subtle); margin: 3px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* ── Login auth hint ── */ .auth-hint { color: var(--text-secondary, var(--color-text-medium)); margin-top: var(--space-1); display: block; } /* ── About modal (userMenu.js profile popup) ── */ .about-modal-body { max-width: 380px; } .about-modal-header { text-align: center; padding: var(--space-5) var(--space-5) 0; } .about-modal-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--color-avatar-gradient); color: var(--color-danger-text); display: inline-flex; align-items: center; justify-content: center; font-size: var(--text-2xl); font-weight: var(--weight-bold); margin-bottom: var(--space-3); } .about-modal-username { margin: 0; font-size: var(--text-lg); color: var(--color-text-navy); } .about-modal-email { margin: var(--space-1) 0 0; font-size: var(--text-sm); color: var(--color-text-subtle); } .about-modal-role { display: inline-block; margin-top: var(--space-2); padding: var(--space-0-5) var(--space-2-5); border-radius: var(--radius-xl); font-size: var(--text-2xs); font-weight: var(--weight-semibold); } .about-modal-role-admin { background: var(--color-role-admin-bg); color: var(--color-role-admin-text); } .about-modal-role-user { background: var(--color-border-light); color: var(--color-text-subtle); } .about-modal-storage { padding: var(--space-4) var(--space-5); } .about-modal-storage-label { font-size: var(--text-xs); color: var(--color-text-subtle); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--space-1-5); } .about-modal-storage-label i { margin-right: var(--space-1); } .about-modal-bar-bg { background: var(--color-border-light); border-radius: var(--radius-md); height: 8px; overflow: hidden; margin-bottom: var(--space-1); } .about-modal-bar-fill { height: 100%; border-radius: var(--radius-md); transition: width 0.3s; } .about-modal-bar-text { font-size: var(--text-xs); color: var(--color-text-subtle); text-align: right; } .about-modal-footer { padding: 0 var(--space-5) var(--space-4); display: flex; justify-content: center; } .about-modal-close-btn { padding: var(--space-2) var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); color: var(--color-text-dark); font-size: var(--text-sm); font-weight: var(--weight-semibold); cursor: pointer; transition: background 0.15s; }