Files
2026-07-09 15:14:27 +02:00

627 lines
9.9 KiB
CSS

@import url("./base.css");
@import url("./layout.css");
@import url("./sidebar.css");
@import url("./channels.css");
@import url("./now.css");
@import url("./day.css");
@import url("./timeline.css");
@import url("./modal.css");
@import url("./search.css");
.channels-sticky-header {
position: sticky;
top: 0;
z-index: 20;
background: var(--bg);
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
.channel-toolbar {
position: sticky;
top: 5.5rem;
z-index: 19;
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
align-items: center;
background: var(--bg);
padding: 0.75rem 0;
}
.channel-toolbar input[type="search"] {
min-width: 260px;
flex: 1;
}
.channel-filter-buttons,
.channel-actions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.channel-filter-buttons button.active {
background: var(--accent);
color: white;
}
.channel-count {
margin: 0.75rem 0 1rem;
color: var(--muted);
}
.channel-settings-card.is-changed {
border-color: var(--accent);
box-shadow: 0 0 0 1px var(--accent-soft);
}
.number-input.has-duplicate {
border-color: #ef4444;
background: rgba(239, 68, 68, 0.12);
}
.duplicate-warning {
margin-left: 1rem;
color: #f87171;
font-weight: 700;
}
@media (max-width: 800px) {
.channels-sticky-header,
.channel-toolbar {
position: static;
}
}
.drag-handle {
cursor: grab;
color: var(--muted);
font-size: 1.2rem;
padding-right: 0.75rem;
user-select: none;
}
.channel-settings-main {
display: flex;
align-items: center;
gap: 0.5rem;
}
.channel-settings-card.is-dragging {
opacity: 0.45;
border-color: var(--accent);
}
.drag-handle {
cursor: grab;
}
.drag-handle:active {
cursor: grabbing;
}
.channel-group-heading {
margin: 1.25rem 0 0.5rem;
padding: 0.5rem 0.75rem;
border-left: 4px solid var(--accent);
background: var(--panel-2);
color: var(--text);
font-weight: 700;
border-radius: 0.5rem;
}
#groupFilter {
min-width: 180px;
height: 38px;
padding: 0 0.75rem;
border: 1px solid var(--border);
border-radius: 6px;
background: var(--panel);
color: var(--text);
}
.channel-logo {
width: 42px;
height: 30px;
flex: 0 0 42px;
display: flex;
align-items: center;
justify-content: center;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 0.4rem;
overflow: hidden;
}
.channel-logo img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.channel-logo span {
font-size: 1.1rem;
opacity: 0.75;
}
.channel-logo {
width: 42px;
height: 30px;
flex: 0 0 42px;
display: flex;
align-items: center;
justify-content: center;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 0.4rem;
overflow: hidden;
}
.channel-logo img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.channel-logo span {
font-size: 1.1rem;
opacity: 0.75;
}
.mini-channel-logo {
width: 34px;
height: 24px;
object-fit: contain;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 0.35rem;
padding: 2px;
flex: 0 0 34px;
}
.channel-header-with-logo,
.now-channel {
display: flex;
align-items: center;
gap: 0.5rem;
}
.now-card-enhanced {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.now-card-top {
display: flex;
align-items: center;
gap: 0.85rem;
}
.now-channel-logo {
width: 64px;
height: 44px;
object-fit: contain;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 0.55rem;
padding: 4px;
flex: 0 0 64px;
}
.now-channel-info {
min-width: 0;
}
.now-channel-name {
display: flex;
align-items: center;
gap: 0.4rem;
font-weight: 700;
}
.now-time {
color: var(--muted);
font-size: 0.9rem;
margin-top: 0.15rem;
}
.now-badges {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
}
.now-badge {
display: inline-flex;
align-items: center;
gap: 0.25rem;
border: 1px solid var(--border);
background: var(--panel-2);
color: var(--text);
border-radius: 999px;
padding: 0.2rem 0.55rem;
font-size: 0.82rem;
}
.now-next {
display: grid;
grid-template-columns: auto 1fr auto;
gap: 0.5rem;
align-items: center;
border-top: 1px solid var(--border);
padding-top: 0.65rem;
color: var(--muted);
font-size: 0.9rem;
}
.now-next strong {
color: var(--text);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.now-next-label {
color: var(--muted);
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.now-channel-logo {
display: block;
width: 64px;
height: 44px;
min-width: 64px;
object-fit: contain;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 0.55rem;
padding: 4px;
}
.progress-wrap {
width: 100%;
}
.progress-bar {
width: 100%;
height: 10px;
background: var(--panel-2);
border-radius: 999px;
overflow: hidden;
border: 1px solid var(--border);
}
.progress-fill {
display: block;
height: 100%;
min-width: 2px;
background: var(--accent);
border-radius: 999px;
}
.progress-meta {
display: flex;
justify-content: space-between;
color: var(--muted);
font-size: 0.85rem;
margin-bottom: 0.35rem;
}
.now-grid-enhanced {
gap: 1.5rem;
}
.now-card-enhanced {
padding: 1.35rem;
border-radius: 14px;
gap: 0.9rem;
}
.now-card-top {
margin-bottom: 0.35rem;
}
.now-channel-logo {
width: 76px;
height: 52px;
flex-basis: 76px;
}
.now-channel-name {
font-size: 1rem;
}
.now-time {
font-size: 0.92rem;
}
.now-card-enhanced h3 {
font-size: 1.35rem;
margin: 0.1rem 0 0;
}
.now-subtitle {
color: var(--muted);
margin-top: -0.35rem;
}
.now-badges {
margin-top: 0.1rem;
}
.progress-wrap {
margin-top: 0.25rem;
}
.progress-bar {
height: 12px;
}
.progress-meta {
margin-bottom: 0.4rem;
}
.now-next {
margin-top: 0.45rem;
padding-top: 0.85rem;
border-top: 1px solid var(--border);
background: rgba(255, 255, 255, 0.025);
border-radius: 0 0 10px 10px;
}
.now-next-label {
font-size: 0.75rem;
}
.now-next strong {
font-size: 0.95rem;
}
.now-next {
display: block;
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid var(--border);
background: transparent;
border-radius: 0;
color: var(--muted);
}
.now-next-programme {
display: flex;
gap: 1rem;
align-items: flex-start;
margin-top: 0.35rem;
}
.now-next-time {
min-width: 54px;
font-weight: 700;
color: var(--accent);
}
.now-next-info {
flex: 1;
min-width: 0;
}
.now-next-info strong {
display: block;
color: var(--text);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.now-next-subtitle {
margin-top: 0.15rem;
font-size: 0.9rem;
color: var(--muted);
}
.now-card-top {
display: flex;
gap: 1rem;
align-items: center;
}
.now-channel-logo-wrap {
width: 92px;
height: 64px;
flex: 0 0 92px;
display: flex;
align-items: center;
justify-content: center;
background: var(--panel-2);
border: 1px solid var(--border);
border-radius: .8rem;
}
.now-channel-logo {
width: 82px;
height: 52px;
object-fit: contain;
}
.now-channel-info {
flex: 1;
}
.now-channel-name {
font-size: 1.15rem;
font-weight: 700;
}
.now-channel-number {
margin-top: .15rem;
color: var(--muted);
font-size: .9rem;
}
.now-time {
margin-top: .25rem;
color: var(--muted);
font-size: .95rem;
}
.dashboard-hero {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
margin-bottom: 1.5rem;
padding: 1.5rem;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 18px;
}
.dashboard-hero h2 {
margin: 0;
font-size: 2rem;
}
.dashboard-hero p {
margin: 0.35rem 0 0;
color: var(--muted);
}
.dashboard-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.25rem;
}
.dashboard-panel {
background: var(--panel);
border: 1px solid var(--border);
border-radius: 18px;
padding: 1rem;
}
.dashboard-panel h3 {
margin: 0 0 0.9rem;
}
.dashboard-item {
display: grid;
grid-template-columns: 52px 1fr;
gap: 0.75rem;
align-items: center;
padding: 0.65rem;
border-radius: 12px;
color: var(--text);
text-decoration: none;
}
.dashboard-item:hover {
background: var(--panel-2);
}
.dashboard-item img {
width: 52px;
height: 36px;
object-fit: contain;
background: var(--panel-2);
border: 1px solid var(--border);
border-radius: 0.5rem;
padding: 3px;
}
.dashboard-item strong {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dashboard-item span {
display: block;
margin-top: 0.2rem;
color: var(--muted);
font-size: 0.88rem;
}
.empty.compact {
padding: 0.8rem;
font-size: 0.9rem;
}
@media (max-width: 900px) {
.dashboard-grid {
grid-template-columns: 1fr;
}
.dashboard-hero {
align-items: flex-start;
flex-direction: column;
}
}
.dashboard-card-grid {
display: grid;
gap: 0.85rem;
}
.dashboard-programme-card {
text-align: left;
display: grid;
grid-template-columns: 64px 1fr;
gap: 0.75rem;
align-items: center;
width: 100%;
border: 1px solid var(--border);
border-radius: 14px;
padding: 0.85rem;
background: var(--panel-2);
color: var(--text);
cursor: pointer;
}
.dashboard-programme-card:hover {
background: var(--panel-3);
transform: translateY(-1px);
}
.dashboard-programme-card img {
grid-row: span 3;
width: 64px;
height: 44px;
object-fit: contain;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 0.6rem;
padding: 4px;
}
.dashboard-programme-card strong {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dashboard-programme-card span {
color: var(--muted);
font-size: 0.88rem;
}
.dashboard-progress {
height: 8px;
background: var(--panel);
border: 1px solid var(--border);
border-radius: 999px;
overflow: hidden;
}
.dashboard-progress div {
height: 100%;
background: var(--accent);
border-radius: 999px;
}