:root {
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#262a25;
  background:#f7f7ef;
  font-synthesis:none;
  --bg:#f7f7ef;
  --surface:#fffef8;
  --ink:#262a25;
  --muted:#71756b;
  --line:#e3e5da;
  --accent:#d8ed9a;
  --green:#3d5334;
  --soft:#eceee3;
  --player:#fcfcf7;
  --shadow:0 18px 70px #17221722;
  color-scheme:light
}
:root[data-theme=dark] {
  --bg:#191e1b;
  --surface:#222a24;
  --ink:#eef0e4;
  --muted:#a5b09f;
  --line:#354036;
  --accent:#c5df8a;
  --green:#c5df8a;
  --soft:#29342b;
  --player:#202820;
  --shadow:0 18px 70px #0008;
  background:var(--bg);
  color:var(--ink);
  color-scheme:dark
}
html {
  scroll-padding-top:22px;
  scroll-padding-bottom:165px
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
button {
  color:inherit;
  cursor:pointer;
  border:0;
  background:none
}
button:disabled {
  cursor:default;
  opacity:.35
}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible {
  outline:3px solid #6d9339;
  outline-offset:4px
}
button:enabled:hover {
  filter:brightness(.95)
}
a {
  color:inherit
}
button .icon {
  flex-shrink:0
}
.icon {
  width:20px;
  height:20px;
  display:inline-block;
  vertical-align:middle;
  flex-shrink:0
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  flex-shrink:0
}
.icon-button:hover {
  background:var(--soft)
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.shell {
  display:flex;
  min-height:100vh
}
.sidebar {
  width:240px;
  flex-shrink:0;
  padding:37px 24px 175px 28px;
  border-right:1px solid var(--line);
  position:fixed;
  inset:0 auto 0 0;
  display:flex;
  flex-direction:column;
  background:var(--bg);
  z-index:10
}
.brand {
  font-size:46px;
  letter-spacing:-3px;
  font-weight:650;
  text-decoration:none;
  display:flex;
  align-items:center;
  line-height:1
}
.brand-dot {
  color:#7e9e51
}
.brand-mark {
  font-family:Georgia,serif;
  font-style:italic;
  color:var(--bg);
  background:var(--ink);
  font-size:31px;
  letter-spacing:-3px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border-radius:12px;
  width:36px;
  height:38px;
  margin-right:10px;
  padding-right:4px
}
.eyebrow {
  font-size:10px;
  letter-spacing:1.7px;
  font-weight:650
}
.sidebar>.eyebrow {
  font-size:8px;
  margin:18px 0 35px;
  letter-spacing:1.8px;
  color:var(--muted)
}
.mode-switch {
  display:flex;
  flex-direction:column;
  gap:5px
}
.mode-switch button {
  padding:13px 15px;
  text-align:left;
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:9px;
  font-size:14px;
  font-weight:550
}
.mode-switch .active {
  background:var(--ink);
  color:var(--bg)
}
.nav-label {
  font-size:9px;
  letter-spacing:1.5px;
  color:var(--muted);
  margin:36px 14px 14px
}
.library-nav {
  display:flex;
  flex-direction:column;
  gap:5px
}
.library-nav button {
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
  padding:12px 15px;
  font-size:13px;
  border-radius:9px;
  color:var(--muted)
}
.library-nav button.active {
  background:var(--soft);
  color:var(--ink);
  font-weight:600
}
.library-nav button>span {
  margin-left:auto;
  font-size:10px;
  border:1px solid var(--line);
  padding:1px 5px;
  border-radius:4px
}
.side-import {
  border:1px dashed #b8bfab;
  border-radius:9px;
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  font-size:12px;
  padding:13px 5px;
  width:100%;
  margin-top:28px
}
.small-note {
  font-size:10px;
  line-height:1.8;
  color:var(--muted);
  padding:12px 8px
}
.sidebar-foot {
  margin-top:auto;
  padding-top:35px;
  font-size:10px;
  color:var(--muted);
  line-height:1.6
}
.local-dot {
  width:6px;
  height:6px;
  background:#75954d;
  display:inline-block;
  border-radius:50%;
  margin-right:5px
}
.sidebar-foot button {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:10px;
  color:var(--muted);
  margin-top:10px;
  padding:0
}
.sidebar-foot .icon {
  width:13px
}
.workspace {
  margin-left:240px;
  width:calc(100% - 240px);
  padding:0 48px 170px;
  max-width:1600px
}
.topbar {
  height:94px;
  display:flex;
  align-items:center;
  gap:18px;
  border-bottom:1px solid var(--line);
  margin-bottom:44px
}
.topword {
  font-size:9px;
  letter-spacing:2px;
  font-weight:600;
  color:var(--muted);
  margin-right:auto
}
.local-pill {
  display:flex;
  gap:6px;
  align-items:center;
  font-size:10px;
  color:var(--muted)
}
.local-pill .icon {
  width:14px
}
.theme-toggle {
  width:32px;
  height:32px
}
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin-bottom:32px
}
.page-heading>.primary {
  flex-shrink:0
}
.page-heading .eyebrow {
  font-size:9px;
  letter-spacing:1.8px;
  color:var(--muted)
}
h1 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:44px;
  line-height:1.16;
  font-weight:400;
  letter-spacing:-1.6px;
  margin:12px 0
}
p {
  line-height:1.7
}
.page-heading p {
  font-size:12px;
  color:var(--muted);
  margin:0
}
.primary,.secondary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:7px;
  font-size:12px;
  font-weight:650;
  padding:14px 20px;
  min-height:44px
}
.primary {
  background:var(--accent);
  color:#26321c
}
.primary .icon {
  width:17px
}
.secondary {
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--ink)
}
.primary.compact {
  padding:12px 16px
}
.welcome {
  background:#e9eddf;
  border-radius:13px;
  display:grid;
  grid-template-columns:1.12fr 1fr;
  overflow:hidden;
  min-height:330px;
  border:1px solid #e0e5d5
}
.welcome-copy {
  padding:39px 0 34px 35px;
  position:relative;
  z-index:1
}
.tag {
  font-size:8px;
  letter-spacing:1.6px;
  background:#f7f9edaa;
  padding:7px 10px;
  border:1px solid #cdd5bb;
  border-radius:4px;
  color:#4e6043
}
.welcome h2 {
  font-family:Georgia,serif;
  font-size:36px;
  line-height:1.16;
  font-weight:400;
  letter-spacing:-1.1px;
  color:#293326;
  margin:23px 0 14px
}
.welcome p {
  font-size:11px;
  line-height:1.9;
  color:#69715f;
  margin-bottom:25px
}
.welcome .primary {
  background:#2d3828;
  color:#f1f5e7
}
.file-hint {
  font-size:9px;
  color:#727a67;
  display:block;
  margin-top:12px
}
.record-art {
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#e9eddf,#d9e2c8);
  min-height:330px
}
.record {
  position:relative;
  width:270px;
  aspect-ratio:1;
  border-radius:50%;
  background:repeating-radial-gradient(circle at center,#242e25 0px,#242e25 2px,#303b2e 3px,#202a23 4px);
  box-shadow:12px 15px 30px #2f3c2c33;
  transform:rotate(-23deg);
  margin-left:35px;
  margin-top:20px
}
.record:before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:conic-gradient(from 10deg,transparent,#7d8e6244,transparent 25%,#9baa8222 50%,transparent 75%)
}
.record-label {
  position:absolute;
  inset:31%;
  border-radius:50%;
  background:#dae39d;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:#33452a;
  gap:12px;
  border:1px solid #d5dbac
}
.record-label>span {
  font-size:12px;
  letter-spacing:5px;
  padding-left:5px
}
.record-label i {
  width:8px;
  height:8px;
  border-radius:50%;
  background:#2e382a;
  outline:6px solid #c4cf92
}
.record-label small {
  font-size:5px;
  letter-spacing:1.7px
}
.art-sun {
  position:absolute;
  top:31px;
  right:40px;
  background:#c4cf9c;
  width:70px;
  height:70px;
  border-radius:50%
}
.art-caption {
  position:absolute;
  bottom:24px;
  right:22px;
  font-size:6px;
  letter-spacing:2px;
  color:#5c7051
}
.empty-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:21px 2px;
  font-size:9px;
  color:var(--muted)
}
.empty-bottom>span {
  display:flex;
  gap:7px;
  align-items:center
}
.empty-bottom .icon {
  width:13px
}
.empty-bottom button {
  font-size:9px;
  display:flex;
  gap:7px;
  align-items:center
}
.footnote {
  margin-top:48px;
  padding-top:20px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--muted);
  font-size:8px;
  letter-spacing:1.3px
}
.footnote button {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:9px;
  letter-spacing:0
}
.footnote .icon {
  width:13px
}
.search {
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--surface);
  border:1px solid var(--line);
  padding:0 16px;
  border-radius:8px;
  height:49px;
  margin-bottom:28px
}
.search>.icon {
  width:17px;
  color:var(--muted)
}
.search input {
  border:0;
  outline:0;
  background:none;
  color:var(--ink);
  width:100%;
  min-width:0;
  font-size:12px
}
.search input:focus-visible {
  outline:none
}
.search:focus-within {
  outline:2px solid #6d9339
}
.search>span {
  font-size:8px;
  letter-spacing:1px;
  white-space:nowrap;
  color:var(--muted)
}
.section-line {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-bottom:15px;
  border-bottom:1px solid var(--line);
  font-size:10px;
  color:var(--muted);
  min-height:44px
}
.section-line>div {
  display:flex;
  gap:18px
}
.text-button {
  font-size:11px;
  color:var(--green);
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 0
}
.text-button .icon {
  width:13px
}
.track-row {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:76px;
  border-bottom:1px solid var(--line);
  padding:8px 2px;
  transition:background .2s;
  border-radius:3px
}
.track-row.current {
  background:var(--soft)
}
.track-row:hover {
  background:var(--soft)
}
.track-play {
  width:28px;
  flex-shrink:0;
  padding:10px 0
}
.track-play>.icon {
  display:none;
  width:17px
}
.track-row:hover .track-number,.track-row.current .track-number {
  display:none
}
.track-row:hover .track-play>.icon,.track-row.current .track-play>.icon {
  display:inline-block
}
.track-number {
  font-size:10px;
  color:var(--muted)
}
.track-art {
  width:43px;
  height:43px;
  border-radius:7px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0
}
.track-art>.icon {
  width:18px;
  opacity:.65
}
.tone-0 {
  background:#d9e2c6;
  color:#465a38
}
.tone-1 {
  background:#e6d5c4;
  color:#825f41
}
.tone-2 {
  background:#d0dee4;
  color:#456776
}
.tone-3 {
  background:#e0d7e4;
  color:#705b7b
}
.track-title {
  display:flex;
  flex-direction:column;
  text-align:left;
  gap:7px;
  min-width:0;
  flex:1;
  padding:0
}
.track-title strong {
  font-size:12px;
  font-weight:550;
  text-overflow:ellipsis;
  overflow:hidden;
  white-space:nowrap;
  max-width:100%
}
.track-title span {
  font-size:10px;
  color:var(--muted);
  text-overflow:ellipsis;
  overflow:hidden;
  white-space:nowrap;
  max-width:100%
}
.track-time {
  font-size:10px;
  color:var(--muted);
  width:34px;
  text-align:right;
  font-variant-numeric:tabular-nums
}
.lyric-badge {
  width:16px;
  color:var(--muted)
}
.lyric-badge .icon {
  width:14px
}
.favourite.selected {
  color:var(--green)
}
.favourite.selected svg {
  fill:var(--green)
}
.track-row>.icon-button {
  width:32px;
  height:40px
}
.track-row>.icon-button .icon {
  width:17px
}
.queue-note {
  margin-top:20px;
  display:flex;
  gap:8px;
  align-items:center;
  font-size:9px;
  color:var(--muted)
}
.queue-note .icon {
  width:13px
}
.artist-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  padding-top:24px
}
.artist-card {
  text-align:left;
  min-width:0;
  padding:0
}
.artist-art {
  aspect-ratio:1;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden
}
.artist-art>span {
  font-family:Georgia,serif;
  font-size:90px;
  opacity:.55;
  font-style:italic;
  z-index:1
}
.artist-art:before {
  content:"";
  width:80%;
  height:80%;
  border:1px solid currentColor;
  border-radius:50%;
  position:absolute;
  left:-10%;
  top:30%;
  opacity:.2
}
.artist-art:after {
  content:"";
  width:80%;
  height:80%;
  border:1px solid currentColor;
  border-radius:50%;
  position:absolute;
  right:-10%;
  top:-10%;
  opacity:.2
}
.artist-art>.icon {
  position:absolute;
  bottom:16px;
  right:16px;
  width:17px
}
.artist-card>strong {
  display:block;
  font-weight:550;
  font-size:13px;
  margin-top:14px;
  overflow-wrap:anywhere
}
.artist-card>small {
  display:block;
  font-size:9px;
  color:var(--muted);
  margin-top:7px
}
.back-button {
  font-size:11px;
  color:var(--muted);
  margin-bottom:20px;
  padding:0
}
.new-playlist {
  background:var(--soft);
  border:1px solid var(--line);
  padding:23px;
  border-radius:10px;
  margin-bottom:25px
}
.new-playlist label {
  font-family:Georgia,serif;
  display:block;
  font-size:20px;
  margin-bottom:14px
}
.new-playlist>div {
  display:flex;
  gap:10px
}
.new-playlist input {
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:6px;
  padding:12px;
  font-size:12px;
  min-width:0;
  flex:1
}
.playlist-grid {
  display:grid;
  gap:12px
}
.playlist-card {
  display:flex;
  align-items:center;
  gap:18px;
  border:1px solid var(--line);
  border-radius:9px;
  padding:15px;
  text-align:left;
  background:var(--surface)
}
.playlist-art {
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:6px;
  background:var(--soft);
  color:var(--green)
}
.playlist-card>span:nth-child(2) {
  display:flex;
  flex-direction:column;
  gap:9px;
  flex:1;
  min-width:0
}
.playlist-card strong {
  font-size:13px;
  overflow-wrap:anywhere
}
.playlist-card small {
  color:var(--muted);
  font-size:10px
}
.playlist-card>.icon {
  width:15px
}
.empty-state {
  text-align:center;
  padding:55px 18px
}
.empty-state>.icon {
  width:32px;
  height:32px;
  color:var(--muted)
}
.empty-state h2 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:25px
}
.empty-state p {
  font-size:12px;
  color:var(--muted);
  max-width:370px;
  margin:10px auto 24px
}
.muted {
  color:var(--muted);
  font-size:12px
}
.mobile-library {
  display:none
}
.player {
  position:fixed;
  inset:auto 0 0;
  min-height:116px;
  background:var(--player);
  border-top:1px solid var(--line);
  z-index:20;
  display:grid;
  grid-template-columns:1fr 1.1fr .8fr;
  gap:25px;
  padding:20px 30px max(18px,env(safe-area-inset-bottom));
  align-items:center;
  box-shadow:0 -6px 35px #1a211105
}
.now-playing {
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0
}
.now-art {
  width:59px;
  height:59px;
  border-radius:9px;
  background:#dce5c6;
  color:#5b7049;
  display:grid;
  place-items:center;
  flex-shrink:0
}
.now-art .icon {
  width:25px;
  height:25px
}
.now-playing>div {
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0
}
.now-playing strong {
  font-size:12px;
  font-weight:550;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.now-playing span:not(.now-art) {
  font-size:9px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.transport-buttons {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:17px
}
.transport-buttons>.icon-button {
  width:32px;
  height:28px
}
.transport-buttons .icon {
  width:16px
}
.play-button {
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--ink);
  color:var(--bg)
}
.play-button>.icon {
  width:17px;
  height:17px
}
.play-button svg {
  fill:currentColor
}
.play-button:has(path[d^="M8"]) svg {
  fill:none;
  stroke-width:3
}
.timeline {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:8px;
  font-size:8px;
  color:var(--muted);
  font-variant-numeric:tabular-nums
}
.timeline>span {
  width:28px
}
.timeline>span:last-child {
  text-align:right
}
input[type=range] {
  accent-color:var(--green);
  height:4px;
  cursor:pointer;
  min-width:0
}
.timeline input {
  width:100%;
  margin:5px 0
}
.player-extras {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:11px
}
.player-extras>span {
  font-size:8px;
  color:var(--muted);
  max-width:105px;
  line-height:1.5
}
.player-extras .icon {
  width:17px
}
.volume {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted)
}
.volume input {
  width:57px
}
.audio-error {
  grid-column:1/-1;
  color:#a34537;
  background:#f6e8e1;
  font-size:11px;
  border-radius:5px;
  padding:8px 12px
}
.notice {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:11px;
  line-height:1.8;
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:7px;
  padding:9px 13px;
  margin:-20px 0 25px;
  overflow-wrap:anywhere
}
.notice .icon-button {
  width:28px;
  height:28px
}
.notice .icon {
  width:14px
}
.quran-sidebar {
  padding:10px 14px
}
.quran-sidebar>.icon {
  width:30px;
  height:30px;
  color:var(--green)
}
.quran-sidebar p {
  font-family:Georgia,serif;
  font-size:20px
}
.quran-sidebar>span {
  font-size:10px;
  line-height:1.9;
  color:var(--muted)
}
.room-symbol {
  font-size:65px;
  color:#869465;
  padding-right:15px
}
.surah-header {
  padding:25px;
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:10px;
  display:flex;
  align-items:center;
  gap:23px
}
.surah-icon {
  width:72px;
  height:80px;
  background:#dde5c8;
  color:#65764e;
  border:1px solid #c5d0ad;
  border-radius:32px 32px 6px 6px;
  display:grid;
  place-items:center;
  flex-shrink:0
}
.surah-icon>.icon {
  width:29px;
  height:29px
}
.surah-meta {
  flex:1;
  min-width:0
}
.surah-meta>.eyebrow {
  font-size:8px;
  letter-spacing:1.5px;
  color:var(--muted)
}
.surah-meta select {
  display:block;
  background:none;
  color:var(--ink);
  border:0;
  font-family:Georgia,serif;
  font-size:29px;
  width:100%;
  margin:9px 0;
  cursor:pointer;
  max-width:290px
}
.surah-meta option {
  font-family:system-ui;
  font-size:15px;
  background:var(--surface)
}
.surah-meta p {
  font-size:10px;
  color:var(--muted);
  margin:0
}
.reading-label {
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:1.3px;
  color:var(--muted);
  padding:30px 0 17px;
  border-bottom:1px solid var(--line)
}
.verse {
  width:100%;
  display:flex;
  gap:23px;
  text-align:left;
  padding:24px 14px 25px 0;
  border-bottom:1px solid var(--line);
  border-left:3px solid transparent;
  scroll-margin:25px;
  border-radius:5px
}
.verse-number {
  font-size:9px;
  color:var(--muted);
  flex-shrink:0;
  margin-top:8px;
  width:35px;
  text-align:center
}
.verse-body {
  display:flex;
  flex-direction:column;
  gap:15px;
  flex:1;
  min-width:0
}
.arabic {
  font-family:"Noto Naskh Arabic","Traditional Arabic","Times New Roman",serif;
  font-size:27px;
  line-height:2.1;
  text-align:right;
  font-weight:400
}
.transliteration {
  font-size:17px;
  line-height:1.8;
  letter-spacing:.1px;
  overflow-wrap:anywhere;
  color:var(--muted)
}
.verse-play {
  align-self:center;
  color:var(--muted)
}
.verse-play>.icon {
  width:15px
}
.verse.active {
  background:var(--soft);
  border-left-color:#6e9148
}
.verse.active .transliteration {
  color:var(--ink);
  font-weight:550
}
.verse.active .verse-number,.verse.active .verse-play {
  color:var(--green)
}
.quran-note {
  font-size:10px;
  color:var(--muted);
  margin-top:25px;
  max-width:550px
}
.loading {
  font-family:Georgia,serif;
  font-size:24px;
  text-align:center;
  padding:55px;
  color:var(--muted)
}
dialog {
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  padding:36px;
  border-radius:15px;
  width:560px;
  max-width:calc(100% - 30px);
  max-height:calc(100dvh - 45px);
  box-shadow:var(--shadow);
  overscroll-behavior:contain
}
dialog::backdrop {
  background:#121c1480;
  backdrop-filter:blur(4px)
}
dialog>.eyebrow {
  font-size:9px;
  color:var(--muted)
}
dialog h2 {
  font-family:Georgia,serif;
  font-size:32px;
  font-weight:400;
  letter-spacing:-.7px;
  margin:14px 30px 20px 0;
  overflow-wrap:anywhere
}
.modal-close {
  position:absolute;
  right:17px;
  top:17px
}
dialog form>label {
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:11px;
  color:var(--muted);
  margin-bottom:15px
}
dialog input,dialog select {
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--bg);
  color:var(--ink);
  font-size:13px;
  width:100%;
  min-width:0
}
dialog form>.primary {
  margin-top:6px
}
dialog h3 {
  font-size:13px;
  font-weight:600
}
dialog p {
  font-size:12px;
  color:var(--muted)
}
.dialog-section {
  border-top:1px solid var(--line);
  margin-top:25px;
  padding-top:10px
}
.dialog-section .secondary {
  font-size:11px
}
.dialog-section .text-button {
  margin:10px
}
.dialog-section form {
  display:flex;
  gap:10px
}
.dialog-section form .secondary {
  white-space:nowrap
}
.danger {
  margin-top:30px;
  color:#a45043;
  font-size:10px;
  padding:0
}
.lyric-lines {
  margin:30px 0;
  max-height:46vh;
  overflow-y:auto;
  padding:10px 4px;
  scroll-behavior:smooth
}
.lyric-lines>button,.lyric-lines>p {
  display:block;
  font-family:Georgia,serif;
  font-size:23px;
  line-height:1.6;
  text-align:left;
  padding:13px 6px;
  margin:0;
  color:var(--muted);
  width:100%;
  border-left:3px solid transparent
}
.lyric-lines>.active {
  color:var(--ink);
  background:var(--soft);
  border-left-color:#6e9148
}
.lyric-lines>p {
  padding:4px 6px
}
.about-copy p {
  line-height:1.9;
  font-size:12px
}
.about-copy h3 {
  margin-top:26px
}
.about-copy a {
  text-decoration-color:#9bad7b;
  text-underline-offset:3px
}
.about-copy code {
  font-size:11px;
  overflow-wrap:anywhere
}
.dragging:after {
  content:"Drop your music here. It stays in this browser.";
  position:fixed;
  inset:15px;
  border:2px dashed #6e9148;
  border-radius:18px;
  background:#eaf0d9ed;
  color:#32452b;
  display:grid;
  place-items:center;
  z-index:100;
  font-family:Georgia,serif;
  font-size:28px;
  pointer-events:none;
  padding:30px;
  text-align:center
}
@media(min-width:1500px) {
  .workspace {
    padding-left:70px;
    padding-right:70px
  }
  .welcome {
    min-height:400px
  }
  .welcome-copy {
    padding:55px
  }
  .record {
    width:310px
  }
  .record-art {
    min-height:400px
  }
  .welcome h2 {
    font-size:43px
  }
  .welcome p {
    font-size:13px
  }
}
@media(max-width:1100px) {
  .sidebar {
    width:205px;
    padding-left:22px;
    padding-right:20px
  }
  .workspace {
    margin-left:205px;
    width:calc(100% - 205px);
    padding-left:30px;
    padding-right:30px
  }
  .welcome {
    grid-template-columns:1.3fr 1fr
  }
  .welcome-copy {
    padding:30px 0 30px 26px
  }
  .welcome h2 {
    font-size:30px
  }
  .record {
    width:230px;
    margin-left:55px
  }
  .record-art {
    min-height:330px
  }
  .player {
    grid-template-columns:1fr 1.1fr .45fr;
    gap:18px;
    padding-left:22px;
    padding-right:22px
  }
  .volume {
    display:none
  }
  .player-extras>span {
    max-width:72px
  }
  .artist-grid {
    gap:17px
  }
  .search>span {
    display:none
  }
  h1 {
    font-size:39px
  }
  .track-row {
    gap:9px
  }
}
@media(max-width:760px) {
  .shell {
    display:block
  }
  .sidebar {
    position:relative;
    inset:auto;
    width:100%;
    padding:20px 22px 16px;
    border:0;
    border-bottom:1px solid var(--line);
    flex-direction:row;
    align-items:center;
    gap:20px;
    justify-content:space-between
  }
  .brand {
    font-size:35px;
    letter-spacing:-2px
  }
  .brand-mark {
    width:28px;
    height:30px;
    font-size:25px;
    border-radius:9px;
    margin-right:8px
  }
  .sidebar>.eyebrow,#side-content,.sidebar-foot {
    display:none
  }
  .mode-switch {
    flex-direction:row;
    gap:2px;
    background:var(--soft);
    padding:4px;
    border-radius:9px
  }
  .mode-switch button {
    font-size:11px;
    padding:9px 11px;
    gap:6px;
    border-radius:6px
  }
  .mode-switch .icon {
    width:15px;
    height:15px
  }
  .workspace {
    margin-left:0;
    width:100%;
    padding:0 22px 180px
  }
  .topbar {
    height:54px;
    margin-bottom:29px;
    gap:8px
  }
  .topword {
    font-size:7px;
    letter-spacing:1.4px
  }
  .local-pill {
    font-size:8px;
    gap:5px
  }
  .local-pill>.icon {
    width:12px
  }
  .theme-toggle {
    width:25px;
    height:30px
  }
  .theme-toggle .icon {
    width:16px
  }
  .page-heading {
    margin-bottom:25px
  }
  .page-heading .eyebrow {
    font-size:7px;
    letter-spacing:1.5px
  }
  h1 {
    font-size:35px;
    letter-spacing:-1.3px;
    margin:10px 0
  }
  .page-heading p {
    font-size:10px
  }
  .page-heading .compact {
    width:40px;
    height:40px;
    min-height:40px;
    padding:0
  }
  .page-heading .compact>span {
    display:none
  }
  .mobile-library {
    display:flex;
    gap:3px;
    border-bottom:1px solid var(--line);
    margin-bottom:22px;
    overflow-x:auto
  }
  .mobile-library button {
    padding:12px 13px;
    font-size:11px;
    white-space:nowrap;
    border-bottom:2px solid transparent;
    color:var(--muted)
  }
  .mobile-library button:first-child {
    padding-left:0;
    padding-right:18px
  }
  .mobile-library button.active {
    color:var(--ink);
    border-color:var(--green)
  }
  .welcome {
    display:flex;
    flex-direction:column;
    min-height:0
  }
  .welcome-copy {
    padding:28px 25px 15px
  }
  .tag {
    font-size:7px;
    letter-spacing:1.5px;
    padding:6px 8px
  }
  .welcome h2 {
    font-size:33px;
    line-height:1.2;
    letter-spacing:-.9px;
    margin-top:22px
  }
  .welcome p {
    font-size:11px;
    margin-bottom:20px
  }
  .welcome .primary {
    font-size:11px;
    padding:13px 18px
  }
  .file-hint {
    font-size:8px;
    margin:10px 0
  }
  .record-art {
    min-height:213px;
    height:213px;
    background:linear-gradient(180deg,#e9eddf,#d7e1c7)
  }
  .record {
    width:235px;
    margin-top:65px;
    margin-left:60px;
    transform:rotate(-22deg)
  }
  .record-label>span {
    font-size:10px
  }
  .art-sun {
    top:5px;
    right:45px;
    width:52px;
    height:52px
  }
  .art-caption {
    bottom:17px;
    left:18px;
    right:auto;
    font-size:5px;
    letter-spacing:1.8px;
    writing-mode:vertical-rl;
    transform:rotate(180deg)
  }
  .empty-bottom {
    flex-direction:column;
    align-items:flex-start;
    gap:17px;
    padding:19px 2px;
    font-size:9px
  }
  .empty-bottom button {
    font-size:10px
  }
  .footnote {
    margin-top:33px;
    padding-top:18px;
    gap:15px;
    align-items:flex-start;
    font-size:6px;
    line-height:1.8;
    letter-spacing:1px
  }
  .footnote>span {
    max-width:180px
  }
  .footnote button {
    font-size:8px;
    gap:6px;
    white-space:nowrap
  }
  .footnote .icon {
    width:12px
  }
  .search {
    height:45px;
    padding:0 13px;
    margin-bottom:20px
  }
  .search input {
    font-size:11px
  }
  .section-line {
    font-size:9px;
    gap:10px
  }
  .section-line>div {
    gap:10px
  }
  .text-button {
    font-size:9px
  }
  .section-line .text-button>.icon {
    width:11px
  }
  .track-row {
    gap:8px;
    min-height:74px;
    padding:10px 0
  }
  .track-play {
    width:21px
  }
  .track-number {
    font-size:8px
  }
  .track-art {
    width:36px;
    height:39px;
    border-radius:5px
  }
  .track-art .icon {
    width:15px
  }
  .track-title {
    gap:6px
  }
  .track-title strong {
    font-size:11px
  }
  .track-title span {
    font-size:9px
  }
  .track-row>.icon-button {
    width:30px;
    height:40px
  }
  .track-row>.icon-button .icon {
    width:16px
  }
  .track-time,.lyric-badge {
    display:none
  }
  .queue-note {
    font-size:8px;
    line-height:1.8;
    align-items:flex-start
  }
  .queue-note>.icon {
    width:12px;
    flex-shrink:0
  }
  .artist-grid {
    grid-template-columns:repeat(2,1fr);
    gap:24px 16px;
    padding-top:20px
  }
  .artist-art>span {
    font-size:70px
  }
  .artist-card>strong {
    font-size:12px;
    margin-top:11px
  }
  .artist-card>small {
    font-size:8px;
    line-height:1.7
  }
  .new-playlist {
    padding:19px
  }
  .new-playlist label {
    font-size:21px
  }
  .new-playlist>div {
    flex-wrap:wrap
  }
  .new-playlist input {
    flex-basis:100%;
    width:100%
  }
  .new-playlist .primary {
    font-size:11px;
    padding:11px 14px
  }
  .playlist-art {
    width:50px;
    height:54px
  }
  .playlist-card {
    gap:13px;
    padding:13px
  }
  .player {
    grid-template-columns:1fr auto;
    gap:0 15px;
    padding:12px 18px max(13px,env(safe-area-inset-bottom));
    min-height:126px
  }
  .now-playing {
    gap:10px;
    align-self:start;
    padding-top:2px;
    max-width:calc(100vw - 142px)
  }
  .now-art {
    width:39px;
    height:42px;
    border-radius:6px
  }
  .now-art>.icon {
    width:19px;
    height:19px
  }
  .now-playing strong {
    font-size:10px
  }
  .now-playing>div {
    gap:6px
  }
  .now-playing span:not(.now-art) {
    font-size:8px
  }
  .transport {
    display:contents
  }
  .transport-buttons {
    gap:5px;
    grid-column:2;
    grid-row:1
  }
  .transport-buttons>.icon-button {
    width:26px;
    height:40px
  }
  .transport-buttons>.icon-button .icon {
    width:13px;
    height:13px
  }
  .transport-buttons>.icon-button:first-child {
    display:inline-flex
  }
  .play-button {
    width:37px;
    height:37px
  }
  .play-button .icon {
    width:15px;
    height:15px
  }
  .timeline {
    grid-column:1/-1;
    grid-row:2;
    margin-top:11px;
    gap:8px;
    font-size:7px
  }
  .timeline>span {
    width:23px
  }
  .timeline input {
    height:3px
  }
  .player-extras {
    grid-column:1/-1;
    justify-content:space-between;
    gap:0;
    margin-top:5px;
    height:20px
  }
  .player-extras>span {
    max-width:none;
    font-size:7px;
    letter-spacing:.5px
  }
  .player-extras .icon-button {
    width:28px;
    height:27px
  }
  .player-extras .icon {
    width:15px
  }
  .audio-error {
    font-size:10px;
    margin-top:8px;
    line-height:1.6
  }
  .notice {
    font-size:10px;
    line-height:1.8;
    margin:0 0 20px;
    padding:9px 10px
  }
  .room-symbol {
    font-size:43px;
    padding:0 3px
  }
  .surah-header {
    padding:19px 15px;
    gap:12px;
    display:grid;
    grid-template-columns:49px minmax(0,1fr)
  }
  .surah-icon {
    width:49px;
    height:61px;
    border-radius:24px 24px 5px 5px
  }
  .surah-icon>.icon {
    width:23px;
    height:23px
  }
  .surah-meta>.eyebrow {
    font-size:6px;
    letter-spacing:1px
  }
  .surah-meta select {
    font-size:24px;
    margin:8px 0;
    width:100%
  }
  .surah-meta p {
    font-size:8px
  }
  .surah-header .primary {
    padding:10px 14px;
    font-size:10px;
    min-height:38px;
    margin:2px 0 0;
    grid-column:1/-1;
    width:100%
  }
  .reading-label {
    font-size:6px;
    letter-spacing:.9px;
    padding-top:25px;
    gap:10px
  }
  .reading-label>span:last-child {
    white-space:nowrap
  }
  .verse {
    gap:10px;
    padding:22px 6px 24px 0
  }
  .verse-number {
    width:23px;
    font-size:8px;
    margin-top:7px
  }
  .arabic {
    font-size:25px;
    line-height:2.1
  }
  .transliteration {
    font-size:16px;
    line-height:1.9;
    letter-spacing:0
  }
  .verse-play>.icon {
    width:13px
  }
  .verse-body {
    gap:13px
  }
  .quran-note {
    font-size:9px;
    line-height:1.9
  }
  .loading {
    font-size:21px;
    padding:40px 15px
  }
  dialog {
    padding:29px 23px;
    border-radius:12px;
    max-width:calc(100% - 24px);
    max-height:calc(100dvh - 35px)
  }
  dialog h2 {
    font-size:29px;
    margin:16px 22px 18px 0
  }
  .modal-close {
    top:13px;
    right:11px
  }
  .modal-close .icon {
    width:18px
  }
  .lyric-lines>button,.lyric-lines>p {
    font-size:22px
  }
  .lyric-lines {
    max-height:46dvh
  }
  .about-copy p {
    font-size:11px
  }
  .dialog-section form {
    flex-wrap:wrap
  }
  .dialog-section form select {
    width:100%
  }
  .desktop {
    display:none
  }
  .back-button {
    font-size:10px;
    margin-bottom:15px
  }
  .dragging:after {
    font-size:24px
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    transition:none!important;
    animation:none!important;
    scroll-behavior:auto!important
  }
}
