/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */

/**
 *
 * LICENSE: GNU Affero General Public License, version 3 (AGPL-3.0-or-later)
 * Copyright Ampache.org, 2001-2024
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 *
 */

/* --------------------------
   General style rules
   -------------------------- */

:root {
    color-scheme: dark;
    accent-color: #2563EB; /* Primary button color */
}

body {
    color: #CBD5E1; /* Body text: light gray */
    background-color: #0F172A; /* Background: very dark navy */
    height: 90%;
}

.error {
    color: #EF4444; /* Error: red */
}

a {
    color: #2563EB; /* Accent: bright blue */
}

a:hover {
    color: #3B82F6; /* Hover: lighter blue */
}

hr {
    border-top-color: #94A3B8; /* Muted text: placeholder gray */
}

input[type=password],
input[type=text],
input[type=checkbox],
input[type=radio],
input[type=url],
input[type=year],
select,
textarea {
    background-color: #1E293B; /* Secondary panels: dark slate */
    background-image: linear-gradient(to top, #1E293B, #0F172A); /* Gradient from dark slate to very dark navy */
    border-color: #94A3B8; /* Muted text: placeholder gray */
}

button,
input[type=button],
input[type=submit],
.editdialogstyle.ui-dialog .ui-dialog-buttonset button {
    background-image: linear-gradient(to top, #2563EB, #1E3A8A); /* Gradient from bright blue to darker blue */
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.2);
    color: #FFFFFF; /* Headings: white */
}

button:hover,
button:focus,
input[type=button]:hover,
input[type=button]:focus,
input[type=submit]:hover,
input[type=submit]:focus,
.editdialogstyle.ui-dialog .ui-dialog-buttonset button:hover {
    background-color: #3B82F6; /* Hover: lighter blue */
}

button:focus:active,
input[type=button]:focus:active,
input[type=submit]:focus:active {
    box-shadow: inset 0 0 3px #0F172A, 0 1px 0 rgba(255, 255, 255, 0.1); /* Shadow with very dark navy */
}

.edit_dialog_content input[type=text],
.edit_dialog_content select {
    color: #FFFFFF; /* Headings: white */
}

.edit_dialog_content input:focus,
.edit_dialog_content select:focus {
    color: #94A3B8; /* Muted text: placeholder gray */
    background: rgba(255, 255, 255, 0.9);
    border: 2px solid #3B82F6; /* Hover: lighter blue */
}

.playlistdialogstyle.ui-dialog .ui-dialog-content,
.sharedialogstyle.ui-dialog .ui-dialog-content,
.playlistdialogstyle.ui-widget-content a,
.editdialogstyle.ui-dialog.ui-widget-content a,
.broadcastsdialogstyle.ui-widget-content a,
.sharedialogstyle.ui-widget-content a {
    background-color: #1E293B; /* Secondary panels: dark slate */
    color: #94A3B8; /* Muted text: placeholder gray */
}

.editdialogstyle.ui-dialog.ui-widget-content a,
.editdialogstyle.ui-dialog.ui-widget-content a:hover {
    background-color: unset;
}

.editdialogstyle.ui-dialog .ui-dialog-titlebar,
.editdialogstyle.ui-dialog.ui-widget-content a:hover,
.playlistdialogstyle.ui-widget-content a:hover,
.broadcastsdialogstyle.ui-widget-content a:hover,
.sharedialogstyle.ui-widget-content a:hover {
    color: #FFFFFF; /* Headings: white */
}

.ui-icon-close {
    background-color: #94A3B8; /* Muted text: placeholder gray */
}

/* --------------------------
   Main
   -------------------------- */
#ajax-loading {
    color: #2563EB; /* Accent: bright blue */
    background-image: url('../images/ajax-loader.gif');
}

/* --------------------------
   Header
   -------------------------- */
#header {
    background-color: #0F172A; /* Background: very dark navy */
    border-bottom: 2px solid #1E293B; /* Secondary panels: dark slate */
    box-shadow: 0 18px 18px rgba(30, 30, 30, 0.7);
}

