/* ==========================================================================
   Explore_Theme.css  —  Explorer4 (v2.0.0)
   ONE stylesheet for all 10 themes, blank mode and the Now-Playing bar.
   Replaces Explorer/CSS/Explore_Theme_0.css … Explore_Theme_9.css.

   HOW THEMES WORK
     • <html class="theme-N"> selects a theme (N = 0…9). Theme 0 is also the
       :root default, so a page without a theme class still looks right.
     • Each theme only sets CSS variables (colours, fonts, a few sizes).
       The layout rules further down read those variables.
     • Title fonts are loaded by the page (<link> to Google Fonts, one family
       per theme, display=swap). Body text uses the phone's own fonts.
     • Browsers without CSS variables (Opera Mini, very old Android) get the
       plain Theme 0 colours written just before each var() line.

   THEME TABLE (name — title font — tweaks made on 2026-09-28, owner-approved)
     0 Midnight Blue  Gabriela            back label + download arrow made white
     1 Desert         Playfair Display    playing outline #87ceeb → #0277bd
     2 Forest Canopy  Oswald              subtitle #81c784 → #9ccc9f, white icons
     3 Deep Space     Exo 2               white icons
     4 Autumn Woods   Cormorant Garamond  buttons #e65100 → #c43e00, outline, subtitle
     5 Starry Night   Cinzel              white icons
     6 Coral Reef     Pacifico            list moved to deep-ocean blue (text was 2.3:1)
     7 Art Deco       Josefin Sans        playing outline #800000 → #cd5c5c
     8 Mountain Peak  Roboto Condensed    white back label, outline #80deea → #0097a7
     9 Volcanic Ash   Archivo Black       buttons #f44336 → #d32f2f, hover/outline lighter
   All text now meets WCAG AA contrast (4.5:1; 3:1 for the large title).
   ========================================================================== */


/* --------------------------- Theme 0 (default) --------------------------- */
:root {
	--font-body:          Aptos, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--font-title:         "Gabriela", Georgia, serif;
	--bg:                 #0a192f;
	--text:               #ccd6f6;
	--c-bg:               #112240;
	--c-shadow:           0 4px 15px rgba(0,0,0,.3);
	--c-border:           none;
	--title:              #64ffda;
	--title-hover:        #bbeeff;
	--title-shadow:       1px 1px 3px rgba(0,0,0,.5);
	--title-shadow-hover: 1px 1px 3px rgba(0,0,0,.5);
	--title-size:         2.5em;
	--title-size-m:       2em;
	--title-size-s:       1.6em;
	--title-spacing:      normal;
	--sub:                #8892b0;
	--sub-style:          normal;
	--panel-bg:           #1c355e;
	--panel-border:       #2a4a7e;
	--btn-bg:             #64ffda;
	--btn-text:           #0a192f;
	--btn-hover-bg:       #52d1bc;
	--btn-hover-text:     #0a192f;
	--btn-border:         none;
	--btn-radius:         5px;
	--btn-case:           none;
	--fsd-bg:             #0a192f;
	--fsd-text:           #8892b0;
	--fsd-border:         none;
	--back-bg:            #173a5e;
	--back-hover:         #2a5288;
	--back-border:        none;
	--back-img:           brightness(0) invert(1);
	--sep:                #1c355e;
	--row1:               #112240;
	--row2:               #172a45;
	--row-hover:          #203c66;
	--link:               #ccd6f6;
	--link-hover:         #64ffda;
	--link-dir:           #ccd6f6;
	--playing:            #64ffda;
	--iframe-border:      #2a4a7e;
	--err-text:           #ff6464;
	--err-bg:             #2f0a0a;
	--err-border:         #a03030;
	--mono-icon:          invert(1);
}

