:root {
  --bg:        #0a0a0b;
  --surface:   #121215;
  --surface2:  #18181c;
  --surface3:  #1e1e24;
  --border:    #252530;
  --border2:   #32323f;
  --pur:       #7B45C8;
  --pur-light: #9B6BD4;
  --pur-mid:   #5C30A8;
  --grad:      linear-gradient(135deg,#4C1D95 0%,#6B3CB8 60%,#9B6BD4 100%);
  --grad-btn:  linear-gradient(135deg,#5C30A8 0%,#9333ea 100%);
  --grad-soft: rgba(123,69,200,0.12);
  --bpur:      rgba(123,69,200,0.35);
  --pur-glow:  rgba(123,69,200,0.35);
  --amber:     #fbbf24;
  --amber-dim: rgba(251,191,36,0.15);
  --text:      #ffffff;
  --text2:     #e2dff0;
  --text3:     #a89dc8;
  --text4:     #6b6080;
  --green:     #6fcf97;
  --red:       #eb5757;
  --mono:      'Outfit', sans-serif;
  --serif:     'Nunito', sans-serif;
  --sans:      'Nunito', sans-serif;

  /* ── Semantic colors ── */
  --text-bright: #fff;
  --text-on-accent: #fff;
  --text-soft:   #d4d0e0;
  --pur-accent:  #a855f7;
  --violet:      #a78bfa;
  --pur-chip:    #B090D8;
  --spotify:     #1DB954;
  --green-accept:#22c55e;
  --red-strong:  #ef4444;
  --red-danger:  #ff5555;
  --pur-deep:    #4c1d95;
  /* ── Surface variants ── */
  --header-bg:   rgba(10,10,11,0.6);
  --overlay-bg:  rgba(0,0,0,0.6);
  --overlay-modal: rgba(0,0,0,0.8);
  --overlay-blur: rgba(15,15,19,0.98);
  --surface-chart: #1a1a20;
  /* ── RGB base values for opacity variants ── */
  --rgb-white:      255,255,255;
  --rgb-black:      0,0,0;
  --rgb-pur:        123,69,200;
  --rgb-violet:     139,92,246;
  --rgb-green:      52,211,153;
  --rgb-green2:     111,207,151;
  --rgb-red:        235,87,87;
  --rgb-red-strong: 239,68,68;
  --rgb-amber:      251,191,36;
  --rgb-spotify:    29,185,84;
  --rgb-gold:       232,201,106;
  --rgb-a78bfa:     167,139,250;
  --rgb-green-accept: 34,197,94;
  --rgb-green-bright: 22,197,94;
  --rgb-red-danger:   255,85,85;
  --violet-mid:  #8b5cf6;
  --cyan:        #06b6d4;
  --orange:      #fb923c;
  --pink:        #f472b6;
  --slate:       #94a3b8;
  --sess-recording: #2D9CDB;
  --sess-mixing:    #E99D1A;
  --sess-mastering: #27AE60;
  --sess-meeting:   #D4537E;
  --sess-other:     #a78bfa;
  --rgb-violet-mid: 139,92,246;
  --rgb-pur-bright: 124,58,237;
  --rgb-cyan:       6,182,212;
  color-scheme: dark;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LIGHT MODE
   Aktivierung via: <html class="light"> oder <html data-theme="light">
   ─────────────────────────────────────────────────────────────────────────── */
:root.light,
:root[data-theme="light"] {
  color-scheme: light;

  /* Surfaces – Apple iOS inspiriert: kühl-neutral */
  --bg:        #f2f2f7;
  --surface:   #ffffff;
  --surface2:  #ffffff;
  --surface3:  #e5e5ea;
  --border:    #d1d1d6;
  --border2:   #c6c6cc;

  /* Lila-Akzent – dunkler */
  --pur:       #6d28d9;
  --pur-light: #7c3aed;
  --pur-mid:   #5b21b6;
  --pur-deep:  #4c1d95;
  --grad:      linear-gradient(135deg,#4c1d95 0%,#6d28d9 60%,#7c3aed 100%);
  --grad-btn:  linear-gradient(135deg,#5b21b6 0%,#7c3aed 100%);
  --grad-soft: rgba(109,40,217,0.08);
  --bpur:      rgba(109,40,217,0.28);
  --pur-glow:  rgba(109,40,217,0.28);

  /* Amber dunkler */
  --amber:     #b45309;
  --amber-dim: rgba(180,83,9,0.14);

  /* Text – iOS Label-Farben */
  --text:      #1c1c1e;
  --text2:     #3a3a3c;
  --text3:     #6e6e73;
  --text4:     #8e8e93;

  /* Status */
  --green:     #059669;
  --red:       #dc2626;

  /* Semantik */
  --text-bright: #1c1c1e;
  --text-on-accent: #ffffff;
  --text-soft:   #3a3a3c;
  --pur-accent:  #7c3aed;
  --violet:      #6d28d9;
  --violet-mid:  #5b21b6;
  --pur-chip:    #5b21b6;
  --spotify:     #1DB954;
  --green-accept:#059669;
  --red-strong:  #dc2626;
  --red-danger:  #dc2626;

  /* Surface-Varianten */
  --header-bg:   rgba(242,242,247,0.6);
  --overlay-bg:  rgba(0,0,0,0.45);
  --overlay-modal: rgba(0,0,0,0.55);
  --overlay-blur: rgba(255,255,255,0.92);
  --surface-chart: #ffffff;

  --cyan:        #0891b2;
  --orange:      #ea580c;
  --pink:        #db2777;
  --slate:       #64748b;

  /* Session-Typ-Farben – dunkler */
  --sess-recording: #1e40af;
  --sess-mixing:    #b45309;
  --sess-mastering: #15803d;
  --sess-meeting:   #be185d;
  --sess-other:     #6d28d9;

  /* RGB-Triplets — --rgb-white wird zu 0,0,0 damit "Glass-Highlights"
     sich zu "Dunkel-Tints" umdrehen. Namen sind historisch. */
  --rgb-white:      0,0,0;
  --rgb-black:      0,0,0;
  --rgb-pur:        109,40,217;
  --rgb-violet:     109,40,217;
  --rgb-violet-mid: 91,33,182;
  --rgb-green:      5,150,105;
  --rgb-green2:     5,150,105;
  --rgb-red:        220,38,38;
  --rgb-red-strong: 220,38,38;
  --rgb-red-danger: 220,38,38;
  --rgb-amber:      180,83,9;
  --rgb-spotify:    29,185,84;
  --rgb-gold:       180,128,55;
  --rgb-a78bfa:     124,58,237;
  --rgb-green-accept: 5,150,105;
  --rgb-green-bright: 5,150,105;
  --rgb-pur-bright: 124,58,237;
  --rgb-cyan:       8,145,178;
}

/* System-Preference-Fallback */
@media (prefers-color-scheme: light) {
  :root:not(.dark):not(.light) {
    color-scheme: light;
    --bg:        #f2f2f7;
    --surface:   #ffffff;
    --surface2:  #ffffff;
    --surface3:  #e5e5ea;
    --border:    #d1d1d6;
    --border2:   #c6c6cc;
    --pur:       #6d28d9;
    --pur-light: #7c3aed;
    --pur-mid:   #5b21b6;
    --pur-deep:  #4c1d95;
    --grad:      linear-gradient(135deg,#4c1d95 0%,#6d28d9 60%,#7c3aed 100%);
    --grad-btn:  linear-gradient(135deg,#5b21b6 0%,#7c3aed 100%);
    --grad-soft: rgba(109,40,217,0.08);
    --bpur:      rgba(109,40,217,0.28);
    --pur-glow:  rgba(109,40,217,0.28);
    --amber:     #b45309;
    --amber-dim: rgba(180,83,9,0.14);
    --text:      #1c1c1e;
    --text2:     #3a3a3c;
    --text3:     #6e6e73;
    --text4:     #8e8e93;
    --green:     #059669;
    --red:       #dc2626;
    --text-bright: #1c1c1e;
    --text-on-accent: #ffffff;
    --text-soft:   #3a3a3c;
    --pur-accent:  #7c3aed;
    --violet:      #6d28d9;
    --violet-mid:  #5b21b6;
    --pur-chip:    #5b21b6;
    --green-accept:#059669;
    --red-strong:  #dc2626;
    --red-danger:  #dc2626;
    --header-bg:   rgba(242,242,247,0.6);
    --overlay-bg:  rgba(0,0,0,0.45);
    --overlay-modal: rgba(0,0,0,0.55);
    --overlay-blur: rgba(255,255,255,0.92);
    --surface-chart: #ffffff;
    --cyan:        #0891b2;
    --orange:      #ea580c;
    --pink:        #db2777;
    --slate:       #64748b;
    --sess-recording: #1e40af;
    --sess-mixing:    #b45309;
    --sess-mastering: #15803d;
    --sess-meeting:   #be185d;
    --sess-other:     #6d28d9;
    --rgb-white:      0,0,0;
    --rgb-black:      0,0,0;
    --rgb-pur:        109,40,217;
    --rgb-violet:     109,40,217;
    --rgb-violet-mid: 91,33,182;
    --rgb-green:      5,150,105;
    --rgb-green2:     5,150,105;
    --rgb-red:        220,38,38;
    --rgb-red-strong: 220,38,38;
    --rgb-red-danger: 220,38,38;
    --rgb-amber:      180,83,9;
    --rgb-gold:       180,128,55;
    --rgb-a78bfa:     124,58,237;
    --rgb-green-accept: 5,150,105;
    --rgb-green-bright: 5,150,105;
    --rgb-pur-bright:   124,58,237;
    --rgb-cyan:         8,145,178;
  }
}

/* ── RESET & BASE ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
body { font-family: 'Nunito', sans-serif; background:var(--bg); color:var(--text); min-height:100dvh; overflow-x:hidden; }
body::before {
  content:'';position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");
  pointer-events:none;z-index:0;
}

/* ── LOADING SCREEN ── */
#loading{position:fixed;inset:0;background:var(--bg);z-index:9000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity 0.4s;}
#loading.hidden{opacity:0;pointer-events:none;}
.ls-logo{height:48px;flex-shrink:0;}
.ls-logo img{height:100%;width:auto;object-fit:contain;}
.ls-bar{width:160px;height:1px;background:var(--border2);overflow:hidden;}
.ls-bar-fill{height:100%;background:var(--grad);animation:lsprog 1.5s ease forwards;}
@keyframes lsprog{0%{width:0%}70%{width:80%}100%{width:95%}}
.ls-sub{font-size:14px;color:var(--text4);font-family:var(--mono);letter-spacing:2px;}

/* ── ERROR SCREEN ── */
#error-screen{display:none;position:fixed;inset:0;background:var(--bg);z-index:9000;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:32px;}
#error-screen.show{display:flex;}
.err-icon{font-size:28px;opacity:0.5;}.err-title{font-size:16px;font-weight:600;color:var(--text-bright);font-family:var(--serif);}
.err-sub{font-size:13px;color:var(--text3);max-width:300px;line-height:1.7;}

/* ── MAIN APP CONTAINER ── */
#app{position:relative;z-index:1;max-width:640px;margin:0 auto;padding:0 0 80px;}

/* ── PORTAL HEADER ──
   Bewusst NICHT sticky/fixed auf Mobile: die App-Bar soll mit dem Content
   wegscrollen, damit iOS 26 Safari beim Scrollen echten Page-Content am
   Top-Edge sieht und die URL-Bar als schwebende Liquid-Glass-Pill rendert.
   Desktop/Tablet (>=769px): Header bleibt sticky fuer gewohnte UX. */
.portal-header{
  display:flex;align-items:center;gap:10px;
  padding:16px 16px 14px;
  background:var(--header-bg);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
@media (min-width:769px){
  .portal-header{position:sticky;top:0;z-index:100;}
}
/* Mobile: backdrop-filter erzeugt Stacking Context auf static-Element → Header paintet unter position:relative Karten (z.B. .dash-card). position:relative + z-index hebt Header auf positive-z Layer, damit Dropdown/Spotify-Popup über Sessions-Karte liegen. */
@media (max-width:768px){
  .portal-header{position:relative;z-index:100;}
}
.ph-logo-default{height:28px;flex-shrink:0;margin-right:10px;}
.ph-logo-default img{height:100%;width:auto;object-fit:contain;}
.ph-logo-custom{width:40px;height:40px;border-radius:50%;border:1px solid rgba(var(--rgb-pur),0.3);overflow:hidden;flex-shrink:0;}
.ph-logo-custom img{width:100%;height:100%;object-fit:cover;}
.ph-studio{font-size:10px;color:var(--text4);font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ph-name{font-size:17px;font-weight:600;color:var(--text);margin-top:1px;font-family:var(--serif);letter-spacing:0.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ph-btn{background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text2);font-family:var(--sans);cursor:pointer;flex-shrink:0;transition:all 0.15s;line-height:1;}
.ph-btn-logout{padding:10px 16px;font-size:13px;font-weight:500;}
.ph-btn-logout .ph-btn-icon{display:none;}
.ph-btn-settings{padding:10px 12px;font-size:16px;}
@media(max-width:520px){
  .portal-header{gap:8px;padding:12px 12px 10px;}
  .ph-logo-default{height:24px;}
  .ph-logo-custom{width:34px;height:34px;}
  .ph-name{font-size:15px;}
  .ph-studio{font-size:9px;}
  .ph-btn-logout{padding:8px 10px;}
  .ph-btn-logout .ph-btn-text{display:none;}
  .ph-btn-logout .ph-btn-icon{display:flex;align-items:center;}
  .ph-btn-settings{padding:8px 10px;font-size:15px;}
  .sp-hdr-btn{padding:8px 10px;}
}

/* ── SECTION LABEL ── */
.sec-lbl{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--text-bright);font-family:var(--mono);margin:0;padding:24px 20px 12px;}

/* ── PROD CARD ── */
.prod-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  margin:0 8px 12px;
  overflow:hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25), 0 8px 24px -4px rgba(0,0,0,0.2);
}
.prod-card:first-child{margin-top:12px;}

.pc-header{
  padding:20px 20px;cursor:pointer;
  display:flex;align-items:center;gap:16px;
  transition:background 0.15s;
  -webkit-user-select:none;user-select:none;
}
.pc-header:active{background:var(--surface2);}

.pc-icon{
  width:46px;height:46px;border-radius:10px;
  background:linear-gradient(135deg,rgba(var(--rgb-pur),0.08),rgba(var(--rgb-pur),0.02));
  border:1px solid rgba(var(--rgb-pur),0.12);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
}
.pc-title{font-size:16px;font-weight:600;color:var(--text);font-family:var(--serif);letter-spacing:0.01em;}
.pc-meta{font-size:12px;color:var(--text3);margin-top:3px;font-family:var(--mono);}
.pc-arrow{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  color:var(--text3);margin-left:auto;
  transition:transform 0.25s ease,color 0.15s;flex-shrink:0;
}
.prod-card.open .pc-arrow{transform:rotate(90deg);color:var(--pur-light);}
.pc-body{display:none;}
.prod-card.open .pc-body{display:block;}

/* ── PC SECTIONS ── */
.pc-section{padding:20px 20px;border-bottom:1px solid var(--border);}
.pc-section:last-child{border-bottom:none;}
.sec-hdr{
  display:flex;align-items:center;gap:7px;
  font-size:13px;letter-spacing:2px;text-transform:uppercase;
  color:var(--text);font-family:var(--mono);margin-bottom:14px;
}
.sec-hdr::after{content:'';flex:1;height:1px;background:var(--border);}

/* ── PROGRESS ── */
.prog-bar{height:2px;background:var(--border2);overflow:hidden;margin-bottom:14px;}
.prog-fill{height:100%;background:var(--grad);}
.prog-steps{display:flex;gap:6px;flex-wrap:wrap;}
.step-pill{
  padding:5px 11px;border-radius:4px;
  font-size:13px;font-family:var(--mono);letter-spacing:0.5px;
}
.step-pill.done{background:rgba(var(--rgb-green2),0.07);color:var(--green);border:1px solid rgba(var(--rgb-green2),0.18);}
.step-pill.todo{background:var(--surface3);color:var(--text4);border:1px solid var(--border);}

/* ── STEMS ── */
.stem-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 13px;
  background:var(--surface2);border:1px solid var(--border);border-radius:7px;
  margin-bottom:6px;
}
.stem-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text3);}
.stem-name{font-size:13px;color:var(--text2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.stem-size{font-size:11px;color:var(--text4);font-family:var(--mono);flex-shrink:0;}
.stem-rm{background:none;border:none;color:var(--text4);cursor:pointer;font-size:14px;padding:4px 6px;flex-shrink:0;transition:color 0.15s;line-height:1;}
.stem-rm:hover{color:var(--red);}
.stem-upload-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:14px;border-radius:7px;
  border:1px dashed rgba(var(--rgb-pur),0.25);
  background:transparent;color:var(--text2);
  font-family:var(--mono);font-size:13px;letter-spacing:1.5px;
  cursor:pointer;transition:all 0.2s;margin-top:4px;text-transform:uppercase;
}
.stem-upload-btn:hover{border-color:rgba(var(--rgb-pur),0.5);color:var(--pur-light);background:rgba(var(--rgb-pur),0.08);}

/* ── COVER ── */
.cover-row{display:flex;align-items:flex-start;gap:16px;}
.cover-thumb{width:150px;height:150px;border-radius:8px;object-fit:cover;border:1px solid var(--border);flex-shrink:0;}
.cover-thumb-empty{
  width:150px;height:150px;border-radius:8px;
  border:1px dashed rgba(var(--rgb-pur),0.25);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;color:var(--text4);background:var(--surface2);
}
.cover-actions{display:flex;flex-direction:column;gap:8px;padding-top:2px;flex:1;}
.cover-btn{
  display:flex;align-items:center;gap:10px;
  padding:11px 15px;border-radius:10px;
  font-size:15px;font-family:var(--sans);font-weight:500;
  cursor:pointer;border:1px solid var(--border);
  background:var(--surface2);color:var(--text2);
  transition:all 0.2s;text-align:left;width:100%;
}
.cover-btn:hover{border-color:rgba(var(--rgb-pur),0.3);color:var(--text);background:var(--surface3);}

/* ── AUDIO PLAYER ── */
.wf-wrap{position:relative;height:80px;cursor:pointer;margin-bottom:4px;overflow:visible;}
.wf-canvas{width:100%;height:100%;display:block;}
.wf-header{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.wf-play{
  width:60px;height:60px;border-radius:50%;
  background:var(--grad-btn);
  border:none;color:var(--text-on-accent);font-size:18px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:transform .15s,box-shadow .15s;
  box-shadow:0 4px 20px rgba(var(--rgb-pur),0.3);
}
.wf-play:hover{transform:scale(1.06);box-shadow:0 6px 30px rgba(var(--rgb-pur),0.45);}
.wf-play:disabled{opacity:0.3;cursor:default;transform:none;box-shadow:none;}
.wf-tinfo{flex:1;min-width:0;}
.wf-tname{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--serif);letter-spacing:0.01em;}
.wf-tmeta{font-size:11px;color:var(--text4);font-family:var(--mono);margin-top:3px;}
.wf-ttime{font-size:13px;font-family:var(--mono);color:var(--pur-light);margin-top:4px;}
.wf-overlay .wf-ttime{font-size:23px;}
.wf-hover-t{
  position:absolute;top:-26px;background:var(--surface3);
  border:1px solid var(--border2);border-radius:4px;
  padding:3px 7px;font-size:11px;font-family:var(--mono);
  color:var(--pur-light);pointer-events:none;transform:translateX(-50%);
  opacity:0;transition:opacity 0.18s ease;white-space:nowrap;z-index:10;
}
.wf-hover-t.visible{opacity:1;}
.wf-timerow{display:flex;justify-content:space-between;font-size:10px;font-family:var(--mono);color:var(--text4);margin-bottom:4px;}

/* Markers */
.wf-mk{position:absolute;bottom:4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--amber);z-index:3;cursor:grab;transition:transform .15s;box-shadow:0 0 6px rgba(var(--rgb-gold),0.5);}
.wf-mk.wf-mk-top{bottom:auto;top:4px;}
.wf-mk::before{content:'';position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;}
.wf-mk:hover{transform:scale(1.4);}
.wf-mk.dragging{cursor:grabbing;transform:scale(1.6);z-index:30;box-shadow:0 0 12px rgba(var(--rgb-gold),0.7);}
.wf-mkline{position:absolute;bottom:12px;width:2px;margin-left:-1px;height:calc(100% - 12px);background:rgba(var(--rgb-gold),0.22);pointer-events:none;z-index:2;}
.wf-drag-t{position:absolute;top:-22px;background:var(--amber);border-radius:3px;padding:1px 5px;font-size:10px;font-family:var(--mono);color:var(--text-on-accent);font-weight:700;pointer-events:none;transform:translateX(-50%);z-index:30;display:none;}
.wf-drag-t.show{display:block;}

/* Bubble */
.wf-bub{position:absolute;top:calc(100% + 6px);width:280px;background:var(--surface2);border:1px solid var(--border2);border-radius:12px;padding:4px 4px 4px 12px;z-index:100;pointer-events:none;opacity:0;display:none;transition:opacity .15s;box-shadow:0 8px 32px rgba(var(--rgb-black),.6);}
.wf-bub.show{opacity:1;display:flex;align-items:center;gap:6px;pointer-events:auto;animation:wfPop .15s ease;}
.wf-bub-author{display:none;}
.wf-bub-text{flex:1;font-size:16px;color:var(--text);font-family:var(--sans);min-width:0;overflow:hidden;position:relative;height:36px;}
.wf-bub-text span{position:absolute;white-space:nowrap;top:50%;transform:translateY(-50%);left:8px;}
@keyframes bubScroll{0%{left:8px}40%,55%{left:var(--scroll,-50%)}95%,100%{left:8px}}
.wf-bub-time{display:none;}
.wf-bub-arrow{position:absolute;top:-5px;width:8px;height:8px;background:var(--surface2);border-left:1px solid var(--border2);border-top:1px solid var(--border2);transform:rotate(45deg);pointer-events:none;}
.wf-bub-del{background:none;border:none;color:var(--text4);font-size:12px;cursor:pointer;padding:0 2px;line-height:1;opacity:0.6;}
.wf-bub-del:hover{color:var(--red);opacity:1;}
.wf-temp-line{position:absolute;top:0;bottom:0;width:2px;background:rgba(var(--rgb-gold),0.6);pointer-events:none;z-index:4;transform:translateX(-50%);}

/* Inline input */
.wf-inl{position:absolute;top:calc(100% + 6px);width:210px;background:var(--surface2);border:1px solid var(--border2);border-radius:12px;padding:4px 4px 4px 12px;z-index:25;box-shadow:0 8px 32px rgba(var(--rgb-black),.6);display:none;}
.wf-inl.show{display:flex;gap:6px;align-items:center;animation:wfPop .15s ease;}
@keyframes wfPop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.wf-inl-arrow{position:absolute;top:-5px;width:8px;height:8px;background:var(--surface2);border-left:1px solid var(--border2);border-top:1px solid var(--border2);transform:rotate(45deg);pointer-events:none;}
.wf-inl input{flex:1;background:transparent;border:none;padding:8px 0;color:var(--text);font-size:16px;font-family:var(--sans);outline:none;min-width:0;}
.wf-inl input::placeholder{color:var(--text4);}
.wf-inl button{width:34px;height:34px;border-radius:50%;background:var(--grad-btn);border:none;color:var(--text-on-accent);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;}

/* Comment list */
.wf-clist{max-height:200px;overflow-y:auto;margin-top:10px;scrollbar-width:thin;scrollbar-color:rgba(var(--rgb-pur),0.15) transparent;}
.wf-clist::-webkit-scrollbar{width:4px;}
.wf-clist::-webkit-scrollbar-thumb{background:rgba(var(--rgb-pur),0.2);border-radius:10px;}
.wf-citem{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.wf-citem:last-child{border-bottom:none;}
.wf-cbadge{background:rgba(var(--rgb-pur),0.12);color:var(--pur-light);font-size:10px;font-family:var(--mono);padding:2px 6px;border-radius:3px;cursor:pointer;flex-shrink:0;height:fit-content;margin-top:1px;letter-spacing:0.5px;}
.wf-cbadge:hover{background:rgba(var(--rgb-pur),0.2);}

/* Thread Cards */
.wf-threads{overflow-y:auto;max-height:360px;margin-top:10px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:rgba(var(--rgb-pur),0.15) transparent;}
.wf-threads::-webkit-scrollbar{width:4px;}
.wf-threads::-webkit-scrollbar-thumb{background:rgba(var(--rgb-pur),0.2);border-radius:10px;}
.wf-thread{display:flex;flex-direction:column;gap:0;}
.wf-cmcard{background:var(--surface3);border:1px solid var(--border);border-radius:10px;padding:12px 14px;}
.wf-cmcard-head{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.wf-cmcard-avatar{width:26px;height:26px;border-radius:50%;background:var(--grad-btn);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-on-accent);font-weight:700;flex-shrink:0;}
.wf-cmcard-author{font-size:12px;font-weight:600;color:var(--text);flex:1;}
.wf-cmcard-badge{font-size:10px;font-family:var(--mono);color:var(--pur-light);background:rgba(var(--rgb-pur),0.12);padding:3px 8px;border-radius:4px;cursor:pointer;flex-shrink:0;letter-spacing:0.5px;}
.wf-cmcard-badge:hover{background:rgba(var(--rgb-pur),0.2);}
.wf-cmcard-text{font-size:13px;color:var(--text);line-height:1.65;margin-bottom:5px;word-break:break-word;overflow-wrap:break-word;}
.wf-cmcard-foot{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text4);font-family:var(--mono);}
.wf-cmcard-del{background:none;border:none;color:var(--text4);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;font-family:var(--mono);transition:all .15s;}
.wf-cmcard-del:hover{color:var(--red);background:rgba(var(--rgb-red),.08);}
.wf-cmcard.highlight{animation:cmHighlight .8s ease;}
.wf-reply-card.highlight{animation:cmHighlight .8s ease;}
@keyframes cmHighlight{0%{background:rgba(var(--rgb-pur),0.12);border-color:var(--pur-light)}100%{background:var(--surface3);border-color:var(--border)}}
.wf-reply-card{margin-left:32px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;margin-top:5px;}
.wf-reply-card .wf-cmcard-avatar{width:20px;height:20px;font-size:10px;}
.wf-reply-card .wf-cmcard-author{font-size:11px;}
.wf-reply-card .wf-cmcard-text{font-size:12px;margin-bottom:2px;}
.wf-reply-input-row{margin-left:38px;margin-top:8px;display:flex;gap:8px;align-items:center;}
.wf-reply-input-row input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 13px;color:var(--text);font-size:14px;font-family:var(--sans);outline:none;}
.wf-reply-input-row input:focus{border-color:var(--pur-light);}
.wf-reply-input-row button{background:var(--grad-btn);border:none;color:var(--text-on-accent);border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0;}
.wf-cbody{flex:1;min-width:0;}
.wf-cauthor{font-size:12px;font-weight:600;color:var(--pur-light);font-family:var(--mono);letter-spacing:0.5px;}
.wf-ctext{font-size:13px;color:var(--text3);margin-top:2px;line-height:1.4;cursor:pointer;}
.wf-ctext:hover{color:var(--text);}
.wf-cdate{font-size:10px;color:var(--text4);font-family:var(--mono);margin-top:2px;}
.wf-cdel{background:none;border:none;color:var(--text4);font-size:11px;cursor:pointer;padding:2px 4px;border-radius:3px;flex-shrink:0;}
.wf-cdel:hover{color:var(--red);background:rgba(var(--rgb-red),.08);}

/* Kommentieren button */
.wf-expand{
  display:flex;align-items:center;gap:8px;
  background:var(--surface2);border:1px solid var(--border);
  color:var(--text2);font-size:14px;font-weight:500;font-family:var(--sans);
  cursor:pointer;padding:10px 16px;border-radius:10px;
  transition:all .2s;flex-shrink:0;
}
.wf-expand{animation:btnPulse 2.5s ease-in-out infinite;}
@keyframes btnPulse{0%,100%{border-color:var(--border);box-shadow:none}50%{border-color:rgba(var(--rgb-pur),0.5);box-shadow:0 0 12px rgba(var(--rgb-pur),0.25)}}
.wf-expand:hover{border-color:rgba(var(--rgb-pur),0.3);color:var(--text);background:var(--surface3);animation:none;}

/* ── FULLSCREEN PLAYER OVERLAY ── */
.wf-overlay{position:fixed;inset:0;background:var(--bg);z-index:9999;display:none;flex-direction:column;overflow:hidden;transform:translateZ(0);-webkit-transform:translateZ(0);}
.wf-overlay.open{display:flex;}
/* PWA: Overlay ist position:fixed, ignoriert Body-Padding – Status-Bar
   selbst kompensieren, sonst rutscht der Header hinter die iOS Status-Bar. */
.is-pwa .wf-overlay,body.is-pwa .wf-overlay{padding-top:env(safe-area-inset-top);}
@media (display-mode:standalone){.wf-overlay{padding-top:env(safe-area-inset-top);}}
@keyframes wfSlideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.wf-o-card{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;animation:wfSlideUp .3s cubic-bezier(.22,1,.36,1);}
.wf-overlay::before{display:none;}
.wf-o-card>*{position:relative;z-index:1;}

/* OVERLAY HEADER */
.wf-overlay .wf-o-header{display:flex;align-items:center;gap:14px;padding:20px 20px 18px;border-bottom:1px solid var(--border);flex-shrink:0;}
.wf-overlay .wf-o-cover{display:flex;align-items:center;justify-content:center;color:var(--text4);width:48px;height:48px;flex-shrink:0;border-radius:8px;background:linear-gradient(135deg,rgba(var(--rgb-pur),0.08),rgba(var(--rgb-pur),0.02));border:1px solid rgba(var(--rgb-pur),0.12);display:flex;align-items:center;justify-content:center;font-size:12px;}
.wf-overlay .wf-o-tinfo{flex:1;min-width:0;}
.wf-overlay .wf-o-title{font-size:17px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--serif);letter-spacing:0.02em;}
.wf-overlay .wf-o-meta{font-size:12px;color:var(--text3);margin-top:4px;font-family:var(--mono);}
.wf-overlay .wf-o-badge{flex-shrink:0;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-family:var(--mono);color:var(--pur-light);background:rgba(var(--rgb-pur),0.12);border:1px solid rgba(var(--rgb-pur),0.25);padding:5px 10px;border-radius:4px;}
.wf-overlay .wf-o-close{width:34px;height:34px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--text3);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;margin-left:4px;}
.wfo-ver-pills{display:flex;gap:6px;flex-wrap:wrap;padding:6px 20px 4px;}
.wfo-ver-pill{background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:4px 12px;color:var(--text3);font-size:11px;font-family:var(--mono);cursor:pointer;transition:all .15s;white-space:nowrap;}
.wfo-ver-pill:hover{border-color:rgba(var(--rgb-pur),0.35);color:var(--pur-light);background:rgba(var(--rgb-pur),0.08);}
.wfo-ver-pill.active{background:rgba(var(--rgb-pur),0.12);border-color:rgba(var(--rgb-pur),0.35);color:var(--pur-light);font-weight:600;}
.wfo-ver-dl{display:inline-flex;align-items:center;gap:5px;background:rgba(var(--rgb-green),0.08);border:1px solid rgba(var(--rgb-green),0.3);border-radius:20px;padding:4px 12px;color:var(--green);font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;transition:all .15s;white-space:nowrap;margin-left:auto;}
.wfo-ver-dl:hover{background:rgba(var(--rgb-green),0.18);}
.wf-overlay .wf-o-close:hover{background:var(--surface3);color:var(--text);}

