Files
Lycostorrent/app/static/css/latest.css
2026-03-23 20:59:26 +01:00

1679 lines
30 KiB
CSS

/* ============================================================
LYCOSTORRENT - Latest Page Styles
============================================================ */
/* Navigation */
.main-nav {
display: flex;
gap: 15px;
justify-content: center;
margin-top: 20px;
}
.main-nav a {
padding: 10px 25px;
background: var(--bg-card);
color: var(--text-primary);
text-decoration: none;
border-radius: var(--radius);
transition: all 0.3s;
border: 1px solid var(--border-color);
}
.main-nav a:hover {
background: var(--accent-primary);
border-color: var(--accent-primary);
}
.main-nav a.active {
background: var(--accent-primary);
border-color: var(--accent-primary);
}
/* Settings Section */
.latest-settings {
background: var(--bg-secondary);
padding: 25px;
border-radius: var(--radius);
box-shadow: var(--shadow);
margin-bottom: 25px;
}
/* ============================================================
FILTRES PAR ANNÉE (PASTILLES)
============================================================ */
.year-filters {
background: var(--bg-secondary);
padding: 15px 25px;
border-radius: var(--radius);
box-shadow: var(--shadow);
margin-bottom: 25px;
display: flex;
align-items: center;
gap: 15px;
flex-wrap: wrap;
}
.filter-label {
color: var(--text-secondary);
font-weight: 600;
font-size: 0.9rem;
}
.year-pills {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.year-pill {
padding: 8px 16px;
background: var(--bg-card);
color: var(--text-primary);
border: 2px solid var(--border-color);
border-radius: 20px;
cursor: pointer;
font-size: 0.9rem;
font-weight: 500;
transition: all 0.2s ease;
}
.year-pill:hover {
border-color: var(--accent-primary);
background: var(--bg-primary);
}
.year-pill.active {
background: var(--accent-primary);
border-color: var(--accent-primary);
color: white;
}
.filter-count {
color: var(--text-secondary);
font-size: 0.85rem;
margin-left: auto;
}
/* Categories */
.categories {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-bottom: 20px;
}
.category-btn {
padding: 10px 20px;
background: var(--bg-card);
color: var(--text-primary);
border: 1px solid var(--border-color);
border-radius: var(--radius);
cursor: pointer;
transition: all 0.2s;
font-size: 0.95rem;
}
.category-btn:hover {
border-color: var(--accent-primary);
}
.category-btn.active {
background: var(--accent-primary);
border-color: var(--accent-primary);
color: white;
}
/* Trackers Selector */
.trackers-selector {
margin-bottom: 20px;
}
.toggle-btn {
padding: 10px 20px;
background: var(--bg-card);
color: var(--text-primary);
border: 1px solid var(--border-color);
border-radius: var(--radius);
cursor: pointer;
transition: all 0.2s;
}
.toggle-btn:hover {
border-color: var(--accent-primary);
}
.trackers-panel {
margin-top: 15px;
padding: 15px;
background: var(--bg-card);
border-radius: var(--radius);
}
.trackers-actions {
display: flex;
gap: 10px;
margin-bottom: 15px;
}
.trackers-actions button {
padding: 8px 15px;
background: var(--bg-primary);
color: var(--text-primary);
border: 1px solid var(--border-color);
border-radius: var(--radius);
cursor: pointer;
font-size: 0.85rem;
}
.trackers-actions button:hover {
border-color: var(--accent-primary);
}
.trackers-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.tracker-item {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
background: var(--bg-primary);
border-radius: var(--radius);
}
.tracker-item input {
accent-color: var(--accent-primary);
}
.tracker-item label {
cursor: pointer;
font-size: 0.9rem;
flex: 1;
}
/* Badges de source (Jackett/Prowlarr) - aussi pour latest */
.tracker-item .source-badge {
font-size: 0.6rem;
font-weight: 700;
padding: 2px 5px;
border-radius: 4px;
text-transform: uppercase;
}
/* Limit Selector */
.limit-selector {
display: flex;
align-items: center;
gap: 15px;
flex-wrap: wrap;
}
.limit-selector label {
color: var(--text-secondary);
}
.limit-selector select {
padding: 10px 15px;
background: var(--bg-primary);
color: var(--text-primary);
border: 1px solid var(--border-color);
border-radius: var(--radius);
font-size: 1rem;
}
.btn-primary {
padding: 12px 25px;
background: var(--accent-primary);
color: white;
border: none;
border-radius: var(--radius);
cursor: pointer;
font-size: 1rem;
font-weight: 600;
transition: all 0.2s;
}
.btn-primary:hover {
background: #d63050;
transform: translateY(-1px);
}
/* Results Section */
.latest-results {
background: var(--bg-secondary);
padding: 25px;
border-radius: var(--radius);
box-shadow: var(--shadow);
}
.no-results {
text-align: center;
color: var(--text-secondary);
padding: 40px;
font-size: 1.1rem;
}
.results-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 25px;
padding-bottom: 15px;
border-bottom: 2px solid var(--border-color);
}
.results-header h2 {
color: var(--accent-primary);
font-size: 1.5rem;
}
#resultsCount {
color: var(--text-secondary);
font-weight: 600;
}
/* Results Grid */
.results-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 25px;
}
/* Release Card */
.release-card {
background: var(--bg-card);
border-radius: var(--radius);
overflow: hidden;
box-shadow: var(--shadow);
transition: all 0.3s;
}
.release-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}
.card-poster {
position: relative;
width: 100%;
height: 400px;
overflow: hidden;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.card-poster img {
width: 100%;
height: 100%;
object-fit: cover;
}
.card-type {
position: absolute;
top: 10px;
left: 10px;
background: rgba(0, 0, 0, 0.8);
color: white;
padding: 5px 12px;
border-radius: 5px;
font-size: 0.8rem;
font-weight: 600;
}
.card-rating {
position: absolute;
top: 10px;
right: 10px;
background: rgba(0, 0, 0, 0.8);
color: #ffd700;
padding: 5px 10px;
border-radius: 5px;
font-weight: 600;
font-size: 0.85rem;
}
.card-seeders {
position: absolute;
bottom: 10px;
right: 10px;
background: var(--success);
color: white;
padding: 5px 12px;
border-radius: 5px;
font-size: 0.8rem;
font-weight: 600;
}
.card-variants {
position: absolute;
bottom: 10px;
left: 10px;
background: var(--warning);
color: black;
padding: 5px 12px;
border-radius: 5px;
font-size: 0.8rem;
font-weight: 600;
}
.card-content {
padding: 15px;
}
.card-title {
font-size: 1rem;
font-weight: 600;
color: var(--text-primary);
margin-bottom: 8px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
line-height: 1.3;
height: 2.6em;
}
.card-title-link {
text-decoration: none;
color: var(--text-primary);
transition: color 0.2s;
}
.card-title-link:hover {
color: var(--accent-primary);
}
.card-meta {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
font-size: 0.85rem;
}
.card-year {
color: var(--text-secondary);
font-weight: 600;
}
.card-tracker {
background: var(--accent-secondary);
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.75rem;
}
.card-tracker-link {
background: var(--accent-secondary);
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.75rem;
text-decoration: none;
transition: all 0.2s;
}
.card-tracker-link:hover {
background: var(--accent-primary);
transform: scale(1.05);
}
.btn-tracker {
padding: 10px 12px;
background: var(--accent-secondary);
color: white;
border: none;
border-radius: var(--radius);
text-decoration: none;
font-size: 1rem;
transition: all 0.2s;
}
.btn-tracker:hover {
background: #0a2540;
}
.card-overview {
font-size: 0.85rem;
color: var(--text-secondary);
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
margin-bottom: 15px;
min-height: 3.9em;
}
.card-actions {
display: flex;
gap: 8px;
}
.btn-details {
flex: 1;
padding: 10px;
background: var(--accent-secondary);
color: white;
border: none;
border-radius: var(--radius);
cursor: pointer;
font-size: 0.85rem;
transition: all 0.2s;
}
.btn-details:hover {
background: #0a2540;
}
.btn-download-card {
padding: 10px 15px;
background: var(--success);
color: white;
border: none;
border-radius: var(--radius);
text-decoration: none;
font-size: 1rem;
transition: all 0.2s;
}
.btn-download-card:hover {
background: #22b547;
}
/* Modal */
.modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.85);
display: flex;
justify-content: center;
align-items: center;
z-index: 10000;
padding: 20px;
}
.modal-content {
background: var(--bg-secondary);
border-radius: var(--radius);
max-width: 900px;
width: 100%;
max-height: 90vh;
overflow-y: auto;
position: relative;
}
.modal-close {
position: absolute;
top: 15px;
right: 20px;
font-size: 2rem;
color: white;
cursor: pointer;
z-index: 10;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}
.modal-header {
position: relative;
height: 350px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
overflow: hidden;
}
.modal-backdrop {
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.4;
}
.modal-header-content {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 30px;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));
color: white;
}
.modal-title {
font-size: 2rem;
margin-bottom: 10px;
}
.modal-meta {
display: flex;
gap: 20px;
align-items: center;
flex-wrap: wrap;
font-size: 1rem;
}
.modal-rating {
color: #ffd700;
}
.modal-body-content {
padding: 25px;
}
.modal-section {
margin-bottom: 25px;
}
.modal-section h3 {
color: var(--accent-primary);
margin-bottom: 15px;
font-size: 1.2rem;
}
.modal-overview {
line-height: 1.7;
color: var(--text-secondary);
}
.modal-trailer {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
border-radius: var(--radius);
}
.modal-trailer iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}
/* Music Modal */
.music-modal-header {
display: flex;
align-items: center;
padding: 30px;
height: auto;
min-height: 250px;
background: linear-gradient(135deg, #9b59b6 0%, #8e44ad 100%);
}
.modal-album-art {
width: 180px;
height: 180px;
border-radius: var(--radius);
object-fit: cover;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
margin-right: 30px;
background: #333;
}
/* Fallback pour image non trouvée */
.modal-album-art[src=""],
.modal-album-art:not([src]) {
background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%);
display: flex;
align-items: center;
justify-content: center;
}
.music-modal-header-content {
flex: 1;
color: white;
}
.modal-artist {
font-size: 1.3rem;
margin-top: 10px;
opacity: 0.9;
}
.music-modal-meta {
flex-direction: column;
align-items: flex-start;
gap: 8px;
margin-top: 15px;
}
.music-modal-meta .no-data {
font-style: italic;
opacity: 0.7;
font-size: 0.9rem;
}
/* Tags */
.tags-cloud {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.tag-item {
background: var(--accent-secondary);
color: white;
padding: 8px 16px;
border-radius: 20px;
font-size: 0.85rem;
}
.external-link {
color: var(--accent-primary);
text-decoration: none;
font-weight: 600;
}
.external-link:hover {
text-decoration: underline;
}
/* Torrents Table */
.torrents-list {
background: var(--bg-card);
padding: 15px;
border-radius: var(--radius);
overflow-x: auto;
}
.torrents-table {
width: 100%;
border-collapse: collapse;
min-width: 600px;
}
.torrents-table th {
text-align: left;
padding: 12px 10px;
background: var(--bg-primary);
color: var(--text-secondary);
font-weight: 600;
font-size: 0.8rem;
text-transform: uppercase;
}
.torrents-table td {
padding: 12px 10px;
border-bottom: 1px solid var(--border-color);
font-size: 0.85rem;
}
.torrents-table tr:hover {
background: var(--bg-primary);
}
.torrents-table tr.best-torrent {
background: rgba(74, 222, 128, 0.1);
}
.torrent-name-cell {
display: flex;
flex-direction: column;
gap: 5px;
}
.torrent-title {
font-size: 0.85rem;
color: var(--text-primary);
word-break: break-word;
}
.torrent-title-link {
font-size: 0.85rem;
color: var(--text-primary);
word-break: break-word;
text-decoration: none;
transition: color 0.2s;
}
.torrent-title-link:hover {
color: var(--accent-primary);
text-decoration: underline;
}
.tracker-badge-link {
background: var(--accent-secondary);
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.75rem;
text-decoration: none;
transition: all 0.2s;
display: inline-block;
}
.tracker-badge-link:hover {
background: var(--accent-primary);
}
.btn-link-small {
padding: 6px 10px;
background: var(--accent-secondary);
color: white;
border: none;
border-radius: 4px;
font-size: 1rem;
cursor: pointer;
text-decoration: none;
transition: transform 0.1s;
}
.btn-link-small:hover {
background: var(--accent-primary);
transform: scale(1.1);
}
.torrent-tags {
display: flex;
gap: 5px;
flex-wrap: wrap;
}
.tag {
padding: 2px 8px;
border-radius: 4px;
font-size: 0.7rem;
font-weight: 600;
}
.tag-quality {
background: #3b82f6;
color: white;
}
.tag-language {
background: #8b5cf6;
color: white;
}
.tag-best {
background: #ffd700;
color: #333;
}
.tracker-badge {
background: var(--accent-secondary);
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.75rem;
}
.seeders {
color: var(--success);
font-weight: 600;
}
/* Styles boutons dans la table torrents (desktop) - COMME DISCOVER */
.torrents-list-items {
display: flex;
flex-direction: column;
gap: 10px;
}
.torrent-item {
display: flex;
align-items: center;
gap: 15px;
padding: 12px 15px;
background: var(--bg-primary);
border-radius: var(--radius);
transition: all 0.2s;
}
.torrent-item:hover {
background: var(--bg-card);
}
.torrent-item.best-torrent {
border-left: 3px solid var(--success);
}
.torrent-info {
flex: 1;
min-width: 0;
}
.torrent-name {
font-weight: 500;
color: var(--text-primary);
margin-bottom: 5px;
word-break: break-word;
}
.torrent-name-link {
color: var(--accent-primary);
text-decoration: none;
}
.torrent-name-link:hover {
text-decoration: underline;
}
.torrent-meta {
display: flex;
gap: 15px;
font-size: 0.85rem;
color: var(--text-secondary);
flex-wrap: wrap;
}
.torrent-meta .seeds {
color: var(--success);
}
.torrent-meta .quality {
color: var(--accent-primary);
}
.torrent-meta .language {
color: #8b5cf6;
}
.torrent-meta .best {
color: #ffd700;
}
.torrent-actions {
display: flex;
gap: 8px;
}
.torrent-actions a,
.torrent-actions button {
padding: 8px 12px;
border: none;
border-radius: var(--radius);
cursor: pointer;
font-size: 1rem;
transition: all 0.2s;
text-decoration: none;
}
.torrent-actions .btn-link {
background: var(--accent-secondary);
color: white;
}
.torrent-actions .btn-magnet {
background: var(--danger);
color: white;
}
.torrent-actions .btn-download {
background: var(--success);
color: white;
}
.torrent-actions .btn-send {
background: linear-gradient(135deg, #27ae60 0%, #2ecc71 100%);
color: white;
}
.torrent-actions a:hover,
.torrent-actions button:hover {
transform: scale(1.05);
opacity: 0.9;
}
/* Message Box */
.message-box {
position: fixed;
bottom: 20px;
right: 20px;
padding: 15px 25px;
border-radius: var(--radius);
color: white;
font-weight: 500;
z-index: 9999;
animation: slideIn 0.3s ease;
}
.message-box.success {
background: var(--success);
}
.message-box.error {
background: var(--danger);
}
.message-box.info {
background: var(--accent-secondary);
}
@keyframes slideIn {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
/* Loader */
.loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 9999;
}
.loader p {
margin-top: 15px;
color: var(--text-primary);
}
/* Responsive */
/* Tablette */
@media (max-width: 1024px) {
.results-grid {
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 20px;
}
.card-poster {
height: 300px;
}
.modal-content {
max-width: 95%;
}
}
/* Mobile */
@media (max-width: 768px) {
.container {
padding: 10px;
}
.header h1 {
font-size: 1.6rem;
}
.subtitle {
font-size: 0.9rem;
}
/* Navigation mobile - identique à search */
.main-nav {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
}
.main-nav a {
padding: 8px 15px;
font-size: 0.85rem;
flex: 1 1 auto;
text-align: center;
min-width: 80px;
max-width: 150px;
}
/* Logout à part sur sa propre ligne */
.main-nav a.nav-logout {
flex: 0 0 auto;
min-width: 50px;
max-width: 50px;
padding: 8px 12px;
}
/* Settings */
.latest-settings {
padding: 15px;
}
/* Filtres années - mobile */
.year-filters {
padding: 12px 15px;
gap: 10px;
}
.filter-label {
width: 100%;
margin-bottom: 5px;
}
.year-pills {
gap: 6px;
width: 100%;
}
.year-pill {
padding: 8px 12px;
font-size: 0.85rem;
flex: 1 1 auto;
text-align: center;
}
.filter-count {
width: 100%;
text-align: center;
margin-left: 0;
}
/* Categories - grille responsive */
.categories {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
gap: 8px;
margin-bottom: 15px;
}
.category-btn {
padding: 10px 8px;
font-size: 0.85rem;
text-align: center;
white-space: nowrap;
}
/* Trackers - identique à search */
.trackers-panel {
padding: 12px;
}
.trackers-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.trackers-actions button {
flex: 1;
min-width: 100px;
padding: 10px 8px;
font-size: 0.85rem;
}
.trackers-list {
max-height: 200px;
overflow-y: auto;
gap: 8px;
}
.tracker-item {
padding: 8px 10px;
}
.tracker-item label {
font-size: 0.85rem;
}
/* Limit selector */
.limit-selector {
flex-direction: column;
align-items: stretch;
gap: 10px;
}
.limit-selector select {
width: 100%;
}
.limit-selector .btn-primary {
width: 100%;
}
/* Results */
.latest-results {
padding: 15px;
}
.results-header {
flex-direction: column;
gap: 10px;
align-items: flex-start;
}
.results-header h2 {
font-size: 1.2rem;
}
/* Grid - 2 colonnes sur mobile */
.results-grid {
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
/* Cards plus compactes */
.release-card {
font-size: 0.9rem;
}
.card-poster {
height: 200px;
}
.card-type {
font-size: 0.7rem;
padding: 3px 8px;
top: 8px;
left: 8px;
}
.card-rating {
font-size: 0.75rem;
padding: 3px 8px;
top: 8px;
right: 8px;
}
.card-seeders,
.card-variants {
font-size: 0.7rem;
padding: 3px 8px;
bottom: 8px;
}
.card-content {
padding: 10px;
}
.card-title {
font-size: 0.85rem;
height: auto;
-webkit-line-clamp: 2;
margin-bottom: 5px;
}
.card-meta {
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 5px;
margin-bottom: 8px;
}
.card-year {
font-size: 0.75rem;
}
.card-tracker {
font-size: 0.65rem;
padding: 2px 6px;
}
.card-overview {
display: none;
}
.card-actions {
display: flex;
flex-direction: row;
gap: 6px;
}
.btn-details,
.btn-download-card,
.btn-tracker {
flex: 1;
padding: 8px 6px;
font-size: 0.8rem;
text-align: center;
}
/* Modal - plein écran sur mobile */
.modal {
padding: 0;
}
.modal-content {
max-height: 100vh;
height: 100vh;
border-radius: 0;
overflow-y: auto;
}
.modal-close {
top: 10px;
right: 15px;
font-size: 1.5rem;
width: 40px;
height: 40px;
}
.modal-header {
height: 180px;
}
.modal-header-content {
padding: 15px;
}
.modal-title {
font-size: 1.2rem;
line-height: 1.3;
}
.modal-meta {
font-size: 0.85rem;
gap: 8px;
flex-wrap: wrap;
}
.modal-body-content {
padding: 15px;
}
.modal-section {
margin-bottom: 20px;
}
.modal-section h3 {
font-size: 1rem;
}
.modal-overview {
font-size: 0.9rem;
}
/* Music modal */
.music-modal-header {
flex-direction: column;
text-align: center;
padding: 20px;
min-height: 180px;
}
.modal-album-art {
width: 100px;
height: 100px;
margin-right: 0;
margin-bottom: 15px;
}
.modal-artist {
font-size: 1rem;
}
/* Torrents dans modal - EXACTEMENT COMME DISCOVER */
.torrents-list {
padding: 10px;
}
.torrents-list-items {
gap: 8px;
}
.torrent-item {
flex-direction: column;
align-items: stretch;
padding: 12px;
gap: 10px;
}
.torrent-info {
width: 100%;
}
.torrent-name {
font-size: 0.85rem;
white-space: normal;
word-break: break-word;
line-height: 1.4;
}
.torrent-meta {
flex-wrap: wrap;
gap: 8px;
font-size: 0.8rem;
}
.torrent-meta span {
background: var(--bg-secondary);
padding: 3px 8px;
border-radius: 4px;
}
.torrent-actions {
width: 100%;
justify-content: space-between;
gap: 6px;
padding-top: 10px;
border-top: 1px solid var(--border-color);
}
.torrent-actions a,
.torrent-actions button {
flex: 1;
padding: 10px 8px;
text-align: center;
font-size: 1rem;
min-width: 0;
}
/* Tags */
.tags-cloud {
gap: 6px;
}
.tag-item {
padding: 6px 12px;
font-size: 0.8rem;
}
}
/* Très petit écran */
@media (max-width: 480px) {
.header h1 {
font-size: 1.4rem;
}
/* Navigation sur petits écrans */
.main-nav {
gap: 6px;
}
.main-nav a {
padding: 8px 10px;
font-size: 0.8rem;
min-width: 70px;
}
.main-nav a.nav-logout {
min-width: 40px;
max-width: 40px;
padding: 8px;
}
/* Categories sur 2 colonnes */
.categories {
grid-template-columns: repeat(2, 1fr);
}
.category-btn {
padding: 10px 6px;
font-size: 0.8rem;
}
/* Grille 1 colonne pour les cartes */
.results-grid {
grid-template-columns: 1fr;
gap: 15px;
}
.card-poster {
height: 250px;
}
.card-overview {
display: block;
-webkit-line-clamp: 2;
min-height: auto;
font-size: 0.8rem;
margin-bottom: 10px;
}
.card-actions {
flex-direction: row;
}
.modal-title {
font-size: 1.1rem;
}
/* Trackers actions en colonne */
.trackers-actions {
flex-direction: column;
}
.trackers-actions button {
width: 100%;
}
/* Boutons torrents sur très petit écran - comme discover */
.torrent-actions {
flex-wrap: wrap;
}
.torrent-actions a,
.torrent-actions button {
flex: 1 1 45%;
padding: 10px 6px;
font-size: 0.95rem;
}
}
/* RSS Source Badge */
.source-badge.source-rss {
background: #10b981;
color: white;
}
/* Bouton envoyer au client torrent */
.btn-send-client-small {
background: linear-gradient(135deg, #27ae60 0%, #2ecc71 100%);
color: white;
border: none;
padding: 4px 8px;
border-radius: 4px;
cursor: pointer;
font-size: 0.9rem;
transition: all 0.2s;
}
.btn-send-client-small:hover {
transform: scale(1.1);
box-shadow: 0 2px 8px rgba(39, 174, 96, 0.4);
}
.btn-send-client-small:disabled {
opacity: 0.7;
cursor: not-allowed;
transform: none;
}
/* ============================================================
MODAL OPTIONS TORRENT
============================================================ */
.torrent-options-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.85);
display: flex;
justify-content: center;
align-items: center;
z-index: 20000;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s, visibility 0.3s;
}
.torrent-options-modal.visible {
opacity: 1;
visibility: visible;
}
.torrent-options-content {
background: var(--bg-secondary);
border-radius: var(--radius);
padding: 25px;
width: 90%;
max-width: 400px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}
.torrent-options-content h3 {
margin: 0 0 20px 0;
color: var(--accent-primary);
font-size: 1.2rem;
}
.torrent-option-group {
margin-bottom: 15px;
}
.torrent-option-group label {
display: block;
margin-bottom: 5px;
color: var(--text-secondary);
font-size: 0.9rem;
}
.torrent-option-group select,
.torrent-option-group input[type="text"] {
width: 100%;
padding: 10px 12px;
background: var(--bg-primary);
border: 1px solid var(--border-color);
border-radius: var(--radius);
color: var(--text-primary);
font-size: 1rem;
}
.torrent-option-group select:focus,
.torrent-option-group input[type="text"]:focus {
outline: none;
border-color: var(--accent-primary);
}
.torrent-option-group.checkbox-group {
display: flex;
align-items: center;
gap: 10px;
}
.torrent-option-group.checkbox-group label {
margin-bottom: 0;
cursor: pointer;
}
.torrent-option-group.checkbox-group input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: var(--accent-primary);
cursor: pointer;
}
.torrent-options-buttons {
display: flex;
gap: 10px;
margin-top: 20px;
}
.torrent-options-buttons button {
flex: 1;
padding: 12px;
border: none;
border-radius: var(--radius);
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.2s;
}
.torrent-options-buttons .btn-cancel {
background: var(--bg-primary);
color: var(--text-primary);
border: 1px solid var(--border-color);
}
.torrent-options-buttons .btn-cancel:hover {
background: var(--bg-card);
}
.torrent-options-buttons .btn-confirm {
background: var(--success);
color: white;
}
.torrent-options-buttons .btn-confirm:hover {
background: #22b547;
}
/* Mobile */
@media (max-width: 768px) {
.torrent-options-content {
width: 95%;
padding: 20px;
}
.torrent-options-content h3 {
font-size: 1.1rem;
}
}
/* ============================================================
CACHE INFO
============================================================ */
.results-meta {
display: flex;
align-items: center;
gap: 15px;
flex-wrap: wrap;
}
.cache-info {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 20px;
font-size: 0.85rem;
}
.cache-badge {
color: var(--accent-primary);
font-weight: 600;
}
.cache-timestamp {
color: var(--text-secondary);
}
.btn-refresh {
background: transparent;
border: none;
cursor: pointer;
font-size: 1rem;
padding: 2px 6px;
border-radius: 4px;
transition: all 0.2s;
}
.btn-refresh:hover {
background: var(--bg-primary);
transform: rotate(180deg);
}
/* Mobile */
@media (max-width: 768px) {
.results-meta {
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.cache-info {
width: 100%;
justify-content: center;
}
}