/* ============================================================ FORM — Admin-only extensions Styles used exclusively by admin pages (not the student partage form). Loaded after form-base.css. ============================================================ */ /* ── Recap files table ─────────────────────────────────────────── */ .recap-files-table { width: 100%; border-collapse: collapse; font-size: var(--step--1); } .recap-files-table thead th { text-align: left; font-weight: 600; color: var(--text-secondary); font-size: var(--step--2); text-transform: uppercase; letter-spacing: 0.05em; padding: var(--space-xs) var(--space-s); border-bottom: 2px solid var(--border-primary); } .recap-files-table tbody td { padding: var(--space-xs) var(--space-s); border-bottom: 1px solid var(--border-secondary); vertical-align: middle; } .recap-files-table tbody tr:last-child td { border-bottom: none; } .recap-files-icon { width: 1px; white-space: nowrap; } .recap-files-icon-emoji { font-size: 1.3rem; display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; background: var(--accent-muted); border-radius: var(--radius); } .recap-files-thumb { max-width: 80px; max-height: 60px; object-fit: cover; border-radius: var(--radius); } .recap-files-name { font-weight: 500; } .recap-files-name a { color: var(--text-primary); text-decoration: none; } .recap-files-name a:hover { color: var(--accent-primary); } .recap-files-peertube-id { display: block; font-size: var(--step--2); color: var(--text-tertiary); font-family: monospace; } .recap-files-label { display: block; font-size: var(--step--2); color: var(--text-secondary); font-style: italic; } .recap-files-type { font-size: var(--step--2); color: var(--text-tertiary); white-space: nowrap; } .recap-files-size { font-size: var(--step--2); color: var(--text-tertiary); white-space: nowrap; font-variant-numeric: tabular-nums; } .recap-files-date { font-size: var(--step--2); color: var(--text-tertiary); white-space: nowrap; } /* ── File browser (relink) ──────────────────────────────────────── */ .file-browser-trigger { margin-top: var(--space-2xs); font-size: var(--step--2); } .relink-modal { width: min(90vw, 700px); max-height: 80vh; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-primary); padding: 0; overflow: hidden; color: var(--text-primary); } .relink-modal::backdrop { background: rgba(0,0,0,0.5); } .relink-modal-header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-s) var(--space-m); border-bottom: 1px solid var(--border); background: var(--bg-secondary); } .relink-modal-header h3 { margin: 0; font-size: var(--step-0); } .relink-modal-footer { padding: var(--space-xs) var(--space-m); border-top: 1px solid var(--border); background: var(--bg-secondary); } #relink-modal-body { padding: var(--space-s) var(--space-m); overflow-y: auto; max-height: 60vh; } /* ── File browser tree ─────────────────────────────────────────── */ .file-browser { font-size: var(--step--1); } .file-browser-hint, .file-browser-empty, .file-browser-loading, .file-browser-error { color: var(--text-secondary); text-align: center; padding: var(--space-m); } .file-browser-error { color: var(--error); } .file-browser-breadcrumb { display: flex; align-items: center; gap: var(--space-2xs); flex-wrap: wrap; padding-bottom: var(--space-s); margin-bottom: var(--space-s); border-bottom: 1px solid var(--border); font-size: var(--step--2); } .file-browser-breadcrumb a { color: var(--accent-blue, var(--link)); text-decoration: none; } .file-browser-breadcrumb a:hover { color: var(--accent-primary); } .file-browser-sep { color: var(--text-tertiary); } .file-browser-list { list-style: none; margin: 0; padding: 0; } .file-browser-entry { border-bottom: 1px solid var(--border-subtle); } .file-browser-entry a, .file-browser-select-btn { display: flex; align-items: center; gap: var(--space-xs); width: 100%; padding: var(--space-xs) var(--space-2xs); text-decoration: none; color: var(--text-primary); background: none; border: none; cursor: pointer; font-size: var(--step--1); text-align: left; transition: background 0.15s; } .file-browser-entry a:hover, .file-browser-select-btn:hover { background: var(--bg-secondary); } .file-browser-icon { flex-shrink: 0; font-size: var(--step-0); } .file-browser-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .file-browser-size { flex-shrink: 0; color: var(--text-tertiary); font-size: var(--step--2); font-variant-numeric: tabular-nums; } .file-browser-file .file-browser-select-btn { color: var(--accent-green, var(--success)); } .file-browser-file .file-browser-select-btn:hover { background: var(--bg-secondary); } /* ── Full-page editor (contenus-edit overtype) ─────────────────────── */ /* Make the main content area a flex column so the form fills remaining height */ .admin-body .full-editor-page { display: flex; flex-direction: column; } .admin-form--full-editor { display: flex; flex-direction: column; flex: 1; min-height: 0; } .admin-form--full-editor #editor { flex: 1; min-height: 0; display: flex; flex-direction: column; } .admin-form--full-editor #editor .n-container { flex: 1; min-height: 0; display: flex; flex-direction: column; } .admin-form--full-editor #editor .n-wrapper { flex: 1; min-height: 0; overflow: hidden; } .admin-form--full-editor #editor .n-input { height: 100% !important; overflow-y: auto !important; } .admin-form--full-editor #editor .n-preview { height: 100% !important; overflow-y: auto !important; } .full-editor-toolbar { display: flex; align-items: center; gap: var(--space-s); padding-bottom: var(--space-s); border-bottom: 1px solid var(--border-primary); margin-bottom: var(--space-s); flex-shrink: 0; } .full-editor-label { font-size: var(--step--1); font-weight: 600; color: var(--text-secondary); } .full-editor-toolbar .btn--primary { margin-left: auto; }