/* --------------------------- Theme 1 — Desert ---------------------------- */
.theme-1 {
	--font-body:          Georgia, Cambria, "Times New Roman", Times, serif;
	--font-title:         "Playfair Display", Georgia, serif;
	--bg:                 #f4a460;
	--text:               #5d4037;
	--c-bg:               #f5deb3;
	--c-shadow:           0 4px 15px rgba(80,50,20,.25);
	--title:              #8b4513;
	--title-hover:        #a0522d;
	--title-shadow:       1px 1px 2px rgba(245,222,179,.5);
	--title-shadow-hover: 1px 1px 2px rgba(245,222,179,.5);
	--sub:                #795548;
	--panel-bg:           #deb887;
	--panel-border:       #cd853f;
	--btn-bg:             #8b4513;
	--btn-text:           #fffafa;
	--btn-hover-bg:       #a0522d;
	--btn-hover-text:     #fffafa;
	--fsd-bg:             #f4a460;
	--fsd-text:           #5d4037;
	--back-bg:            #cd853f;
	--back-hover:         #d2691e;
	--back-img:           none;
	--sep:                #d2b48c;
	--row1:               #f5deb3;
	--row2:               #faf0e6;
	--row-hover:          #e0cda8;
	--link:               #5d4037;
	--link-hover:         #8b4513;
	--link-dir:           #5d4037;
	--playing:            #0277bd;
	--iframe-border:      #cd853f;
	--err-text:           #b71c1c;
	--err-bg:             #ffebee;
	--err-border:         #ef9a9a;
	--mono-icon:          none;
}

/* --------------------------- Theme 2 — Forest Canopy --------------------- */
.theme-2 {
	--font-title:         "Oswald", "Arial Narrow", sans-serif;
	--bg:                 #223d27;
	--text:               #e8f5e9;
	--c-bg:               #38533e;
	--c-shadow:           0 4px 15px rgba(10,20,10,.4);
	--title:              #a5d6a7;
	--title-hover:        #c8e6c9;
	--sub:                #9ccc9f;
	--panel-bg:           #4a6b51;
	--panel-border:       #5c8263;
	--btn-bg:             #c5e1a5;
	--btn-text:           #1b2b1e;
	--btn-hover-bg:       #dcedc8;
	--btn-hover-text:     #1b2b1e;
	--fsd-bg:             #223d27;
	--fsd-text:           #81c784;
	--back-bg:            #543d29;
	--back-hover:         #6d5138;
	--sep:                #4a6b51;
	--row1:               #38533e;
	--row2:               #415e48;
	--row-hover:          #4a6b51;
	--link:               #e8f5e9;
	--link-hover:         #c5e1a5;
	--link-dir:           #e8f5e9;
	--playing:            #fdd835;
	--iframe-border:      #5c8263;
	--err-text:           #fdd835;
	--err-bg:             #4f2620;
	--err-border:         #8c483c;
}

/* --------------------------- Theme 3 — Deep Space ------------------------ */
.theme-3 {
	--font-title:         "Exo 2", system-ui, sans-serif;
	--bg:                 #0c0a1f;
	--text:               #e0e0ff;
	--c-bg:               #1a1633;
	--c-shadow:           0 4px 15px rgba(50,30,80,.4);
	--title:              #9fa8da;
	--title-hover:        #c5cae9;
	--title-shadow:       1px 1px 3px rgba(0,0,0,.6);
	--title-shadow-hover: 1px 1px 3px rgba(0,0,0,.6);
	--sub:                #7986cb;
	--panel-bg:           #2f2a50;
	--panel-border:       #453f78;
	--btn-bg:             #81d4fa;
	--btn-text:           #0c0a1f;
	--btn-hover-bg:       #b3e5fc;
	--btn-hover-text:     #0c0a1f;
	--fsd-bg:             #0c0a1f;
	--fsd-text:           #7986cb;
	--back-bg:            #5c6bc0;
	--back-hover:         #7986cb;
	--sep:                #2f2a50;
	--row1:               #1a1633;
	--row2:               #201b3d;
	--row-hover:          #2c2655;
	--link:               #e0e0ff;
	--link-hover:         #81d4fa;
	--link-dir:           #e0e0ff;
	--playing:            #ff80ab;
	--iframe-border:      #453f78;
	--err-text:           #ff80ab;
	--err-bg:             #3d1b30;
	--err-border:         #7c3a60;
}