/* OVERLAY WAVEFORM */
.wf-overlay .wf-o-wfsec{padding:22px 20px 0;flex-shrink:0;position:relative;z-index:50;overflow:visible;}
.wf-overlay .wf-o-wave{position:relative;width:100%;height:130px;cursor:pointer;overflow:visible;border-radius:6px;touch-action:none;}
.wf-overlay .wf-o-wave canvas{display:block;width:100%;height:100%;border-radius:6px;pointer-events:none;}
.wf-overlay .wf-o-wave .wf-hover-t{top:-24px;}
.wf-overlay .wf-o-trow{display:flex;justify-content:space-between;font-size:19px;font-family:var(--mono);color:var(--text3);margin-top:8px;padding:0 2px;}
.wf-overlay .wf-o-trow .cur{color:var(--text3);}

/* OVERLAY PLAYHEAD */
.wf-overlay #wfo-playhead{position:absolute;top:0;bottom:0;width:2px;background:rgba(var(--rgb-white),.85);pointer-events:none;transform:translateX(-50%);z-index:5;border-radius:1px;}
.wf-overlay #wfo-playhead::before{content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:var(--text-on-accent);box-shadow:0 0 10px rgba(var(--rgb-white),.4);animation:cursorPulse 1.8s ease-in-out infinite;}
@keyframes cursorPulse{0%,100%{box-shadow:0 0 10px rgba(var(--rgb-white),.4)}50%{box-shadow:0 0 20px rgba(var(--rgb-white),.7),0 0 40px rgba(var(--rgb-pur),.3)}}

