2025-06-01 20:28:11 +00:00

370 lines
6.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Ensure html and body take full height */
html, body {
background-color: var(--light-background);
color: var(--main-text-color);
height: 100%;
margin: 0;
/* padding: 0; */
}
/* Global Styles */
body {
font-family: 'Helvetica Neue', Arial, sans-serif;
padding-top: 70px; /* Adjust to your header height */
overflow-x: hidden; /* Prevent horizontal scroll */
}
/* Header styles */
.site-header {
background-color: var(--dark-background);
color: var(--header-text-color);
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
display: flex;
align-items: center;
padding: 10px 20px;
}
.site-header img.logo {
height: 50px;
margin-right: 15px;
}
.site-header h1 {
font-size: 1.5em;
margin: 0;
}
.wrapper {
display: grid;
grid-template-rows: auto 1fr auto;
min-height: 100%;
padding-bottom: 200px;
}
.container {
max-width: 1200px;
width: 90%;
margin: 0 auto;
padding: 20px 0;
}
.container a {
font-size: 18px;
}
.container-fluid {
padding: 20px;
}
/* Breadcrumb Styles */
.breadcrumb a {
font-size: 19px;
text-decoration: none;
color: var(--main-text-color);
}
.breadcrumb span {
font-size: 19px;
color: #ccc;
margin-left: 5px;
margin-right: 5px;
margin-bottom: 10px;
}
/* Admin Nav Styles */
.admin-nav {
color: #ccc;
border: 1px solid #ccc;
padding: 10px;
background-color: #979797;
}
.admin-nav a {
color: #ccc;
text-decoration: none;
padding: 5px 0;
}
/* List Styles */
ul {
list-style-type: none;
padding: 0;
}
/* mouse symbol for links */
div.directory-item, li.directory-item, li.file-item, li.link-item,
div.directory-item a, li.directory-item a, li.file-item a, li.link-item a {
cursor: pointer;
}
/* Directory Items (in a list) */
.directory-item, .link-item, .directory-item, .file-item {
margin-bottom: 10px;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
padding: 10px 15px;
}
/* Grid Layout for Directories */
.directories-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 0 10px;
text-align: center;
}
/* File Item Styles (for both music and image files) */
.file-item, .directory-item{
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
/* Link Styles */
.directory-link,
.link-link,
a.play-file {
color: var(--player-text-color);
text-decoration: none;
word-break: break-all;
}
a.show-transcript {
text-decoration: none;
color: var(--main-text-color);
font-size: 20px;
margin-left: 10px;
}
a.show-transcript:hover {
color: rgb(113, 146, 167);
}
.highlight {
background-color: yellow;
}
a.create-share {
text-decoration: none;
color: var(--main-text-color);
font-size: 20px;
margin-left: 10px;
}
a.create-share:hover {
color: rgb(113, 146, 167);
}
.currently-playing {
background-color: var(--selected-background);
}
/* Footer Player Styles */
footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: var(--dark-background);
color: #fff;
padding: 7px;
text-align: center;
z-index: 1000; /* Make sure it sits on top */
display: flex;
align-items: center;
justify-content: center;
}
/* Modal Styles */
#transcriptModal {
display: none;
position: fixed;
z-index: 2000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.7);
}
#transcriptModal .modal-content {
background-color: #fff;
margin: 5% auto;
padding: 20px;
border-radius: 5px;
width: 90%;
max-width: 800px;
position: relative;
max-height: 80vh;
overflow-y: auto;
}
#transcriptModal .close {
position: absolute;
right: 15px;
top: 10px;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
/* Basic Markdown Styles */
#transcriptContent h1,
#transcriptContent h2,
#transcriptContent h3 {
border-bottom: 1px solid #eee;
padding-bottom: 5px;
}
#transcriptContent p {
line-height: 1.6;
}
#transcriptContent pre {
background-color: #f6f8fa;
padding: 10px;
overflow-x: auto;
}
/* Center the reload control */
#directory-controls {
text-align: center;
margin-top: 20px;
}
/* Style the button (remove border, background, etc.) */
#reload-button {
background: none;
border: none;
cursor: pointer;
padding: 0;
}
/* Add a rotation animation */
@keyframes rotate-icon {
0% { transform: rotate(0deg); }
100% { transform: rotate(180deg); }
}
#reload-button svg {
animation: none;
}
#reload-button svg.rotate {
animation: rotate-icon 0.5s linear;
transition: opacity 1s ease;
opacity: 0;
cursor: auto;
}
/* IMAGE GRID */
.images-grid {
display: grid;
grid-template-columns: repeat(auto-fill, 150px);
grid-auto-rows: 150px;
gap: 14px;
}
.image-item {
position: relative;
overflow: hidden;
border: 2px solid #ccc;
border-radius: 8px;
background: #f9f9f9;
}
/* the filename overlay, centered at bottom */
.image-item .file-name {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 4px 0;
text-align: center;
font-size: 12px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
box-sizing: border-box;
transition: opacity 0.3s;
opacity: 1;
pointer-events: none;
}
/* once loaded, hide the filename overlay */
.image-item.loaded .file-name {
opacity: 0.5;
}
/* thumbnail styling unchanged */
.thumbnail {
width: 100%;
height: 100%;
object-fit: cover;
}
/* pop when loaded */
.image-item.loaded .thumbnail {
transform: scale(1.05);
}
.qr-code {
max-width: 300px;
display: block;
margin: auto;
}
.card {
margin-bottom: 20px;
}
.locked { background-color:#eee; }
.unlocked { background-color: #fff3cd; }
/* full-screen semi-transparent backdrop */
#fullscreen-loader {
position: fixed;
top: 0; left: 0;
width: 100vw; height: 100vh;
background: rgba(0,0,0,0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 9999; /* ensure its on top */
}
/* your spinner graphic */
.loader {
border: 4px solid rgba(255,255,255,0.3);
border-top-color: #fff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.card-body.collapsable {
display: none;
transition: max-height 0.3s ease;
overflow: hidden;
}
.card-body.collapsable.show {
display: block;
max-height: 1000px;
}
.toggle-icon {
font-size: 1.5rem;
user-select: none;
}
.toggle-icon:hover {
color: #007bff;
}