/* --------------------------- Theme 4 — Autumn Woods ---------------------- */
.theme-4 {
	--font-body:          Georgia, Cambria, "Times New Roman", Times, serif;
	--font-title:         "Cormorant Garamond", Georgia, serif;
	--bg:                 #4a2c2a;
	--text:               #fff3e0;
	--c-bg:               #6d4c41;
	--c-shadow:           0 4px 15px rgba(40,20,10,.35);
	--title:              #ffcc80;
	--title-hover:        #ffe0b2;
	--sub:                #ffb74d;
	--panel-bg:           #8d6e63;
	--panel-border:       #a1887f;
	--btn-bg:             #c43e00;
	--btn-text:           #fffde7;
	--btn-hover-bg:       #b53d00;
	--btn-hover-text:     #fffde7;
	--fsd-bg:             #4a2c2a;
	--fsd-text:           #ffab40;
	--back-bg:            #bf360c;
	--back-hover:         #d84315;
	--sep:                #8d6e63;
	--row1:               #6d4c41;
	--row2:               #795548;
	--row-hover:          #8d6e63;
	--link:               #fff3e0;
	--link-hover:         #ffcc80;
	--link-dir:           #fff3e0;
	--playing:            #ffab40;
	--iframe-border:      #a1887f;
	--err-text:           #ffcc80;
	--err-bg:             #6d2016;
	--err-border:         #b93829;
}

/* --------------------------- Theme 5 — Starry Night ---------------------- */
.theme-5 {
	--font-title:         "Cinzel", Georgia, serif;
	--bg:                 #00001a;
	--text:               #e0e0e0;
	--c-bg:               #0d0d26;
	--c-shadow:           0 4px 15px rgba(100,100,150,.2);
	--title:              #ffd700;
	--title-hover:        #fffacd;
	--title-shadow:       1px 1px 5px rgba(255,215,0,.5);
	--title-shadow-hover: 1px 1px 8px rgba(255,255,172,.6);
	--sub:                #c0c0c0;
	--panel-bg:           #1a1a33;
	--panel-border:       #33334d;
	--btn-bg:             #b0c4de;
	--btn-text:           #00001a;
	--btn-hover-bg:       #d4e0ee;
	--btn-hover-text:     #00001a;
	--fsd-bg:             #00001a;
	--fsd-text:           #c0c0c0;
	--back-bg:            #4682b4;
	--back-hover:         #5a94c7;
	--sep:                #1a1a33;
	--row1:               #0d0d26;
	--row2:               #14142d;
	--row-hover:          #20203f;
	--link:               #e0e0e0;
	--link-hover:         #ffd700;
	--link-dir:           #e0e0e0;
	--playing:            #add8e6;
	--iframe-border:      #33334d;
	--err-text:           #ffd700;
	--err-bg:             #330000;
	--err-border:         #660000;
}

/* --------------------------- Theme 6 — Coral Reef ------------------------ */
.theme-6 {
	--font-title:         "Pacifico", "Brush Script MT", cursive;
	--bg:                 #0077be;
	--text:               #f0f8ff;
	--c-bg:               #023e8a;
	--c-shadow:           0 4px 15px rgba(0,50,100,.3);
	--title:              #ff7f50;
	--title-hover:        #ffa07a;
	--title-shadow:       1px 1px 3px rgba(0,0,0,.4);
	--title-shadow-hover: 1px 1px 3px rgba(0,0,0,.4);
	--title-size:         2.8em;
	--title-size-m:       2.4em;
	--title-size-s:       2em;
	--sub:                #90e0ef;
	--panel-bg:           #012a5e;
	--panel-border:       #0077b6;
	--btn-bg:             #ffc107;
	--btn-text:           #003566;
	--btn-hover-bg:       #ffd54f;
	--btn-hover-text:     #003566;
	--fsd-bg:             #012a5e;
	--fsd-text:           #ade8f4;
	--back-bg:            #f77f00;
	--back-hover:         #fcbf49;
	--back-img:           none;
	--sep:                #0a5fb0;
	--row1:               #023e8a;
	--row2:               #034a9a;
	--row-hover:          #0a5fb0;
	--link:               #f0f8ff;
	--link-hover:         #ffc107;
	--link-dir:           #f0f8ff;
	--playing:            #ff69b4;
	--iframe-border:      #0077b6;
	--err-text:           #ffc107;
	--err-bg:             #003566;
	--err-border:         #005a8d;
}