/* OVERLAY TRANSPORT */
.wf-overlay .wf-o-transport{display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 20px 22px;flex-shrink:0;position:relative;z-index:1;}
.wf-overlay .wf-o-btn-nudge{width:48px;height:48px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text3);font-family:var(--mono);font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;}
.wf-overlay .wf-o-btn-nudge:hover{background:var(--surface3);color:var(--text);}
.wf-overlay .wf-o-btn-skip{width:52px;height:52px;background:var(--surface2);border:1px solid var(--border);border-radius:50%;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;}
.wf-overlay .wf-o-btn-skip:hover{background:var(--surface3);color:var(--text);}
.wf-overlay .wf-o-play{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--pur-mid),var(--pur-light),var(--pur-mid));border:none;color:var(--text-on-accent);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 32px rgba(var(--rgb-pur),0.32);margin:0 6px;}
.wf-overlay .wf-o-play:hover{transform:scale(1.06);box-shadow:0 10px 40px rgba(var(--rgb-pur),0.55);}
.wf-overlay .wf-o-play:active{transform:scale(.92);}
.wf-overlay .wf-o-btn-nudge:active,.wf-overlay .wf-o-btn-skip:active{transform:scale(.88);opacity:.75;}

/* OVERLAY DIVIDER */
.wf-overlay .wf-o-divider{height:1px;background:var(--border);margin:0 20px;flex-shrink:0;}

/* OVERLAY COMMENTS HEADER */
.wf-overlay .wf-o-cmhdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;flex-shrink:0;}
.wf-overlay .wf-o-cmtitle{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text4);font-family:var(--mono);}
.wf-overlay .wf-o-cmcount{font-size:12px;color:var(--text4);font-family:var(--mono);background:var(--surface2);border:1px solid var(--border);padding:3px 10px;border-radius:20px;}

/* OVERLAY COMMENT LIST */
.wf-overlay .wf-o-comments{flex:1;overflow-y:auto;padding:0 14px 8px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:rgba(var(--rgb-pur),0.2) transparent;}
.wf-overlay .wf-o-comments::-webkit-scrollbar{width:4px;}
.wf-overlay .wf-o-comments::-webkit-scrollbar-thumb{background:rgba(var(--rgb-pur),0.25);border-radius:10px;}

/* OVERLAY COMPOSE BAR */
.wf-overlay .wf-o-compose{padding:12px 16px calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--border);flex-shrink:0;}
.wf-overlay .wf-o-compose-hint{font-size:14px;color:var(--text-bright);margin-bottom:10px;display:flex;align-items:center;gap:6px;font-family:var(--mono);letter-spacing:0.5px;}
.wf-overlay .wf-o-compose-dot{width:5px;height:5px;border-radius:50%;background:var(--pur);animation:pulse 2s ease infinite;flex-shrink:0;}
@keyframes pulse{0%,100%{opacity:0.4}50%{opacity:1}}
.wf-overlay .wf-o-compose-row{display:flex;gap:10px;align-items:center;}
.wf-overlay .wf-o-compose-input{flex:1;height:50px;background:var(--surface2);border:1px solid var(--border);border-radius:25px;padding:0 20px;font-family:var(--sans);font-size:16px;color:var(--text);outline:none;-webkit-appearance:none;transition:border-color .15s;}
.wf-overlay .wf-o-compose-input:focus{border-color:var(--pur-light);}
.wf-overlay .wf-o-compose-input::placeholder{color:var(--text4);}
.wf-overlay .wf-o-compose-send{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--pur-mid),var(--pur-light),var(--pur-mid));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 18px rgba(var(--rgb-pur),0.28);color:var(--text-on-accent);transition:transform .1s;}
.wf-overlay .wf-o-compose-send:active{transform:scale(.88);}

/* Comment thread cards in overlay */
.wf-overlay .c-thread{display:flex;flex-direction:column;gap:3px;}
.wf-overlay .c-card{background:rgba(var(--rgb-white),0.03);border:0.5px solid rgba(var(--rgb-white),0.06);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s;}
.wf-overlay .c-card:hover{border-color:rgba(var(--rgb-pur),0.2);}
.wf-overlay .c-card.c-reply-card{margin-left:32px;background:rgba(var(--rgb-white),0.02);padding:11px 14px;}
.wf-overlay .c-card.highlight{animation:cmHl .8s ease;}
@keyframes cmHl{0%{background:rgba(var(--rgb-pur),0.12);border-color:var(--pur-light)}100%{background:transparent;border-color:rgba(var(--rgb-white),0.06)}}
.wf-overlay .c-head{display:flex;align-items:center;gap:9px;margin-bottom:6px;}
.wf-overlay .c-avatar{width:28px;height:28px;border-radius:50%;background:var(--grad-btn);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-on-accent);font-weight:700;flex-shrink:0;}
.wf-overlay .c-card.c-reply-card .c-avatar{width:22px;height:22px;font-size:10px;}
.wf-overlay .c-author{font-size:15px;font-weight:700;flex:1;min-width:0;}
.wf-overlay .c-author.studio{color:var(--pur-light);}
.wf-overlay .c-author.artist{color:var(--amber);}
.wf-overlay .c-text{font-size:18px;color:var(--text);line-height:1.6;word-break:break-word;overflow-wrap:break-word;}
.wf-overlay .c-stamp{font-size:15px;font-family:var(--mono);color:var(--pur-light);font-weight:600;}

/* Inline input in overlay */
.wf-overlay .wf-inl{min-width:230px;font-size:13px;}
.wf-overlay .wf-inl input{font-size:16px;}

