Files
PinePods-nix/PinePods-0.8.2/web/static/styles.css
2026-03-03 10:57:43 -05:00

5923 lines
128 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.

/* static/styles.css */
:root {
--button-color: #8b949e;
/* Default button color */
--background-color: #3c4252;
/* Default background color */
--text-color: #f6f5f4;
--button-color: #3e4555;
--container-button-color: transparent;
--button-text-color: #f6f5f4;
--text-secondary-color: #f6f5f4;
--accent-color: #6d747f;
--prog-bar-color: #3550af;
--error-color: red;
--bonus-color: black;
--border-color: 000000;
--secondary-background: #2e3440;
--standout-color: #6e8e92;
--hover-color: #5d80aa;
--link-color: #5d80aa;
--container-background: #2b2f3a;
--transparent-background: rgba(63, 57, 90, 0.089);
--alert-color: #880101;
--warning-color: #ffcc00;
--success-color: #00cc00;
--check-box-color: #ffffff;
}
body {
background-color: var(--background-color);
min-height: 100vh;
margin: 0;
/* Default background color */
/* Other global styles */
}
.main-container {
max-width: 1200px;
/* Set the maximum width you desire */
margin: 0 auto;
/* This centers the div */
padding: 0 20px;
}
.login-link {
color: var(--link-color);
/* Default link color */
}
/* Base container styling */
.episode-description-container {
font-size: 1rem;
line-height: 1.3;
color: var(--text-color);
}
/* Headers */
.episode-description-container h1,
.episode-description-container h2,
.episode-description-container h3,
.episode-description-container h4,
.episode-description-container h5,
.episode-description-container h6 {
margin: 1.5em 0 0.75em;
font-weight: 600;
line-height: 1.3;
}
.episode-description-container h1 {
font-size: 1.75em;
}
.episode-description-container h2 {
font-size: 1.5em;
}
.episode-description-container h3 {
font-size: 1.25em;
}
.episode-description-container h4 {
font-size: 1.1em;
}
.episode-description-container h5,
.episode-description-container h6 {
font-size: 1em;
}
/* Paragraphs and spacing */
.episode-description-container p {
margin: 1em 0;
}
.episode-description-container p + p {
margin-top: 1.5em;
}
/* Lists */
.episode-description-container ul,
.episode-description-container ol {
margin: 1em 0;
padding-left: 2em;
}
.episode-description-container li {
margin: 0.5em 0;
line-height: 1.6;
}
.episode-description-container ul {
list-style-type: disc;
}
.episode-description-container ul ul {
list-style-type: circle;
}
.episode-description-container ol {
list-style-type: decimal;
}
/* Links */
.episode-description-container a {
color: var(--link-color);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 0.2s ease;
}
.episode-description-container a:hover {
border-bottom-color: currentColor;
}
/* Blockquotes */
.episode-description-container blockquote {
margin: 1.5em 0;
padding: 0.5em 1em;
border-left: 4px solid var(--border-color);
background: var(--blockquote-bg);
font-style: italic;
}
/* Code blocks */
.episode-description-container code {
background: var(--code-bg);
padding: 0.2em 0.4em;
border-radius: 3px;
font-family: monospace;
font-size: 0.9em;
}
.episode-description-container pre {
background: var(--code-bg);
padding: 1em;
border-radius: 4px;
overflow-x: auto;
margin: 1.5em 0;
}
.episode-description-container pre code {
background: none;
padding: 0;
}
/* Images */
.episode-description-container img {
max-width: 100%;
height: auto;
margin: 1.5em 0;
border-radius: 4px;
}
/* Tables */
.episode-description-container table {
width: 100%;
border-collapse: collapse;
margin: 1.5em 0;
}
.episode-description-container th,
.episode-description-container td {
padding: 0.75em;
border: 1px solid var(--border-color);
text-align: left;
}
.episode-description-container th {
background: var(--table-header-bg);
font-weight: 600;
}
/* Definition lists */
.episode-description-container dl {
margin: 1.5em 0;
}
.episode-description-container dt {
font-weight: 600;
margin-top: 1em;
}
.episode-description-container dd {
margin-left: 2em;
margin-top: 0.5em;
}
/* Horizontal rules */
.episode-description-container hr {
margin: 2em 0;
border: none;
border-top: 1px solid var(--border-color);
}
/* Bold and italic */
.episode-description-container strong {
font-weight: 600;
}
.episode-description-container em {
font-style: italic;
}
/* Special spacing for specific element combinations */
.episode-description-container h2 + p,
.episode-description-container h3 + p,
.episode-description-container h4 + p {
margin-top: 0.75em;
}
.episode-description-container ul + p,
.episode-description-container ol + p {
margin-top: 1.5em;
}
/* CSS Variables for theming */
:root {
--text-color: #333;
--link-color: #0066cc;
--border-color: #ddd;
--blockquote-bg: #f8f8f8;
--code-bg: #f5f5f5;
--table-header-bg: #f5f5f5;
}
/* Dark mode support */
@media (prefers-color-scheme: dark) {
:root {
--text-color: #e0e0e0;
--link-color: #66b3ff;
--border-color: #444;
--blockquote-bg: #2a2a2a;
--code-bg: #2a2a2a;
--table-header-bg: #2a2a2a;
}
}
.item_container-text.episode-description-container a {
color: var(--link-color);
/* Replace #yourColorCode with the color you want */
text-decoration: none;
/* Example property, adjust as needed */
}
.episode-layout-container-shared {
padding-top: 20px;
}
.item_container-text.episode-description-container a:hover {
color: var(--hover-color);
/* Replace #hoverColorCode with the color you want for hover state */
text-decoration: underline;
/* Example property, adjust as needed */
}
#login-page {
background-image: url("./assets/backgrounds/2.jpg");
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}
.line-clamp-2 {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.search-page-container {
max-width: 1200px;
/* Set the maximum width you desire */
margin: 0 auto;
/* This centers the div */
padding: 0 40px;
}
.episode-image {
width: 100%;
max-width: 200px;
max-height: 200px;
object-fit: cover;
align-self: flex-start;
margin-top: 10px;
margin-bottom: 10px;
border-radius: 10px;
}
@media (max-width: 768px) {
/* Adjust breakpoint as needed */
.episode-image {
max-width: 100px;
/* Smaller max width for smaller screens */
max-height: 100px;
/* Smaller max height for smaller screens */
width: 100px;
height: 100px;
}
}
.playlist-modal-background {
position: fixed;
top: 5vh;
right: 0;
left: 0;
bottom: 5vh;
z-index: 50;
display: flex;
justify-content: center;
align-items: start;
width: 100%;
height: 90vh;
background-color: rgba(0, 0, 0, 0.25);
overflow-y: auto;
padding: 1rem;
}
.playlist-modal-container {
position: relative;
width: 100%;
max-width: 42rem;
background-color: var(--container-background);
border-radius: 0.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.playlist-modal-header {
position: sticky;
top: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 1.25rem;
background-color: var(--secondary-background);
border-bottom: 1px solid var(--border-color);
border-top-left-radius: 0.5rem;
border-top-right-radius: 0.5rem;
color: var(--text-color);
}
.playlist-modal-close {
background-color: transparent;
padding: 0.5rem;
border-radius: 0.375rem;
color: var(--text-color);
}
.playlist-modal-close:hover {
background-color: var(--hover-color);
}
.playlist-modal-content {
padding: 1.25rem;
background-color: var(--container-background);
}
.playlist-form {
display: flex;
flex-direction: column;
gap: 1.25rem;
}
.playlist-input-group {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.playlist-input-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--text-color);
}
.playlist-modal-input {
width: 100%;
padding: 0.625rem;
background-color: var(--secondary-background);
border: 1px solid var(--border-color);
border-radius: 0.375rem;
color: var(--text-color);
}
.playlist-modal-input:focus {
outline: none;
border-color: var(--hover-color);
}
.playlist-filters-section {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.playlist-checkbox-container {
display: flex;
align-items: center;
gap: 0.5rem;
}
.playlist-checkbox-container input[type="checkbox"] {
accent-color: var(--accent-color);
}
.playlist-duration-inputs {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0.75rem;
}
.playlist-submit-btn {
width: 100%;
padding: 0.75rem;
background-color: var(--button-color);
color: var(--button-text-color);
border-radius: 0.375rem;
font-weight: 500;
margin-top: 1rem;
transition: background-color 0.2s;
}
.playlist-submit-btn:hover:not(:disabled) {
background-color: var(--hover-color);
}
.playlist-submit-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.drawer-hr {
border-color: var(--text-color);
}
.drawer-burger {
background-color: var(--text-color);
}
.drawer-button {
background-color: var(--button-color);
color: var(--accent-color);
/* Assuming you want white text */
padding: 0.5rem 1rem;
border-radius: 0.25rem;
cursor: pointer;
/* Other button styles */
}
.drawer-icon {
z-index: 49;
/* Higher than the search bar's z-index */
position: fixed;
top: 13px;
left: 10px;
padding: 4px;
color: var(--text-color);
/* Other styles as needed */
}
.drawer-background {
background-color: var(--secondary-background);
position: fixed;
/* Other background styles */
}
.drawer-text a {
color: var(--text-color);
}
.drawer-text {
color: var(--text-color);
}
/*body.no-scroll {*/
/* overflow: hidden; !* Prevents scrolling when drawer is open *!*/
/*}*/
.error-snackbar {
position: fixed;
left: 50%;
bottom: 20px;
transform: translateX(-50%);
background-color: var(--error-color);
color: var(--text-color);
padding: 12px 24px;
border-radius: 4px;
z-index: 1000;
/* Ensure it's above other elements */
display: flex;
justify-content: center;
align-items: center;
}
.info-snackbar {
position: fixed;
left: 50%;
bottom: 20px;
transform: translateX(-50%);
background-color: var(--standout-color);
color: var(--text-color);
padding: 12px 24px;
border-radius: 4px;
z-index: 1000;
/* Ensure it's above other elements */
display: flex;
justify-content: center;
align-items: center;
}
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
z-index: 50;
margin: 0 !important; /* Override any margins */
padding: 0;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
}
/* Remove the space utilities that are causing the gap */
.modal-overlay {
--tw-space-x-reverse: 0;
margin-right: 0; /* Override the calc margin */
margin-left: 0; /* Override the calc margin */
}
.modal-content {
background-color: var(--background-color); /* Equivalent to bg-white */
padding: 1.5rem; /* Equivalent to p-6 */
border-radius: 0.5rem; /* Equivalent to rounded-lg */
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); /* Equivalent to shadow-xl */
}
.spinner {
width: 4rem; /* Equivalent to h-16 w-16 */
height: 4rem;
border-top: 2px solid var(--link-color); /* Equivalent to border-t-2 border-blue-500 */
border-bottom: 2px solid var(--link-color); /* Equivalent to border-b-2 */
border-radius: 50%; /* Equivalent to rounded-full */
animation: spin 1s linear infinite; /* Equivalent to animate-spin */
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.modal-title {
font-size: 1.25rem; /* Equivalent to text-xl */
font-weight: 600; /* Equivalent to font-semibold */
color: var(--text-color);
}
.modal-subtitle {
font-size: 0.875rem; /* Equivalent to text-sm */
color: var(--text-color); /* Equivalent to text-gray-600 */
}
.empty-episodes-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-top: 4rem; /* Adds spacing from the top */
padding: 2rem; /* Adds some padding around the content */
text-align: center;
}
.empty-episodes-container .logo {
width: 96px; /* Fixed size for the logo */
height: 96px;
margin-bottom: 1.5rem; /* Spacing between logo and text */
}
.empty-episodes-container .page-paragraphs {
max-width: 600px; /* Constrains text width for better readability */
margin: 0.75rem 0; /* Vertical spacing between text elements */
}
.empty-episodes-container h1.page-paragraphs {
font-size: 1.5rem;
font-weight: 600;
margin-bottom: 1rem;
}
.empty-episodes-container p.page-paragraphs {
font-size: 1rem;
line-height: 1.5;
color: var(--text-color-secondary, #666);
}
.episodes-container {
padding-top: 80px;
/* Adjust the value to the height of your search bar */
}
.center-text {
align-items: center;
justify-content: center;
text-align: center;
}
.logo {
max-width: 100px;
/* Adjust size as needed */
margin-bottom: 20px;
}
.search-bar-container {
display: flex;
align-items: center;
justify-content: end;
padding: 10px 20px;
background-color: var(--secondary-background);
/* Adjust the color as needed */
position: fixed;
/* Fix the position relative to the viewport */
top: 0;
/* Align to the top of the viewport */
left: 0;
/* Align to the left of the viewport */
right: 0;
/* Ensure it extends to the right of the viewport */
z-index: 49;
/* Make sure it stays on top of other content */
}
/* Category UI styles */
.category-input {
width: 100%;
padding: 0.75rem 1rem;
padding-right: 6rem;
border: 1px solid var(--border-color);
background-color: var(--background-color);
color: var(--text-color);
border-radius: 0.5rem;
transition: all 0.2s ease;
}
.category-input:focus {
outline: none;
border-color: var(--hover-color);
box-shadow: 0 0 0 2px rgba(var(--link-color-rgb), 0.2);
}
.category-input::placeholder {
color: var(--text-secondary-color);
}
.category-tag {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 0.75rem;
background-color: var(--secondary-background);
color: var(--text-color);
border-radius: 0.5rem;
transition: background-color 0.2s ease;
}
.category-tag:hover {
background-color: var(--hover-background);
}
.category-remove-btn {
display: flex;
align-items: center;
justify-content: center;
min-width: 2.5rem; /* 40px touch target */
min-height: 2.5rem; /* 40px touch target */
margin: -0.5rem -0.75rem -0.5rem 0; /* Negative margin to maintain visual spacing */
padding: 0.5rem;
border-radius: 0.375rem;
color: var(--text-color);
transition: all 0.2s ease;
}
.category-remove-btn:hover {
background-color: var(--destructive-color);
color: var(--destructive-text);
}
.category-add-btn {
position: absolute;
right: 0.5rem;
top: 50%;
transform: translateY(-50%);
display: flex;
align-items: center;
gap: 0.5rem;
height: 2.5rem; /* Consistent height */
padding: 0 1rem;
background-color: var(--primary-color);
color: var(--primary-text);
border-radius: 0.375rem;
transition: background-color 0.2s ease;
}
.category-add-btn:hover {
background-color: var(--primary-hover);
}
/* Mobile optimizations */
@media (max-width: 640px) {
.category-add-btn {
padding: 0;
width: 2.5rem;
justify-content: center;
}
}
.search-input,
.search-btn {
box-sizing: border-box;
line-height: normal;
}
.search-input-dropdown-border {
border: 1px solid var(--border-color);
background-color: var(--background-color);
}
.search-input {
padding: 5px 10px;
background-color: var(--background-color);
border-radius: 4px;
color: var(--text-color);
outline: none;
border: none;
}
.search-input:focus {
border-color: var(--hover-color);
ring-color: var(--link-color);
}
.search-input::placeholder {
color: var(--text-secondary-color);
}
.search-source {
padding: 5px 10px;
margin-right: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
/* Search component styles */
.search-btn {
background-color: transparent;
color: var(--text-color);
border-color: transparent;
cursor: pointer;
transition: transform 0.2s ease;
}
.search-btn:hover, .search-btn:focus {
transform: scale(1.05);
}
.search-button:focus {
outline-color: var(--hover-color);
ring-color: var(--link-color);
}
/* Enhanced styling for the mobile dropdown */
.search-drop-solid {
position: absolute;
top: 100%;
right: 0;
z-index: 10;
background-color: var(--accent-color);
padding: 16px;
margin-bottom: 10px;
/* More pronounced shadow for depth */
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
/* Rounded corners for modern look */
border-radius: 12px;
/* Subtle border */
border: 1px solid var(--border-color);
/* Add glass-like effect with slight opacity if supported */
background-color: var(--secondary-background);
}
/* Animation for showing and hiding dropdown */
.dropdown-visible {
animation: dropdownFadeIn 0.3s ease-out forwards;
transform-origin: top center;
}
.dropdown-hiding {
animation: dropdownFadeOut 0.3s ease-in forwards;
transform-origin: top center;
}
@keyframes dropdownFadeIn {
0% {
opacity: 0;
transform: translateY(-10px) scale(0.98);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@keyframes dropdownFadeOut {
0% {
opacity: 1;
transform: translateY(0) scale(1);
}
100% {
opacity: 0;
transform: translateY(-10px) scale(0.98);
}
}
/* Enhancing the styling for the buttons in dropdown */
.search-drop-button {
color: var(--text-color);
margin-right: 10px;
border-radius: 8px;
transition: all 0.2s ease;
background-color: var(--button-color);
border: 1px solid var(--border-color);
}
.search-drop-button:hover {
background-color: var(--container-button-color);
transform: translateY(-2px);
}
.search-drop-button.active {
background-color: var(--hover-color);
color: var(--text-color);
border: 1px solid var(--border-color);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
/* Input styling within dropdown */
.search-drop-solid .search-input {
border-radius: 8px;
background-color: var(--container-background);
border: 1px solid var(--border-color);
color: var(--text-color);
transition: all 0.2s ease;
padding: 10px 12px;
}
.search-drop-solid .search-input:focus {
background-color: var(--container-background);
border-color: var(--hover-color);
box-shadow: 0 0 0 2px var(--hover-color);
outline: none;
}
/* Search button styling within dropdown */
.search-drop-solid .search-btn {
width: 100%;
background-color: var(--hover-color);
color: var(--text-color);
font-weight: 600;
border-radius: 8px;
padding: 10px;
margin-top: 4px;
border: none;
transition: all 0.2s ease;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.search-drop-solid .search-btn:hover,
.search-drop-solid .search-btn:focus {
background-color: var(--link-color);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.search-drop-solid .search-btn:active {
transform: translateY(1px);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
/* Add this to your CSS */
.relative.inline-flex {
display: flex;
align-items: center;
}
/* styles.css */
.shorter-input {
max-width: 88%;
margin-bottom: 1px;
}
/* Additional mobile styling */
@media (max-width: 768px) {
.search-drop-solid {
width: 100%;
max-width: 300px;
right: 0;
}
/* Ensure the buttons are properly spaced */
.search-drop-button:last-child {
margin-right: 0;
}
/* Make the icons stand out more */
.search-drop-button img {
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
transition: all 0.2s ease;
}
.search-drop-button:hover img,
.search-drop-button.active img {
filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.3));
transform: scale(1.1);
}
}
/* Add this to your CSS */
.relative.inline-flex {
display: flex;
align-items: center;
}
/* styles.css */
.shorter-input {
max-width: 88%;
margin-bottom: 1px;
}
/* Additional mobile styling */
@media (max-width: 768px) {
.search-drop-solid {
width: 100%;
max-width: 300px;
right: 0;
}
/* Ensure the buttons are properly spaced */
.search-drop-button:last-child {
margin-right: 0;
}
/* Make the icons stand out more */
.search-drop-button img {
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
transition: all 0.2s ease;
}
.search-drop-button:hover img,
.search-drop-button.active img {
filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.3));
transform: scale(1.1);
}
}
/* Enhancing the styling for the buttons in dropdown */
.search-drop-button {
color: var(--text-color);
margin-right: 10px;
border-radius: 8px;
transition: all 0.2s ease;
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid transparent;
}
.search-drop-button:hover {
background-color: rgba(255, 255, 255, 0.1);
transform: translateY(-2px);
}
.search-drop-button.active {
background-color: var(--hover-color);
color: var(--text-color);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
/* Input styling within dropdown */
.search-drop-solid .search-input {
border-radius: 8px;
background-color: rgba(255, 255, 255, 0.07);
border: 1px solid rgba(255, 255, 255, 0.1);
color: var(--text-color);
transition: all 0.2s ease;
padding: 10px 12px;
}
.search-drop-solid .search-input:focus {
background-color: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.2);
box-shadow: 0 0 0 2px rgba(var(--hover-color-rgb, 0, 120, 212), 0.25);
}
/* Search button styling within dropdown */
.search-drop-solid .search-btn {
width: 100%;
background-color: var(--hover-color, #0078d4);
color: #ffffff;
font-weight: 600;
border-radius: 8px;
padding: 10px;
margin-top: 4px;
border: none;
transition: all 0.2s ease;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.search-drop-solid .search-btn:hover,
.search-drop-solid .search-btn:focus {
background-color: var(--active-color, #106ebe);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.search-drop-solid .search-btn:active {
transform: translateY(1px);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
/* Add this to your CSS */
.relative.inline-flex {
display: flex;
align-items: center;
}
/* styles.css */
.shorter-input {
max-width: 88%;
margin-bottom: 1px;
}
/* Additional mobile styling */
@media (max-width: 768px) {
.search-drop-solid {
width: 100%;
max-width: 300px;
right: 0;
}
/* Ensure the buttons are properly spaced */
.search-drop-button:last-child {
margin-right: 0;
}
/* Make the icons stand out more */
.search-drop-button img {
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
transition: all 0.2s ease;
}
.search-drop-button:hover img,
.search-drop-button.active img {
filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.3));
transform: scale(1.1);
}
}
/* Enhancing the styling for the buttons in dropdown */
.search-drop-button {
color: var(--text-color);
margin-right: 10px;
border-radius: 8px;
transition: all 0.2s ease;
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid transparent;
}
.search-drop-button:hover {
background-color: rgba(255, 255, 255, 0.1);
transform: translateY(-2px);
}
.search-drop-button.active {
background-color: var(--hover-color);
color: var(--text-color);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
/* Input styling within dropdown */
.search-drop-solid .search-input {
border-radius: 8px;
background-color: rgba(255, 255, 255, 0.07);
border: 1px solid rgba(255, 255, 255, 0.1);
color: var(--text-color);
transition: all 0.2s ease;
padding: 10px 12px;
}
.search-drop-solid .search-input:focus {
background-color: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.2);
box-shadow: 0 0 0 2px rgba(var(--hover-color-rgb, 0, 120, 212), 0.25);
}
/* Search button styling within dropdown */
.search-drop-solid .search-btn {
width: 100%;
background-color: var(--hover-color, #0078d4);
color: #ffffff;
font-weight: 600;
border-radius: 8px;
padding: 10px;
margin-top: 4px;
border: none;
transition: all 0.2s ease;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.search-drop-solid .search-btn:hover,
.search-drop-solid .search-btn:focus {
background-color: var(--active-color, #106ebe);
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.search-drop-solid .search-btn:active {
transform: translateY(1px);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
/* Add this to your CSS */
.relative.inline-flex {
display: flex;
align-items: center;
}
/* styles.css */
.shorter-input {
max-width: 88%;
margin-bottom: 1px;
}
/* Additional mobile styling */
@media (max-width: 768px) {
.search-drop-solid {
width: 100%;
max-width: 300px;
right: 0;
}
/* Ensure the buttons are properly spaced */
.search-drop-button:last-child {
margin-right: 0;
}
/* Make the icons stand out more */
.search-drop-button img {
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
transition: all 0.2s ease;
}
.search-drop-button:hover img,
.search-drop-button.active img {
filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.3));
transform: scale(1.1);
}
}
.no-margin {
margin-top: 0 !important;
}
.no-padding {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.chapter-select-modal {
z-index: 1000;
}
.chapter-progress-container {
width: 100%;
height: 2px;
background-color: rgba(128, 128, 128, 0.2);
margin-top: 8px;
border-radius: 1px;
overflow: hidden;
}
.chapter-progress-bar {
height: 100%;
background: var(--prog-bar-color);
transition: width 0.1s linear;
}
.current-chapter {
background-color: var(--hover-color);
}
.chapter-info {
display: flex;
flex-direction: column;
flex-grow: 1;
position: relative;
}
.modal-container {
background-color: var(--secondary-background);
border-color: var(--border-color);
color: var(--text-color);
}
.chapter-item {
display: flex;
align-items: flex-start; /* Change from center to flex-start to prevent squishing */
padding: 0.75rem;
margin: 0.5rem 0;
border-radius: 0.5rem;
background-color: var(--container-background);
transition: all 0.2s ease;
cursor: pointer; /* Add cursor pointer since whole item is clickable */
}
.chapter-item:hover {
background-color: var(--hover-color);
transform: translateX(4px);
}
.chapter-play-button {
flex-shrink: 0; /* Prevent button from shrinking */
display: flex;
align-items: center;
justify-content: center;
width: 2.5rem;
min-width: 2.5rem; /* Add min-width to prevent shrinking */
height: 2.5rem;
min-height: 2.5rem; /* Add min-height to prevent shrinking */
border-radius: 50%;
background-color: var(--button-color);
margin-right: 1rem;
transition: all 0.2s ease;
}
.chapter-play-button:hover {
background-color: var(--accent-color);
transform: scale(1.1);
}
.chapter-info {
display: flex;
flex-direction: column;
flex-grow: 1;
}
.chapter-title {
font-weight: 500;
color: var(--text-color);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1.2em; /* Add line height for better spacing */
max-height: 2.4em; /* 2 lines × 1.2em line height */
}
.chapter-time {
font-size: 0.875rem;
color: var(--text-secondary-color);
}
input[type="range"] {
accent-color: var(--prog-bar-color); /* Controls the filled part */
background: var(--unfilled-color); /* Controls the unfilled part */
}
input[type="range"]::-webkit-slider-thumb {
background-color: var(--thumb-color) !important; /* Controls thumb color */
/* rest of your existing thumb styles */
}
input[type="range"]::-moz-range-thumb {
background-color: var(--thumb-color) !important; /* Controls thumb color */
/* rest of your existing thumb styles */
}
.title {
color: var(--text-color) !important;
}
.audio-player {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 60px;
/* Initial height */
background-color: var(--secondary-background);
display: flex;
box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.3);
z-index: 500;
/* Ensure it's on top */
/* Animate the height */
transition: height 0.5s ease-in-out;
}
.audio-player .line-content {
display: flex;
justify-content: space-between;
align-items: center;
opacity: 1;
visibility: visible;
width: 100%;
}
.audio-player.expanded .line-content {
opacity: 0;
visibility: hidden;
}
.audio-player .top-section {
opacity: 0;
visibility: hidden;
align-items: center;
justify-content: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
.audio-player.expanded .top-section {
opacity: 1;
visibility: visible;
}
.audio-player .line-content .left-group {
display: flex;
align-items: center;
flex: 0 1 auto;
min-width: 0;
}
.audio-player .line-content .right-group {
display: flex;
align-items: center;
}
.audio-player .line-content .title {
margin-right: 10px;
}
/* .audio-player .line-content,
.audio-player .line-content .right-group {
width: 100%;
} */
.audio-player .line-content .ml-auto {
display: flex;
align-items: center;
}
.audio-player .line-content {
padding: 10px 20px;
box-sizing: border-box;
}
@keyframes fadeIn {
from {
opacity: 0;
visibility: hidden;
}
to {
opacity: 1;
visibility: visible;
}
}
.playback-speed-display {
position: relative;
width: 100%;
padding: 10px 0;
}
.speed-text {
position: absolute;
left: 215px;
top: 50%;
transform: translateY(-50%);
z-index: 1;
color: var(--text-color);
}
.slider {
width: 100%;
display: block;
margin: auto;
}
@media (max-width: 768px) {
.speed-text {
position: relative;
left: auto;
top: auto;
transform: none;
text-align: center;
display: block;
width: 100%;
margin-bottom: 10px;
}
.speed-display-container {
flex-direction: column-reverse;
align-items: center;
}
}
.playback-speed-display {
animation: fadeIn 0.3s ease-out forwards;
opacity: 0;
visibility: hidden;
display: flex;
align-items: center;
justify-content: center;
}
@keyframes fadeOut {
from {
opacity: 1;
visibility: visible;
}
to {
opacity: 0;
visibility: hidden;
}
}
.playback-speed-display.hidden {
animation: fadeOut 0.3s ease-out forwards;
}
.playback-speed-display.visible {
animation-name: fadeIn;
/* Only change the animation name to trigger it */
}
.audio-player .line-content .right-group {
justify-content: flex-end;
padding-right: 5px;
flex: 1;
display: flex;
align-items: center;
gap: 8px;
}
/* Seek bar container for minimized player */
.audio-player .line-content .seek-bar-container {
flex: 1;
max-width: 50%;
min-width: 200px;
margin-left: 16px;
}
/* Better responsive title sizing - dynamic space allocation */
.audio-player .line-content .title {
flex: 1 1 auto;
min-width: 150px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-right: 24px;
max-width: calc(100vw - 400px); /* Reserve space for controls */
}
/* Responsive breakpoints - dynamic space allocation */
@media (min-width: 768px) {
.audio-player .line-content .title {
max-width: calc(100vw - 350px);
}
}
@media (min-width: 1200px) {
.audio-player .line-content .seek-bar-container {
max-width: 45%;
}
.audio-player .line-content .title {
max-width: calc(100vw - 320px);
}
}
@media (min-width: 1600px) {
.audio-player .line-content .seek-bar-container {
max-width: 50%;
}
.audio-player .line-content .title {
max-width: calc(100vw - 300px);
}
}
@media (min-width: 2000px) {
.audio-player .line-content .seek-bar-container {
max-width: 55%;
}
.audio-player .line-content .title {
max-width: calc(100vw - 280px);
}
}
@media (max-width: 640px) {
.audio-player .line-content .right-group {
padding-right: 0;
}
}
.audio-player.expanded {
height: 100vh;
/* Full viewport height when expanded */
bottom: 0;
/* Keep at bottom */
align-items: center;
justify-content: space-between;
}
.audio-player-line {
/* Add these properties here */
display: flex;
align-items: center;
justify-content: space-between;
}
.audio-player .top-section,
.audio-player .line-content {
transition: opacity 0.5s linear;
position: absolute;
width: 100%;
}
.audio-player .top-section .retract-button {
position: absolute;
top: 25px;
/* Adjust as needed */
left: 45px;
/* Adjust as needed */
border: none;
/* Remove the border */
background: none;
/* Remove the background */
padding: 0;
/* Remove the padding */
cursor: pointer;
/* Cursor as pointer */
font-size: 48px;
}
.audio-player .top-section .retract-button {
font-size: 48px;
/* Adjust as needed */
}
.audio-player .top-section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
.audio-image-container {
display: flex;
justify-content: center;
margin: 10px 0;
}
.audio-image-container img {
border-radius: 8px; /* Adding rounded corners */
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
cursor: pointer;
}
.audio-image-container img:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.audio-player.expanded .line-content,
.audio-player.expanded .top-section {
transition:
visibility 0s 0.5s,
opacity 0.5s linear;
}
.audio-player button {
background-color: transparent;
/* Button background color */
padding: 10px 15px;
/* Padding inside the button */
margin-right: 20px;
/* Margin to the right */
cursor: pointer;
/* Cursor as pointer */
border-radius: 5px;
/* Rounded corners */
}
.audio-player .line-content .title {
text-align: left;
color: var(--text-color);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
flex-basis: 90%;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
cursor: pointer;
}
/* Mobile/tablet progress bar container */
.audio-player .mobile-progress-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 2px;
background-color: rgba(128, 128, 128, 0.2);
overflow: hidden;
}
.audio-player .mobile-progress-bar {
height: 100%;
background: var(--prog-bar-color);
transition: width 0.1s linear;
}
/* Hide on desktop */
@media (min-width: 769px) {
.audio-player .mobile-progress-container {
display: none;
}
}
/* Adjust padding for mobile/tablet */
@media (max-width: 768px) {
.audio-player .line-content {
padding-top: 12px;
}
}
.audio-player .top-section {
display: flex;
justify-content: center;
}
.audio-player .top-section .title {
text-align: center;
margin: 20px 0;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
cursor: pointer;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
max-width: calc(100% - 40px);
font-size: 1em; /* Default for mobile */
}
@media (min-width: 768px) {
.audio-player .top-section .title {
font-size: 1.5em;
}
}
.audio-player .top-section .scrub-bar {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
padding: 10px 20px;
font-size: 0.9em;
margin: 10px auto;
gap: 10px; /* Use gap instead of margins for better spacing */
}
.audio-player .top-section .scrub-bar span {
flex-shrink: 0;
color: var(--text-color);
min-width: 65px; /* Ensure consistent width for time displays */
text-align: center;
}
.audio-player .top-section .scrub-bar input[type="range"] {
-webkit-appearance: none;
appearance: none;
width: 100%;
background: transparent; /* Remove default background */
height: 4px;
cursor: pointer;
margin: 0; /* Remove default margins */
padding: 0; /* Remove default padding */
}
/* Thumb styles */
.audio-player
.top-section
.scrub-bar
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 12px;
height: 12px;
background: #1db954;
border-radius: 50%;
cursor: pointer;
margin-top: -4px; /* Centers the thumb on the track */
border: none;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
transition: transform 0.1s ease;
}
.audio-player .top-section .scrub-bar input[type="range"]::-moz-range-thumb {
width: 12px;
height: 12px;
background: #1db954;
border-radius: 50%;
cursor: pointer;
border: none;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
transition: transform 0.1s ease;
}
/* Track styles */
.audio-player
.top-section
.scrub-bar
input[type="range"]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
border-radius: 2px;
background: var(--prog-bar-color);
border: none;
}
.audio-player .top-section .scrub-bar input[type="range"]::-moz-range-track {
width: 100%;
height: 4px;
border-radius: 2px;
background: var(--prog-bar-color);
border: none;
}
/* Hover effects */
.audio-player
.top-section
.scrub-bar
input[type="range"]:hover::-webkit-slider-thumb {
transform: scale(1.2);
}
.audio-player
.top-section
.scrub-bar
input[type="range"]:hover::-moz-range-thumb {
transform: scale(1.2);
}
/* Active state */
.audio-player
.top-section
.scrub-bar
input[type="range"]:active::-webkit-slider-thumb {
transform: scale(1.1);
background: #1ed760;
}
.audio-player
.top-section
.scrub-bar
input[type="range"]:active::-moz-range-thumb {
transform: scale(1.1);
background: #1ed760;
}
/* Container wrapper for better touch targets */
.scrub-bar-wrapper {
position: relative;
padding: 10px 0;
flex-grow: 1;
}
/* Remove focus outline but keep it accessible */
.audio-player .top-section .scrub-bar input[type="range"]:focus {
outline: none;
}
.audio-player
.top-section
.scrub-bar
input[type="range"]:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 2px rgba(29, 185, 84, 0.2);
}
.audio-player
.top-section
.scrub-bar
input[type="range"]:focus::-moz-range-thumb {
box-shadow: 0 0 0 2px rgba(29, 185, 84, 0.2);
}
.lower-scrub input[type="range"].flex-grow {
-webkit-appearance: none;
/* Necessary to remove default styling in WebKit browsers */
width: 100%;
height: 5px;
/* Adjust the height of the slider track */
/* background: var(--prog-bar-color, #ddd); Default background color */
cursor: pointer;
outline: none;
}
/* Track styles for WebKit browsers */
.lower-scrub input[type="range"].flex-grow::-webkit-slider-runnable-track {
width: 100%;
height: 5px;
cursor: pointer;
animate: 0.2s;
background: linear-gradient(
to right,
var(--link-color, #000) 50%,
var(--prog-bar-color, #ddd) 50%
);
}
/* Since Firefox does not support styling the filled part directly,
we only set the overall track appearance */
.lower-scrub input[type="range"].flex-grow::-moz-range-track {
width: 100%;
height: 5px;
cursor: pointer;
background: var(--prog-bar-color, #ddd);
}
.search-bar-input {
background-color: var(--container-background);
color: var(--text-color);
}
.search-input::placeholder {
color: var(--text-color);
}
.search-page-button {
background-color: var(--button-color);
color: var(--button-text-color);
cursor: pointer;
transition: background-color 0.3s ease;
}
.search-page-button:hover {
background-color: var(--hover-color);
}
.audio-player span {
text-align: left;
/* Align text to the left */
color: var(--text-color);
}
.audio-player .top-section img {
max-width: 100%;
/* Ensure the image doesn't exceed its container */
height: auto;
/* Maintain aspect ratio */
border-radius: 1;
/* Remove the rounded effect */
}
/* Small screens */
@media (max-width: 600px) {
.audio-player .top-section img {
width: 50vw;
/* 50% of the viewport width */
}
}
/* Medium screens */
@media (min-width: 601px) and (max-width: 1024px) {
.audio-player .top-section img {
width: 40vw;
/* 40% of the viewport width */
}
}
/* Large screens */
@media (min-width: 1025px) {
.audio-player .top-section img {
width: 30vw;
/* 30% of the viewport width */
}
}
.top-section {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 9999;
height: 100vh;
background: var(--background-color);
}
.audio-player .artwork {
width: 40px;
/* Adjust as needed */
height: 40px;
/* Adjust as needed */
border-radius: 50%;
/* Make the image a circle */
object-fit: cover;
/* Resize the image to cover the element */
margin-right: 10px;
/* Add some space to the right of the image */
}
.artwork.playing {
animation: spin 3s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.episode-description-container a {
color: blue;
/* or any color you prefer */
text-decoration: underline;
}
.page_header {
color: var(--text-color);
}
.page-paragraphs {
color: var(--text-color);
}
.page-subtitles {
color: var(--text-color);
font-size: 1.9rem;
}
.header-text {
font-weight: bold;
margin-bottom: 5px;
color: var(--text-color);
}
.item-header {
display: flex;
align-items: start;
/* Ensure items are centered vertically */
background-color: var(--bonus-color);
padding: 20px;
margin-bottom: 20px;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.item-header-cover {
flex-shrink: 0;
/* Prevent the image from shrinking */
flex-basis: 25%;
/* Set a base width */
min-width: 150px;
/* Prevent the image from becoming too small */
object-fit: cover;
border-radius: 5px;
margin-right: 20px;
height: auto;
/* Adjust height automatically */
}
.header-add-button-container {
display: flex;
/* Use flexbox to center the button */
justify-content: center;
/* Center button horizontally */
width: 100%;
/* Take the full width of its parent */
padding: 10px 0;
/* Optional: Add some vertical padding */
width: 150px;
/* Fixed width for the button */
}
.header-add-button {
display: flex;
/* Use flexbox to center the button */
justify-content: center;
/* Center button horizontally */
width: 100%;
/* Take the full width of its parent */
padding: 10px 0;
/* Optional: Add some vertical padding */
width: 150px;
/* Fixed width for the button */
}
.item-header-info {
flex-grow: 1;
min-width: 0;
}
.item-header-title {
font-size: 1.5em;
/* Larger title size */
font-weight: bold;
margin-bottom: 10px;
color: var(--text-color);
margin-right: 20px;
/* Adds space between title and button */
}
.title-button-container {
display: flex;
align-items: center;
width: 100%;
/* Ensures the container takes full width */
}
.item-header-description {
color: var(--text-color);
line-height: 1.4;
margin-bottom: 15px;
}
.item-header-button {
color: var(--text-color);
background-color: var(--button-color);
margin: 15px;
}
.large-card-button {
color: var(--text-color);
background-color: var(--button-color);
margin: 15px;
}
.large-card-button:hover {
background-color: var(--hover-color);
}
.large-card-button:focus {
outline: none;
box-shadow: 0 0 0 4px var(--border-color);
}
.category-box {
display: inline-block;
background-color: var(--accent-color);
color: var(--bonus-color);
padding: 5px 10px;
margin: 5px;
border-radius: 4px;
/* Slightly rounded corners */
font-size: 0.8em;
}
.download-button {
color: var(--button-text-color) !important;
background-color: var(--button-color);
border-color: var(--border-color);
margin-bottom: 10px;
}
.save-button {
color: var(--button-text-color) !important;
background-color: var(--button-color);
border-color: var(--border-color);
}
.filter-button {
color: var(--button-text-color);
background-color: var(--button-color);
border-color: var(--border-color);
}
.filter-input {
background-color: var(--button-color);
color: var(--button-text-color);
padding: 0.7rem;
margin-bottom: 9px;
font-size: 1rem;
border-radius: 0.5rem; /* Rounded corners */
border: none;
width: 157px;
}
.filter-input-pods {
background-color: var(--button-color);
color: var(--button-text-color);
padding: 0.7rem;
font-size: 1rem;
border-radius: 0.5rem; /* Rounded corners */
border: none;
width: 157px;
}
@media (max-width: 530px) {
.filter-input {
width: 100px;
}
}
@media (max-width: 530px) {
.filter-input-pods {
width: 100px;
}
}
.filter-input::placeholder {
color: var(--button-text-color);
opacity: 0.7;
}
.filter-input-pods::placeholder {
color: var(--button-text-color);
opacity: 0.7;
}
.filter-input:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(var(--button-color), 0.5);
}
.filter-input-pods:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(var(--button-color), 0.5);
}
.filter-dropdown-pods select {
background-color: var(--button-color); /* Semi-transparent background */
color: var(--button-text-color);
padding: 0.7rem;
margin-bottom: 9px;
font-size: 1rem;
border-radius: 5px;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
background-repeat: no-repeat;
background-position-x: 98%;
background-position-y: 50%;
cursor: pointer;
padding-right: 2rem; /* Increase right padding to prevent text overlap with arrow */
background-image: url("data:image/svg+xml;utf8,<svg fill='%23FFFFFF' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
background-position: right 0.5rem center; /* Move arrow slightly more to the right */
background-repeat: no-repeat;
-webkit-appearance: none !important;
-moz-appearance: none !important;
appearance: none !important; /* Standard */
text-indent: 1px;
text-overflow: "";
padding-right: 2rem;
padding: 0.5rem 2rem 0.5rem 0.5rem; /* Adjusted padding to match py-2 px-2 */
line-height: 1.8rem;
}
.filter-dropdown select {
background-color: var(--button-color); /* Semi-transparent background */
color: var(--button-text-color);
padding: 0.7rem;
margin-bottom: 9px;
font-size: 1rem;
border-radius: 5px;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
background-repeat: no-repeat;
background-position-x: 98%;
background-position-y: 50%;
cursor: pointer;
padding-right: 2rem; /* Increase right padding to prevent text overlap with arrow */
background-image: url("data:image/svg+xml;utf8,<svg fill='%23FFFFFF' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
background-position: right 0.5rem center; /* Move arrow slightly more to the right */
background-repeat: no-repeat;
-webkit-appearance: none !important;
-moz-appearance: none !important;
appearance: none !important; /* Standard */
text-indent: 1px;
text-overflow: "";
padding-right: 2rem;
padding: 0.5rem 2rem 0.5rem 0.5rem; /* Adjusted padding to match py-2 px-2 */
margin-bottom: 0; /* Remove margin-bottom if it's causing extra space */
line-height: 2.5rem;
}
.filter-dropdown select::-ms-expand {
display: none;
}
.filter-dropdown-pods select::-ms-expand {
display: none;
}
.filter-dropdown select:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(var(--button-color), 0.5);
}
.filter-dropdown-pods select:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(var(--button-color), 0.5);
}
/* Style for when dropdown is open */
.filter-dropdown select:active {
background-color: var(--hover-color);
}
.filter-dropdown-pods select:active {
background-color: var(--hover-color);
}
/* Style for the options in the dropdown */
.filter-dropdown select option {
background-color: var(--button-color); /* Light grey background */
color: var(--text-color, #333); /* Dark grey text */
padding: 10px;
}
.filter-dropdown-pods select option {
background-color: var(--button-color); /* Light grey background */
color: var(--text-color, #333); /* Dark grey text */
padding: 10px;
}
/* Style for the hover state of options */
.filter-dropdown select option:hover,
.filter-dropdown select option:focus {
background-color: var(
--dropdown-hover-bg-color,
#e0e0e0
); /* Slightly darker on hover */
color: var(--dropdown-hover-text-color, #000); /* Black text on hover */
}
.filter-dropdown-pods select option:hover,
.filter-dropdown-pods select option:focus {
background-color: var(
--dropdown-hover-bg-color,
#e0e0e0
); /* Slightly darker on hover */
color: var(--dropdown-hover-text-color, #000); /* Black text on hover */
}
/* Style for the selected option */
.filter-dropdown select option:checked {
background-color: var(
--dropdown-selected-bg-color,
#d0d0d0
); /* Even darker for selected */
color: var(
--dropdown-selected-text-color,
#000
); /* Black text for selected */
}
.filter-dropdown-pods select option:checked {
background-color: var(
--dropdown-selected-bg-color,
#d0d0d0
); /* Even darker for selected */
color: var(
--dropdown-selected-text-color,
#000
); /* Black text for selected */
}
.input-black {
color: black; /* Set the text color to white to make it readable */
border-color: var(--border-color); /* Maintain consistent border styling */
}
.share-button {
color: var(--button-text-color);
background-color: var(--button-color);
border-color: var(--border-color);
margin-bottom: 10px;
max-width: 200px; /* Set a maximum width */
width: auto; /* Allow the button to size according to its content */
}
.share-button-mobile {
display: block; /* Makes the button block-level to use margin auto */
margin-left: auto; /* Centers the button horizontally */
margin-right: auto; /* Centers the button horizontally */
}
.text-primary {
color: var(--accent-color);
}
.checked\:bg-primary:checked {
background-color: var(--accent-color);
}
.checked\:border-primary:checked {
border-color: var(--accent-color);
}
/* Customize the focus ring */
.focus\:ring-primary:focus {
--tw-ring-color: var(--accent-color);
--tw-ring-opacity: 0.2;
}
.share:hover {
background-color: var(--hover-color);
}
.bg-container-background {
background-color: var(--secondary-background);
border-color: var(--border-color);
color: var(--text-color);
}
.podcast-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 1rem;
padding: 1rem;
max-width: 100%;
}
.podcast-grid-item {
position: relative;
overflow: hidden;
border-radius: 0.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition:
transform 0.3s ease,
box-shadow 0.3s ease;
cursor: pointer;
}
.touch-none {
touch-action: none;
}
.podcast-grid-item:hover {
transform: translateY(-5px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}
.podcast-image-container {
position: relative;
width: 100%;
padding-top: 100%; /* This creates a 1:1 aspect ratio */
overflow: hidden;
}
.podcast-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
.podcast-grid-item:hover .podcast-image {
transform: scale(1.1);
}
.podcast-info {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 0.5rem;
background-color: rgba(0, 0, 0, 0.7);
color: white;
opacity: 0;
transition: opacity 0.3s ease;
}
.podcast-grid-item:hover .podcast-info {
opacity: 1;
}
.podcast-title-grid {
font-size: 0.875rem;
font-weight: 600;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Mobile screens (3 columns) */
@media (max-width: 768px) {
.podcast-grid {
grid-template-columns: repeat(3, 1fr);
gap: 0.5rem;
padding: 0.5rem;
}
.podcast-title-grid {
font-size: 0.75rem;
}
}
/* Medium screens (4 columns) */
@media (min-width: 769px) and (max-width: 1200px) {
.podcast-grid {
grid-template-columns: repeat(4, 1fr);
}
}
/* Large screens (5 columns) */
@media (min-width: 1201px) and (max-width: 1600px) {
.podcast-grid {
grid-template-columns: repeat(5, 1fr);
}
}
/* Extra-large screens (6 columns max) */
@media (min-width: 1601px) {
.podcast-grid {
grid-template-columns: repeat(6, 1fr);
max-width: 1800px;
margin: 0 auto;
}
}
.import-box {
background-color: var(--container-background);
border-color: var(--border-color);
color: var(--text-color);
padding: 20px;
border-radius: 3px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.import-list {
display: flex;
align-items: center;
/* Aligns items vertically in the center */
gap: 8px;
}
.link {
color: var(--link-color);
text-decoration: none;
}
.modal-overlay {
position: fixed;
inset: 0;
z-index: 50;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--background-color); /* Solid background instead of transparent */
padding: 1rem;
overflow-y: auto;
}
.modal-content {
background-color: var(--secondary-background);
border: 1px solid var(--border-color);
border-radius: 0.75rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 32rem;
margin: auto; /* Center the modal */
max-height: min(95vh, 50rem); /* Limit height to 95% of viewport or 50rem */
display: flex;
flex-direction: column;
}
.modal-body {
padding: 1.5rem;
overflow-y: auto; /* Enable scrolling in the body */
flex: 1;
}
/* Ensure the header stays fixed */
.modal-header {
position: sticky;
top: 0;
background-color: var(--secondary-background);
z-index: 1;
display: flex;
align-items: center;
gap: 0.5rem;
padding: 1rem 1.5rem;
}
.modal-form-group {
margin-bottom: 1.5rem;
}
.modal-label {
display: flex;
align-items: center;
gap: 0.5rem;
color: var(--text-color);
margin-bottom: 0.5rem;
font-weight: 500;
}
.modal-select {
width: 100%;
padding: 0.5rem;
background-color: var(--container-background);
border: 1px solid var(--border-color);
border-radius: 0.375rem;
color: var(--text-color);
}
.modal-select:focus {
outline: none;
border-color: var(--accent-color);
}
.modal-button {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
padding: 0.625rem 1rem;
background-color: var(--button-color);
color: var(--button-text-color);
border-radius: 0.375rem;
transition: background-color 0.2s;
}
.modal-welcome {
display: flex;
align-items: flex-start;
gap: 0.75rem;
color: var(--text-secondary-color);
margin-bottom: 1.5rem;
}
.modal-container {
background-color: var(--secondary-background);
border-color: var(--border-color);
color: var(--text-color);
}
.playlist-modal-background {
position: fixed;
top: 0;
right: 0;
left: 0;
bottom: 0;
z-index: 50;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
min-height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
}
.playlist-modal-container {
position: relative;
padding: 1rem;
width: 100%;
max-width: 42rem;
max-height: 100%;
border-radius: 0.5rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.playlist-modal-header {
position: sticky;
top: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 1.5rem;
border-bottom: 1px solid var(--border-color);
border-top-left-radius: 0.5rem;
border-top-right-radius: 0.5rem;
background-color: var(--secondary-background);
}
.playlist-modal-close {
position: absolute;
right: 0.75rem;
color: var(--text-color-secondary);
background: transparent;
padding: 0.5rem;
border-radius: 0.375rem;
transition: all 0.2s;
}
.playlist-modal-close:hover {
background-color: var(--hover-color);
}
.playlist-modal-content {
padding: 1rem 1.5rem;
overflow-y: auto;
}
.playlist-form {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.playlist-input-group {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.playlist-input-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--text-color);
}
.playlist-modal-input {
width: 100%;
padding: 0.625rem;
border: 1px solid var(--border-color);
border-radius: 0.375rem;
background: var(--input-background);
}
.playlist-error-text {
color: var(--error-color);
font-size: 0.75rem;
font-style: italic;
}
.playlist-submit-btn {
width: 100%;
padding: 0.625rem 1.25rem;
font-weight: 500;
border-radius: 0.375rem;
background: var(--primary-color);
transition: all 0.2s;
}
.playlist-checkbox-container {
display: flex;
align-items: center;
gap: 0.5rem;
}
.playlist-duration-inputs {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0.5rem;
}
.mfa-code-box {
background-color: var(--bonus-color);
/* Replace with your desired color */
color: var(--text-color);
/* Replace with your desired color */
}
.desc-expanded {
max-height: none;
overflow: visible;
}
.desc-collapsed {
max-height: 50px;
/* or whatever max height you determine */
overflow: hidden;
text-overflow: ellipsis;
}
.desc-pod-collapsed {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 5;
/* Limit to 3 lines initially */
-webkit-box-orient: vertical;
}
.desc-pod-expanded {
display: block;
}
.item-container {
background-color: var(--container-background);
border-color: var(--border-color);
display: flex;
justify-content: space-between;
align-items: center;
/* Add this line */
overflow: visible;
transition: transform 0.1s ease;
}
.align-top-cover {
align-self: flex-start;
}
.button-container {
display: flex !important;
align-items: center !important;
justify-content: center;
/* Centers button horizontally */
line-height: 1;
}
@media (max-width: 768px) {
/* Adjust breakpoint as needed */
/* Styling for the button container */
.button-container {
display: flex;
flex-basis: 15%;
/* Adjust this percentage based on your design needs */
flex-grow: 0;
flex-shrink: 0;
flex-direction: column;
align-items: center;
/* Center align the buttons vertically */
justify-content: center;
/* Center align the buttons horizontally */
padding: 8px;
gap: 8px;
/* Space between buttons */
}
.button-container button {
width: 60px;
/* Fixed width */
height: 60px;
/* Fixed height */
border-radius: 30px;
/* Fully rounded borders */
display: flex;
align-items: center;
justify-content: center;
border: none;
/* Remove border */
}
}
.episode-button-container {
display: flex !important;
align-items: center !important;
justify-content: center;
/* Centers button horizontally */
line-height: 1;
}
@media (max-width: 768px) {
/* Adjust breakpoint as needed */
/* Styling for the button container */
.episode-button-container {
display: flex;
flex-basis: 15%;
/* Adjust this percentage based on your design needs */
flex-grow: 0;
flex-shrink: 0;
align-items: center;
/* Center align the buttons vertically */
justify-content: center;
/* Center align the buttons horizontally */
padding: 8px;
gap: 8px;
/* Space between buttons */
}
.episode-button-container button {
border-radius: 30px;
/* Fully rounded borders */
display: flex;
align-items: center;
justify-content: center;
border: none;
/* Remove border */
}
}
.item-container img {
width: 100%;
max-width: 200px;
max-height: 200px;
object-fit: cover;
align-self: flex-start;
margin-top: 10px;
margin-bottom: 10px;
border-radius: 10px;
}
@media (max-width: 768px) {
/* Adjust breakpoint as needed */
.item-container img {
max-width: 125px;
/* Smaller max width for smaller screens */
max-height: 125px;
/* Smaller max height for smaller screens */
width: 125px;
height: 125px;
}
}
@media (max-width: 530px) {
/* Adjust breakpoint as needed */
.item-container img {
max-width: 100px;
/* Smaller max width for smaller screens */
max-height: 100px;
/* Smaller max height for smaller screens */
width: 100px;
height: 100px;
}
}
@media (max-width: 530px) {
.show-on-large {
display: none;
}
}
@media (min-width: 531px) {
.show-on-large {
display: block;
}
}
/* Base styles */
.item-container-text {
font-size: 1.25rem;
/* example base size */
}
.item-description-text {
font-size: 0.9rem;
/* example base size */
}
@media (max-width: 530px) {
.flex-col.space-y-2 > :not([hidden]) ~ :not([hidden]) {
margin-top: 0 !important;
margin-bottom: 0 !important;
}
}
/* Additional styles for better alignment and consistency */
.item-container {
align-items: center;
/* Align items vertically */
justify-content: center;
/* Center items horizontally */
}
.dragging {
opacity: 0.5;
background-color: #f0f0f0;
border: 1px dashed #ccc;
}
.sliding-rail-container {
display: flex;
overflow-x: scroll;
scrollbar-width: none;
/* Hide scrollbar in Firefox */
}
.sliding-rail-container::-webkit-scrollbar {
display: none;
/* Hide scrollbar in WebKit browsers */
}
.sliding-rail-item {
min-width: 100px;
margin: 0 10px;
background-color: #f0f0f0;
border: 1px solid #ccc;
border-radius: 5px;
text-align: center;
cursor: grab;
}
.item_container-text {
color: var(--text-color);
}
.item_container-text.episode-title {
font-size: 1rem;
cursor: pointer;
/* Base font size for larger screens */
}
@media (max-width: 768px) {
/* Adjust breakpoint as needed */
.item_container-text.episode-title {
font-size: 1rem;
/* Smaller font size for smaller screens */
}
}
@media (max-width: 480px) {
/* Further adjustment for even smaller screens if needed */
.item_container-text.episode-title {
font-size: 0.875rem;
/* Even smaller font size for very small screens */
}
}
.item-container-text-link {
color: var(--standout-color);
/*background-color: var(--accent-color);*/
cursor: pointer;
}
.audio-top-button {
color: var(--text-secondary-color);
background-color: transparent;
}
@media (max-width: 768px) {
.pronounce-mobile {
width: 54px !important;
height: 54px !important;
}
.pronounce-mobile .material-icons {
font-size: 54px;
}
}
.drag-handle {
color: var(--text-secondary-color);
background-color: var(--container-button-color);
border-color: var(--text-secondary-color);
}
.drag-handle-wrapper {
display: flex;
align-items: center; /* Vertically centers the drag handle */
height: 100%; /* Ensure it spans the full height of the parent */
}
.item-container-button {
color: var(--text-secondary-color);
background-color: var(--container-button-color);
border-color: var(--text-secondary-color);
}
.search-border-bottom: 1px solid var(--border-color);
background-color: var(--secondary-background);
min-height: 180px;
}
.search-podcast-image-container {
position: relative;
width: 100%;
height: 0;
padding-top: 100%; /* 1:1 Aspect Ratio */
overflow: hidden;
background-color: var(--secondary-background);
}
.search-podcast-image-container img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.search-podcast-image-container:hover img {
transform: scale(1.05);
}
/* Force two columns on small screens */
@media (max-width: 639px) {
.grid-cols-2 {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.gap-4 {
gap: 0.75rem !important;
}
.search-item-container h3 {
font-size: 1rem;
}
.search-item-container .text-sm {
font-size: 0.75rem;
}
.search-item-container button {
width: 32px !important;
height: 32px !important;
}
.search-item-container button i {
font-size: 1.25rem;
}
}
.podcast-grid-container {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
padding: 0 12px 24px;
width: 100%;
}
/* Better hover effects and card styling */
.search-item-container {
display: flex;
flex-direction: column;
background-color: var(--container-background);
border-color: var(--border-color);
transition: transform 0.2s ease, box-shadow 0.2s ease;
height: 100%;
width: 100%;
}
.search-item-container:hover {
transform: translateY(-3px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
}
/* Fix text colors */
.search-item-container .item_container-text {
color: var(--text-color);
}
/* Line clamp utility classes */
.line-clamp-2 {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* Animation for loading spinner */
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.animate-spin {
animation: spin 1s linear infinite;
}
/* Ensure grid styles always work */
.grid {
display: grid;
}
.grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.md\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.lg\:grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (min-width: 640px) {
.md\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 1024px) {
.lg\:grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
/* Ensure images take full width and height */
.w-full {
width: 100% !important;
}
.w-less-full {
width: 100%;
}
.h-full {
height: 100% !important;
}
.object-cover {
object-fit: cover !important;
}
/* Fix aspect ratio */
[style*="aspect-ratio"] {
position: relative;
width: 100%;
padding-bottom: 100%; /* 1:1 Aspect Ratio */
height: 0;
overflow: hidden;
}
[style*="aspect-ratio"] img,
[style*="aspect-ratio"] > * {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
/* Fix for missing icons */
.ph {
display: inline-block;
}
.ph-trash:before {
content: "🗑️";
}
.ph-plus-circle:before {
content: "";
}
.ph-spinner-gap:before {
content: "⌛";
}
.ph-microphone:before {
content: "🎙️";
}
.selector-button {
background-color: var(--container-button-color);
color: var(--button-text-color);
transition: all 0.2s ease;
}
.selector-button:active {
transform: scale(0.95);
}
/* Improved description styling */
.item-container .item_container-text {
color: var(--text-color);
}
/* Line clamp utility classes */
.line-clamp-2 {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* Animation for loading spinner */
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.animate-spin {
animation: spin 1s linear infinite;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.search-item-container {
margin-bottom: 1rem;
}
}
@media (max-width: 480px) {
.podcast-grid-container {
gap: 10px;
padding: 0 8px 16px;
}
.search-item-container {
border-radius: 8px;
}
.search-item-container .p-4 {
padding: 10px;
}
}
.item-header-details {
text-align: center;
display: flex;
}
.item-header-pod {
text-align: center;
color: var(--text-color);
}
.episode-single-desc {
overflow-y: auto;
padding-bottom: calc(
80px + 1rem
); /* Audio player height (typically around 80px) plus some padding */
margin-bottom: 18px; /* Match the audio player height */
}
/* Media query for smaller screens */
@media (max-width: 768px) {
.item-container-button {
border: none;
/* Remove border on small screens */
}
}
@media (max-width: 768px) {
.header-info {
display: flex;
justify-content: center;
align-items: center;
gap: 20px; /* Space between the elements */
margin: 8px auto;
max-width: 90%;
flex-wrap: wrap; /* Allow wrapping on very small screens */
text-align: center;
}
/* Remove the individual padding/margin from these elements since they're now handled by the container */
.header-info .item-container-button,
.header-info .scroll-container {
padding: 0;
margin: 0;
}
/* Make sure the dropdown content still works as expected */
.scroll-container {
position: relative; /* Ensure dropdown positioning works */
white-space: nowrap;
overflow: visible; /* Allow dropdown to overflow */
}
.item-header-pod {
margin: 8px auto; /* Center the header */
max-width: 90%; /* Don't stretch full width */
border-radius: 12px;
background: var(--button-background, rgba(0, 0, 0, 0.05));
transition: all 0.2s ease;
cursor: pointer;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 20px;
background: var(--button-background, rgba(0, 0, 0, 0.05));
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
font-size: 1.2rem; /* Larger text */
font-weight: 600;
}
.item-header-pod:active {
transform: translateY(1px);
background: var(--button-hover-background, rgba(0, 0, 0, 0.08));
}
/* Add subtle hover effect */
.item-header-pod:hover {
background: var(--button-hover-background, rgba(0, 0, 0, 0.08));
}
/* Add a subtle indicator that it's clickable */
.item-header-pod::after {
content: "";
font-size: 24px;
opacity: 0.5;
margin-left: 8px;
}
.mobile-layout .button-container {
display: flex;
flex-direction: row;
gap: 10px;
}
.mobile-layout .item-header-mobile-cover-container {
display: flex;
justify-content: center;
/* Center horizontally */
align-items: center;
/* Center vertically */
border-radius: 1.25rem;
}
.episode-title .material-icons {
margin-left: 8px; /* Adjust spacing as needed */
}
.mobile-layout .item-header-mobile-cover {
margin-top: 10px;
flex-shrink: 0;
/* Prevent the image from shrinking */
flex-basis: 40%;
/* Set a base width */
min-width: 150px;
/* Prevent the image from becoming too small */
max-width: 250px;
/* Prevent the image from becoming too large */
object-fit: cover;
border-radius: 5px;
margin-right: 20px;
height: auto;
/* Adjust height automatically */
}
.categories-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
/* Center horizontally */
align-items: center;
/* Center vertically */
padding-bottom: 10px;
}
.mobile-layout .category-box {
padding-bottom: 10px;
}
.mobile-layout .item-header-title,
.mobile-layout .item-header-description,
.header-text {
text-align: center;
margin: 10px 0;
}
.mobile-layout .header-info {
text-align: left;
margin: 10px 0;
padding-left: 4rem;
font-weight: bold;
margin-bottom: 5px;
color: var(--text-color);
}
.mobile-layout .header-info-episode {
text-align: center;
margin: 10px 0;
font-weight: bold;
margin-bottom: 5px;
color: var(--text-color);
}
.mobile-layout .button-row {
display: flex;
justify-content: space-between;
gap: 8px;
background: var(--background-color);
border-radius: 8px;
padding: 4px;
}
.mobile-layout .button-row button {
flex: 1;
padding: 12px 8px;
border-radius: 8px;
transition: all 0.2s ease;
background: var(--button-background, rgba(0, 0, 0, 0.05));
border: none !important; /* Force remove any borders */
outline: none !important; /* Remove outline as well */
}
.mobile-layout .episode-action-buttons {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px;
background: transparent; /* Make container background transparent */
border-radius: 12px;
margin-top: 8px;
}
/* Remove the vertical lines between buttons */
.button-row button:not(:last-child)::after {
display: none;
}
/* Remove horizontal lines */
.button-row::before,
.button-row::after {
display: none;
}
/* Add hover effects */
.button-row button:hover {
background: var(--button-hover-background, rgba(0, 0, 0, 0.1));
transform: translateY(-1px);
}
.button-row button:active {
transform: translateY(0px);
}
/* Specific button styles */
.play-button {
background: var(--primary-color, #3b82f6) !important;
color: white !important;
}
.queue-button {
background: var(--secondary-color, #8b5cf6) !important;
color: white !important;
}
.save-button {
background: var(--accent-color, #ef4444) !important;
color: white !important;
}
.download-button-ep {
background: var(--success-color, #10b981) !important;
color: white !important;
}
/* Icon adjustments */
.button-row button i {
margin-right: 4px;
vertical-align: middle;
}
.mobile-layout .item-header-description {
padding: 0 20px;
}
.mobile-layout .icon-button {
margin: 0 auto;
}
.mobile-layout .item-header-info {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
}
.podcast-icon-button {
padding: 0;
margin: 0 4px;
/* Adjust as needed for spacing between buttons */
width: 40px;
/* Adjust as needed */
height: 40px;
/* Adjust as needed */
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
/* To ensure the buttons remain round */
}
/* Podcast dropdown styles */
.podcast-dropdown-header {
background-color: var(--container-background);
border-color: var(--border-color);
border-width: 1px;
border-style: solid;
border-radius: 0.5rem;
margin-bottom: 0.75rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
transition: all 0.2s ease;
overflow: hidden;
}
.podcast-dropdown-header:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.podcast-dropdown-content {
display: flex;
align-items: center;
padding: 0.75rem 1rem;
cursor: pointer;
}
.podcast-dropdown-image {
width: 3.5rem;
height: 3.5rem;
border-radius: 0.375rem;
object-fit: cover;
}
.podcast-dropdown-info {
flex-grow: 1;
margin-left: 1rem;
margin-right: 1rem;
}
.podcast-dropdown-title {
font-weight: 600;
font-size: 1.125rem;
color: var(--text-color);
margin-bottom: 0.25rem;
}
.podcast-dropdown-count {
font-size: 0.875rem;
color: var(--text-color);
opacity: 0.8;
}
.podcast-dropdown-arrow {
color: var(--text-color);
transition: transform 0.3s ease;
}
.podcast-dropdown-arrow.expanded {
transform: rotate(180deg);
}
.podcast-dropdown-checkbox {
margin-right: 0.75rem;
height: 1.25rem;
width: 1.25rem;
border-radius: 0.25rem;
border: 2px solid var(--check-box-color);
cursor: pointer;
appearance: none;
position: relative;
background-color: var(--container-background);
}
.podcast-dropdown-checkbox:checked {
background-color: var(--primary-color);
border-color: var(--check-box-color);
}
.podcast-dropdown-checkbox:checked::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* Use mask instead of background-image */
-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l3.793-3.793a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l3.793-3.793a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E");
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: center;
mask-position: center;
background-color: var(--check-box-color, var(--text-color));
}
/* Episode list container that will be shown/hidden */
.podcast-episodes-container {
max-height: 0;
overflow: visible;
transition: max-height 0.3s ease-out;
}
.podcast-episodes-container.expanded {
max-height: 2000px; /* Large value to accommodate any number of episodes */
transition: max-height 0.5s ease-in;
}
/* Inner padding for the episode list */
.podcast-episodes-inner {
padding: 0 1rem 1rem 1rem;
}
.item-container-alert-button {
color: var(--text-color);
background-color: var(--alert-color);
border: 1px solid var(--border-color);
border-radius: 5px;
/* Adjust as needed */
padding: 10px 20px;
/* Adjust as needed */
margin-left: 10px;
margin-right: 10px;
}
button.item-container-action-button.item-container-action-button {
background-color: var(--alert-color);
}
.text-button {
border-color: var(--standout-color);
}
.border-color {
border-color: var(--border-color);
}
.spinner-border.custom-spinner-color {
/*background-color: var(--standout-color); !* Specify only for the spinner *!*/
}
.material-icons {
margin: 0;
padding: 0;
line-height: 1;
/* Adjust the size if necessary */
}
.material-standard-color {
color: var(--text-color);
}
.material-bonus-color {
color: var(--text-secondary-color);
}
.large-material-icons {
width: 40px;
height: 40px;
font-size: 36px !important;
/* Or whatever size you prefer */
}
.home-material-icons {
width: 30px;
height: 35px;
font-size: 33px !important;
/* Or whatever size you prefer */
}
.icon-space {
margin-right: 10px;
}
.icon-size {
transform: translateY(3px);
margin-right: 10px;
}
.align-avatar {
display: flex;
align-items: center;
}
.quick-link-card {
background-color: var(--container-background);
border: 1px solid var(--button-color);
color: var(--text-color)
transition: all 0.2s ease-in-out;
min-height: 70px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-decoration: none;
padding: 0.5rem;
}
.quick-link-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.quick-link-card i {
color: var(--text-color);
font-size: 1.5rem;
}
.quick-link-card span {
color: var(--text-color);
margin-top: 0.25rem;
font-size: 0.875rem;
text-align: center;
}
@media (max-width: 768px) {
.quick-link-card {
min-height: 60px;
}
.quick-link-card i {
font-size: 1.25rem;
}
.quick-link-card span {
font-size: 0.75rem;
}
}
.playlist-card {
cursor: pointer;
transition: all 0.3s ease;
margin-bottom: 1rem;
}
.playlist-card:hover {
transform: translateY(-4px);
}
.playlist-card:hover .playlist-card-stack::before {
transform: translateX(-50%) rotate(2deg);
}
.playlist-card:hover .playlist-card-stack::after {
transform: translateX(-50%) rotate(-2deg);
}
.playlist-card-stack {
position: relative;
padding: 0.5rem;
}
.playlist-card-stack::before,
.playlist-card-stack::after {
content: "";
position: absolute;
background-color: var(--container-background);
border-radius: 0.5rem;
left: 50%;
width: 95%;
height: 100%;
transform: translateX(-50%);
transition: transform 0.3s ease;
z-index: -1;
}
.playlist-card-stack::before {
bottom: -4px;
opacity: 0.7;
}
.playlist-card-stack::after {
bottom: -8px;
width: 90%;
opacity: 0.4;
}
.playlist-card-content {
background-color: var(--container-background);
border-radius: 0.5rem;
padding: 1.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
display: flex;
align-items: flex-start;
gap: 1rem;
position: relative;
z-index: 1;
}
.playlist-icon {
font-size: 2rem;
color: var(--text-color);
flex-shrink: 0;
width: 2.5rem;
height: 2.5rem;
display: flex;
align-items: center;
justify-content: center;
}
.playlist-info {
display: flex;
flex-direction: column;
gap: 0.5rem;
flex-grow: 1;
min-width: 0;
}
.playlist-title {
font-weight: 600;
font-size: 1.125rem;
color: var(--text-color);
margin: 0;
}
.playlist-count {
font-size: 0.875rem;
color: var(--text-secondary-color);
}
.playlist-description {
font-size: 0.875rem;
color: var(--text-secondary-color);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
margin: 0;
}
.stats-card {
background-color: var(--secondary-background);
padding: 2rem;
border-radius: 0.5rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
text-align: center;
border-color: var(--border-color);
}
.stats-label {
font-size: 1rem;
color: var(--text-color);
margin-bottom: 0.5rem;
}
.stats-value {
font-size: 1.5rem;
font-weight: 700;
color: var(--text-secondary-color);
}
.stats-detail {
font-size: 1.2rem;
font-weight: 400;
color: var(--text-secondary-color);
}
.large-card {
background-color: var(--secondary-background);
padding: 2rem;
border-radius: 0.5rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-color: var(--border-color);
}
.large-card-image {
height: auto;
border-radius: 0.5rem;
width: 100%;
max-width: 200px;
max-height: 200px;
object-fit: cover;
align-self: center !important;
margin-top: 10px;
margin-bottom: 10px;
}
.large-card-content {
margin-top: 1rem;
text-align: center;
/* Center the content */
}
.large-card-link {
display: block;
color: #3182ce;
text-decoration: none;
margin: 0.5rem 0;
}
.large-card-paragraph {
margin-top: 1rem;
text-align: center;
/* Center the paragraph text */
}
.search-container {
position: relative;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
padding-top: 120px;
}
.search-container.shrink-input {
height: auto;
display: block;
align-items: initial;
padding-top: 120px;
}
.search-page-input {
width: 60%;
transition: all 1s ease-in-out;
position: absolute;
top: 40%;
/* Start from the center of the screen */
left: 50%;
/* Start from the center of the screen */
transform: translate(-50%, -50%);
/* Move up and left by half of its own width and height */
z-index: 1;
/* Ensure it's on top */
}
/* Styles for smaller screens */
@media (max-width: 768px) {
.search-page-input {
width: 90%;
/* Increase width to 90% of the viewport */
}
}
@media (max-width: 520px) {
.search-page-input {
width: 100%;
/* Increase width to 90% of the viewport */
}
}
.search-page-input.move-to-top {
top: 25px;
/* Move to the top of the screen */
left: 50%;
/* Move to the left of the screen */
transform: translate(-50%, 0);
/* Keep the element at the top */
}
.episode-time-badge {
color: var(--text-color);
/* Dark gray text */
font-size: 0.875rem;
/* Larger text */
display: inline-flex;
/* Keeps elements in line but allows for internal flex properties */
align-items: center;
white-space: nowrap; /* Prevent line breaks */
overflow: hidden; /* Hide overflow if needed */
text-overflow: ellipsis; /* Show ellipsis for overflow */
font-size: 14px;
/* Aligns children vertically in the center */
}
/* Progressively reduce text size on smaller screens */
@media (max-width: 600px) {
.episode-time-badge {
font-size: 13px;
}
}
@media (max-width: 500px) {
.episode-time-badge {
font-size: 11px;
padding: 1px 4px !important; /* Reduce padding */
}
.episode-time-badge .time-icon {
width: 2px !important;
height: 2px !important;
margin-right: 3px !important;
}
}
@media (max-width: 400px) {
.episode-time-badge {
font-size: 10px;
padding: 1px 3px !important;
}
}
/* Ensure the container doesn't grow too large */
.episode-time-badge-container {
max-width: 100%;
display: flex;
align-items: center;
}
.time-icon {
/* Customize your SVG icon here if needed */
}
.tab.active {
background-color: var(--secondary-background);
/* Light gray background */
color: var(--text-color);
/* Darker text color */
border-bottom-color: transparent;
/* Hide bottom border */
}
/* Example background colors */
.bg-custom-light {
background-color: var(--secondary-background);
/* Adjust the color as needed */
}
.bg-custom-dark {
background-color: var(--background-color);
/* Adjust the color as needed */
}
.setting-box {
background-color: var(--accent-color);
border-color: var(--border-color);
color: var(--text-color);
border-width: 1px;
}
.tab-base {
@apply px-6 py-3 font-medium transition-all relative;
}
.tab-hightlight-colors {
color: var(--text-color);
background-color: var(--accent-color);
}
.tab-unselect-colors {
color: var(--text-color);
background-color: var(--secondary-background);
}
.tab-active {
@apply text-accent-color;
}
.tab-active::after {
content: "";
@apply absolute bottom-0 left-0 w-full h-0.5 bg-accent-color;
}
/* Specific targeting for first and last accordion item */
#accordion-collapse > :first-child > button {
border-top-left-radius: 0.75rem;
/* 12px */
border-top-right-radius: 0.75rem;
/* 12px */
}
#accordion-collapse > :last-child > button {
border-bottom-left-radius: 0.75rem;
/* 12px */
border-bottom-right-radius: 0.75rem;
/* 12px */
}
/* Background color for accordion content */
.accordion-content {
background-color: var(--secondary-background);
/* Example color, adjust as needed */
color: --var(--text-color);
}
/* Background color for accordion arrow */
.accordion-arrow {
background-color: transparent;
/* Transparent background */
position: relative;
/* Relative position */
width: 24px;
/* Define width */
height: 24px;
/* Define height */
}
/* Accordion styling */
.accordion-container {
@apply border-0; /* Remove default borders */
}
.accordion-button {
@apply w-full px-6 py-4 flex items-center justify-between transition-colors hover:bg-opacity-5 hover:bg-white;
}
.accordion-content {
@apply px-6 py-4 bg-opacity-5 bg-black;
}
.accordion-arrow {
@apply w-5 h-5 transition-transform duration-200 text-accent-color;
}
/* Remove the hover circle and replace with subtle background */
.accordion-button:hover::before {
display: none;
}
/* Setting box container */
.setting-box {
@apply bg-transparent border-0 shadow-none;
}
/* First and last items */
.accordion-container:first-child .accordion-button {
@apply rounded-t-xl;
}
.accordion-container:last-child .accordion-button {
@apply rounded-b-xl;
}
.hosts-arrow {
margin-bottom: 0.2rem;
margin-left: 0.5rem;
}
/* Hover background color for accordion arrow */
/* Hover effect for the button, with a smaller circle */
.accordion-button:hover::before {
content: "";
position: absolute;
top: 50%;
/* Center the circle vertically relative to the button */
left: 50%;
/* Center the circle horizontally relative to the button */
transform: translate(-50%, -50%);
/* Offset the centering to the exact middle */
left: calc(100% - 26px);
width: 30px;
/* Smaller width, adjust based on your arrow or button size */
height: 30px;
/* Smaller height, match width for circle */
background-color: var(--hover-color);
/* Example color, adjust as needed */
border-radius: 50%;
/* Rounded shape */
z-index: 0;
/* Ensure it's visible above the button background but below text/icons */
}
.accordion-button {
@apply w-full px-6 py-4 flex items-center justify-between transition-colors hover:bg-opacity-5 hover:bg-white;
}
/* Styles for the select dropdown */
.theme-select-dropdown {
background-color: var(--background-color);
color: var(--text-color);
border-color: var(--border-color);
}
.theme-select-dropdown:hover {
border-color: var(--dropdown-hover-border-color);
}
.theme-select-dropdown:focus {
outline-color: var(--dropdown-focus-outline-color);
box-shadow: 0 0 0 3px var(--dropdown-focus-shadow-color);
}
.tab-background {
background-color: var(--secondary-background);
}
/* Styles for the dropdown arrow */
.theme-dropdown-arrow {
color: var(--text-color);
}
/* Styles for the submit button */
.theme-submit-button {
background-color: var(--transparent-background);
color: var(--text-color);
}
.theme-submit-button:hover {
background-color: var(--hover-color);
}
.theme-submit-button:focus {
outline-color: var(--button-focus-outline-color);
box-shadow: 0 0 0 3px var(--button-focus-shadow-color);
}
.email-input {
background-color: var(--background-color);
/* Change to your desired background color */
color: var(--button-text-color);
/* Change to your desired text color */
border: 1px solid var(--border-color);
/* You can change this as needed */
padding: 8px;
/* Adjust padding as needed */
border-radius: 4px;
/* Rounded corners */
}
.email-input::placeholder {
/* Chrome, Firefox, Opera, Safari 10.1+ */
color: var(--accent-color);
/* Change to your desired placeholder text color */
opacity: 1;
/* Firefox */
}
.email-input:-ms-input-placeholder {
/* Internet Explorer 10-11 */
color: var(--accent-color);
}
.email-input::-ms-input-placeholder {
/* Microsoft Edge */
color: var(--accent-color);
}
.email-select {
background-color: var(--background-color);
/* Change to your desired background color */
color: var(--text-color);
/* Change to your desired text color */
border: 1px solid var(--border-color);
/* You can change this as needed */
padding: 8px;
/* Adjust padding as needed */
border-radius: 4px;
/* Rounded corners */
}
.settings-button {
color: var(--button-text-color);
background-color: var(--button-color);
border-color: var(--border-color);
margin-bottom: 10px;
margin-top: 10px;
display: inline-block;
padding: 5px 10px;
/* Adjust as needed */
cursor: pointer;
border-radius: 5px;
/* Adjust as needed */
border: 1px solid var(--button-border-color);
}
/* OIDC Provider Styles */
.oidc-provider-card {
margin-bottom: 1rem;
background-color: var(--container-background);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 1.5rem;
}
.oidc-provider-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
}
.oidc-provider-info {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
}
.oidc-info-group {
padding: 0.75rem;
background-color: var(--background-color);
border-radius: 6px;
}
.oidc-info-label {
font-weight: 500;
color: var(--text-color);
margin-bottom: 0.5rem;
}
.oidc-info-value {
color: var(--text-color);
opacity: 0.8;
word-break: break-all;
font-size: 0.9rem;
}
.oidc-empty-state {
text-align: center;
padding: 2rem;
background-color: var(--container-background);
border: 2px dashed var(--border-color);
border-radius: 8px;
color: var(--text-color);
opacity: 0.7;
}
.oidc-remove-button {
background-color: var(--error-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border-radius: 6px;
display: flex;
align-items: center;
gap: 0.5rem;
transition: opacity 0.2s;
}
.oidc-remove-button:hover {
opacity: 0.9;
}
/* User Settings Styles */
.user-settings-container {
max-width: 800px;
margin: 2rem auto;
padding: 2rem;
background-color: var(--container-background);
border-radius: 12px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.settings-header {
display: flex;
flex-direction: column;
gap: 1rem;
margin-bottom: 2rem;
color: var(--text-color);
}
@media (min-width: 640px) {
.settings-header {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
}
.settings-header i {
font-size: 1.5rem;
color: var(--accent-color);
}
.form-group {
margin-bottom: 1.75rem;
background-color: var(--background-color);
padding: 1.25rem;
border-radius: 8px;
border: 1px solid var(--border-color);
}
.form-label {
display: block;
margin-bottom: 0.75rem;
font-weight: 500;
color: var(--text-color);
font-size: 0.95rem;
}
.form-input {
width: 100%;
padding: 0.75rem 1rem;
border: 2px solid var(--button-color);
border-radius: 6px;
background-color: var(--container-background);
color: var(--text-color);
transition: all 0.2s ease;
font-size: 0.95rem;
}
.form-input:focus {
outline: none;
border-color: var(--accent-color);
box-shadow: 0 0 0 3px rgba(93, 128, 170, 0.1);
}
.form-input:hover {
border-color: var(--hover-color);
}
.password-section {
margin-top: 2.5rem;
padding: 1.5rem;
border-radius: 8px;
background-color: var(--background-color);
border: 1px solid var(--border-color);
}
.password-section h3 {
margin-bottom: 1.5rem;
color: var(--text-color);
}
.error-text {
color: var(--error-color);
font-size: 0.875rem;
margin-top: 0.5rem;
padding-left: 0.25rem;
}
.success-message {
background-color: rgba(0, 204, 0, 0.1);
color: var(--success-color);
padding: 1rem;
border-radius: 6px;
margin-bottom: 1.5rem;
border: 1px solid var(--success-color);
display: flex;
align-items: center;
gap: 0.5rem;
}
.success-message::before {
content: "✓";
font-weight: bold;
}
.submit-button {
width: 100%;
padding: 0.875rem;
background-color: var(--accent-color);
color: var(--text-color);
border: none;
border-radius: 6px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
margin-top: 2rem;
}
.submit-button:hover {
background-color: var(--hover-color);
transform: translateY(-1px);
}
.submit-button:active {
transform: translateY(0);
}
.submit-button i {
font-size: 1.25rem;
}
/* Notification settings helper text */
.form-helper-text {
color: var(--text-secondary-color);
opacity: 0.8;
font-size: 0.875rem;
margin-top: 0.25rem;
display: block;
}
/* Modern toggle switch for notification enable/disable */
.notification-toggle-switch {
position: relative;
display: inline-block;
width: 50px;
height: 26px;
}
.notification-toggle-switch input {
opacity: 0;
width: 0;
height: 0;
}
.notification-toggle-slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: var(--button-color);
transition: 0.3s;
border-radius: 26px;
border: 2px solid var(--border-color);
}
.notification-toggle-slider:before {
position: absolute;
content: "";
height: 18px;
width: 18px;
left: 2px;
bottom: 2px;
background-color: var(--text-color);
transition: 0.3s;
border-radius: 50%;
}
input:checked + .notification-toggle-slider {
background-color: var(--accent-color);
border-color: var(--hover-color);
}
input:checked + .notification-toggle-slider:before {
transform: translateX(24px);
}
.notification-toggle-slider:hover {
background-color: var(--hover-color);
}
/* Notification platform selector tabs */
.notification-platform-tabs {
background-color: var(--secondary-background);
padding: 0.25rem;
border-radius: 0.5rem;
width: fit-content;
display: inline-flex;
}
.notification-platform-tab {
color: var(--text-color);
padding: 0.5rem 1.5rem;
border-radius: 0.375rem;
transition: all 0.2s ease;
background-color: var(--secondary-background);
border: 1px solid transparent;
cursor: pointer;
font-size: 0.875rem;
font-weight: 500;
margin-right: 0.25rem;
}
.notification-platform-tab:last-child {
margin-right: 0;
}
.notification-platform-tab:hover {
background-color: var(--container-button-color);
transform: translateY(-1px);
}
.notification-platform-tab.active {
background-color: var(--accent-color);
color: var(--text-color);
border: 1px solid var(--border-color);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.playback-submit-button {
width: 100%;
padding: 0.875rem;
background-color: var(--accent-color);
color: var(--text-color);
border: none;
border-radius: 6px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}
.playback-submit-button:hover {
background-color: var(--hover-color);
transform: translateY(-1px);
}
.playback-submit-button:active {
transform: translateY(0);
}
.playback-submit-button i {
font-size: 1.25rem;
}
.input-button {
display: none;
/* Hide the default file input */
}
.input-button-label {
display: inline-block;
padding: 10px 20px;
/* Adjust as needed */
background-color: var(--button-color);
color: var(--button-text-color);
cursor: pointer;
border-radius: 5px;
/* Adjust as needed */
border: 1px solid var(--button-border-color);
}
.input-button-label:hover {
background-color: var(--hover-color);
}
.links-custom a {
color: #3182ce; /* or your preferred link color */
text-decoration: underline;
transition: color 0.2s;
}
.links-custom a:hover {
color: #2c5282; /* darker shade for hover */
}
.dark .links-custom a {
color: #63b3ed; /* lighter blue for dark mode */
}
.dark .links-custom a:hover {
color: #90cdf4; /* even lighter for hover in dark mode */
}
// Add this to your styles.css
/* OIDC Provider Buttons */
.oidc-divider {
position: relative;
margin: 1rem 0;
}
.oidc-divider-line {
width: 100%;
border-top: 1px solid;
}
.oidc-divider-text {
position: relative;
padding: 0 0.5rem;
color: var(--text-color);
}
.oidc-button {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
padding: 0.5rem;
margin: 0.25rem 0;
border: 1px solid var(--border-color);
border-radius: 0.375rem;
transition: opacity 0.2s;
}
.oidc-button:hover {
opacity: 0.9;
}
.oidc-icon {
width: 1.25rem;
height: 1.25rem;
margin-right: 0.5rem;
display: inline-flex;
align-items: center;
}
.dropdown-content-class {
top: 100%;
/* Position just below the button */
right: 0;
/* Align with the left edge of the button */
background-color: var(--background-color);
border-color: var(--border-color);
/* ... other styles ... */
}
.search-dropdown-content-class {
top: 100%;
/* Position just below the button */
left: 0;
/* Align with the left edge of the button */
background-color: var(--background-color);
border-color: var(--border-color);
/* ... other styles ... */
}
.search-input-custom-border {
border-style: solid;
border-width: 1px 1px 1px 0; /* top, right, bottom, left */
border-color: var(--border-color);
background-color: var(--background-color);
border-radius: 0 0.5rem 0.5rem 0; /* Keep rounded right corners */
}
.dropdown-container {
background-color: var(--background-color);
/* Remove the background-color property */
}
.transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.duration-300 {
transition-duration: 300ms;
}
.rotate-180 {
transform: rotate(180deg);
}
.rotate-0 {
transform: rotate(0deg);
}
/* Optional: Add hover effect to the header */
.podcast-header:hover {
background-color: rgba(0, 0, 0, 0.05);
}
.person-avatar {
height: 6rem !important;
width: 6rem !important;
border-radius: 50% !important;
object-fit: cover !important;
border: 2px solid var(--border-color);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
transition: border-color 200ms ease;
}
.person-avatar:hover {
border-color: var(--accent-color);
}
@media (prefers-color-scheme: dark) {
.person-avatar {
border-color: var(--border-color-dark);
}
.person-avatar:hover {
border-color: var(--accent-color-dark);
}
}
.buffering-indicator {
background: rgba(0, 0, 0, 0.7);
color: white;
padding: 8px;
border-radius: 4px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.dropdown-button {
cursor: pointer;
background-color: var(--button-color);
color: var(--text-color);
}
.dropdown-button:hover {
background-color: var(--hover-color);
/* Add your hover color here */
}
.dropdown-button:hover {
background-color: var(--hover-color);
/* Change background color on hover */
}
.dropdown-option {
cursor: pointer;
padding: 0.5rem 1rem;
border-bottom: 1px solid #eee;
/* Border for each option */
transition: background-color 0.3s;
/* Remove the background-color property */
color: var(--text-color);
}
.dropdown-option:hover {
background-color: var(--hover-color);
/* Add your hover color here */
}
.dropdown-option:last-child {
border-bottom: none;
/* Remove border for the last option */
}
.dropdown-option:hover {
background-color: var(--hover-color);
/* Change background color on hover */
}
.table-header {
text-transform: uppercase;
background-color: var(--bonus-color);
/* Light gray background for table header */
color: var(--text-color);
}
.table-row {
background-color: var(--secondary-background);
color: var(--text-color);
/* Regular font color */
cursor: pointer;
/* Change cursor to pointer */
}
.table-row:hover {
background-color: var(--secondary-background);
/* Slightly darker background on hover */
}
.episode-top-info {
display: flex;
align-items: start;
margin-bottom: 20px;
}
.rounded-corners {
border-radius: 1rem;
}
.episode-artwork {
/* Adjust to scale with page size */
max-width: 45%;
height: auto;
object-fit: cover;
padding-right: 10px;
}
.episode-mobile-artwork {
/* Adjust to scale with page size */
max-width: 30%;
height: auto;
object-fit: cover;
}
.episode-details {
display: flex;
flex-direction: column;
}
.custom-volume-button {
margin-top: 9px;
/* Adjust the value as needed */
}
.volume-control-container {
position: relative;
display: inline-block;
}
.volume-slider-container {
position: absolute;
left: 50%;
transform: translateX(-50%);
background: var(--background-color);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 8px;
width: 160px;
margin-top: 8px;
z-index: 100;
opacity: 0;
visibility: hidden;
transform: translateY(-10px) translateX(-50%);
transition:
opacity 0.2s ease,
transform 0.2s ease,
visibility 0.2s;
}
.volume-slider-container.visible {
opacity: 1;
visibility: visible;
transform: translateY(0) translateX(-50%);
}
.volume-text {
text-align: center;
margin-bottom: 4px;
font-size: 0.875rem;
color: var(--text-color);
}
.volume-slider {
width: 100%;
-webkit-appearance: none;
height: 4px;
border-radius: 2px;
background: var(--border-color);
outline: none;
}
.volume-slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--button-color);
cursor: pointer;
transition: background-color 0.2s;
}
.volume-slider::-webkit-slider-thumb:hover {
background: var(--hover-color);
}
.speed-control-container {
position: relative;
display: inline-block;
}
.speed-slider-container {
position: absolute;
left: 50%;
transform: translateX(-50%);
background: var(--background-color);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 8px;
width: 160px;
margin-top: 8px;
z-index: 100;
opacity: 0;
visibility: hidden;
transform: translateY(-10px) translateX(-50%);
transition:
opacity 0.2s ease,
transform 0.2s ease,
visibility 0.2s;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
/* Force consistent container behavior regardless of screen size */
@media (min-width: 768px) {
.speed-slider-container {
position: absolute !important;
left: 50% !important;
transform: translateX(-50%) !important;
width: 160px !important;
}
.speed-control-content {
width: 100% !important;
position: relative !important;
}
.speed-text {
position: relative !important;
left: auto !important;
transform: none !important;
color: var(--text-color);
}
}
.speed-slider-container.visible {
opacity: 1;
visibility: visible;
transform: translateY(0) translateX(-50%);
}
.speed-control-content {
background: var(--background-color);
border-radius: 6px;
padding: 8px;
width: 100%;
}
.speed-text {
text-align: center;
margin-bottom: 4px;
font-size: 0.875rem;
}
.speed-slider {
width: 100%;
-webkit-appearance: none;
height: 4px;
border-radius: 2px;
background: var(--border-color);
outline: none;
}
.speed-slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--button-color);
cursor: pointer;
transition: background-color 0.2s;
}
.speed-slider::-webkit-slider-thumb:hover {
background: var(--hover-color);
}
.podcast-title {
/* Larger font size for podcast title */
font-size: 1.75rem;
/* Adjust as needed */
color: var(--text-color);
font-weight: bold;
/* Make the title bold */
margin-bottom: 0.5rem;
/* Add some space below the title */
}
.hover-pointer-podcast-name {
cursor: pointer;
}
.episode-title {
font-size: 1.5rem;
/* Adjust as needed */
color: var(--text-color);
font-weight: bold;
/* Make the title bold */
margin-bottom: 0.5rem;
/* Add some space below the title */
}
.episode-duration,
.episode-release-date {
/* Style for duration and release date */
font-size: 1rem;
/* Adjust as needed */
color: var(--text-color);
font-style: italic;
/* Make the text italic */
}
.episode-action-buttons {
display: flex;
justify-content: space-between;
}
.episode-action-buttons button {
background-color: transparent;
color: var(--text-color);
padding: 2px 5px 10px 15px;
/* Add padding to the bottom */
font-size: 1rem;
font-weight: 500;
/* Equivalent to font-medium */
line-height: normal;
flex-grow: 1;
/* Make buttons take up equal space */
text-align: center;
transition:
color 0.15s ease-in-out,
background-color 0.15s ease-in-out;
/* Add transition for background-color */
border-radius: 5px;
/* Round the corners */
}
.no-media-warning {
display: inline-flex;
align-items: center;
background-color: var(--background-accent);
border-radius: 0.5rem;
padding: 0.5rem 1rem;
margin-top: 0.5rem;
margin-left: 0.5rem;
font-size: 0.875rem;
}
.context-button-wrapper {
position: relative;
}
.dropdown-content-class {
position: absolute;
top: 100%;
right: 0;
margin-top: 0.5rem;
background-color: #fff; /* Adjust as needed */
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
z-index: 1000;
}
/* Ensure the dropdown is on top of other elements */
.item-container {
overflow: visible !important;
}
/* If needed, adjust the container of the ContextButton */
.button-container {
position: static !important;
}
.episode-action-buttons .no-media-warning {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
width: 100%;
}
.episode-action-buttons i.material-icons {
position: relative;
top: 7px;
/* Adjust this value as needed */
margin-right: 5px;
/* Add some space to the right of the icon */
}
.episode-action-buttons button:focus {
color: var(--text-color);
outline: none;
border-color: var(--focus-color);
/* Change border color on focus */
}
.episode-action-buttons button:active {
color: var(--text-color);
border-color: var(--active-color);
/* Change border color on active */
}
.episode-description {
max-width: 800px; /* Adjust this value based on your desired width */
margin-left: auto;
margin-right: auto;
/* Other styles as needed */
}
.episode-single-desc {
margin-top: 12px;
/* Add space above the description */
/* ...rest of the styles */
}
.qr-code-container {
/* Center content */
display: flex;
justify-content: center;
align-items: center;
/* White background */
background-color: white;
/* Rounded corners */
border-radius: 8px;
/* Optional: Set a specific size for the QR code container if necessary */
width: auto;
height: auto;
/* Add some padding around the QR code for better aesthetics */
padding: 10px;
/* Drop shadow for depth (optional) */
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.progress-bar-container {
height: 10px;
/* Or whatever height you prefer */
background-color: var(--unfilled-color);
/* Background of the unfulfilled part */
width: 100%;
/* Or adjust to fit your layout */
border-radius: 5px;
/* Optional, for rounded corners */
}
.progress-bar {
height: 100%;
background-color: var(--prog-bar-color);
/* Or any color you prefer */
border-radius: 5px;
/* Match container's border-radius */
transition: width 0.5s ease-in-out;
/* Smooth transition for changes, optional */
}
.cursor-pointer:hover {
cursor: pointer;
}
.time-display {
display: inline-block;
width: 80px;
/* Adjust this width based on the maximum expected length of the time strings */
text-align: center;
}
.loading-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
font-family:
system-ui,
-apple-system,
sans-serif;
}
.loading-spinner {
width: 48px;
height: 48px;
margin-bottom: 16px;
border: 4px solid var(--text-color-dim);
border-left-color: var(--accent-color);
border-radius: 50%;
position: relative;
animation: spinner-rotate 1s linear infinite;
}
.loading-spinner::before {
content: "";
position: absolute;
top: -4px;
left: -4px;
right: -4px;
bottom: -4px;
border: 4px solid transparent;
border-right-color: var(--accent-color-dim);
border-radius: 50%;
animation: spinner-pulse 1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.loading-container p {
color: var(--text-color);
font-size: 1.1rem;
margin: 0;
opacity: 0;
animation: text-fade 400ms ease forwards;
animation-delay: 200ms;
}
.auth-error-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 50vh;
padding: 2rem;
gap: 2rem;
}
.auth-error-message {
display: flex;
flex-direction: column;
align-items: center;
gap: 1rem;
text-align: center;
color: var(--error-color);
}
.auth-error-message .material-icons {
font-size: 3rem;
}
.auth-error-button {
padding: 0.75rem 1.5rem;
background-color: var(--primary-color);
color: white;
border-radius: 0.375rem;
text-decoration: none;
transition: background-color 0.2s;
}
.auth-error-button:hover {
background-color: var(--primary-color-dark);
}
/* Add these styles to your main.css or create a new notification_center.css file */
/* Add to your existing CSS */
/* Toast Container */
.toast-container {
position: fixed;
top: 5rem;
right: 1rem;
max-width: 24rem;
z-index: 1000;
display: flex;
flex-direction: column;
gap: 0.75rem;
pointer-events: none;
}
/* Individual Toast Item */
.toast-item {
transform-origin: top right;
pointer-events: auto;
transition: transform 0.3s ease-in-out,
opacity 0.3s ease-in-out,
max-height 0.3s ease-in-out,
margin-bottom 0.3s ease-in-out;
will-change: transform, opacity;
}
/* Toast Visibility States with Explicit Animations */
.toast-visible {
opacity: 1;
transform: translateX(0);
max-height: 200px;
margin-bottom: 0.75rem;
animation: slideIn 0.3s ease-in-out forwards;
}
.toast-hidden {
opacity: 0;
transform: translateX(100%);
max-height: 0;
margin-bottom: 0;
animation: slideOut 0.3s ease-in-out forwards;
}
/* Toast Styling */
.toast {
padding: 0.75rem 1rem;
border-radius: 0.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08);
background-color: var(--container-background);
width: 100%;
}
.toast-info {
border-left: 4px solid #3b82f6; /* Blue accent */
}
.toast-error {
border-left: 4px solid #ef4444; /* Red accent */
}
.toast-message {
font-size: 0.875rem;
line-height: 1.25rem;
color: var(--text-color);
word-break: break-word;
}
/* Toast Dismiss Button */
.toast-dismiss {
cursor: pointer;
opacity: 0.6;
transition: opacity 0.2s;
margin-left: auto;
padding-left: 0.5rem;
background: transparent;
border: none;
color: var(--text-color);
}
.toast-dismiss:hover {
opacity: 1;
}
/* Define explicit keyframe animations */
@keyframes slideIn {
from {
opacity: 0;
transform: translateX(100%);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes slideOut {
from {
opacity: 1;
transform: translateX(0);
}
to {
opacity: 0;
transform: translateX(100%);
}
}
/* Notification bell styling */
.notification-bell {
color: var(--text-color);
background-color: var(--container-button-color);
transition: background-color 0.2s ease;
}
/* Notification badge */
.notification-badge {
background-color: var(--alert-color);
color: var(--text-color);
min-width: 18px;
height: 18px;
}
/* Notification dropdown */
.notification-dropdown {
background-color: var(--container-background);
border: 1px solid var(--border-color);
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
animation: slideDown 0.2s ease-out forwards;
}
@keyframes slideDown {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Notification header */
.notification-header {
background-color: var(--secondary-background);
color: var(--text-color);
border-bottom: 1px solid var(--border-color);
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
/* Notification items */
.notification-item {
background-color: var(--background-color);
border-left: 3px solid var(--accent-color);
margin-bottom: 8px;
transition: background-color 0.2s ease;
}
.notification-item:hover {
background-color: var(--secondary-background);
}
/* Status styles */
.notification-status {
font-weight: 500;
}
.status-pending {
background-color: var(--accent-color);
color: var(--text-color);
}
.status-started {
background-color: var(--prog-bar-color);
color: var(--text-color);
}
.status-success {
background-color: var(--success-color);
color: var(--text-color);
}
.status-failed {
background-color: var(--error-color);
color: var(--text-color);
}
/* Progress bar */
.notification-progress-bar-container {
background-color: var(--secondary-background);
border-radius: 4px;
overflow: hidden;
}
.progress-bar-fill {
background-color: var(--prog-bar-color);
transition: width 0.3s ease;
}
.progress-text {
color: var(--text-color);
font-size: 0.75rem;
}
/* Message notifications */
.notification-error {
border-left-color: var(--error-color);
}
.notification-error i {
color: var(--error-color);
}
.notification-info {
border-left-color: var(--success-color);
}
.notification-info i {
color: var(--success-color);
}
/* Empty state */
.notification-empty {
color: var(--accent-color);
font-style: italic;
}
/* Scrollbar styling for notification dropdown */
.notification-dropdown::-webkit-scrollbar {
width: 6px;
}
.notification-dropdown::-webkit-scrollbar-track {
background: var(--secondary-background);
border-radius: 8px;
}
.notification-dropdown::-webkit-scrollbar-thumb {
background-color: var(--accent-color);
border-radius: 8px;
}
/* Mobile responsiveness */
@media (max-width: 640px) {
.notification-dropdown {
width: 100%;
max-width: calc(100vw - 20px);
right: -5px;
}
}
@keyframes spinner-rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes spinner-pulse {
0% {
transform: scale(1);
opacity: 1;
}
50% {
transform: scale(1.1);
opacity: 0.5;
}
100% {
transform: scale(1);
opacity: 1;
}
}
@keyframes text-fade {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes frameAnimation {
0%,
100% {
opacity: 0;
}
50% {
opacity: 1;
}
}
.loading-animation {
display: flex;
justify-content: center;
align-items: start;
width: 100%;
height: 100vh;
position: relative;
padding-top: 6vh;
}
.loading-animation div {
position: absolute;
width: min(
500px,
80vw
); /* Use the smaller of 500px or 80% viewport width */
height: min(500px, 80vw); /* Keep it square by using same value */
background-size: cover;
animation: frameAnimation 3s infinite;
}
/* Media query for smaller screens */
@media (max-width: 640px) {
.loading-animation {
padding-top: 4vh; /* Reduce top padding on mobile */
}
.loading-animation div {
width: 85vw; /* Take up most of the screen width */
height: 85vw; /* Keep it square */
}
}
/* Animation frames stay the same */
.loading-animation .frame1 {
background-image: url("./assets/images/og-same.png");
animation-delay: -4.5s;
}
/* ... rest of the frames ... */
.loading-animation .frame2 {
background-image: url("./assets/images/low5.png");
animation-delay: -4s;
}
.loading-animation .frame3 {
background-image: url("./assets/images/low4.png");
animation-delay: -3.5s;
}
.loading-animation .frame4 {
background-image: url("./assets/images/low3.png");
animation-delay: -3s;
}
.loading-animation .frame5 {
background-image: url("./assets/images/low2.png");
animation-delay: -2.5s;
}
.loading-animation .frame6 {
background-image: url("./assets/images/low1.png");
animation-delay: -2s;
}
/* History Filter Styling */
.page-tab-indicator {
position: absolute;
top: -1.5rem;
left: 1rem;
padding: 0.25rem 0.75rem;
border-radius: 0.5rem 0.5rem 0 0;
border: 1px solid var(--border-color);
border-bottom: 0;
font-size: 0.75rem;
font-weight: 500;
background-color: var(--background-color);
color: var(--text-secondary-color);
display: flex;
align-items: center;
gap: 0.25rem;
}
.tab-icon {
color: var(--accent-color);
}
.search-input {
width: 100%;
height: 100%;
padding-left: 1rem;
padding-right: 3rem;
font-size: 1rem;
border-radius: 0.75rem 0 0 0.75rem;
border: 1px solid var(--border-color);
border-right: 1px solid var(--border-color);
background-color: var(--background-color);
color: var(--text-color);
outline: none;
position: relative;
z-index: 1;
transition: border-color 0.2s;
}
.search-input:focus {
border-color: var(--accent-color);
z-index: 10;
}
.search-input::placeholder {
color: var(--text-secondary-color);
}
.search-icon {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
font-size: 1.25rem;
color: var(--text-secondary-color);
pointer-events: none;
}
.sort-dropdown {
appearance: none;
width: 100%;
height: 100%;
padding-left: 1rem;
padding-right: 3rem;
font-size: 0.875rem;
font-weight: 500;
border-radius: 0 0.75rem 0.75rem 0;
border: 1px solid var(--border-color);
border-left: 0;
background-color: var(--background-color);
color: var(--text-color);
outline: none;
position: relative;
z-index: 1;
transition: border-color 0.2s;
}
.sort-dropdown:focus {
border-color: var(--accent-color);
z-index: 10;
}
.dropdown-arrow {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
font-size: 1.125rem;
color: var(--text-secondary-color);
pointer-events: none;
}
.filter-chip {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
border-radius: 9999px;
border: none;
background-color: var(--background-color);
color: var(--text-color);
transition: all 0.2s;
white-space: nowrap;
min-height: 44px;
cursor: pointer;
}
.filter-chip:hover {
background-color: var(--hover-color);
color: var(--text-color);
}
.filter-chip-active {
background-color: var(--accent-color);
color: var(--text-color);
}
.filter-chip-active:hover {
background-color: var(--accent-color);
color: var(--text-color);
}
.filter-chip-alert {
background-color: var(--alert-color);
color: var(--text-color);
}
.filter-chip-alert:hover {
background-color: var(--alert-color);
color: var(--text-color);
}
.downloads-search-input {
width: 100%;
height: 48px;
padding-left: 1rem;
padding-right: 3rem;
font-size: 1rem;
border-radius: 0.75rem;
border: 1px solid var(--border-color);
background-color: var(--background-color);
color: var(--text-color);
outline: none;
transition: border-color 0.2s;
}
.downloads-search-input:focus {
border-color: var(--accent-color);
}
.downloads-search-input::placeholder {
color: var(--text-secondary-color);
}
/* Bulk Episode Management Styles */
.bulk-select-button {
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
border-radius: 9999px;
background-color: var(--container-background);
color: var(--text-color);
border: 1px solid var(--accent-color);
cursor: pointer;
transition: background-color 0.2s;
}
.bulk-select-button:hover {
background-color: var(--hover-color);
}
.bulk-filter-button {
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
border-radius: 9999px;
background-color: var(--secondary-background);
color: var(--text-color);
border: 1px solid var(--accent-color);
cursor: pointer;
transition: background-color 0.2s;
}
.bulk-filter-button:hover {
background-color: var(--hover-color);
}
.bulk-action-success {
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
border-radius: 0.375rem;
background-color: var(--success-color);
color: white;
border: none;
cursor: pointer;
transition: opacity 0.2s;
}
.bulk-action-success:hover {
opacity: 0.8;
}
.bulk-action-primary {
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
border-radius: 0.375rem;
background-color: var(--link-color);
color: white;
border: none;
cursor: pointer;
transition: opacity 0.2s;
}
.bulk-action-primary:hover {
opacity: 0.8;
}
.episode-select-button {
padding: 0.125rem 0.25rem;
font-size: 0.75rem;
border-radius: 0.25rem;
background-color: var(--accent-color);
color: white;
border: none;
cursor: pointer;
transition: opacity 0.2s;
}
.episode-select-button:hover {
opacity: 0.8;
}
/* Merged Podcast Styles */
.merged-podcast-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.5rem;
background-color: var(--secondary-background);
border-radius: 0.375rem;
margin-bottom: 0.5rem;
}
.merged-podcast-name {
font-size: 0.875rem;
color: var(--text-color);
}
.unmerge-button {
font-size: 0.75rem;
padding: 0.25rem 0.5rem;
border-radius: 0.25rem;
}