/* --------------------------- Theme 7 — Art Deco -------------------------- */
.theme-7 {
	--font-title:         "Josefin Sans", system-ui, sans-serif;
	--bg:                 #000000;
	--text:               #e6e6e6;
	--c-bg:               #1f1f1f;
	--c-shadow:           0 0 15px rgba(218,165,32,.3);
	--c-border:           1px solid #b8860b;
	--title:              #daa520;
	--title-hover:        #f0e68c;
	--title-shadow:       1px 1px 2px rgba(0,0,0,.7);
	--title-shadow-hover: 1px 1px 2px rgba(0,0,0,.7);
	--title-spacing:      1px;
	--sub:                #b0b0b0;
	--sub-style:          italic;
	--panel-bg:           #333333;
	--panel-border:       #b8860b;
	--btn-bg:             #daa520;
	--btn-text:           #000000;
	--btn-hover-bg:       #b8860b;
	--btn-hover-text:     #ffffff;
	--btn-border:         1px solid #b8860b;
	--btn-radius:         3px;
	--btn-case:           uppercase;
	--fsd-bg:             #1f1f1f;
	--fsd-text:           #daa520;
	--fsd-border:         1px solid #daa520;
	--back-bg:            #008080;
	--back-hover:         #005f5f;
	--back-border:        1px solid #005f5f;
	--sep:                #4d4d4d;
	--row1:               #1f1f1f;
	--row2:               #2b2b2b;
	--row-hover:          #008080;
	--link:               #e6e6e6;
	--link-hover:         #daa520;
	--link-dir:           #f0e68c;
	--playing:            #cd5c5c;
	--iframe-border:      #b8860b;
	--err-text:           #daa520;
	--err-bg:             #500000;
	--err-border:         #800000;
}

/* --------------------------- Theme 8 — Mountain Peak --------------------- */
.theme-8 {
	--font-title:         "Roboto Condensed", "Arial Narrow", sans-serif;
	--bg:                 #e0e5ec;
	--text:               #37474f;
	--c-bg:               #ffffff;
	--c-shadow:           0 4px 15px rgba(100,110,120,.25);
	--c-border:           1px solid #cfd8dc;
	--title:              #1976d2;
	--title-hover:        #42a5f5;
	--title-shadow:       1px 1px 1px rgba(200,200,220,.5);
	--title-shadow-hover: 1px 1px 1px rgba(200,200,220,.5);
	--title-spacing:      .5px;
	--sub:                #546e7a;
	--panel-bg:           #eceff1;
	--panel-border:       #b0bec5;
	--btn-bg:             #1976d2;
	--btn-text:           #ffffff;
	--btn-hover-bg:       #1565c0;
	--btn-hover-text:     #ffffff;
	--fsd-bg:             #e0e5ec;
	--fsd-text:           #37474f;
	--back-bg:            #607d8b;
	--back-hover:         #546e7a;
	--sep:                #eceff1;
	--row1:               #ffffff;
	--row2:               #f5f7f8;
	--row-hover:          #e8eaf6;
	--link:               #37474f;
	--link-hover:         #1976d2;
	--link-dir:           #2962ff;
	--playing:            #0097a7;
	--iframe-border:      #b0bec5;
	--err-text:           #d32f2f;
	--err-bg:             #ffebee;
	--err-border:         #ef9a9a;
	--mono-icon:          none;
}

/* --------------------------- Theme 9 — Volcanic Ash ---------------------- */
.theme-9 {
	--font-body:          Georgia, Cambria, "Times New Roman", Times, serif;
	--font-title:         "Archivo Black", "Arial Black", sans-serif;
	--bg:                 #212121;
	--text:               #e0e0e0;
	--c-bg:               #303030;
	--c-shadow:           0 4px 15px rgba(0,0,0,.5);
	--c-border:           1px solid #424242;
	--title:              #ff5722;
	--title-hover:        #ff7043;
	--title-shadow:       1px 1px 3px rgba(0,0,0,.7);
	--title-shadow-hover: 1px 1px 3px rgba(0,0,0,.7);
	--sub:                #9e9e9e;
	--panel-bg:           #424242;
	--panel-border:       #616161;
	--btn-bg:             #d32f2f;
	--btn-text:           #ffffff;
	--btn-hover-bg:       #c62828;
	--btn-hover-text:     #ffffff;
	--fsd-bg:             #212121;
	--fsd-text:           #9e9e9e;
	--back-bg:            #757575;
	--back-hover:         #616161;
	--sep:                #424242;
	--row1:               #303030;
	--row2:               #383838;
	--row-hover:          #4a4a4a;
	--link:               #e0e0e0;
	--link-hover:         #ff7043;
	--link-dir:           #ff8a65;
	--playing:            #ff7043;
	--iframe-border:      #616161;
	--err-text:           #ffccbc;
	--err-bg:             #5d4037;
	--err-border:         #8d6e63;
}