/* RESPONSIVE */
/* Custom time picker */
.atp{position:relative;}
.atp-val{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-size:13px;cursor:pointer;user-select:none;}
.atp-list{display:none;position:absolute;top:100%;left:0;right:0;max-height:180px;overflow-y:auto;background:var(--surface);border:1px solid var(--border2);border-radius:8px;z-index:50;margin-top:4px;padding:4px;scrollbar-width:thin;scrollbar-color:rgba(var(--rgb-pur),0.3) transparent;}
.atp-list::-webkit-scrollbar{width:4px;}
.atp-list::-webkit-scrollbar-track{background:transparent;}
.atp-list::-webkit-scrollbar-thumb{background:rgba(var(--rgb-pur),0.3);border-radius:4px;}
.atp-list::-webkit-scrollbar-thumb:hover{background:rgba(var(--rgb-pur),0.5);}
.atp.open .atp-list{display:block;}
.atp-opt{padding:7px 12px;cursor:pointer;font-size:13px;color:var(--text3);border-radius:6px;transition:background .1s;}
.atp-opt:hover{background:rgba(var(--rgb-pur),0.12);color:var(--text);}
.atp-opt.sel{color:var(--pur-light);font-weight:600;background:rgba(var(--rgb-pur),0.08);}

@media(max-width:768px){
  html, body { overflow-x: hidden; max-width: 100vw; }
  .cover-thumb, .cover-thumb-empty { width: 120px; height: 120px; }
  input, textarea, select { font-size: 16px !important; }
}

/* UPLOAD PROGRESS */
.upload-progress{display:none;margin-top:8px;}
.upload-progress.show{display:block;}
.up-bar{height:2px;background:var(--border);overflow:hidden;}
.up-fill{height:100%;background:var(--grad);width:0%;transition:width 0.2s;}
.up-txt{font-size:11px;color:var(--text4);font-family:var(--mono);margin-top:4px;letter-spacing:0.5px;}

/* TOAST */
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--surface3);border:1px solid var(--border2);border-radius:8px;padding:10px 18px;font-size:12px;color:var(--text2);white-space:nowrap;z-index:9999;opacity:0;transition:all .2s;pointer-events:none;font-family:var(--mono);letter-spacing:0.5px;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

.empty{text-align:center;padding:48px 20px;color:var(--text4);}

/* LYRICS MODAL */
/* SONGWRITER FULLSCREEN */
.lyrics-modal-bg{position:fixed;inset:0;background:var(--overlay-modal);backdrop-filter:blur(12px);z-index:2000;display:flex;align-items:stretch;justify-content:center;overscroll-behavior:contain;touch-action:none;}
.sw-full{background:var(--bg);width:100%;max-width:720px;display:flex;flex-direction:column;position:relative;overflow:hidden;overscroll-behavior:contain;touch-action:manipulation;}
@media(min-width:900px){.lyrics-modal-bg{background:var(--bg);backdrop-filter:none;}.sw-full{max-width:none;}}
.sw-full,.sw-full *{scrollbar-width:none;}
.sw-full::-webkit-scrollbar,.sw-full *::-webkit-scrollbar{display:none;}
.sw-hdr{padding:12px 16px 8px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.sw-back{color:rgba(var(--rgb-a78bfa),0.9);font-size:15px;background:none;border:none;cursor:pointer;font-family:inherit;padding:10px 12px;min-height:44px;display:flex;align-items:center;}
.sw-back:active{opacity:0.7;}
.sw-title{color:var(--text);font-size:15px;font-weight:500;}
.sw-save-btn{color:rgba(var(--rgb-green),0.9);font-size:14px;font-weight:500;background:none;border:1px solid rgba(var(--rgb-green),0.25);cursor:pointer;font-family:inherit;padding:10px 18px;border-radius:10px;min-height:44px;transition:all 0.15s;}
.sw-save-btn:active{transform:scale(0.97);}
.sw-stats{display:flex;gap:16px;padding:6px 20px 10px;font-size:12px;color:var(--text3);font-family:var(--mono);border-bottom:1px solid rgba(var(--rgb-white),0.04);}
.sw-editor-wrap{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;}
.sw-editor{width:100%;min-height:100%;background:transparent;border:none;padding:20px 24px;color:var(--text);font-family:var(--mono);font-size:17px;line-height:2.2;outline:none;resize:none;box-sizing:border-box;caret-color:rgba(var(--rgb-a78bfa),0.8);}
.sw-editor::placeholder{color:var(--text4);}
.sw-sheet{position:absolute;bottom:52px;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);border-radius:18px 18px 0 0;max-height:50vh;overflow:auto;overscroll-behavior:contain;z-index:100;transform:translateY(100%);transition:transform 0.25s ease-out;pointer-events:none;}
.sw-sheet.open{transform:translateY(0);pointer-events:auto;}
.sw-sheet-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:0 auto;padding:14px 0;background-clip:content-box;cursor:grab;}
.sw-sheet-top{display:flex;align-items:center;justify-content:space-between;padding:0 16px 6px;}
.sw-sheet-label{color:var(--text);font-size:15px;font-weight:500;}
.sw-sheet-x{color:var(--text3);background:none;border:none;font-size:18px;cursor:pointer;padding:10px 12px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:background 0.15s;}
.sw-sheet-x:active{background:rgba(var(--rgb-white),0.1);}
.sw-modes{display:flex;gap:6px;padding:10px 16px;overflow-x:auto;}
.sw-mtab{padding:10px 18px;font-size:14px;font-weight:500;color:var(--text);background:rgba(var(--rgb-white),0.06);border:1px solid rgba(var(--rgb-white),0.12);border-radius:10px;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all 0.15s;min-height:44px;display:flex;align-items:center;}
.sw-mtab:active{transform:scale(0.97);}
.sw-mtab.on{background:var(--pur);border-color:var(--pur);color:var(--text-on-accent);}
.sw-ai-row{display:flex;gap:8px;padding:8px 16px;}
.sw-ai-inp{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 16px;color:var(--text);font-size:16px;outline:none;font-family:inherit;min-width:0;min-height:44px;transition:border-color 0.15s;}
.sw-ai-inp::placeholder{color:var(--text4);}
.sw-ai-go{background:var(--pur);border:none;border-radius:12px;padding:0 24px;color:var(--text-on-accent);font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;min-height:44px;transition:all 0.15s;}
.sw-ai-go:active{transform:scale(0.97);}
.sw-ai-go:disabled{opacity:0.4;cursor:wait;transform:none;}
.sw-chips{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px 16px;min-height:16px;}
.sw-chip{background:rgba(var(--rgb-pur),0.1);border:1px solid rgba(var(--rgb-pur),0.25);color:var(--pur-chip);padding:10px 18px;border-radius:22px;font-size:14px;cursor:pointer;transition:all 0.15s;user-select:none;min-height:44px;display:inline-flex;align-items:center;}
.sw-chip:hover{background:rgba(var(--rgb-pur),0.22);color:var(--text-bright);}
.sw-chip:active{transform:scale(0.96);}
.sw-chip.meta{border-radius:10px;padding:12px 18px;line-height:1.5;}
.sw-chip.flash{background:rgba(var(--rgb-green),0.15)!important;border-color:rgba(var(--rgb-green),0.35)!important;color:rgba(var(--rgb-green),0.9)!important;}
.sw-err{color:var(--red);font-size:13px;padding:4px 0;}
.sw-loading{color:var(--text3);font-size:13px;padding:4px 0;}
.sw-refresh{display:flex;align-items:center;gap:4px;margin-top:4px;padding:8px 14px;font-size:12px;color:var(--text3);background:rgba(var(--rgb-white),0.04);border:1px solid rgba(var(--rgb-white),0.08);border-radius:10px;cursor:pointer;font-family:inherit;transition:all 0.15s;width:100%;}
.sw-refresh:hover{color:var(--text);background:rgba(var(--rgb-white),0.08);}
.sw-refresh:active{transform:scale(0.97);}
.sw-struct-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px 16px;}
.sw-st{padding:14px 16px;border-radius:12px;font-size:14px;font-weight:500;background:color-mix(in srgb,var(--stc) 6%,transparent);border:1px solid color-mix(in srgb,var(--stc) 20%,transparent);color:var(--stc);cursor:pointer;font-family:inherit;text-align:left;display:flex;align-items:center;gap:10px;transition:all 0.15s;min-height:48px;}
.sw-st::before{content:'';width:4px;height:20px;border-radius:2px;background:var(--stc);flex-shrink:0;}
.sw-st:active{transform:scale(0.97);}
.sw-st-tpl{text-align:center;justify-content:center;}
.sw-st-tpl::before{display:none;}
.sw-sheet-sub{padding:12px 16px 4px;font-size:12px;color:var(--text4);font-weight:600;text-transform:uppercase;letter-spacing:0.5px;}
.sw-tcat-tabs{display:flex;gap:4px;padding:6px 16px 8px;flex-wrap:wrap;}
.sw-tcat{padding:6px 12px;font-size:11px;font-weight:500;color:var(--text3);background:rgba(var(--rgb-white),0.04);border:1px solid rgba(var(--rgb-white),0.08);border-radius:8px;cursor:pointer;font-family:inherit;transition:all 0.15s;}
.sw-tcat.on{background:rgba(var(--rgb-pur),0.15);border-color:rgba(var(--rgb-pur),0.3);color:rgba(var(--rgb-a78bfa),0.9);}
.sw-tcat:active{transform:scale(0.97);}
.sw-tcat-panel{display:none;}
.sw-tcat-panel.on{display:block;}
.sw-toolbar{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom));border-top:1px solid rgba(var(--rgb-white),0.08);background:var(--overlay-blur);flex-shrink:0;z-index:200;}

/* Mobile-only compact AI sheet overrides. Keyboard eats vertical space on
   phones; this tightens padding, makes the 4 mode tabs a no-scroll grid,
   and bumps the sheet max-height from 50vh to 65vh so results breathe. */
@media(max-width:899px){
  .sw-sheet{max-height:65vh;border-radius:16px 16px 0 0;}
  .sw-sheet-handle{padding:10px 0;}
  .sw-sheet-top{padding:0 14px 4px;}
  .sw-sheet-label{font-size:14px;}
  .sw-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px 12px;overflow:visible;}
  .sw-mtab{padding:8px 4px;font-size:12px;min-height:40px;justify-content:center;border-radius:8px;}
  .sw-ai-row{padding:6px 12px;gap:6px;}
  .sw-ai-inp{padding:10px 12px;min-height:40px;border-radius:10px;}
  .sw-ai-go{padding:0 16px;font-size:13px;min-height:40px;border-radius:10px;}
  .sw-chips{padding:6px 12px 12px;gap:6px;}
  .sw-chip{padding:7px 14px;font-size:13px;min-height:36px;border-radius:18px;}
  .sw-chip.meta{padding:10px 14px;}
  .sw-struct-grid{padding:6px 12px 12px;gap:6px;}
  .sw-st{padding:10px 12px;font-size:13px;min-height:42px;}
}

.sw-tb{display:flex;align-items:center;gap:6px;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:500;background:rgba(var(--rgb-white),0.05);border:1px solid rgba(var(--rgb-white),0.1);color:var(--text-soft);cursor:pointer;font-family:inherit;transition:all 0.15s;min-height:44px;}
.sw-tb:active{transform:scale(0.97);}
.sw-tb.on{background:var(--pur);border-color:var(--pur);color:var(--text-on-accent);}
.sw-sidebar{display:contents;}

/* SONGWRITER DESKTOP SIDEBAR */
@media(min-width:900px){
  .sw-full{display:grid;grid-template-columns:1fr 400px;grid-template-rows:auto auto 1fr;}
  .sw-hdr{grid-column:1/-1;}
  .sw-stats{grid-column:1/-1;}
  .sw-editor-wrap{grid-column:1;grid-row:3;}
  .sw-sidebar{grid-column:2;grid-row:3;display:flex;flex-direction:column;border-left:1px solid rgba(var(--rgb-white),0.06);background:var(--surface);overflow-y:auto;overscroll-behavior:contain;}
  
  .sw-sidebar .sw-sheet{position:static!important;transform:none!important;pointer-events:auto!important;max-height:none;border-top:none;border-radius:0;overflow:visible;}
  .sw-sidebar .sw-sheet-handle{display:none;}
  .sw-sidebar .sw-sheet-x{display:none;}
  .sw-sidebar .sw-sheet-top{padding:16px 16px 8px;}
  .sw-sidebar .sw-sheet-label{font-size:13px;color:var(--text3);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;}
  .sw-sidebar .sw-modes{padding:8px 16px;gap:4px;flex-wrap:wrap;overflow:visible;}
  .sw-sidebar .sw-mtab{padding:7px 12px;font-size:12px;min-height:36px;}
  .sw-sidebar .sw-ai-row{padding:8px 16px;}
  .sw-sidebar .sw-ai-inp{font-size:14px;padding:10px 12px;min-height:40px;}
  .sw-sidebar .sw-ai-go{min-height:40px;padding:0 16px;font-size:13px;}
  .sw-sidebar .sw-chips{padding:6px 16px 12px;gap:5px;flex:1;}
  .sw-sidebar .sw-chip{padding:7px 12px;font-size:12px;min-height:36px;}
  .sw-sidebar #sw-sheet-struct-art{border-top:1px solid var(--border);}
  .sw-sidebar .sw-struct-grid{gap:6px;padding:8px 16px 12px;}
  .sw-sidebar .sw-st{padding:10px 12px;font-size:12px;min-height:40px;}
  .sw-toolbar{display:none;}
}