#sb_Subsearch input[type=text]:focus {
    border-color: #2563EB; /* Accent: bright blue */
}

/* --------------------------
   Login
   -------------------------- */
#loginPage {
    background-color: #0F172A; /* Background: very dark navy */
}

#loginPage #maincontainer {
    background-color: rgba(30, 41, 59, 0.15); /* Secondary panels: dark slate with transparency */
    border: 2px solid rgba(30, 41, 59, 0.15);
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.05);
}

#loginPage #loginbox {
    color: #94A3B8; /* Muted text: placeholder gray */
}

#loginPage #loginbox div,
#registerPage #registerbox div {
    text-shadow: 0 1px 0 #0F172A; /* Shadow with very dark navy */
    color: #94A3B8; /* Muted text: placeholder gray */
}

#loginPage #loginbox #usernamefield input:focus,
#loginPage #loginbox #emailfield input:focus,
#loginPage #loginbox #passwordfield input:focus {
    border-color: #3B82F6; /* Hover: lighter blue */
    box-shadow: 0 0 10px #3B82F6; /* Hover: lighter blue */
}

#loginPage #loginbox #remembermefield {
    color: #CBD5E1; /* Body text: light gray */
}

.formValidation input {
    color: #FFFFFF; /* Headings: white */
}

#loginPage span.error {
    background: #EF4444; /* Error: red */
    border-color: #EF4444; /* Error: red */
    color: #0F172A; /* Background: very dark navy */
}

#loginPage #footer {
    color: #94A3B8; /* Muted text: placeholder gray */
}

#loginPage #footer a {
    color: #94A3B8; /* Muted text: placeholder gray */
}

#loginPage #footer #donate {
    color: #2563EB; /* Accent: bright blue */
}

/* --------------------------
   Sidebar
   -------------------------- */
#sidebar {
    color: #94A3B8; /* Muted text: placeholder gray */
}

#sidebar-header {
    background-color: rgba(30, 41, 59, 0.15); /* Secondary panels: dark slate with transparency */
    border-color: rgba(30, 41, 59, 0.15);
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.05);
    color: #94A3B8; /* Muted text: placeholder gray */
}

#sidebar-header:hover {
    color: #3B82F6; /* Hover: lighter blue */
}

#sidebar_home,
#sidebar_localplay,
#sidebar_preferences,
#sidebar_admin,
#sidebar_logout {
    color: #FFFFFF; /* Headings: white */
}

#sidebar_home:hover,
#sidebar_localplay:hover,
#sidebar_preferences:hover,
#sidebar_admin:hover,
#sidebar_logout:hover {
    color: #3B82F6; /* Hover: lighter blue */
}

#sidebar-content,
#sidebar-content-light,
#sidebar-light {
    border-color: rgba(30, 41, 59, 0.15); /* Secondary panels: dark slate with transparency */
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.05);
    background-color: #1E293B; /* Secondary panels: dark slate */
}

#sidebar-light-default {
    border-color: #94A3B8; /* Muted text: placeholder gray */
    background: #1E293B; /* Secondary panels: dark slate */
}

/* Tabs content */
#sidebar-page {
    background-color: rgba(30, 41, 59, 0.15); /* Secondary panels: dark slate with transparency */
    border-color: rgba(30, 41, 59, 0.15);
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.05);
}

#sidebar-tabs .active > a {
    color: #2563EB; /* Accent: bright blue */
}

#sidebar-tabs .sb2 li h4 {
    color: #FFFFFF; /* Headings: white */
    background-color: #1E293B; /* Secondary panels: dark slate */
    border-bottom-color: #0F172A; /* Background: very dark navy */
    box-shadow: 0 1px 0 #1E293B, inset 0 1px 1px #0F172A; /* Shadow with dark slate and very dark navy */
}

#sidebar-tabs .sb2 li ul li a {
    color: #94A3B8; /* Muted text: placeholder gray */
}