/* ==========================================================================
   LAYOUT  (shared by every theme — only reads the variables above)
   ========================================================================== */

[hidden] { display: none !important; }

body {
	margin: 0;
	padding: 0;
	line-height: 1.6;
	background-color: #0a192f; background-color: var(--bg);
	color: #ccd6f6;            color: var(--text);
	font-family: Aptos, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-family: var(--font-body);
	transition: background-color .3s, color .3s;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

.explorer-container {
	max-width: 1000px;
	margin: 20px auto;
	padding: 15px;
	border-radius: 8px;
	background-color: #112240; background-color: var(--c-bg);
	box-shadow: 0 4px 15px rgba(0,0,0,.3); box-shadow: var(--c-shadow);
	border: var(--c-border);
}

/* --------------------------- Banner -------------------------------------- */
.titlebar-container { text-align: center; margin-bottom: 15px; }
.title-bar-link     { display: inline-block; max-width: 100%; }
.title-bar-image {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	transition: transform .3s ease-in-out;
}
.title-bar-image:hover    { transform: scale(1.03); }
.title-bar-image.clickable { cursor: pointer; }

/* --------------------------- Title and subtitle -------------------------- */
.main-header-container { margin-bottom: 10px; }

h1.main-title {
	margin: 10px 0 5px;
	padding: 5px 0;
	text-align: center;
	font-size: 2.5em; font-size: var(--title-size);
	font-family: Georgia, serif; font-family: var(--font-title);
	letter-spacing: var(--title-spacing);
	line-height: 1.25;
	color: #64ffda; color: var(--title);
	text-shadow: var(--title-shadow);
	transition: color .2s ease-in-out, text-shadow .2s ease-in-out;
}
.settings-toggle {                                   /* the whole title is the settings button */
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	color: inherit;
	text-shadow: inherit;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
h1.main-title:hover        { color: #bbeeff; color: var(--title-hover); text-shadow: var(--title-shadow-hover); }
.settings-cog-icon         { display: inline-block; margin-left: 8px; font-size: .8em; vertical-align: baseline; text-shadow: none; }
.no-js .settings-cog-icon  { display: none; }       /* settings need JavaScript */
.settings-fallback-trigger { margin-bottom: 10px; text-align: right; font-size: 1.5em; color: var(--title); }

.second-title {
	margin: 0 0 20px;
	text-align: center;
	font-size: 1.1em;
	font-style: var(--sub-style);
	color: #8892b0; color: var(--sub);
}

/* --------------------------- Settings panel ------------------------------ */
.settings-panel {
	margin: 5px 0 15px;
	padding: 10px;
	border-radius: 5px;
	text-align: center;
	background-color: #1c355e; background-color: var(--panel-bg);
	border: 1px solid #2a4a7e; border: 1px solid var(--panel-border);
	animation: e4-drop .18s ease-out;
}
@keyframes e4-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.settings-panel-button {
	display: inline-block;
	min-width: 110px;
	margin: 5px;
	padding: 8px 12px;
	border: var(--btn-border);
	border-radius: 5px; border-radius: var(--btn-radius);
	font-family: inherit;
	font-size: .85rem;
	font-weight: bold;
	line-height: 1.3;
	text-transform: var(--btn-case);
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	background-color: #64ffda; background-color: var(--btn-bg);
	color: #0a192f;            color: var(--btn-text);
	transition: background-color .2s ease-in-out, color .2s ease-in-out;
}
.settings-panel-button:hover { background-color: #52d1bc; background-color: var(--btn-hover-bg); color: var(--btn-hover-text); }

.font-size-display {
	display: inline-block;
	min-width: 60px;
	margin-left: 8px;
	padding: 8px 10px;
	border: var(--fsd-border);
	border-radius: 5px; border-radius: var(--btn-radius);
	font-size: .9em;
	text-align: center;
	vertical-align: middle;
	background-color: #0a192f; background-color: var(--fsd-bg);
	color: #8892b0;            color: var(--fsd-text);
}

/* --------------------------- Navigation (back, path, filter) ------------- */
.navigation-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 15px;
	margin-bottom: 15px;
}
.navigation-controls:empty         { display: none; }
.bottom-navigation-controls        { margin: 15px 0; }

.back-button {
	display: inline-flex;
	align-items: center;
	padding: 5px 8px;
	border: var(--back-border);
	border-radius: 5px; border-radius: var(--btn-radius);
	text-decoration: none;
	background-color: #173a5e; background-color: var(--back-bg);
	transition: background-color .2s ease-in-out;
}
.back-button:hover   { background-color: #2a5288; background-color: var(--back-hover); }
.back-button img     { display: block; filter: var(--back-img); transition: transform .1s ease-out; }
.back-button:active img { transform: translateY(3px); }

.breadcrumb          { font-size: .9em; color: var(--sub); overflow-wrap: anywhere; }
.breadcrumb a        { color: #ccd6f6; color: var(--link); text-decoration: none; }
.breadcrumb a:hover  { color: #64ffda; color: var(--link-hover); text-decoration: underline; }
.breadcrumb .sep     { margin: 0 .35em; opacity: .7; }
.breadcrumb [aria-current] { color: var(--sub); }

.filter-box {
	flex: 0 1 240px;
	min-width: 0;
	margin-left: auto;
	padding: 8px 12px;
	border-radius: 20px;
	font: inherit;
	font-size: .95rem;
	border: 1px solid #2a4a7e; border: 1px solid var(--panel-border);
	background-color: #172a45;  background-color: var(--row2);
	color: #ccd6f6;             color: var(--link);
	-webkit-appearance: none;
	appearance: none;
}
.filter-box::placeholder { color: var(--sub); opacity: 1; }

/* --------------------------- File list ----------------------------------- */
.table.file-list-table {
	width: 100%;
	margin-top: 15px;
	border-collapse: collapse;
	table-layout: fixed;
}
.table td {
	padding: 10px;
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid #1c355e; border-bottom: 1px solid var(--sep);
}
.table .row.one      { background-color: #112240; background-color: var(--row1); }
.table .row.two      { background-color: #172a45; background-color: var(--row2); }
.table .row:hover    { background-color: #203c66; background-color: var(--row-hover); }
.table .row.audio-playing-row { outline: 2px solid #64ffda; outline: 2px solid var(--playing); outline-offset: -2px; }

.table .icon         { width: 40px; padding-right: 8px; text-align: center; }
.table .icon img     { display: block; max-width: 100%; height: auto; margin: 0 auto; }
.table .icon a       { display: block; margin: -8px; padding: 8px; }      /* 44 px tap area, same icon size */
.table .icon a img   { transition: transform .1s ease-out; }
.table .icon a:active img { transform: translateY(3px); }
.table .icon a.play  { cursor: pointer; }

.table .name         { overflow-wrap: anywhere; word-wrap: break-word; }
.name-cell           { display: flex; align-items: center; gap: 10px; }
.name-cell .item     { flex: 1 1 auto; min-width: 0; }

.table a.item,
.table a.item:visited { color: #ccd6f6; color: var(--link); text-decoration: none; font-weight: 500; }
.table a.item.dir     { color: #ccd6f6; color: var(--link-dir); font-weight: bold; }
.table a.item:hover   { color: #64ffda; color: var(--link-hover); }

/* Download button and file size: only when “Download: On” */
.size, .download-link { display: none; flex: none; }
.dl-on .size          { display: inline; font-size: .85em; white-space: nowrap; opacity: .8; }
.dl-on .download-link { display: inline-block; line-height: 1; }
.download-link img    { display: block; filter: var(--mono-icon); transition: opacity .2s ease-in-out, transform .1s ease-out; }
.download-link:hover img  { opacity: .75; }
.download-link:active img { transform: translateY(3px); }

.table .empty td, .table .no-match td { padding: 20px; text-align: center; opacity: .85; }

/* Font size setting (classes set on <html>) */
.font-x-small .file-list-table td { font-size: .7rem;  padding-top: 4px;  padding-bottom: 4px; }
.font-small   .file-list-table td { font-size: .85rem; padding-top: 6px;  padding-bottom: 6px; }
.file-list-table td               { font-size: 1rem; }
.font-large   .file-list-table td { font-size: 1.15rem; padding-top: 12px; padding-bottom: 12px; }
.font-x-large .file-list-table td { font-size: 1.3rem;  padding-top: 14px; padding-bottom: 14px; }
.font-x-small .back-button { padding-top: 4px;  padding-bottom: 4px; }
.font-small   .back-button { padding-top: 6px;  padding-bottom: 6px; }
.font-large   .back-button { padding-top: 12px; padding-bottom: 12px; }
.font-x-large .back-button { padding-top: 14px; padding-bottom: 14px; }

/* --------------------------- Messages ------------------------------------ */
.error-message {
	padding: 10px;
	border-radius: 5px;
	text-align: center;
	color: #ff6464;            color: var(--err-text);
	background-color: #2f0a0a; background-color: var(--err-bg);
	border: 1px solid #a03030; border: 1px solid var(--err-border);
}

/* --------------------------- Embedded pages (Link_A … Link_Z) ------------ */
.iframe-separator  { margin: 30px 0 0; border: 0; border-top: 1px solid var(--sep); }
.iframe-block      { margin: 20px 0; }
.iframe-container  { margin-top: 25px; overflow: hidden; border-radius: 5px; border: 1px solid var(--iframe-border); }
.iframe-container iframe { display: block; width: 100%; height: 777px; border: 0; }
.iframe-direct-link { margin: 3px 0 0; text-align: center; }
.iframe-direct-link a, .direct-link a { display: inline-block; padding: 1px 5px; color: inherit; text-decoration: none; }
.iframe-direct-link a:hover { text-decoration: underline; }

/* --------------------------- Now-Playing bar (created by JavaScript) ----- */
.now-playing {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	max-width: 1000px;
	margin: 0 auto;
	padding: 8px 12px;
	border-radius: 12px 12px 0 0;
	background-color: #112240; background-color: var(--c-bg);
	color: #ccd6f6;            color: var(--text);
	border: 1px solid #2a4a7e; border: 1px solid var(--panel-border);
	border-bottom: 0;
	box-shadow: 0 -4px 18px rgba(0,0,0,.35);
	animation: e4-rise .2s ease-out;
}
@keyframes e4-rise { from { transform: translateY(100%); } to { transform: none; } }
.np-open body { padding-bottom: 84px; }

.np-btn {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	background: transparent;
	color: inherit;
}
.np-toggle           { background-color: #64ffda; background-color: var(--title); color: var(--c-bg); }
.np-btn svg          { width: 22px; height: 22px; fill: currentColor; }
.np-close svg        { width: 18px; height: 18px; }
.np-close:hover      { background-color: var(--row-hover); }
.np-main             { flex: 1 1 auto; min-width: 0; }
.np-title            { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: bold; font-size: .95rem; color: var(--title); }
.np-row              { display: flex; align-items: center; gap: 8px; }
.np-time             { flex: none; min-width: 3.2em; font-size: .8rem; font-variant-numeric: tabular-nums; opacity: .85; }
.np-time.np-dur      { text-align: right; }
.np-seek             { flex: 1 1 auto; min-width: 0; height: 24px; margin: 0; accent-color: var(--title); cursor: pointer; }
.np-status           { font-size: .8rem; opacity: .85; }
.now-playing.is-loading .np-toggle { animation: e4-pulse 1s ease-in-out infinite; }
@keyframes e4-pulse { 50% { opacity: .55; } }

/* --------------------------- Keyboard focus ------------------------------ */
.explorer-container a:focus-visible,
.explorer-container button:focus-visible,
.explorer-container input:focus-visible,
.now-playing button:focus-visible,
.now-playing input:focus-visible { outline: 3px solid var(--title); outline-offset: 2px; }

/* --------------------------- Theme one-offs ------------------------------ */
.theme-7 .table .row:hover,
.theme-7 .table .row:hover a.item,
.theme-7 .table .row.audio-playing-row a.item { color: #ffffff; }

/* --------------------------- Phones and tablets -------------------------- */
@media (max-width: 768px) {
	.explorer-container   { margin: 10px; padding: 10px; }
	h1.main-title         { font-size: var(--title-size-m); }
	.second-title         { font-size: 1em; }
	.navigation-controls  { align-items: flex-start; flex-direction: column; }
	.filter-box           { flex: none; width: 100%; box-sizing: border-box; margin-left: 0; }
	.table td             { padding-left: 5px; padding-right: 5px; }
	.table .icon          { padding-right: 5px; }
	.font-x-small .file-list-table td { font-size: .65rem; }
	.font-small   .file-list-table td { font-size: .8rem;  padding-top: 5px;  padding-bottom: 5px; }
	.file-list-table td               { font-size: .9rem;  padding-top: 8px;  padding-bottom: 8px; }
	.font-large   .file-list-table td { font-size: 1rem;   padding-top: 10px; padding-bottom: 10px; }
	.font-x-large .file-list-table td { font-size: 1.1rem; padding-top: 11px; padding-bottom: 11px; }
	.settings-panel-button { min-width: 100px; padding: 6px 10px; font-size: .8rem; }
	.font-size-display     { min-width: 50px; padding: 6px 8px; font-size: .8em; }
	.now-playing           { border-radius: 0; border-left: 0; border-right: 0; }
}
@media (max-width: 480px) {
	h1.main-title          { font-size: var(--title-size-s); }
	.settings-cog-icon     { font-size: .7em; }
	.second-title          { font-size: .9em; }
	.settings-panel        { padding: 8px; }
	.settings-panel-button,
	.font-size-display     { display: block; box-sizing: border-box; width: calc(100% - 10px); margin: 5px auto; }
	.font-size-display     { margin-top: 10px; }
	.name-cell             { gap: 5px; }
}

/* --------------------------- Reduced motion ------------------------------ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}


/* ==========================================================================
   BLANK MODE  (?blank=true — plain page for embedding in an iframe)
   Transparent, black text with a soft white halo, large 28 px type.
   ========================================================================== */
.blank-mode body {
	padding: 5px;
	background: transparent;
	color: #000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 28px;
	text-shadow: .7px .7px 0 #fff, 0 0 .4px #fff;
	transition: none;
}
.blank-mode .explorer-container   { max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.blank-mode h1.main-title         { margin: 5px auto; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 1.5em; letter-spacing: normal; color: #000; text-shadow: 0 0 .8px #fff, 0 0 1.6px #fff; }
.blank-mode .second-title         { margin: 3px auto 10px; font-size: 1.2em; font-style: normal; color: #333; }
.blank-mode .navigation-controls,
.blank-mode .bottom-navigation-controls { margin: 5px 0; }
.blank-mode .back-button          { padding: 3px 6px; border: 1px solid #ccc; border-radius: 3px; background: #f0f0f0; font-size: .9em; }
.blank-mode .back-button img      { filter: none; }
.blank-mode .breadcrumb,
.blank-mode .breadcrumb a,
.blank-mode .breadcrumb [aria-current] { color: #000; }
.blank-mode .filter-box           { font-size: .6em; border-color: #ccc; background: #fff; color: #000; text-shadow: none; }
.blank-mode .table.file-list-table { margin-top: 5px; }
.blank-mode .table td             { padding: 3px 5px; font-size: 1em; color: #000; border-bottom: 1px solid #eee; }
.blank-mode .table .row.one,
.blank-mode .table .row.two       { background: transparent; }
.blank-mode .table .row:hover     { background: #f5f5f5; }
.blank-mode .table .row.audio-playing-row { outline: 0; background: #e8f4ff; }
.blank-mode .table .icon          { width: 35px; padding-right: 6px; }
.blank-mode .table a.item,
.blank-mode .table a.item:visited,
.blank-mode .table a.item.dir     { color: #000; font-weight: normal; }
.blank-mode .table a.item:hover   { color: #333; }
.blank-mode .error-message        { padding: 5px; text-align: left; color: #c00; background: #ffe0e0; border: 1px solid #c00; }
.blank-mode .direct-link          { clear: both; margin: 15px 0 10px; text-align: center; font-size: 12px; }
.blank-mode .direct-link a        { color: #333; }
.blank-mode .now-playing          { font-size: 16px; text-shadow: none; color: #000; background: #fff; border-color: #ccc; }
.blank-mode .np-title             { color: #000; }
.blank-mode .np-toggle            { background: #1976d2; color: #fff; }
.blank-mode .np-seek              { accent-color: #1976d2; }
.blank-mode.np-open body          { padding-bottom: 84px; }