/* AUTH SCREEN */
#artist-auth{position:fixed;inset:0;background:var(--bg);z-index:8500;display:flex;align-items:center;justify-content:center;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 16px;}
#artist-auth.hidden{opacity:0;pointer-events:none;transition:opacity 0.4s;}
.aa-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:36px 32px;width:380px;max-width:calc(100vw - 32px);position:relative;overflow:hidden;margin:auto;}
.aa-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--grad);}
.aa-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:28px;}
.aa-logo-img{height:52px;margin-bottom:16px;}
.aa-logo-img img{height:100%;width:auto;object-fit:contain;}
.aa-title{display:none;}
.aa-sub{font-size:10px;color:var(--text4);font-family:var(--mono);letter-spacing:3px;margin-top:5px;text-transform:uppercase;}
.aa-field{margin-bottom:16px;}
.aa-field label{display:block;font-size:12px;color:var(--text3);margin-bottom:6px;font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;}
.aa-field input{width:100%;padding:13px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--sans);font-size:15px;outline:none;transition:border-color 0.15s;}
.aa-field input:focus{border-color:var(--pur);}
.aa-field input::placeholder{color:var(--text4);}
.aa-btn{width:100%;padding:14px;border:none;border-radius:8px;background:var(--grad-btn);color:var(--text-on-accent);font-family:var(--sans);font-size:15px;font-weight:600;cursor:pointer;margin-top:6px;transition:all 0.15s;box-shadow:0 4px 16px rgba(var(--rgb-pur),0.4);}
.aa-btn:hover{opacity:0.9;transform:translateY(-1px);box-shadow:0 6px 28px rgba(var(--rgb-pur),0.5);}
.aa-btn:disabled{opacity:0.4;cursor:not-allowed;transform:none;}
.aa-error{color:var(--red);font-size:13px;margin-top:10px;text-align:center;min-height:18px;}
.aa-info{color:var(--green);font-size:13px;margin-top:10px;text-align:center;min-height:18px;}
@media(max-width:600px){
  #artist-auth{padding:20px 12px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom));}
  .aa-card{padding:28px 22px;width:100%;max-width:100%;}
  .aa-logo{margin-bottom:22px;}
  .aa-logo-img{height:44px;margin-bottom:12px;}
  .aa-field{margin-bottom:14px;}
  .aa-field input{font-size:16px;}
}

/* ── SPOTIFY HEADER BUTTON + POPUP ──────────────────────────────────────────── */
.sp-hdr-btn{position:relative;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--spotify);cursor:pointer;flex-shrink:0;line-height:1;transition:all 0.15s;display:flex;align-items:center;}
.sp-hdr-btn:hover{border-color:rgba(var(--rgb-spotify),0.4);background:rgba(var(--rgb-spotify),0.08);}
.sp-popup{display:none;position:absolute;top:100%;right:0;margin-top:8px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px;min-width:260px;box-shadow:0 8px 32px rgba(var(--rgb-black),0.4);z-index:100;}
.sp-popup.show{display:block;}
@media(max-width:520px){.sp-popup{min-width:220px;right:-40px;}}
.sp-pop-input{width:100%;padding:9px 11px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text1);font-family:var(--sans);font-size:13px;outline:none;box-sizing:border-box;}
.sp-pop-input:focus{border-color:var(--spotify);}
.sp-pop-input::placeholder{color:var(--text4);}
.sp-results{margin-top:4px;max-height:240px;overflow-y:auto;}
.sp-result{display:flex;align-items:center;gap:10px;width:100%;padding:7px 6px;background:none;border:none;border-radius:8px;cursor:pointer;color:var(--text1);font-family:var(--sans);text-align:left;transition:background 0.12s;}
.sp-result:hover{background:rgba(var(--rgb-spotify),0.08);}
.sp-result-img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.sp-result-empty{width:36px;height:36px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--text4);font-size:14px;flex-shrink:0;}
.sp-result-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-no-results{font-size:12px;color:var(--text4);padding:8px 6px;text-align:center;}
.sp-pop-connected{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12px;color:var(--text2);padding:4px 2px;}
.sp-pop-unlink{margin-left:auto;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text4);font-size:11px;padding:4px 10px;cursor:pointer;font-family:var(--sans);transition:all 0.15s;}
.sp-pop-unlink:hover{color:var(--red);border-color:var(--red);}

/* ── DISCOGRAPHY ────────────────────────────────────────────────────────────── */
#sp-discography{}
.sd-section{overflow:hidden;background:var(--surface);border-bottom:1px solid var(--border);border-top:1px solid var(--border);}
.sd-section::before{content:'';display:block;height:2px;background:linear-gradient(90deg,var(--spotify) 0%,rgba(var(--rgb-spotify),0.2) 100%);}
.sd-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 20px;background:transparent;border:none;color:var(--text1);cursor:pointer;transition:background 0.12s;}
.sd-toggle:hover{background:rgba(var(--rgb-white),0.02);}
.sd-toggle-left{display:flex;align-items:center;gap:10px;}
.sd-toggle-txt{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--text1);}
.sd-toggle-count{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--spotify);background:rgba(var(--rgb-spotify),0.12);padding:2px 8px;border-radius:10px;}
.sd-chevron{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text3);transition:transform 0.25s ease,color 0.15s;flex-shrink:0;}
.sd-section.open .sd-chevron{transform:rotate(90deg);color:var(--spotify);}
.sd-content{display:none;padding:0 8px 8px;}
.sd-section.open .sd-content{display:block;}
.sd-release{display:flex;align-items:center;gap:12px;padding:8px;border-radius:10px;text-decoration:none;color:inherit;transition:background 0.12s;}
.sd-release:hover{background:rgba(var(--rgb-white),0.04);}
.sd-release+.sd-release{margin-top:2px;}
.sd-cover-wrap{position:relative;flex-shrink:0;width:48px;height:48px;border-radius:6px;overflow:hidden;}
.sd-cover{width:100%;height:100%;object-fit:cover;display:block;}
.sd-no-cover{background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--text4);font-size:18px;width:100%;height:100%;}
.sd-play-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--rgb-black),0.45);opacity:0;transition:opacity 0.15s;}
.sd-release:hover .sd-play-icon{opacity:1;}
.sd-details{flex:1;min-width:0;}
.sd-title{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sd-sub{font-family:var(--sans);font-size:11px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sd-feat{color:var(--bpur);font-weight:500;}

/* ── SPOTIFY COMBINED SECTION ──────────────────────────────────────────────── */
.sps-content{padding:0 !important;}

/* Hero stat */
.sps-hero{padding:24px 16px 12px;text-align:center;background:linear-gradient(180deg,rgba(var(--rgb-spotify),0.06) 0%,transparent 100%);}
.sps-hero-val{font-family:var(--sans);font-size:32px;font-weight:800;color:var(--spotify);letter-spacing:-0.5px;line-height:1;}
.sps-hero-lbl{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:1px;margin-top:6px;}

/* Follower line */
.sps-follower{text-align:center;padding:4px 16px 16px;font-family:var(--sans);font-size:13px;color:var(--text3);}
.sps-follower-val{font-weight:700;color:var(--text1);}

/* Block sections */
.sps-block{padding:8px 8px 4px;border-top:1px solid rgba(var(--rgb-white),0.04);}
.sps-block-title{font-family:var(--sans);font-size:11px;font-weight:700;color:var(--text4);text-transform:uppercase;letter-spacing:1.2px;padding:8px 8px 6px;}

/* Stream count on right side of release */
.sps-release-right{flex-shrink:0;text-align:right;margin-left:auto;padding-left:8px;}
.sps-release-streams{display:block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text1);white-space:nowrap;}
.sps-release-delta{display:block;font-size:10px;font-weight:600;color:var(--spotify);margin-top:1px;}

/* Top Cities (simple) */
.sps-city-simple{display:flex;justify-content:space-between;align-items:center;padding:7px 8px;font-family:var(--sans);font-size:13px;}
.sps-city-simple+.sps-city-simple{border-top:1px solid rgba(var(--rgb-white),0.03);}
.sps-city-simple-name{color:var(--text2);}
.sps-city-simple-count{color:var(--text3);font-weight:600;font-size:12px;}

/* ── SPOTIFY CONNECT OVERLAY ──────────────────────────────────────────────── */
.sp-ov-overlay{position:fixed;inset:0;z-index:9999;background:rgba(var(--rgb-black),0.75);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity 0.2s ease;}
.sp-ov-overlay.show{opacity:1;}
.sp-ov-card{position:relative;width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px 24px 24px;text-align:center;}
.sp-ov-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--text4);font-size:24px;cursor:pointer;line-height:1;padding:4px;transition:color 0.15s;}
.sp-ov-close:hover{color:var(--text1);}
.sp-ov-icon{margin-bottom:12px;}
.sp-ov-title{font-family:var(--sans);font-size:18px;font-weight:700;color:var(--text1);margin-bottom:8px;}
.sp-ov-desc{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--text3);margin-bottom:20px;}
.sp-ov-search-wrap{text-align:left;}
.sp-ov-input{width:100%;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text1);font-family:var(--sans);font-size:14px;outline:none;transition:border-color 0.15s;box-sizing:border-box;}
.sp-ov-input:focus{border-color:var(--spotify);}
.sp-ov-input::placeholder{color:var(--text4);}
.sp-ov-results{margin-top:8px;max-height:200px;overflow-y:auto;}
.sp-ov-loading{font-family:var(--sans);font-size:12px;color:var(--text4);padding:10px 4px;text-align:center;}
.sp-ov-result{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:none;border-radius:8px;color:var(--text1);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background 0.12s;}
.sp-ov-result:hover{background:rgba(var(--rgb-spotify),0.1);}
.sp-ov-result img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.sp-ov-result-ph{width:36px;height:36px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;color:var(--text4);font-size:16px;flex-shrink:0;}
.sp-ov-skip{display:inline-block;margin-top:16px;background:none;border:none;color:var(--text4);font-family:var(--sans);font-size:12px;cursor:pointer;text-decoration:underline;transition:color 0.15s;}
.sp-ov-skip:hover{color:var(--text2);}

/* ── STREAM DELTAS ────────────────────────────────────────────────────────── */
.sps-deltas{display:flex;gap:0;border-top:1px solid rgba(var(--rgb-white),0.04);border-bottom:1px solid rgba(var(--rgb-white),0.04);}
.sps-delta-pill{flex:1;padding:12px 12px;text-align:center;}
.sps-delta-pill+.sps-delta-pill{border-left:1px solid rgba(var(--rgb-white),0.04);}
.sps-delta-val{display:block;font-family:var(--sans);font-size:16px;font-weight:700;color:var(--spotify);}
.sps-delta-lbl{display:block;font-family:var(--sans);font-size:10px;color:var(--text4);text-transform:uppercase;letter-spacing:0.5px;margin-top:2px;}
.sps-delta-info{flex:1;padding:10px 12px;font-family:var(--sans);font-size:11px;color:var(--text4);text-align:center;font-style:italic;}
.sps-release-delta{font-size:11px;font-weight:600;color:var(--spotify);margin-left:4px;}

/* ── HEADER DROPDOWN MENU ─────────────────────────────────────────────────── */
.ph-menu-wrap{position:relative;flex-shrink:0;}
.ph-menu-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;color:var(--text2);cursor:pointer;transition:all 0.15s;}
.ph-menu-btn:hover{background:var(--surface3);border-color:var(--text4);}
.ph-menu-btn:active{transform:scale(0.95);}
.ph-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 32px rgba(var(--rgb-black),0.5);z-index:1000;overflow:hidden;padding:6px 0;}
.ph-dropdown.show{display:block;animation:ddFadeIn 0.15s ease;}
@keyframes ddFadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.ph-dd-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 18px;background:none;border:none;color:var(--text1);font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;transition:background 0.12s;text-align:left;}
.ph-dd-item:hover{background:rgba(var(--rgb-white),0.05);}
.ph-dd-item svg{flex-shrink:0;color:var(--text3);}
.ph-dd-spotify svg{color:var(--spotify) !important;}
.ph-dd-sep{height:1px;background:var(--border);margin:4px 14px;}
.ph-dd-logout{color:var(--text3);}
.ph-dd-logout:hover{color:var(--red-danger);background:rgba(var(--rgb-red-danger),0.06);}
.ph-dd-logout:hover svg{stroke:var(--red-danger);}

