@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--accent:#e7b93d;--bg:#151923;--panel:#202634;--panel2:#282f3e;--text:#f6f7fb;--muted:#a8b0c0;--line:#343c4d;--good:#54d6a0}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',system-ui,-apple-system,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;border:0}.shell,.admin-shell{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:28px 0 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.brand{display:flex;align-items:center;gap:13px}.brand h1{font-size:20px;margin:0 0 3px}.brand p{margin:0;color:var(--muted);font-size:13px}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:var(--accent);color:#151923;font-weight:800;font-size:19px;flex-shrink:0}.brand-logo{width:52px;height:52px;object-fit:contain;border-radius:12px}.admin-link{font-size:13px;color:var(--muted);padding:10px 13px;border:1px solid var(--line);border-radius:10px}.admin-link:hover{color:var(--text);border-color:var(--accent)}.player-card{display:grid;grid-template-columns:minmax(220px,350px) 1fr;gap:34px;padding:28px;background:linear-gradient(135deg,var(--panel),#1a202d);border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 60px #0002}.artwork{aspect-ratio:1;border-radius:18px;background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--accent) 75%,#fff),transparent 24%),radial-gradient(circle at 75% 70%,#9d57e7,transparent 30%),linear-gradient(145deg,#252b40,#10131b);display:grid;place-items:center;overflow:hidden;background-size:cover;background-position:center}.disc{font-size:100px;color:#ffffffc9;text-shadow:0 8px 30px #0008}.player-info{display:flex;flex-direction:column;justify-content:center;min-width:0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;color:var(--muted);margin:0 0 12px}.live-dot{display:inline-block;width:7px;height:7px;background:var(--good);border-radius:50%;margin-right:7px;box-shadow:0 0 12px #54d6a0aa}.player-info h2{font-size:clamp(27px,4vw,42px);line-height:1.08;margin:0 0 9px;letter-spacing:-1.3px}.muted{color:var(--muted)}#channelDescription{margin:0 0 28px}.track{border-top:1px solid var(--line);padding:17px 0 8px;display:flex;flex-direction:column;gap:7px}.track-label{font-size:10px;letter-spacing:1.5px;color:var(--muted)}#songTitle{font-size:17px;overflow-wrap:anywhere}.controls{display:flex;align-items:center;gap:22px;margin-top:17px}.play{width:62px;height:62px;flex-shrink:0;border-radius:50%;background:var(--accent);color:#161923;font-size:23px;box-shadow:0 7px 24px color-mix(in srgb,var(--accent) 28%,transparent)}.play:disabled{opacity:.5;cursor:not-allowed}.volume{display:flex;align-items:center;gap:12px;flex:1;color:var(--muted);font-size:12px}.volume input{width:100%;accent-color:var(--accent)}.message{min-height:18px;font-size:12px;color:var(--muted);margin:12px 0 0}.section{margin-top:38px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-heading h2,.section-heading h3{margin:0;font-size:22px}.section-heading .eyebrow{margin-bottom:6px}.channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:13px}.channel-card{display:flex;align-items:center;gap:14px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;color:var(--text);transition:.15s}.channel-card:hover,.channel-card.active{border-color:var(--accent);background:var(--panel2)}.channel-card.active{box-shadow:inset 3px 0 var(--accent)}.channel-logo{width:54px;height:54px;border-radius:12px;display:grid;place-items:center;background:var(--panel2);color:var(--accent);font-size:24px;flex-shrink:0;object-fit:cover}.channel-card strong,.channel-card small{display:block}.channel-card strong{font-size:14px;margin-bottom:5px}.channel-card small{color:var(--muted);font-size:12px}.history-list{display:flex;flex-direction:column}.history-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.history-row strong{display:block;font-size:13px;overflow-wrap:anywhere}.history-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.history-time{font-size:11px;color:var(--muted);white-space:nowrap}footer{text-align:center;color:var(--muted);font-size:12px;margin-top:45px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:23px;margin:18px 0}.panel h2,.panel h3{margin:0 0 17px}.narrow{max-width:480px;margin:60px auto}.form-grid{display:grid;grid-template-columns:1fr;gap:15px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px}.form-grid input:not([type=checkbox]):not([type=color]){width:100%;background:#151a25;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:12px;outline:none}.form-grid input:focus{border-color:var(--accent)}.form-grid input[type=color]{width:54px;height:40px;padding:3px;background:var(--panel2);border:1px solid var(--line);border-radius:8px}.color-row{display:flex;gap:25px}.check-label{flex-direction:row!important;align-items:center}.form-buttons{display:flex;gap:10px}.primary,.secondary{border-radius:9px;padding:11px 15px;font-size:13px;font-weight:700}.primary{background:var(--accent);color:#171923}.secondary{background:var(--panel2);border:1px solid var(--line);color:var(--text)}.primary:hover{filter:brightness(1.07)}.admin-actions{display:flex;justify-content:space-between;align-items:center}.admin-actions h2{margin:0}.admin-channel-list{display:flex;flex-direction:column;gap:10px}.admin-channel{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px;border:1px solid var(--line);border-radius:12px}.admin-channel p{margin:4px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.admin-channel-actions{display:flex;gap:8px;flex-shrink:0}.admin-channel-actions button{font-size:12px;padding:8px 10px}.help{font-size:12px;color:var(--muted);line-height:1.6}.hidden{display:none!important}.error{color:#ff9d9d!important}.success{color:var(--good)!important}
@media(max-width:700px){.shell,.admin-shell{width:min(100% - 22px,560px);padding-top:16px}.topbar{margin-bottom:18px}.player-card{grid-template-columns:1fr;gap:22px;padding:17px;border-radius:18px}.artwork{max-width:300px;width:100%;margin:auto}.player-info h2{font-size:31px}.player-info #channelDescription{margin-bottom:18px}.channels{grid-template-columns:1fr 1fr}.channel-card{padding:10px;gap:9px}.channel-logo{width:42px;height:42px}.channel-card strong{font-size:12px}.channel-card small{font-size:11px}.form-grid.two{grid-template-columns:1fr}.admin-channel{align-items:flex-start;flex-direction:column}.admin-channel-actions{width:100%}.admin-channel-actions button{flex:1}.brand h1{font-size:17px}.admin-link{font-size:12px;padding:8px}.panel{padding:16px}}

/* SLR footer links */
.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 24px;
  margin: 28px 0 12px;
  padding: 20px 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  text-align: center;
}

.site-footer a {
  color: inherit;
  text-decoration: none;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  opacity: 1;
  text-decoration: underline;
}

@media (max-width: 480px) {
  .site-footer {
    gap: 14px;
  }
}

/* Dato- og tidsfilter til musikhistorik */
.history-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin: 12px 0;
}

.history-filters label {
  display: grid;
  gap: 6px;
  font-size: 0.9rem;
}

.history-filters input,
.history-filters button {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 8px;
  font: inherit;
}

.history-filters button {
  cursor: pointer;
}

@media (max-width: 560px) {
  .history-filters label {
    flex: 1 1 120px;
  }
}