#sidebar-tabs .sb2 li ul li a:hover {
    color: #FFFFFF; /* Headings: white */
}

#sidebar-tabs .sb2 #browse_filters #multi_alpha_filter {
    border-color: #94A3B8; /* Muted text: placeholder gray */
}

.topmenu_item span {
    color: #2563EB; /* Accent: bright blue */
}

.topmenu_item:hover {
    border: 2px solid #2563EB; /* Accent: bright blue */
}

.image-topmenu-album,
.image-topmenu-artist,
.image-topmenu-favorite,
.image-topmenu-home,
.image-topmenu-logout,
.image-topmenu-playlist,
.image-topmenu-radio,
.image-topmenu-smartlist,
.image-topmenu-tagcloud,
.image-topmenu-upload {
    fill: #2563EB; /* Accent: bright blue */
}

.image-topmenu-album:hover,
.image-topmenu-artist:hover,
.image-topmenu-favorite:hover,
.image-topmenu-home:hover,
.image-topmenu-logout:hover,
.image-topmenu-playlist:hover,
.image-topmenu-radio:hover,
.image-topmenu-smartlist:hover,
.image-topmenu-tagcloud:hover,
.image-topmenu-upload:hover {
    fill: #3B82F6; /* Hover: lighter blue */
}

/* Localplay */
.active_instance {
    border-color: #FFFFFF; /* Headings: white */
}

/* --------------------------
   Rightbar
   -------------------------- */
#rightbar {
    background-color: #1E293B; /* Secondary panels: dark slate */
    border-color: rgba(30, 41, 59, 0.15); /* Secondary panels: dark slate with transparency */
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.05);
    color: #FFFFFF; /* Headings: white */
}

#rightbar #rb_action {
    color: #2563EB; /* Accent: bright blue */
}

#rightbar #rb_current_playlist li {
    color: #FFFFFF; /* Headings: white */
}

#rightbar #rb_current_playlist li a {
    color: #CBD5E1; /* Body text: light gray */
}

#rightbar #rb_current_playlist li a:hover,
#rightbar #rb_current_playlist li a:focus {
    color: #FFFFFF; /* Headings: white */
    background-color: #2563EB; /* Accent: bright blue */
    background-image: linear-gradient(to top, #2563EB, #1E3A8A); /* Gradient from bright blue to darker blue */
}

#rightbar .submenu {
    background-color: #1E293B; /* Secondary panels: dark slate */
    border-color: #94A3B8; /* Muted text: placeholder gray */
}

#rightbar .submenu a {
    border-bottom-color: #94A3B8; /* Muted text: placeholder gray */
    color: #CBD5E1; /* Body text: light gray */
}

#rightbar .submenu a:hover {
    color: #2563EB; /* Accent: bright blue */
}

/* --------------------------
   Content
   -------------------------- */
#content {
    background-color: rgba(30, 41, 59, 0.15); /* Secondary panels: dark slate with transparency */
    border-color: rgba(30, 41, 59, 0.15);
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.05);
    color: #FFFFFF; /* Headings: white */
}

.list-header,
.list-header a {
    color: #94A3B8; /* Muted text: placeholder gray */
}

.list-header a:hover,
.list-header a:focus {
    color: #FFFFFF; /* Headings: white */
}

span.page-nb {
    color: #2563EB; /* Accent: bright blue */
}

table.tabledata {
    color: #CBD5E1; /* Body text: light gray */
}

span.page-text,
table.tabledata a {
    color: #CBD5E1; /* Body text: light gray */
}

#catalog_type_fields table.tabledata a {
    color: #2563EB; /* Accent: bright blue */
}

table.tabledata a:hover,
table.tabledata a:focus {
    color: #3B82F6; /* Hover: lighter blue */
}

table.tabledata thead .th-top,
table.tabledata tfoot .th-bottom {
    background-color: #1E293B; /* Secondary panels: dark slate */
    box-shadow: 0 1px 0 #1E293B, inset 0 1px 1px #0F172A; /* Shadow with dark slate and very dark navy */
}