/* ── Track Chart Overlay ─────────────────────────────────────────────── */
.tc-overlay{position:fixed;inset:0;background:rgba(var(--rgb-black),0.7);backdrop-filter:blur(12px);z-index:5000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.25s ease;}
.tc-overlay.tc-open{opacity:1;}
.tc-panel{width:100%;max-width:480px;max-height:92vh;background:var(--surface-chart);border:1px solid rgba(var(--rgb-white),0.12);border-radius:20px;overflow-y:auto;overflow-x:hidden;transform:translateY(30px);transition:transform 0.3s ease;-webkit-overflow-scrolling:touch;box-shadow:0 8px 40px rgba(var(--rgb-black),0.6);}
.tc-overlay.tc-open .tc-panel{transform:translateY(0);}
.tc-header{padding:20px 20px 16px;position:relative;}
.tc-close{position:absolute;top:12px;right:12px;background:var(--surface2);border:none;color:var(--text3);font-size:22px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;z-index:1;line-height:1;}
.tc-close:hover{background:var(--surface3);color:var(--text);}
.tc-hero{display:flex;align-items:center;gap:16px;}
.tc-cover{width:80px;height:80px;border-radius:10px;object-fit:cover;flex-shrink:0;box-shadow:0 4px 20px rgba(var(--rgb-black),0.4);}
.tc-no-cover{background:var(--surface3);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--text4);}
.tc-meta{flex:1;min-width:0;padding-right:32px;}
.tc-title{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tc-sub{font-size:12px;color:var(--text4);margin-top:3px;font-family:var(--mono);}
.tc-streams{font-size:14px;font-weight:700;color:var(--spotify);margin-top:6px;}
.tc-spotify-link{display:inline-block;font-size:11px;color:var(--text4);text-decoration:none;margin-top:12px;padding:5px 12px;border:1px solid var(--border);border-radius:20px;transition:all 0.15s;font-family:var(--mono);}
.tc-spotify-link:hover{color:var(--spotify);border-color:var(--spotify);}
.tc-chart-area{padding:0 16px 20px;}
.tc-canvas-wrap{position:relative;width:100%;margin:8px 0;touch-action:none;}
.tc-tooltip{position:absolute;background:var(--surface3);border:1px solid var(--border2);color:var(--text);font-size:11px;padding:6px 10px;border-radius:8px;pointer-events:none;opacity:0;transition:opacity 0.15s;white-space:nowrap;z-index:2;line-height:1.5;font-family:var(--sans);}
.tc-periods{display:flex;gap:6px;margin-bottom:12px;}
.tc-period{background:var(--surface2);border:1px solid var(--border);color:var(--text3);font-size:12px;font-weight:600;padding:5px 14px;border-radius:20px;cursor:pointer;transition:all 0.15s;font-family:var(--mono);}
.tc-period:hover{border-color:var(--border2);color:var(--text2);}
.tc-period-active{background:rgba(var(--rgb-spotify),0.12);border-color:rgba(var(--rgb-spotify),0.3);color:var(--spotify);}
.tc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:16px;}
.tc-stat{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:14px 12px;text-align:center;}
.tc-stat-val{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--text);}
.tc-stat-green{color:var(--spotify);}
.tc-stat-lbl{font-size:10px;color:var(--text4);margin-top:4px;font-family:var(--mono);text-transform:uppercase;letter-spacing:0.5px;}
.tc-loading{text-align:center;padding:48px 0;color:var(--text4);font-size:13px;}
.tc-empty{text-align:center;padding:40px 20px;color:var(--text3);font-size:14px;line-height:1.7;}
.tc-empty-sub{font-size:12px;color:var(--text4);}
.sd-release{cursor:pointer;}
@media(min-width:600px){
  .tc-overlay{align-items:center;}
  .tc-panel{border-radius:20px;max-height:88vh;max-width:780px;}
}
.tc-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--spotify);border:2px solid var(--text-bright);pointer-events:none;opacity:0;transition:opacity 0.1s;z-index:3;}
.tc-vline{position:absolute;width:1px;background:rgba(var(--rgb-white),0.15);pointer-events:none;opacity:0;transition:opacity 0.1s;z-index:1;}
.sps-sort-row{display:flex;gap:5px;padding:6px 8px 8px;flex-wrap:wrap;}
.sps-sort-btn{font-size:11px;padding:4px 12px;border-radius:16px;border:1px solid var(--border);background:var(--surface2);color:var(--text3);cursor:pointer;font-family:var(--sans);font-weight:600;transition:all 0.15s;}
.sps-sort-btn:hover{border-color:var(--border2);color:var(--text2);}
.sps-sort-active{background:rgba(var(--rgb-spotify),0.1);border-color:rgba(var(--rgb-spotify),0.35);color:var(--spotify);}
.sps-release-sub{color:var(--text4)!important;font-weight:500!important;font-size:11px!important;}

/* ── Artist Sessions ──────────────────────────────────────────────────────── */
.as-card{background:var(--surface2);border-radius:10px;padding:14px 16px;margin-bottom:8px;transition:border-color .15s;}
.btn-as-accept{padding:6px 16px;border-radius:6px;border:1px solid var(--green-accept);background:rgba(var(--rgb-green-accept),0.1);color:var(--green-accept);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--sans);}
.btn-as-accept:hover{background:rgba(var(--rgb-green-accept),0.2);}
.btn-as-decline{padding:6px 16px;border-radius:6px;border:1px solid var(--border2);background:none;color:var(--text3);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--sans);}
.btn-as-decline:hover{background:var(--surface3);color:var(--red-strong);border-color:var(--red-strong);}

/* Artist Sessions – 1:1 Port des Studio-Dashboard-Session-Widgets.
   Kompletter Card-Wrapper mit Wochen-Strip oben und selektierter
   Tages-Agenda darunter. */
.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.25),0 8px 24px -4px rgba(0,0,0,0.2);}
/* Gleiche horizontale Ausrichtung + Abstand wie .prod-card darunter.
   Margin-top schafft Luft zur Spotify-Stats-Card darueber. */
#artist-sessions-section .dash-card{margin:20px 8px 12px;}
.dash-card::before{content:'';position:absolute;bottom:-30px;left:-30px;width:140px;height:140px;border-radius:50%;background:rgba(var(--rgb-pur),0.1);filter:blur(35px);pointer-events:none;}
.dash-card::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--rgb-violet),0.15),transparent);pointer-events:none;}
.dash-card-t{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.dash-card-t span{font-size:13px;font-weight:600;color:var(--text2);}
.dash-card-link{font-size:11px;color:var(--pur-light);cursor:pointer;text-decoration:none;}
.dash-card-link:hover{text-decoration:underline;}
/* Week strip */
.dash-week-strip{display:flex;gap:4px;margin-bottom:14px;padding:2px 0;}
.dash-week-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;border-radius:10px;cursor:pointer;transition:all .2s;border:1px solid transparent;}
.dash-week-day:hover{background:rgba(var(--rgb-pur),0.06);}
.dash-week-day.selected{background:rgba(var(--rgb-pur),0.1);border-color:var(--bpur);}
.dash-week-day.today .dash-week-num{background:var(--pur-light);color:var(--text-on-accent);}
.dash-week-name{font-size:10px;color:var(--text4);font-weight:500;text-transform:uppercase;letter-spacing:0.5px;}
.dash-week-num{font-size:13px;font-weight:600;color:var(--text);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;}
.dash-week-dots{display:flex;gap:3px;min-height:6px;align-items:center;justify-content:center;}
.dash-week-dots span{width:5px;height:5px;border-radius:50%;display:block;}
/* Agenda head */
.dash-agenda-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:0 2px;}
.dash-agenda-date{font-size:12px;font-weight:600;color:var(--text2);}
.dash-agenda-count{font-size:11px;color:var(--text4);font-family:var(--mono);}
.dash-agenda-scroll-wrap{position:relative;flex:1;overflow:hidden;}
.dash-agenda-scroll-wrap.has-overflow{-webkit-mask-image:linear-gradient(to bottom,black calc(100% - 40px),transparent 100%);mask-image:linear-gradient(to bottom,black calc(100% - 40px),transparent 100%);}
.dash-agenda-scroll{height:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;}
.dash-agenda-scroll::-webkit-scrollbar{display:none;}
/* Session cards */
.dash-sess-card{display:flex;align-items:stretch;margin-bottom:8px;border-radius:10px;background:rgba(var(--rgb-pur),0.04);border:1px solid var(--border);transition:all .15s;overflow:hidden;position:relative;flex-shrink:0;}
.dash-sess-card:last-child{margin-bottom:0;}
.dash-sess-card:hover{border-color:var(--bpur);background:rgba(var(--rgb-pur),0.08);}
.dash-sess-card.past{opacity:0.45;}
.dash-sess-card.active{border-color:var(--sess-color,var(--bpur));box-shadow:0 0 12px rgba(var(--rgb-pur),0.15);}
.dash-sess-card-bar{width:4px;flex-shrink:0;background:var(--sess-color,var(--violet));}
.dash-sess-card-body{flex:1;padding:10px 12px;min-width:0;}
.dash-sess-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:8px;}
.dash-sess-card-time{font-size:11px;color:var(--text3);font-family:var(--mono);}
.dash-sess-card-badge{font-size:9px;padding:2px 7px;border-radius:4px;font-weight:600;white-space:nowrap;letter-spacing:0.04em;}
.dash-sess-card-title{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;}
.dash-sess-card-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text4);}
.dash-sess-card-actions{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap;}
.dash-sess-card-status{font-size:10px;font-weight:600;font-family:var(--mono);letter-spacing:0.04em;display:inline-flex;align-items:center;gap:5px;}
.dash-sess-card-status.accepted{color:var(--green-accept);}
.dash-sess-card-status.declined{color:var(--red-strong);}
.dash-sess-card-status.reschedule{color:var(--sess-mixing);}
.dash-sess-card-live{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--green);}
.dash-live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:dashLivePulse 1.5s ease-in-out infinite;}
@keyframes dashLivePulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
/* Now line */
.dash-now-line{display:flex;align-items:center;gap:8px;padding:6px 0;margin:4px 0;flex-shrink:0;}
.dash-now-line::after{content:'';flex:1;height:1.5px;background:linear-gradient(90deg,var(--pur-light),transparent);}
.dash-now-line span{font-size:10px;font-weight:600;color:var(--pur-light);font-family:var(--mono);flex-shrink:0;}
/* Agenda-Container: feste Minimal-Hoehe wie Studio */
#art-sess-agenda{min-height:135px;display:flex;flex-direction:column;}
/* Empty state */
.dash-sess-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 12px;gap:8px;color:var(--text4);flex:1;}
.dash-sess-empty-state svg{opacity:0.3;margin-bottom:4px;}
.dash-sess-empty-state span{font-size:12px;}
/* Studio Deliveries */
.dlv-item{border-left:2px solid var(--green) !important;}
.dlv-dl-btn{background:rgba(var(--rgb-green),0.08);border:1px solid rgba(var(--rgb-green),0.3);border-radius:6px;padding:4px 8px;color:var(--green);font-size:12px;cursor:pointer;flex-shrink:0;transition:all 0.15s;line-height:1;}
.dlv-dl-btn:hover{background:rgba(var(--rgb-green),0.15);border-color:rgba(var(--rgb-green),0.5);}

/* Artist Production Modal */
.art-add-prod-btn{background:rgba(var(--rgb-pur),0.12);border:1px solid rgba(var(--rgb-pur),0.3);border-radius:8px;padding:5px 14px;color:var(--pur-light);font-size:11px;font-family:var(--mono);cursor:pointer;transition:all 0.15s;letter-spacing:0.5px;}
.art-add-prod-btn:hover{border-color:rgba(var(--rgb-pur),0.5);background:rgba(var(--rgb-pur),0.18);}
.modal-overlay{display:none;position:fixed;inset:0;z-index:999;background:var(--overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);align-items:flex-end;justify-content:center;}
.modal-overlay.open{display:flex;}
@media(min-width:600px){.modal-overlay{align-items:center;}}
.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 0 0;padding:24px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;}
@media(min-width:600px){.modal-box{border-radius:16px;}}
.modal-hdr{font-size:18px;font-weight:600;color:var(--text-bright);margin-bottom:20px;}
.modal-field{margin-bottom:14px;}
.modal-field label{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);font-family:var(--mono);margin-bottom:5px;}
.modal-field input,.modal-field select,.modal-field textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-size:14px;font-family:Nunito,sans-serif;outline:none;-webkit-appearance:none;}
.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--pur);}
.modal-field textarea{resize:vertical;min-height:70px;}
.modal-row{display:flex;gap:12px;}
@media(max-width:400px){.modal-row{flex-direction:column;gap:0;}}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.modal-cancel{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 20px;color:var(--text2);font-size:14px;cursor:pointer;}
.modal-save{background:var(--pur);border:none;border-radius:10px;padding:10px 24px;color:var(--text-on-accent);font-size:14px;font-weight:600;cursor:pointer;transition:opacity 0.15s;}
.modal-save:hover{opacity:0.9;}
.modal-save:disabled{opacity:0.5;cursor:not-allowed;}

/* Pending Production Banner */
.prod-pending-banner{background:rgba(var(--rgb-amber),0.08);border:1px solid rgba(var(--rgb-amber),0.25);border-radius:10px;padding:10px 14px;margin-bottom:8px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--amber);font-family:var(--mono);}
.prod-pending-badge{display:inline-block;background:rgba(var(--rgb-amber),0.15);border:1px solid rgba(var(--rgb-amber),0.3);border-radius:6px;padding:2px 8px;font-size:10px;color:var(--amber);font-family:var(--mono);letter-spacing:0.5px;margin-left:6px;}

