/* ================================================================
 * DATEI: css/components/rights.css
 * ZWECK: Operator-Funktionen ausblenden, wenn dem Konto das passende
 *        Recht fehlt (Scheibe D.3, SPEC-Loop1-CG-Kundensicht.md).
 *        js/app.js setzt die can-*-Klassen am body aus dem beim Login
 *        ermittelten Rechte-Objekt (js/modules/rights.js).
 * REFERENZIERT: css/variables.css (nur mittelbar, hier keine Farben/Abstaende)
 * REFERENZIERT VON: index.html
 * ================================================================ */

/* Neue Gruppe (Sidebar-Fusszeile). Die Fusszeile traegt nur diesen Knopf und
   geht mit, sonst bliebe ein leerer Streifen mit Rand stehen (Nachbesserung
   N-2, DOM-Auszug docs/screenshots/2026-09-26/dom-content-manager.txt). */
body:not(.can-groups) #btn-new-group,
body:not(.can-groups) .sidebar-footer {
    display: none;
}

/* Zeitplan-Tab (Inhalte) */
body:not(.can-schedule) .content-tab[data-tab="schedule"],
body:not(.can-schedule) #tab-schedule {
    display: none;
}

/* Massenaktionen im Monitor: Veroeffentlichen, Geplant, Neustart, Display Ein/Aus,
   sowie der Veroeffentlichen-Knopf im Zeitplan (Scheibe G.3) */
body:not(.can-publish) #btn-mass-publish,
body:not(.can-publish) #btn-mass-deferred-publish,
body:not(.can-publish) #btn-mass-reboot,
body:not(.can-publish) #btn-mass-display-on,
body:not(.can-publish) #btn-mass-display-off,
body:not(.can-publish) #btn-schedule-publish {
    display: none;
}

/* Player-Befehle im Player-Overlay, Reiter System (Start-1 A-02): Neustart,
   Inhalt aktualisieren, Display Ein und Aus haengen am selben Recht wie die
   Massenaktionen oben. Die Sektionen tragen nur diese Knoepfe und gehen samt
   Ueberschrift weg. Den Handler bewacht der Riegel sendePlayerBefehl
   (js/app.js), CSS allein wuerde nur verstecken. */
body:not(.can-publish) #player-section-fernsteuerung,
body:not(.can-publish) #player-section-display {
    display: none;
}

/* Player zwischen Gruppen verschieben (Player-Overlay). Die Sektion
   Gruppenverwaltung traegt nur diesen Knopf und geht mit, sonst stuende die
   Ueberschrift ueber einer leeren Knopfleiste (Nachbesserung N-2). */
body:not(.can-players) #btn-player-move,
body:not(.can-players) #player-section-gruppenverwaltung {
    display: none;
}

/* Reiter System im Player-Overlay (Start-1, Koordination 29.09.): er traegt
   nur die Befehle (can-publish) und das Verschieben (can-players). Fehlen
   beide Rechte, gehen Reiter-Knopf und Panel weg, sonst fuehrte der Reiter auf
   eine leere Seite. Einzige verknuepfte Regel: sie greift nur, wenn beide
   Klassen fehlen. Das Overlay oeffnet immer auf "basis" (players.js). */
body:not(.can-publish):not(.can-players) .player-tab[data-tab="system"],
body:not(.can-publish):not(.can-players) #player-tab-system {
    display: none;
}

/* Monitor-Icon in der linken Icon-Rail und in der unteren Navigation (mobil).
   Die untere Navigation fehlte bis zum Pruefer-Befund B8: ein Konto ohne
   monitoring-Recht hatte den Monitor auf dem Telefon weiter vor sich. */
body:not(.can-monitoring) .rail-item[data-view="monitoring"],
body:not(.can-monitoring) .bottom-nav-item[data-view="monitoring"] {
    display: none;
}

/* Seit Loop 2 (Befund B-1, 26.09.2026): analytics, content und playlist wirken
   jetzt auch im Frontend. Vorher gab es fuer die drei Rechte weder Klasse noch
   Regel. */

/* Reports: Icon in der linken Icon-Rail und in der unteren Navigation (mobil).
   Die gespeicherte Ansicht faellt ohne analytics auf das Dashboard zurueck
   (rights.js viewForRights). */
body:not(.can-analytics) .rail-item[data-view="reporting"],
body:not(.can-analytics) .bottom-nav-item[data-view="reporting"] {
    display: none;
}

/* Inhalte anlegen und umordnen: Hochladen, Neuer Ordner, Verschieben der Auswahl */
body:not(.can-content) #btn-upload-media,
body:not(.can-content) #btn-new-folder,
body:not(.can-content) #btn-move-selected {
    display: none;
}

/* Playlisten bearbeiten: Neue Playlist, Speichern und Leeren im Playlist-Panel.
   Die Leiste .playlist-actions traegt nur Speichern und Leeren; ohne beide
   bliebe ein leerer Streifen mit Rand und Innenabstand stehen, deshalb geht
   sie mit. */
body:not(.can-playlist) #btn-new-playlist,
body:not(.can-playlist) #btn-save-playlist,
body:not(.can-playlist) #btn-clear-playlist,
body:not(.can-playlist) .playlist-actions {
    display: none;
}

/* Ohne can-playlist auch der Reiter Playlisten samt Ansicht und das
   Playlist-Panel im Medien-Reiter (Nachbesserung N-2): niemand soll eine
   Ablage befuellen, die er nicht speichern darf. Die gespeicherte Ansicht
   faellt ohne playlist auf Medien zurueck (rights.js tabForRights). */
body:not(.can-playlist) .content-tab[data-tab="playlists"],
body:not(.can-playlist) #tab-playlists,
body:not(.can-playlist) #playlist-drop-panel {
    display: none;
}