table.tabledata thead .th-top {
    border-bottom-color: #0F172A; /* Background: very dark navy */
}

table.tabledata tfoot .th-bottom {
    border-top-color: #0F172A; /* Background: very dark navy */
}

table.tabledata th a {
    color: #2563EB; /* Accent: bright blue */
}

table.tabledata tr:hover,
table.tabledata tr:focus {
    background-color: #2563EB; /* Accent: bright blue */
    background-image: linear-gradient(to top, #2563EB, #1E3A8A); /* Gradient from bright blue to darker blue */
}

table.tabledata .th-top:hover,
table.tabledata .th-bottom:hover,
table.tabledata .th-top:focus,
table.tabledata .th-bottom:focus {
    color: #FFFFFF; /* Headings: white */
    background-color: #1E293B; /* Secondary panels: dark slate */
}

table.striped-rows tbody tr:nth-child(odd),
ul.striped-rows > li:nth-child(odd) {
    background-color: rgba(255, 255, 255, 0.1);
}

table.tabledata tbody .cel_cover img {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.75);
}

table.tabledata tbody .cel_cover img:hover {
    border-color: #2563EB; /* Accent: bright blue */
}

input:invalid {
    border: 4px solid #EF4444; /* Error: red */
}

/* --------------------------
   Content (info-box)
   -------------------------- */
.random_selection .random_album .art_album img {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.75);
}

.random_selection .random_video .art_album img {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.75);
}

.random_selection .random_album .art_album img:hover {
    border-color: #2563EB; /* Accent: bright blue */
}

#content .missing {
    background-image: url('../images/missing.png');
}

/* --------------------------
    Content (now playing)
   -------------------------- */
#now_playing .cel_albumart img {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.75);
}

#now_playing .cel_lyrics a:hover {
    color: #3B82F6; /* Hover: lighter blue */
}

/* --------------------------
    Content (Tag cloud)
   -------------------------- */
span.fatalerror {
    color: #F59E0B; /* Warning: amber */
}

.box-content #tag_filter .tag_button {
    color: #FFFFFF; /* Headings: white */
}

.box-content #tag_filter .tag_button span:hover {
    background-color: #2563EB; /* Accent: bright blue */
    background-image: linear-gradient(to top, #2563EB, #1E3A8A); /* Gradient from bright blue to darker blue */
}

/* --------------------------
    Content (information-actions)
   -------------------------- */
.item_properties {
    color: #94A3B8; /* Muted text: placeholder gray */
}

.item_art .item_art_play .item_art_play_icon,
.item_art .item_art_play_150 .item_art_play_icon {
    background-image: url('../images/videoplay.png');
}

.item_art .item_art_actions {
    background-color: rgba(15, 23, 42, 0.6); /* Background: very dark navy with transparency */
}

.item_art img {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.75);
}

.item_art:hover {
    color: #2563EB; /* Accent: bright blue */
}

#information_actions ul li {
    color: #94A3B8; /* Muted text: placeholder gray */
}

#information_actions a:hover,
#information_actions li:hover {
    color: #FFFFFF; /* Headings: white */
}

/* ------------------------
    Styles for ratings / user flags
   ------------------------ */
.star-rating .global-rating {
    color: #94A3B8; /* Muted text: placeholder gray */
}

/* --------------------------
   Content (Track view)
   -------------------------- */
dl.media_details dt {
    color: #F59E0B; /* Warning: amber */
}

/* --------------------------
   Footer
   -------------------------- */
#footer a:hover {
    color: #3B82F6; /* Hover: lighter blue */
}

#ampache_link {
    color: #94A3B8; /* Muted text: placeholder gray */
}

/* --------------------------
   Web Player
   -------------------------- */
div.jp-audio,
div.jp-audio-stream,
div.jp-video {
    color: #94A3B8; /* Muted text: placeholder gray */
    border: 1px solid #1E293B; /* Secondary panels: dark slate */
}