/* What's New Banner */
.wn-overlay{display:none;position:fixed;inset:0;z-index:1000;background:var(--overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);align-items:flex-end;justify-content:center;opacity:0;transition:opacity 0.25s;}
.wn-overlay.show{display:flex;opacity:1;}
@media(min-width:600px){.wn-overlay{align-items:center;}}
.wn-card{background:var(--surface);border:1px solid var(--border);border-radius:20px 20px 0 0;padding:28px 24px 24px;width:100%;max-width:420px;max-height:85vh;overflow-y:auto;position:relative;transform:translateY(20px);transition:transform 0.25s;}
.wn-overlay.show .wn-card{transform:translateY(0);}
@media(min-width:600px){.wn-card{border-radius:20px;}}
.wn-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text4);font-size:22px;cursor:pointer;padding:4px;line-height:1;}
.wn-header{text-align:center;margin-bottom:20px;}
.wn-logo{font-size:32px;margin-bottom:8px;}
.wn-title{font-size:20px;font-weight:700;color:var(--text-bright);font-family:Outfit,sans-serif;}
.wn-sub{font-size:13px;color:var(--text3);margin-top:4px;}
.wn-items{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.wn-item{display:flex;gap:12px;padding:12px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;}
.wn-item-icon{font-size:20px;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(var(--rgb-pur),0.1);border-radius:10px;}
.wn-item-body{flex:1;min-width:0;}
.wn-item-title{font-size:14px;font-weight:600;color:var(--text-bright);margin-bottom:2px;}
.wn-item-desc{font-size:12px;color:var(--text3);line-height:1.4;}
.wn-btn{width:100%;padding:14px;background:var(--pur);border:none;border-radius:12px;color:var(--text-on-accent);font-size:15px;font-weight:600;cursor:pointer;transition:opacity 0.15s;font-family:Nunito,sans-serif;}
.wn-btn:hover{opacity:0.9;}

/* ═══════════════════════════════════════════════════════════════════════════
   LIGHT MODE — Element-spezifische Overrides
   ─────────────────────────────────────────────────────────────────────────── */

/* Logo-Filter für Light Mode (dreht weiße Teile zu schwarz, lila bleibt lila) */
:root.light .ls-logo img,
:root.light .aa-logo-img img,
:root.light .ph-logo-default img,
:root[data-theme="light"] .ls-logo img,
:root[data-theme="light"] .aa-logo-img img,
:root[data-theme="light"] .ph-logo-default img {
  filter: invert(1) hue-rotate(180deg);
}
@media (prefers-color-scheme: light) {
  :root:not(.dark):not(.light) .ls-logo img,
  :root:not(.dark):not(.light) .aa-logo-img img,
  :root:not(.dark):not(.light) .ph-logo-default img {
    filter: invert(1) hue-rotate(180deg);
  }
}

/* Kräftigere Schatten für Karten (Material/Tailwind-Stack) */
:root.light .prod-card,
:root.light .aa-card,
:root.light .wf-overlay .c-card,
:root.light .modal-box,
:root.light .wn-card,
:root.light .sp-ov-card,
:root[data-theme="light"] .prod-card,
:root[data-theme="light"] .aa-card,
:root[data-theme="light"] .wf-overlay .c-card,
:root[data-theme="light"] .modal-box,
:root[data-theme="light"] .wn-card,
:root[data-theme="light"] .sp-ov-card {
  box-shadow:
    0 1px 2px rgba(0,0,0,0.06),
    0 4px 8px rgba(0,0,0,0.04),
    0 8px 24px -4px rgba(0,0,0,0.06);
}
@media (prefers-color-scheme: light) {
  :root:not(.dark):not(.light) .prod-card,
  :root:not(.dark):not(.light) .aa-card,
  :root:not(.dark):not(.light) .wf-overlay .c-card,
  :root:not(.dark):not(.light) .modal-box,
  :root:not(.dark):not(.light) .wn-card,
  :root:not(.dark):not(.light) .sp-ov-card {
    box-shadow:
      0 1px 2px rgba(0,0,0,0.06),
      0 4px 8px rgba(0,0,0,0.04),
      0 8px 24px -4px rgba(0,0,0,0.06);
  }
}

/* (dead code entfernt — spätere "BOLD DEPTH" Rule überschreibt eh) */

/* ═══════════════════════════════════════════════════════════════════════════
   LIGHT MODE — BOLD DEPTH (Stripe/Vercel/Linear inspiriert)
   ─────────────────────────────────────────────────────────────────────────── */

/* Light Mode: solider Hintergrund. Die radial-gradient Orbs (body::after)
   wurden entfernt weil sie auf älteren Android Chrome Versions das
   Scrolling blockierten. */
:root.light body,
:root[data-theme="light"] body {
  background: var(--bg);
}

/* (Grain-Textur-Verstärkung im Light Mode entfernt — mix-blend-mode:multiply
   kann auf älteren Android Chrome Versions das Scrolling beeinträchtigen) */

/* Prod-Card: Starke Tiefe */
:root.light .prod-card,
:root[data-theme="light"] .prod-card {
  background: linear-gradient(160deg, #ffffff 0%, #faf7ff 50%, #f3efff 100%);
  border: 1px solid rgba(209,213,219,0.6);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 4px rgba(17,24,39,0.04),
    0 8px 16px -4px rgba(17,24,39,0.08),
    0 24px 48px -12px rgba(109,40,217,0.18);
  margin: 0 8px 12px;
  border-radius: 14px;
  border-bottom: 1px solid rgba(209,213,219,0.6);
}
:root.light .prod-card:first-child,
:root[data-theme="light"] .prod-card:first-child {
  border-top: 1px solid rgba(209,213,219,0.6);
}

/* Sessions-Card (.dash-card) erbt die gleiche Tiefe wie .prod-card im Light Mode — Hintergrund/Border bleiben über CSS-Vars theme-aware. */
:root.light .dash-card,
:root[data-theme="light"] .dash-card {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 4px rgba(17,24,39,0.04),
    0 8px 16px -4px rgba(17,24,39,0.08),
    0 24px 48px -12px rgba(109,40,217,0.18);
}

/* Cover-Buttons mit starkem Shadow (Cover ersetzen, Lyrics schreiben, Session anfragen) */
:root.light .cover-btn,
:root[data-theme="light"] .cover-btn {
  background: linear-gradient(160deg, #ffffff 0%, #f7f3ff 100%);
  border: 1px solid rgba(209,213,219,0.8);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 1px 3px rgba(17,24,39,0.06),
    0 4px 8px -2px rgba(17,24,39,0.04);
  transition: all 0.2s ease;
}
:root.light .cover-btn:hover,
:root[data-theme="light"] .cover-btn:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 4px rgba(17,24,39,0.08),
    0 8px 20px -4px rgba(109,40,217,0.2);
  border-color: rgba(109,40,217,0.3);
  transform: translateY(-1px);
  background: linear-gradient(180deg, #fefdff 0%, #f8f5ff 100%);
}

/* Cover-Thumb (Album-Art) mit ausgeprägtem Foto-Shadow */
:root.light .cover-thumb,
:root[data-theme="light"] .cover-thumb {
  border: none;
  box-shadow:
    0 2px 6px rgba(17,24,39,0.15),
    0 12px 28px -6px rgba(17,24,39,0.25),
    0 24px 48px -12px rgba(109,40,217,0.2);
}

/* Form-Inputs mit Vertiefung */
:root.light .modal-field input,
:root.light .modal-field select,
:root.light .modal-field textarea,
:root.light .aa-field input,
:root.light .atp-val,
:root[data-theme="light"] .modal-field input,
:root[data-theme="light"] .modal-field select,
:root[data-theme="light"] .modal-field textarea,
:root[data-theme="light"] .aa-field input,
:root[data-theme="light"] .atp-val {
  background: #ffffff;
  border-color: rgba(209,213,219,0.9);
  box-shadow:
    inset 0 2px 4px rgba(17,24,39,0.06),
    inset 0 0 0 1px rgba(17,24,39,0.02);
}
:root.light .modal-field input:focus,
:root.light .modal-field select:focus,
:root.light .modal-field textarea:focus,
:root.light .aa-field input:focus,
:root[data-theme="light"] .modal-field input:focus,
:root[data-theme="light"] .modal-field select:focus,
:root[data-theme="light"] .modal-field textarea:focus,
:root[data-theme="light"] .aa-field input:focus {
  box-shadow:
    inset 0 2px 4px rgba(17,24,39,0.04),
    0 0 0 4px rgba(109,40,217,0.12),
    0 4px 12px rgba(109,40,217,0.08);
  border-color: var(--pur);
}

/* Primary Buttons mit Lila-Glow */
:root.light .aa-btn,
:root.light .modal-save,
:root.light .wn-btn,
:root[data-theme="light"] .aa-btn,
:root[data-theme="light"] .modal-save,
:root[data-theme="light"] .wn-btn {
  box-shadow:
    0 1px 2px rgba(17,24,39,0.1),
    0 4px 12px rgba(109,40,217,0.35),
    0 12px 24px -4px rgba(109,40,217,0.25),
    inset 0 1px 0 rgba(255,255,255,0.25),
    inset 0 -1px 0 rgba(0,0,0,0.15);
}
:root.light .aa-btn:hover,
:root.light .modal-save:hover,
:root[data-theme="light"] .aa-btn:hover,
:root[data-theme="light"] .modal-save:hover {
  box-shadow:
    0 2px 4px rgba(17,24,39,0.15),
    0 8px 20px rgba(109,40,217,0.45),
    0 20px 40px -6px rgba(109,40,217,0.35),
    inset 0 1px 0 rgba(255,255,255,0.3);
}

/* Portal-Header: Glass
   Alpha bewusst <=0.6, damit Safari 26 die URL-Bar als Liquid-Glass-Pill
   rendert (ab ~0.7 opak kippt Safari's Toolbar-Sampling auf "solid"). */
:root.light .portal-header,
:root[data-theme="light"] .portal-header {
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(250,250,252,0.5) 100%);
  backdrop-filter: blur(24px) saturate(200%);
  -webkit-backdrop-filter: blur(24px) saturate(200%);
  border-bottom-color: rgba(209,213,219,0.4);
  box-shadow:
    0 1px 3px rgba(17,24,39,0.04),
    0 4px 20px -4px rgba(109,40,217,0.08);
}

/* Play-Buttons mit extra Glow */
:root.light .wf-play,
:root.light .wf-overlay .wf-o-play,
:root.light .wf-overlay .wf-o-compose-send,
:root[data-theme="light"] .wf-play,
:root[data-theme="light"] .wf-overlay .wf-o-play,
:root[data-theme="light"] .wf-overlay .wf-o-compose-send {
  box-shadow:
    0 1px 2px rgba(17,24,39,0.12),
    0 4px 12px rgba(109,40,217,0.4),
    0 8px 20px -4px rgba(109,40,217,0.3),
    inset 0 1px 0 rgba(255,255,255,0.3);
}

/* Pc-Header beim Aufklappen (geöffnete Produktion) */
:root.light .prod-card.open .pc-header,
:root[data-theme="light"] .prod-card.open .pc-header {
  background: linear-gradient(180deg, rgba(109,40,217,0.06) 0%, transparent 100%);
}

/* Stem-Items */
:root.light .stem-item,
:root[data-theme="light"] .stem-item {
  background: linear-gradient(160deg, #ffffff 0%, #f7f3ff 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.8),
    0 1px 3px rgba(17,24,39,0.06);
  border-color: rgba(209,213,219,0.8);
}

/* Stem-Upload-Btn (Hochladen · Max 1 GB Dashed Button) */
:root.light .stem-upload-btn,
:root[data-theme="light"] .stem-upload-btn {
  background: linear-gradient(180deg, rgba(109,40,217,0.04) 0%, rgba(109,40,217,0.08) 100%);
  border: 2px dashed rgba(109,40,217,0.4);
  color: var(--pur);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
}
:root.light .stem-upload-btn:hover,
:root[data-theme="light"] .stem-upload-btn:hover {
  background: linear-gradient(180deg, rgba(109,40,217,0.06) 0%, rgba(109,40,217,0.12) 100%);
  border-color: var(--pur);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.5),
    0 4px 12px rgba(109,40,217,0.15);
}

/* Step-Pills (Lyrics, Instrumental, etc.) mit Shadow */
:root.light .step-pill,
:root[data-theme="light"] .step-pill {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.5),
    0 1px 2px rgba(5,150,105,0.08);
}
:root.light .step-pill.done,
:root[data-theme="light"] .step-pill.done {
  background: linear-gradient(180deg, rgba(5,150,105,0.1) 0%, rgba(5,150,105,0.06) 100%);
  border-color: rgba(5,150,105,0.3);
}

/* Sec-Hdr mit vertikaler Akzent-Leiste */
:root.light .sec-hdr,
:root[data-theme="light"] .sec-hdr {
  color: var(--text);
  position: relative;
  padding-left: 10px;
}
:root.light .sec-hdr::before,
:root[data-theme="light"] .sec-hdr::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 16px;
  background: linear-gradient(180deg, var(--pur-light), var(--pur));
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(109,40,217,0.3);
}