div.jp-video div.jp-interface {
    border-top: 1px solid #1E293B; /* Secondary panels: dark slate */
}

div.jp-title,
div.jp-playlist {
    background-color: #1E293B; /* Secondary panels: dark slate */
    border-top: 1px solid #1E293B; /* Secondary panels: dark slate */
}

.jp-no-solution {
    background: #0F172A url("../../../lib/modules/jquery-jplayer-midnight-black/jplayer.midnight.black.interface.png") repeat-x; /* Background: very dark navy */
    border-top: 1px solid #1E293B; /* Secondary panels: dark slate */
}

#webplayer {
    background-color: #1E293B !important; /* Secondary panels: dark slate */
}

div.playing_title a,
div.playing_artist a,
div.playing_lyrics a {
    color: #CBD5E1; /* Body text: light gray */
}

div.jp-interface {
    background-color: #1E293B; /* Secondary panels: dark slate */
}

div.jp-playlist li {
    border-bottom: 1px solid #0F172A; /* Background: very dark navy */
}

.jp-type-playlist .jp-playlist a {
    color: #FFFFFF; /* Headings: white */
}

.jp-type-playlist .jp-playlist a:hover,
.jp-type-playlist .jp-playlist a:active,
.jp-type-playlist .jp-playlist a:focus {
    color: #2563EB; /* Accent: bright blue */
}

.jp-type-playlist .jp-playlist a.jp-playlist-current {
    color: #2563EB; /* Accent: bright blue */
}

/* ------------------------
   Wunderbaum tree
   ------------------------ */
.wunderbaum {
    --wb-node-text-color: #FFFFFF; /* Headings: white */
    --wb-background-color: #1E293B; /* Secondary panels: dark slate */
    --wb-alternate-row-color: #0F172A; /* Background: very dark navy */
    --wb-alternate-row-color-hover: #2563EB; /* Accent: bright blue */
    --wb-focus-border-color: #2563EB; /* Accent: bright blue */
    --wb-drop-source-color: #2563EB; /* Accent: bright blue */
    --wb-drop-target-color: #2563EB; /* Accent: bright blue */
    --wb-hover-color: #2563EB; /* Accent: bright blue */
    --wb-active-color: #3B82F6; /* Hover: lighter blue */
    --wb-active-hover-color: #3B82F6; /* Hover: lighter blue */
    --wb-active-color-grayscale: #3B82F6; /* Hover: lighter blue */
    --wb-active-hover-color-grayscale: #3B82F6; /* Hover: lighter blue */
}

/* --------------------------
   Other
   -------------------------- */
.jscroll-next {
    border-color: #94A3B8; /* Muted text: placeholder gray */
    background-color: #1E293B; /* Secondary panels: dark slate */
    color: #94A3B8; /* Muted text: placeholder gray */
}

.followbtn {
    background-color: #2563EB; /* Accent: bright blue */
}

.missing_album {
    color: #94A3B8 !important; /* Muted text: placeholder gray */
}

.user_online {
    background: #22C55E; /* Success: green */
}

.user_offline {
    background: #EF4444; /* Error: red */
}

.user_disabled {
    background: #94A3B8; /* Muted text: placeholder gray */
}

.list-header-navmenu-border {
    border-color: #1E293B; /* Secondary panels: dark slate */
}

span.item-count,
span.item-duration,
span.query-count {
    color: #94A3B8; /* Muted text: placeholder gray */
}

a.option-list:hover {
    border-color: #1E293B; /* Secondary panels: dark slate */
}

.editdialogstyle.ui-dialog {
    background-image: url('../../../images/background.png') !important;
}

#tabs li a {
    color: #2563EB; /* Accent: bright blue */
}

#tabs li a:hover {
    color: #3B82F6; /* Hover: lighter blue */
}

#tabs li.tab_active a {
    color: #FFFFFF; /* Headings: white */
}