/* Waveform-Overlay (Kommentieren / Play fullscreen) */
:root.light .wf-overlay .wf-o-compose-input,
:root[data-theme="light"] .wf-overlay .wf-o-compose-input {
  background: #ffffff;
  box-shadow: inset 0 2px 4px rgba(17,24,39,0.06);
}

/* Modal-Overlay mit pronounciertem Blur */
:root.light .modal-overlay,
:root[data-theme="light"] .modal-overlay {
  background: rgba(17,24,39,0.4);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
}

/* System-Preference Fallback */
@media (prefers-color-scheme: light) {
  :root:not(.dark):not(.light) body {
    background: var(--bg);
  }
  :root:not(.dark):not(.light) .prod-card {
    background: linear-gradient(160deg, #ffffff 0%, #faf7ff 50%, #f3efff 100%);
    border: 1px solid rgba(209,213,219,0.6);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      0 2px 4px rgba(17,24,39,0.04),
      0 8px 16px -4px rgba(17,24,39,0.08),
      0 24px 48px -12px rgba(109,40,217,0.18);
    margin: 0 8px 12px;
    border-radius: 14px;
  }
  :root:not(.dark):not(.light) .dash-card {
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      0 2px 4px rgba(17,24,39,0.04),
      0 8px 16px -4px rgba(17,24,39,0.08),
      0 24px 48px -12px rgba(109,40,217,0.18);
  }
  :root:not(.dark):not(.light) .cover-btn {
    background: linear-gradient(160deg, #ffffff 0%, #f7f3ff 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 1px 3px rgba(17,24,39,0.06), 0 4px 8px -2px rgba(17,24,39,0.04);
  }
  :root:not(.dark):not(.light) .cover-thumb {
    box-shadow: 0 2px 6px rgba(17,24,39,0.15), 0 12px 28px -6px rgba(17,24,39,0.25), 0 24px 48px -12px rgba(109,40,217,0.2);
  }
  :root:not(.dark):not(.light) .aa-btn,
  :root:not(.dark):not(.light) .modal-save,
  :root:not(.dark):not(.light) .wn-btn {
    box-shadow:
      0 1px 2px rgba(17,24,39,0.1),
      0 4px 12px rgba(109,40,217,0.35),
      0 12px 24px -4px rgba(109,40,217,0.25),
      inset 0 1px 0 rgba(255,255,255,0.25);
  }
  :root:not(.dark):not(.light) .portal-header {
    background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(250,250,252,0.5) 100%);
    backdrop-filter: blur(24px) saturate(200%);
    -webkit-backdrop-filter: blur(24px) saturate(200%);
    box-shadow: 0 1px 3px rgba(17,24,39,0.04);
  }
  :root:not(.dark):not(.light) .stem-item {
    background: linear-gradient(160deg, #ffffff 0%, #f7f3ff 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), 0 1px 3px rgba(17,24,39,0.06);
  }
  :root:not(.dark):not(.light) .stem-upload-btn {
    background: linear-gradient(180deg, rgba(109,40,217,0.04) 0%, rgba(109,40,217,0.08) 100%);
    border: 2px dashed rgba(109,40,217,0.4);
    color: var(--pur);
  }
  :root:not(.dark):not(.light) .modal-field input,
  :root:not(.dark):not(.light) .aa-field input {
    box-shadow: inset 0 2px 4px rgba(17,24,39,0.06);
  }
  :root:not(.dark):not(.light) .step-pill.done {
    background: linear-gradient(180deg, rgba(5,150,105,0.1) 0%, rgba(5,150,105,0.06) 100%);
    border-color: rgba(5,150,105,0.3);
  }
}

/* (entfernt: position:relative Override auf .portal-header brach die
   position:sticky Basis-Regel → Header scrollte weg statt oben zu bleiben.
   Texture-Layer wurde eh entfernt, Rule nicht mehr nötig.) */

/* ── THEME PICKER ────────────────────────────────────────────────────────── */
.theme-picker{
  display:inline-flex;gap:0;padding:3px;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow: inset 0 1px 3px rgba(var(--rgb-black),0.08);
}
.theme-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;background:transparent;border:none;
  border-radius:9px;color:var(--text3);
  font-family:var(--sans);font-size:13px;font-weight:500;
  cursor:pointer;transition:all 0.15s ease;white-space:nowrap;
}
.theme-btn:hover{color:var(--text2);}
.theme-btn.active{
  background:var(--surface);color:var(--pur-light);
  box-shadow:
    0 1px 2px rgba(var(--rgb-black),0.05),
    0 2px 6px rgba(var(--rgb-pur),0.15);
  font-weight:600;
}
.theme-btn svg{width:15px;height:15px;flex-shrink:0;}
.theme-picker-row{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:10px 0;flex-wrap:wrap;
}
.theme-picker-label{font-size:14px;color:var(--text2);font-weight:500;font-family:var(--sans);}
.theme-picker-hint{font-size:12px;color:var(--text4);margin-top:6px;font-family:var(--mono);letter-spacing:0.3px;}

/* ── QUICK THEME TOGGLE (oben rechts) ───────────────────────────────────── */
.theme-quick-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;
  border-radius:12px;border:1px solid var(--border);
  background:var(--surface2);color:var(--text2);
  cursor:pointer;flex-shrink:0;
  transition:all 0.15s ease;
  padding:0;
}
.theme-quick-toggle:hover{
  background:var(--surface3);color:var(--pur-light);
  border-color:var(--text4);
}
.theme-quick-toggle:active{transform:scale(0.95);}
.theme-quick-toggle svg{width:20px;height:20px;}
.theme-quick-toggle .tqt-moon{display:none;}
.theme-quick-toggle .tqt-sun{display:block;}
.theme-quick-toggle.is-light .tqt-moon{display:block;}
.theme-quick-toggle.is-light .tqt-sun{display:none;}

/* ── TUTORIAL / SPOTLIGHT SYSTEM ────────────────────────────────────────── */
.tutorial-dim{
  position:fixed;inset:0;z-index:9990;
  background:rgba(0,0,0,0.55);
  pointer-events:none;
  opacity:0;
  transition:opacity 0.25s ease;
}
.tutorial-dim.show{opacity:1;}
.tutorial-spotlight{
  position:relative;
  z-index:9995 !important;
  border-radius:12px;
  box-shadow:
    0 0 0 3px var(--pur-light),
    0 0 0 8px rgba(var(--rgb-pur),0.35),
    0 10px 40px rgba(var(--rgb-pur),0.5) !important;
  animation:tutorialPulse 1.8s ease-in-out infinite;
}
@keyframes tutorialPulse{
  0%,100%{box-shadow:0 0 0 3px var(--pur-light),0 0 0 8px rgba(var(--rgb-pur),0.35),0 10px 40px rgba(var(--rgb-pur),0.5);}
  50%{box-shadow:0 0 0 5px var(--pur),0 0 0 14px rgba(var(--rgb-pur),0.2),0 14px 50px rgba(var(--rgb-pur),0.7);}
}
.tutorial-tooltip{
  position:fixed;z-index:9996;
  background:var(--pur);color:var(--text-on-accent);
  padding:12px 16px;border-radius:10px;
  font-family:var(--sans);font-size:14px;font-weight:500;
  max-width:280px;
  box-shadow:0 8px 32px rgba(var(--rgb-pur),0.4);
  animation:tutorialTooltipIn 0.3s cubic-bezier(0.22,1,0.36,1) both;
  pointer-events:auto;
}
.tutorial-tooltip::before{
  content:'';position:absolute;
  width:10px;height:10px;
  background:var(--pur);
  transform:rotate(45deg);
}
.tutorial-tooltip.pos-bottom::before{top:-5px;left:var(--tut-arrow-x,calc(50% - 5px));}
.tutorial-tooltip.pos-top::before{bottom:-5px;left:var(--tut-arrow-x,calc(50% - 5px));}
.tutorial-tooltip.pos-left::before{right:-5px;top:var(--tut-arrow-y,calc(50% - 5px));}
.tutorial-tooltip.pos-right::before{left:-5px;top:var(--tut-arrow-y,calc(50% - 5px));}
.tutorial-tooltip-close{
  background:none;border:none;color:rgba(255,255,255,0.7);
  font-size:12px;cursor:pointer;padding:4px 0 0;margin-top:4px;
  text-decoration:underline;font-family:inherit;display:block;
}
.tutorial-tooltip-close:hover{color:#fff;}
.tutorial-tooltip-next{
  display:inline-block;
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.28);
  color:#fff;
  font-size:13px;font-weight:600;
  padding:6px 12px;border-radius:8px;
  cursor:pointer;font-family:inherit;
  margin-top:10px;
  transition:background 0.15s;
}
.tutorial-tooltip-next:hover{background:rgba(255,255,255,0.28);}
.tut-msg{line-height:1.4;}
/* Modal über Tutorial-Dim heben, damit Spotlight & Interaktion drin funktionieren */
.modal-overlay.tutorial-lift,
.lyrics-modal-bg.tutorial-lift{z-index:9991 !important;}
/* Während der Tour soll der Tutorial-Dim die Sicht-Reduktion machen — der
   eigene Backdrop-Blur des Modal-Overlays liegt sonst über dem Dim und
   verwischt auch das Spotlight-Element. */
.modal-overlay.tutorial-lift{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:transparent !important;}
@keyframes tutorialTooltipIn{
  from{opacity:0;transform:translateY(8px) scale(0.95);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

/* What's New: sekundärer CTA (öffnet Tipps & Tricks Hub) */
.wn-btn-secondary{
  width:100%;
  padding:12px;
  margin-bottom:10px;
  background:rgba(var(--rgb-pur),0.12);
  border:1px solid rgba(var(--rgb-pur),0.3);
  color:var(--pur-light);
  border-radius:12px;
  font-size:14px;font-weight:600;
  font-family:var(--sans);
  cursor:pointer;
  transition:all 0.15s ease;
}
.wn-btn-secondary:hover{
  background:rgba(var(--rgb-pur),0.2);
  border-color:var(--pur-light);
}

/* Tipps & Tricks Hub (wiederverwendet .wn-overlay / .wn-card) */
.th-tiles{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;}
.th-tile{
  display:flex;align-items:center;gap:12px;
  padding:14px;width:100%;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:12px;
  cursor:pointer;
  font-family:var(--sans);
  text-align:left;
  transition:all 0.15s ease;
}
.th-tile:hover{
  background:rgba(var(--rgb-pur),0.08);
  border-color:rgba(var(--rgb-pur),0.4);
  transform:translateY(-1px);
}
.th-tile:active{transform:translateY(0);}
.th-tile-icon{
  font-size:22px;
  width:42px;height:42px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(var(--rgb-pur),0.12);
  border-radius:10px;
  color:var(--pur-light);
}
.th-tile-body{flex:1;min-width:0;}
.th-tile-title{font-size:14px;font-weight:600;color:var(--text-bright);margin-bottom:2px;}
.th-tile-desc{font-size:12px;color:var(--text3);line-height:1.4;}
.th-tile-arrow{font-size:22px;color:var(--text4);flex-shrink:0;line-height:1;}
.th-section{display:flex;flex-direction:column;gap:8px;margin-top:18px;}
.th-section:first-of-type{margin-top:6px;}
.th-section-lbl{
  font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--text4);padding:0 2px;line-height:1.4;
}

/* ── PLAN UPGRADE MODAL (Phase B2) ────────────────────────────────────────── */
.plan-upgrade-modal-overlay{
  position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.6);backdrop-filter:blur(8px);z-index:9000;padding:20px;
}
.plan-upgrade-modal-box{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:28px 26px 22px;width:420px;max-width:96vw;text-align:center;
}
.plan-upgrade-icon{
  width:48px;height:48px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--pur-accent),var(--pur-deep));
  color:var(--text-on-accent);border-radius:12px;
}
.plan-upgrade-title{font-size:17px;font-weight:600;color:var(--text);margin-bottom:10px;font-family:var(--serif,Outfit);}
.plan-upgrade-body{font-size:14px;color:var(--text2);line-height:1.5;font-family:Nunito,sans-serif;margin-bottom:18px;}
.plan-upgrade-note{font-size:12px;color:var(--text3);background:rgba(var(--rgb-pur),0.08);border:1px solid rgba(var(--rgb-pur),0.2);border-radius:8px;padding:10px 12px;margin-bottom:18px;}
.plan-upgrade-actions{display:flex;gap:10px;justify-content:center;}
.plan-upgrade-btn-primary{
  padding:10px 28px;border-radius:24px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--pur-accent),var(--pur-deep));
  color:var(--text-on-accent);font-family:Nunito,sans-serif;font-size:13px;font-weight:600;
}
.plan-upgrade-btn-primary:hover{filter:brightness(1.1);}
