:root{
  --bg:#09090b;
  --surface:#0f0f13;
  --surface-2:#16161b;
  --surface-raised:#1c1922;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
  --text:#fafafa;
  --muted:#a1a1aa;
  --muted-2:#71717a;
  --ok:#22c58f;
  --warn:#f2b155;
  --blue:#3b82f6;
  --purple:#a855f7;
  --pink:#ec4899;
  --accent-primary:var(--blue);
  --accent-secondary:var(--purple);
  --accent-tertiary:var(--pink);
  --grad:linear-gradient(120deg,#3b82f6 0%,#a855f7 55%,#ec4899 100%);
  --glow-blue:rgba(59,130,246,.22);
  --glow-purple:rgba(168,85,247,.20);
  --glow-pink:rgba(236,72,153,.18);
  --radius:14px;
  --radius-lg:20px;
  --font:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'Cascadia Code',monospace;
  --shadow:0 20px 60px -20px rgba(0,0,0,.6);
  --maxw:1160px;
}
[data-theme="light"]{
  --bg:#fafafa;
  --surface:#fff;
  --surface-2:#f4f4f5;
  --surface-raised:#ececef;
  --line:rgba(0,0,0,.09);
  --line-strong:rgba(0,0,0,.16);
  --text:#18181b;
  --muted:#52525b;
  --muted-2:#71717a;
  --ok:#0f9d6e;
  --warn:#b8790f;
  --glow-blue:rgba(59,130,246,.12);
  --glow-purple:rgba(168,85,247,.12);
  --glow-pink:rgba(236,72,153,.10);
  --shadow:0 20px 50px -24px rgba(24,24,27,.18);
}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% -5%,var(--glow-purple),transparent 42%),radial-gradient(circle at 88% 8%,var(--glow-pink),transparent 40%),var(--bg);color:var(--text);font:15px/1.55 Inter,Segoe UI,Arial,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,5vw);background:rgba(9,9,11,.90);position:sticky;top:0;z-index:5;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--grad),#a855f7);color:#09090b;font-weight:900}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.local-badge{display:flex;gap:8px;align-items:center;border:1px solid var(--line);padding:8px 12px;border-radius:999px;color:var(--muted);font-size:13px}.local-badge span,.readiness span{width:8px;height:8px;border-radius:50%;background:var(--grad);box-shadow:0 0 12px var(--grad)}main{width:min(1280px,92vw);margin:auto;padding-bottom:72px}.hero,.project-hero{padding:76px 0 48px;border-bottom:1px solid var(--line)}.hero{display:flex;justify-content:space-between;align-items:end;gap:36px}.eyebrow{margin:0 0 8px;color:var(--grad);font-size:11px;letter-spacing:.18em;font-weight:800}.hero h1,.project-hero h1{font-size:clamp(38px,6vw,74px);line-height:1;margin:0 0 20px;letter-spacing:-.045em;max-width:850px}.lead{font-size:18px;color:var(--muted);max-width:720px;margin:0}.hero-stat{min-width:180px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.hero-stat strong,.hero-stat span{display:block}.hero-stat strong{font-size:48px;line-height:1;color:var(--pink)}.hero-stat span{color:var(--muted);margin-top:8px}.page-section{padding-top:44px}.section-heading,.panel-heading,.project-title-row{display:flex;justify-content:space-between;align-items:end;gap:20px}.section-heading{margin-bottom:22px}.section-heading h2,.panel-heading h2{margin:0;font-size:26px}.section-heading code{color:var(--muted);max-width:55%;overflow:hidden;text-overflow:ellipsis}.dash-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:44px 0 26px}.dash-header h1{margin:6px 0 0;font-size:clamp(26px,3vw,34px);letter-spacing:-.02em}.dash-stat{display:flex;align-items:baseline;gap:8px;color:var(--muted);font-size:13px}.dash-stat strong{font-size:26px;color:var(--text);font-variant-numeric:tabular-nums}
.dash-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}
.search-field{position:relative;flex:1;min-width:220px}.search-field input{width:100%;padding:11px 14px 11px 38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:13.5px}.search-field input::placeholder{color:var(--muted-2)}.search-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--glow-blue);outline:none}.search-field svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);opacity:.55;pointer-events:none}
.view-toggle{display:flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:var(--surface)}.view-toggle button{appearance:none;border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650;transition:.15s ease}.view-toggle button.active{background:var(--surface-raised);color:var(--text)}.view-toggle button:hover{color:var(--text)}
.start-pills{display:flex;gap:8px}.start-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 9px;border-radius:999px;border:1px solid var(--line);color:var(--text);font-size:12.5px;font-weight:650;transition:.15s ease;white-space:nowrap}.start-pill span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--grad);color:#09090b;font-size:10.5px;font-weight:900}.start-pill:hover{border-color:var(--line-strong);background:var(--surface-raised);transform:translateY(-1px)}
.result-count{color:var(--muted-2);font-size:12px;margin:0 0 12px;font-variant-numeric:tabular-nums}
.plist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.prow{display:grid;grid-template-columns:40px minmax(0,1.4fr) 90px 90px 130px 20px;align-items:center;gap:16px;padding:13px 18px;text-decoration:none;color:inherit;border-bottom:1px solid var(--line);transition:background .12s ease}.prow:last-child{border-bottom:0}.prow:hover{background:var(--surface-2)}.prow:hover .prow-arrow{opacity:1;transform:translateX(0)}
.prow-icon,.pcard-icon{display:grid;place-items:center;border-radius:9px;background:rgba(168,85,247,.12);color:var(--purple);font-weight:800}.prow-icon{width:36px;height:36px;font-size:13px}
.prow-title{min-width:0}.prow-title b{display:block;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow-title span{display:block;margin-top:2px;color:var(--muted-2);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prow-meta{font-family:var(--mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.prow-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:650;padding:5px 10px;border-radius:999px;justify-self:start;white-space:nowrap}.prow-status.ok{color:var(--ok);background:rgba(34,197,143,.12)}.prow-status.warn{color:var(--warn);background:rgba(242,177,85,.12)}.prow-status.draft{color:var(--muted-2);background:rgba(255,255,255,.05)}.prow-status i{width:6px;height:6px;border-radius:50%;background:currentColor}
.prow-arrow{opacity:0;transform:translateX(-4px);transition:.15s ease;color:var(--muted);justify-self:end}
.plist-head{display:grid;grid-template-columns:40px minmax(0,1.4fr) 90px 90px 130px 20px;gap:16px;padding:0 18px 10px;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2);font-weight:700}.plist-head span:nth-child(3),.plist-head span:nth-child(4){text-align:right}
.plist[hidden],.pgrid[hidden],.plist-head[hidden],.prow[hidden],.pcard[hidden]{display:none}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.pcard{display:flex;flex-direction:column;gap:10px;padding:17px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(160deg,var(--surface),var(--surface-2));text-decoration:none;color:inherit;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.pcard:hover{transform:translateY(-3px);border-color:var(--purple);box-shadow:var(--shadow)}.pcard:hover .pcard-icon{transform:scale(1.06)}
.pcard-top{display:flex;justify-content:space-between;align-items:flex-start}.pcard-icon{width:38px;height:38px;font-size:13px;background:rgba(59,130,246,.12);color:var(--blue);transition:transform .16s ease}
.pcard h3{margin:2px 0 0;font-size:14.5px;font-weight:650;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pcard-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.pcard-meta span{font-family:var(--mono);font-size:10.5px;color:var(--muted);background:rgba(255,255,255,.05);padding:4px 7px;border-radius:6px}
@media(max-width:760px){.plist-head{display:none}.prow{grid-template-columns:36px 1fr auto;grid-template-areas:"icon title arrow" "icon meta arrow";row-gap:4px}.prow-icon{grid-area:icon}.prow-title{grid-area:title}.prow-arrow{grid-area:arrow}.prow-meta,.prow-status{display:none}.dash-toolbar{flex-direction:column;align-items:stretch}.start-pills{justify-content:space-between}}.arrow{font-size:24px;color:var(--grad)}.chips{display:flex;gap:7px;flex-wrap:wrap}.chips span{font-size:11px;color:var(--muted);padding:5px 8px;border-radius:7px;background:var(--surface-2)}.chips .ready{color:var(--grad)}.chips.large{justify-content:flex-end}.chips.large span{font-size:12px;padding:8px 10px}.empty-state{text-align:center;padding:60px 20px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}.empty-state .project-icon{margin:0 auto 18px}.empty-state h3{color:var(--text)}code{font-family:Consolas,monospace;background:var(--surface-2);padding:2px 6px;border-radius:5px}.back{display:inline-block;color:var(--muted);text-decoration:none;margin-bottom:34px}.back:hover{color:var(--grad)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.7fr);gap:20px;margin-top:24px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.panel-heading{padding:22px 24px;border-bottom:1px solid var(--line)}.song-sheet{padding:22px 28px;max-height:68vh;overflow:auto}.song-sheet>h3{position:sticky;top:0;margin:20px 0 16px;padding:9px 0;background:var(--surface);color:var(--pink);font-size:13px;text-transform:uppercase;letter-spacing:.14em}.song-line{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0 6px;margin:0 0 24px;min-height:52px}.word{display:inline-flex;flex-direction:column;justify-content:flex-end}.word b{height:21px;color:var(--grad);font-size:12px}.word>span{font-size:18px}.export-panel{align-self:start;position:sticky;top:96px}.readiness{display:flex;gap:9px;align-items:center;margin:20px 24px 0;padding:12px;border-radius:10px;background:rgba(59,130,246,.08);color:var(--grad)}.readiness.blocked{background:rgba(244,114,182,.08);color:var(--pink)}.readiness.blocked span{background:var(--pink);box-shadow:0 0 12px var(--pink)}form{padding:22px 24px 26px}label{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:16px}input,select{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox{display:flex;align-items:center;gap:10px}.checkbox input{width:auto;margin:0}.primary-button{width:100%;display:flex;justify-content:space-between;border:0;border-radius:10px;padding:14px 16px;background:linear-gradient(135deg,var(--grad),#a855f7);color:#09090b;font-weight:900;cursor:pointer}.primary-button:disabled{filter:grayscale(1);opacity:.45;cursor:not-allowed}.form-note{color:var(--muted);font-size:11px;margin:13px 0 0}.notice{margin-top:22px;padding:14px 18px;border-radius:10px}.notice.success{background:rgba(59,130,246,.1);color:var(--grad)}.notice.error{background:rgba(244,114,182,.1);color:var(--pink)}.notice.info{background:rgba(168,85,247,.1);color:var(--grad)}
@media(max-width:820px){.hero,.project-title-row{display:block}.hero-stat{margin-top:26px}.project-grid,.workspace-grid{grid-template-columns:1fr}.section-heading{display:block}.section-heading code{display:block;max-width:100%;margin-top:12px}.chips.large{justify-content:flex-start;margin-top:20px}.export-panel{position:static}.topbar{padding:0 18px}.local-badge{font-size:0}.local-badge span{margin:0}.song-sheet{padding:18px}.hero h1,.project-hero h1{font-size:42px}}

/* Product and workflow structure */
.main-nav{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:24px}.main-nav a{padding:9px 12px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:13px}.main-nav a:hover{color:var(--text);background:var(--surface-2)}
.hero.compact{padding-top:64px}.products-section{padding-bottom:12px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product-card{position:relative;min-height:310px;padding:32px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,var(--surface),rgba(20,18,30,.62));overflow:hidden}.product-card:after{content:"";position:absolute;right:-70px;bottom:-90px;width:230px;height:230px;border-radius:50%;background:rgba(168,85,247,.08)}.product-card.video:after{background:rgba(236,72,153,.07)}.product-number{display:block;margin-bottom:36px;color:var(--muted);font:700 13px/1 Consolas,monospace}.product-card h3{margin:0 0 12px;font-size:28px}.product-card>p:not(.eyebrow){max-width:620px;color:var(--muted)}.product-card ul{position:relative;z-index:1;margin:24px 0 0;padding:0;list-style:none}.product-card li{padding:9px 0;border-top:1px solid var(--line)}
.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.workflow-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:20px;padding:26px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,var(--surface),rgba(20,18,30,.70));text-decoration:none;transition:.2s ease}.workflow-card:hover{transform:translateY(-3px);border-color:var(--grad);box-shadow:var(--shadow)}.workflow-card.video-wide{grid-column:1/-1}.workflow-card h3{margin:0 0 8px;font-size:23px}.workflow-card p:not(.eyebrow){margin:0 0 18px;color:var(--muted)}.workflow-card>b{color:var(--grad);font-size:24px}.workflow-icon{display:grid;place-items:center;min-width:66px;height:66px;padding:0 10px;border-radius:16px;background:rgba(168,85,247,.1);color:var(--grad);font:900 12px/1 Consolas,monospace}
.workspace-hero{padding-bottom:32px}.builder-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px;margin-top:26px}.workflow-nav{align-self:start;position:sticky;top:98px;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.workflow-nav a{display:flex;flex-direction:column;padding:14px;border-radius:11px;text-decoration:none;color:var(--muted)}.workflow-nav a:hover,.workflow-nav a.active{background:var(--surface-2);color:var(--text)}.workflow-nav a.active{box-shadow:inset 3px 0 var(--grad)}.workflow-nav span{margin-top:3px;font-size:11px}.builder-content,.narrow-builder{display:grid;gap:18px}.narrow-builder{width:min(900px,100%);margin:26px auto 0}.narrow-builder.wide{width:100%}.step-card{display:flex;align-items:flex-start;gap:20px;padding:26px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.step-card>div{min-width:0;flex:1}.step-card h2{margin:0 0 5px;font-size:22px}.step-card p{margin:0 0 18px;color:var(--muted)}.step-number{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:rgba(168,85,247,.12);color:var(--grad);font-weight:900}.source-state{padding:14px;border:1px solid rgba(59,130,246,.24);border-radius:10px;background:rgba(59,130,246,.07);color:var(--grad)}.source-state.blocked{border-color:rgba(244,114,182,.24);background:rgba(244,114,182,.07);color:var(--pink)}.metric-row{display:flex;gap:12px;flex-wrap:wrap}.metric-row span{min-width:150px;padding:14px;border-radius:10px;background:var(--surface-2);color:var(--muted)}.metric-row b{display:block;color:var(--text);font-size:20px}.advanced-placeholder{display:flex;justify-content:space-between;gap:20px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.advanced-placeholder b{color:var(--text)}.full-width{width:100%}.muted-step{opacity:.72}.batch-list{display:grid;gap:9px;margin:18px 0 22px}.batch-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.batch-row input{width:auto;margin:0}.batch-row b,.batch-row small{display:block}.batch-row small{color:var(--muted);font-weight:400}.batch-row em{color:var(--grad);font-style:normal}.step-card form{padding:18px 0 0}.step-card .readiness{margin:18px 0 0}
@media(max-width:900px){.main-nav{order:3;width:100%;justify-content:center;margin:8px 0 0}.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding-bottom:8px}.product-grid,.workflow-grid,.builder-layout{grid-template-columns:1fr}.workflow-card.video-wide{grid-column:auto}.workflow-nav{position:static;grid-template-columns:repeat(3,1fr)}.workflow-nav a{text-align:center}.advanced-placeholder{display:block}.advanced-placeholder span{display:block;margin-top:5px}}
@media(max-width:600px){main{width:min(94vw,1280px)}.brand small,.main-nav a{font-size:10px}.local-badge{display:none}.product-card,.workflow-card,.step-card{padding:20px}.product-grid,.workflow-grid{grid-template-columns:1fr}.workflow-card{grid-template-columns:1fr}.workflow-card>b{display:none}.workflow-nav{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.batch-row{grid-template-columns:auto 1fr}.batch-row em{grid-column:2}.hero.compact{padding-top:42px}}

/* Shared Audio + Lyrics / Video vocal transcription workflow */
textarea{display:block;width:100%;min-height:180px;margin-top:7px;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font:inherit;resize:vertical}
textarea[hidden],input[hidden],select[hidden],div[hidden],span[hidden]{display:none}
.stem-grid,.lyrics-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.source-state b{display:block;color:var(--text);margin-bottom:3px}.choice-card{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);cursor:pointer}.choice-card:has(input:checked){border-color:var(--grad);box-shadow:inset 0 0 0 1px var(--grad)}.choice-card input{width:auto;margin:4px 0 0}.choice-card span,.choice-card b,.choice-card small{display:block}.choice-card b{color:var(--text);font-size:14px}.choice-card small{margin-top:3px;color:var(--muted);font-weight:400}
.correction-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 6px}.correction-flow span{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text)}.correction-flow b{color:var(--grad)}
@media(max-width:600px){.stem-grid,.lyrics-mode-grid{grid-template-columns:1fr}}
.is-submitting{pointer-events:none}.is-submitting .primary-button{opacity:.72;cursor:wait}.is-submitting .primary-button:after{content:"";width:15px;height:15px;border:2px solid rgba(9,9,11,.35);border-top-color:#09090b;border-radius:50%;animation:lpb-spin .8s linear infinite}@keyframes lpb-spin{to{transform:rotate(360deg)}}
.progress-page{max-width:760px;margin:48px auto;text-align:center}.progress-page h1{font-size:44px;margin:12px 0}.progress-orbit{width:132px;height:132px;margin:48px auto 28px;border:12px solid #2b2840;border-top-color:#a855f7;border-radius:50%;animation:lpb-spin 1.4s linear infinite;display:grid;place-items:center}.progress-orbit span{width:54px;height:54px;border:8px solid #1b1624;border-bottom-color:#f0abfc;border-radius:50%;animation:lpb-spin .8s linear infinite}.progress-measure{margin:32px 0}.progress-measure strong{font-size:24px}.progress-track{height:12px;margin:18px auto;max-width:560px;background:#1b1624;border-radius:999px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#3b82f6,#a855f7,#ec4899);transition:width .35s ease}.progress-tip{margin:54px auto 0;padding:22px;text-align:left;max-width:590px;border:1px solid rgba(168,85,247,.24);border-radius:16px;background:#12101a}.progress-tip b{color:#c084fc}.progress-tip p{margin-bottom:0;color:#a1a1aa}
.import-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.import-choice-grid form{padding:18px;border:1px solid rgba(168,85,247,.24);border-radius:14px;background:#100d18}.import-choice-grid .primary-button{margin-top:12px}@media(max-width:760px){.import-choice-grid{grid-template-columns:1fr}}
.visual-preview-launch{display:grid;gap:10px;margin-top:18px;padding:18px;border:1px solid rgba(168,85,247,.24);border-radius:14px;background:#100d18}.visual-preview-launch>span{color:#a1a1aa}.visual-preview-launch form{margin:0}
.advanced-settings{margin:14px 0;padding:0;border:1px solid rgba(168,85,247,.24);border-radius:12px;background:#100d18}.advanced-settings summary{cursor:pointer;padding:16px 18px;font-weight:800;color:#fafafa;list-style:none}.advanced-settings summary::-webkit-details-marker{display:none}.advanced-settings summary::after{content:"⌄";float:right;color:#a855f7}.advanced-settings[open] summary::after{content:"⌃"}.advanced-settings[open] summary{border-bottom:1px solid rgba(168,85,247,.24)}.advanced-settings>div,.advanced-settings>label,.advanced-settings>p{margin:14px 18px}.optional-downloads{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:14px;padding:14px 16px;border:1px solid rgba(168,85,247,.24);border-radius:12px;background:#100d18}
.live-karaoke-preview{max-width:1060px;margin:24px auto 32px;padding:22px;border:1px solid rgba(168,85,247,.24);border-radius:18px;background:#12101a}.live-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:22px}.live-preview-heading h2{margin:4px 0 8px}.live-preview-heading p{margin:0}.live-preview-heading .primary-button{width:auto;min-width:240px}.live-preview-screen{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;margin:20px 0 14px;padding:54px 42px 68px;overflow:hidden;border:2px solid #111;border-radius:12px;background:url("/static/img/karaoke-preview-bg.png") center/cover no-repeat,radial-gradient(circle at 50% 40%,#0a1a3d 0,#050a1f 55%,#01030a 100%);box-shadow:inset 0 -130px 90px rgba(0,0,0,.62)}.live-preview-screen .floating-notes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.live-preview-screen .floating-notes .note{position:absolute;bottom:-40px;opacity:0;color:rgba(56,189,248,.5);text-shadow:0 0 10px rgba(56,189,248,.45);animation:tonio-note-float linear infinite}.live-preview-screen .floating-notes .note.n1{left:8%;font-size:26px;animation-duration:14s;animation-delay:0s}.live-preview-screen .floating-notes .note.n2{left:22%;font-size:20px;color:rgba(129,140,248,.45);text-shadow:0 0 10px rgba(129,140,248,.4);animation-duration:11s;animation-delay:-3s}.live-preview-screen .floating-notes .note.n3{left:68%;font-size:30px;color:rgba(45,212,191,.45);text-shadow:0 0 10px rgba(45,212,191,.4);animation-duration:16s;animation-delay:-6s}.live-preview-screen .floating-notes .note.n4{left:85%;font-size:22px;animation-duration:13s;animation-delay:-1.5s}.live-preview-screen .floating-notes .note.n5{left:45%;font-size:18px;color:rgba(129,140,248,.4);text-shadow:0 0 10px rgba(129,140,248,.35);animation-duration:18s;animation-delay:-8s}@keyframes tonio-note-float{0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-420px) translateX(18px) rotate(12deg);opacity:0}}@media(prefers-reduced-motion:reduce){.live-preview-screen .floating-notes .note{animation:none;opacity:0}}.live-preview-screen .gap-countdown{position:absolute;left:50%;top:44%;transform:translateX(-50%);width:42%;z-index:1;pointer-events:none}.live-preview-screen .gap-countdown[hidden]{display:none}.live-preview-screen .gap-countdown-track{position:relative;width:100%;height:clamp(22px,4.2vw,34px);border-radius:999px;background:#e7e9ee;border:2px solid #0a1a3d;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.4)}.live-preview-screen .gap-countdown-fill{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#0ea5e9,#21a9ff)}.live-preview-screen .gap-countdown-number{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(16px,2.6vw,22px);font-weight:900;color:#0a1a3d;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}.live-preview-screen:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 15%,rgba(168,85,247,.14) 50%,transparent 72%);pointer-events:none}.live-preview-brand{position:absolute;top:16px;right:18px;padding:7px 11px;border-radius:7px;background:rgba(0,0,0,.72);color:#fff;font-weight:800}.live-preview-chords,.live-preview-row{position:relative;z-index:1;text-align:center;text-shadow:-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000,2px 2px 0 #000}.live-preview-chords{display:flex;justify-content:center;gap:42px;min-height:32px;color:#c084fc;font-size:23px;font-weight:900}.live-preview-row{min-height:58px;color:#fff;font-family:Arial,sans-serif;font-size:34px;font-weight:900;line-height:1.35}
.live-preview-row.line-swap{animation:tonio-line-swap .32s ease}
@keyframes tonio-line-swap{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.live-preview-row.next{font-size:30px}.live-preview-row .sung{color:#60a5fa}.live-preview-row .cue{color:#f0abfc}.live-preview-row .upcoming{color:#fff}
.timing-karaoke-screen .live-preview-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:0 .28em}
.timing-karaoke-screen .karaoke-word{display:inline-flex;flex-direction:column;align-items:center}
.timing-karaoke-screen .karaoke-word-chord{font-size:.5em;line-height:1.2;color:#c084fc;font-weight:900;min-height:1em}
.timing-karaoke-screen .live-preview-row.pending{font-size:34px;opacity:1}
.timing-karaoke-screen .live-preview-row.active{font-size:34px;opacity:1}
.timing-karaoke-screen .live-preview-row:empty{display:none}
.timing-karaoke-screen .word-text-slot{transition:color .35s ease}
/* No entrance animation at all here: even a smooth fade/slide still
   reads as the row blinking/moving for an instant (opacity briefly
   dips to 0) - Youka's own reference clip has zero row-level motion,
   only the text content changes and each word's own color eases in. */
.timing-karaoke-screen .live-preview-row.line-swap{animation:none}
/* Same "no row-level motion" treatment for the workspace's own
   15-second instant preview widget (a separate implementation from
   the timing editor's karaoke screen above, with its own .current/
   .next classes instead of .active/.pending) - same complaint, same
   fix: no size difference, no entrance animation, smooth per-word
   color fade only. */
.live-preview-screen .live-preview-row.next{font-size:34px}
.live-preview-screen .live-preview-row.line-swap{animation:none}
.live-preview-screen .word-slot{transition:color .35s ease}
.timing-karaoke-screen .live-preview-row.next .karaoke-word-chord{font-size:.55em}.live-karaoke-preview audio{width:100%}@media(max-width:760px){.live-preview-heading{align-items:stretch;flex-direction:column}.live-preview-heading .primary-button{width:100%}.live-preview-screen{min-height:280px;padding:50px 15px 46px}.live-preview-row{font-size:25px}.live-preview-row.next{font-size:22px}}
.video-preview {
  display: block;
  width: min(100%, 960px);
  margin: 18px auto 26px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #000;
}

/* MIDI Studio */
.midi-studio-shell{display:grid;gap:22px}.midi-overview-card{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:28px 30px;border:1px solid rgba(168,85,247,.22);border-radius:24px;background:linear-gradient(135deg,rgba(25,18,38,.98),rgba(11,9,17,.98));box-shadow:0 18px 45px rgba(0,0,0,.18)}.midi-overview-card h2{margin:2px 0 7px}.midi-overview-card p{margin:0;max-width:690px}.midi-health-grid{display:grid;grid-template-columns:repeat(2,minmax(105px,1fr));gap:9px;min-width:280px}.midi-health-grid span{padding:12px 14px;border-radius:15px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);font-size:.82rem;color:var(--muted)}.midi-health-grid b{display:block;color:var(--text);font-size:1.2rem;margin-bottom:2px}.midi-step{align-items:flex-start}.midi-step-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.midi-step-heading h2{margin-bottom:6px}.midi-step-heading p{margin:0}.midi-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);font-size:.7rem;font-weight:800;letter-spacing:.08em;white-space:nowrap}.midi-badge.ready{color:#60a5fa;border-color:rgba(59,130,246,.28);background:rgba(59,130,246,.12)}.midi-badge.neutral{color:var(--muted)}.midi-source-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr);gap:16px}.midi-upload-panel,.midi-source-facts{padding:18px;border-radius:18px;border:1px solid rgba(168,85,247,.16);background:rgba(255,255,255,.025)}.midi-upload-panel{display:grid;gap:12px}.midi-source-facts{display:grid;gap:10px}.midi-format-row{display:flex;gap:7px;flex-wrap:wrap}.midi-format-row span{padding:5px 9px;border-radius:8px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);color:var(--muted);font-size:.72rem;font-weight:800}.midi-format-row span.on{background:rgba(59,130,246,.13);border-color:rgba(59,130,246,.25);color:#60a5fa}.midi-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.midi-editor-grid textarea{min-height:240px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.55}.midi-export-form{display:grid;gap:16px;margin-top:16px}.midi-control-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.midi-control-grid label{position:relative}.field-hint{display:block;margin-top:4px;color:var(--muted);font-size:.72rem}.midi-switch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.midi-switch{padding:14px 16px;border-radius:15px;border:1px solid rgba(168,85,247,.16);background:rgba(255,255,255,.025);align-items:flex-start}.midi-switch span{display:grid;gap:3px}.midi-switch small{color:var(--muted);font-weight:400}.midi-advanced{margin:0}.midi-build-button{justify-self:start;min-width:230px}.midi-audio-companion{display:grid;grid-template-columns:minmax(240px,1fr) minmax(300px,1.2fr) auto;gap:16px;align-items:center;margin-top:20px;padding:16px 18px;border-radius:18px;border:1px dashed rgba(168,85,247,.22);background:rgba(255,255,255,.018)}.midi-audio-companion>div{display:grid;gap:3px}.midi-audio-companion span{font-size:.78rem;color:var(--muted)}.midi-audio-companion form{display:flex;gap:9px;align-items:center}.midi-audio-companion input[type=file]{min-width:0}.midi-final-output{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:20px 0 14px;padding:18px 20px;border-radius:18px;border:1px solid rgba(59,130,246,.24);background:linear-gradient(135deg,rgba(59,130,246,.10),rgba(255,255,255,.02))}.midi-final-output>div{display:grid;gap:5px}.midi-final-output small{color:var(--muted)}@media(max-width:980px){.midi-overview-card{align-items:flex-start;flex-direction:column}.midi-health-grid{width:100%;min-width:0;grid-template-columns:repeat(4,1fr)}.midi-source-grid,.midi-editor-grid,.midi-switch-grid{grid-template-columns:1fr}.midi-control-grid{grid-template-columns:1fr 1fr}.midi-audio-companion{grid-template-columns:1fr}.midi-audio-companion form{flex-wrap:wrap}}@media(max-width:620px){.midi-health-grid,.midi-control-grid{grid-template-columns:1fr 1fr}.midi-step-heading,.midi-final-output{flex-direction:column}.midi-final-output{align-items:stretch}.midi-final-output .primary-button{justify-content:center}}

/* TONIO UI POLISH V1 */

/* Typography */
body {
    font-family: "Manrope", "Inter", "Segoe UI", Arial, sans-serif;
    letter-spacing: -0.005em;
}

h1, h2, h3,
.step-card h2,
.project-hero h1,
.hero h1 {
    font-family: "Manrope", "Inter", "Segoe UI", Arial, sans-serif;
    font-weight: 800;
    letter-spacing: -0.035em;
}

.step-card h2 {
    font-size: 23px;
}

.step-card > div > p {
    line-height: 1.65;
}

/* Cards */
.step-card {
    border-color: rgba(120, 160, 195, .18);
    background:
        linear-gradient(145deg, rgba(20,18,30,.98), rgba(15,15,19,.98));
    box-shadow:
        0 18px 55px rgba(0,0,0,.20),
        inset 0 1px 0 rgba(255,255,255,.018);
    transition:
        border-color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.step-card:hover {
    border-color: rgba(168,85,247,.24);
}

.step-number {
    box-shadow:
        inset 0 0 0 1px rgba(168,85,247,.18),
        0 0 22px rgba(168,85,247,.07);
}

/* Inputs */
input,
select,
textarea {
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: rgba(168,85,247,.75);
    box-shadow: 0 0 0 3px rgba(168,85,247,.10);
}

/* Primary action buttons */
.primary-button {
    min-height: 46px;
    align-items: center;
    gap: 14px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 11px;
    padding: 13px 17px;
    background:
        linear-gradient(120deg, #3b82f6 0%, #8b5cf6 46%, #ec4899 100%);
    color: #09090b;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .005em;
    text-decoration: none;
    box-shadow:
        0 9px 24px rgba(168,85,247,.13),
        inset 0 1px 0 rgba(255,255,255,.32);
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        filter .16s ease;
}

.primary-button:hover:not(:disabled) {
    transform: translateY(-1px);
    filter: brightness(1.06);
    box-shadow:
        0 13px 30px rgba(168,85,247,.20),
        inset 0 1px 0 rgba(255,255,255,.40);
}

.primary-button:active:not(:disabled) {
    transform: translateY(1px);
}

/* Custom file picker - the native <input type="file"> button label follows
   the browser/OS UI language (e.g. Romanian), never the page's own
   language, so it can silently show text the rest of the app never uses.
   The real input stays functional but invisible, stacked under a button
   and filename we control ourselves. */
.file-field-row {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 7px;
    max-width: 100%;
}
.file-field-row.compact {
    margin-top: 0;
}
.file-field-btn {
    flex: 0 0 auto;
    padding: 10px 16px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-2);
    color: var(--text);
    font-weight: 700;
    font-size: 12.5px;
    white-space: nowrap;
    transition: border-color .15s ease, background .15s ease;
}
.file-field-name {
    min-width: 0;
    color: var(--muted);
    font-size: 12.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.file-field-row input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
}
.file-field-row:hover .file-field-btn {
    border-color: var(--line-strong);
    background: var(--surface-raised);
}
.file-field-row:focus-within .file-field-btn {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px var(--glow-blue);
}

/* Compact pill button - sized to its own label instead of the panel's
   full width, for CTAs like "Synchronize" / "Record timing manually"
   that otherwise read as one heavy block regardless of screen width.
   The two buttons below belong to separate <form> elements (different
   POST actions), so they're associated via the HTML `form="id"` attribute
   instead of nesting - that lets them still sit in one shared flex row. */
.pill-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}
.pill-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: auto;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 12px 18px;
    background: var(--surface-2);
    color: var(--text);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.pill-button:hover:not(:disabled) {
    border-color: var(--line-strong);
    background: var(--surface-raised);
    transform: translateY(-1px);
}
.pill-button:disabled {
    filter: grayscale(1);
    opacity: .45;
    cursor: not-allowed;
}
.pill-button.primary {
    border: 0;
    background: var(--grad);
    color: #09090b;
    box-shadow: 0 9px 22px -10px rgba(168,85,247,.45);
}
.pill-button.primary:hover:not(:disabled) {
    filter: brightness(1.06);
}

/* Secondary buttons */
.secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid rgba(168,85,247,.26);
    border-radius: 10px;
    background:
        linear-gradient(145deg, rgba(25,18,38,.95), rgba(20,18,30,.95));
    color: var(--text);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
    transition:
        border-color .16s ease,
        background .16s ease,
        transform .16s ease,
        color .16s ease;
}

.secondary-button:hover {
    transform: translateY(-1px);
    border-color: rgba(168,85,247,.60);
    background:
        linear-gradient(145deg, rgba(30,20,48,.98), rgba(25,18,38,.98));
    color: #fff;
}

.secondary-button:active {
    transform: translateY(1px);
}

/* Download/output area */
.optional-downloads {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
    padding: 14px;
    border: 1px solid rgba(168,85,247,.20);
    border-radius: 12px;
    background:
        linear-gradient(145deg, rgba(20,18,30,.92), rgba(15,15,19,.92));
}

.optional-downloads > b {
    width: 100%;
    margin-bottom: 2px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.optional-downloads > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 9px 13px;
    border: 1px solid rgba(168,85,247,.24);
    border-radius: 9px;
    background: rgba(168,85,247,.07);
    color: #f5eefe;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    transition:
        background .16s ease,
        border-color .16s ease,
        transform .16s ease;
}

.optional-downloads > a::before {
    content: "?";
    display: grid;
    place-items: center;
    width: 21px;
    height: 21px;
    border-radius: 6px;
    background: rgba(168,85,247,.13);
    color: var(--grad);
    font-size: 13px;
    font-weight: 900;
}

.optional-downloads > a:hover {
    transform: translateY(-1px);
    border-color: rgba(168,85,247,.58);
    background: rgba(168,85,247,.12);
}

/* MIDI final output */
.midi-final-output {
    border: 1px solid rgba(59,130,246,.22);
    border-radius: 13px;
    background:
        linear-gradient(145deg, rgba(59,130,246,.075), rgba(20,18,30,.94));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.midi-final-output .primary-button {
    width: auto;
    min-width: 170px;
}

/* Advanced settings */
.advanced-settings {
    border-color: rgba(168,85,247,.20);
    background: rgba(9,9,11,.25);
    transition: border-color .18s ease, background .18s ease;
}

.advanced-settings:hover {
    border-color: rgba(168,85,247,.28);
}

.advanced-settings summary {
    font-weight: 800;
}

/* Status / readiness */
.readiness,
.source-state {
    border: 1px solid rgba(59,130,246,.14);
}

/* Cleaner labels */
label {
    letter-spacing: .01em;
}

.form-note {
    line-height: 1.55;
}

/* Small screens */
@media(max-width:600px) {
    .optional-downloads {
        align-items: stretch;
    }

    .optional-downloads > a {
        width: 100%;
    }

    .midi-final-output .primary-button {
        width: 100%;
    }
}

/* TONIO NOTICE DOWNLOAD BUTTON */
.notice.success a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(59,130,246,.34);
    border-radius: 9px;
    background: rgba(59,130,246,.12);
    color: #f5eefe;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
    transition: transform .16s ease, background .16s ease, border-color .16s ease;
}

.notice.success a::before {
    content: "↓";
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: rgba(59,130,246,.18);
    color: var(--grad);
    font-weight: 900;
}

.notice.success a:hover {
    transform: translateY(-1px);
    border-color: rgba(59,130,246,.65);
    background: rgba(59,130,246,.18);
}

/* TONIO BATCH PREPARATION UI */
.batch-add-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 4px;
    padding: 18px 20px;
    border: 1px solid rgba(168,85,247,.20);
    border-radius: 15px;
    background:
        linear-gradient(145deg, rgba(20,18,30,.96), rgba(11,9,17,.96));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.batch-add-bar > div {
    min-width: 0;
}

.batch-add-bar b,
.batch-add-bar span {
    display: block;
}

.batch-add-bar b {
    color: var(--text);
    font-size: 14px;
}

.batch-add-bar > div > span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.batch-add-form {
    flex: 0 0 auto;
    padding: 0 !important;
}

.batch-add-button {
    min-width: 160px;
}

.batch-plus {
    display: inline-grid !important;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: rgba(168,85,247,.12);
    color: var(--grad);
    font-size: 18px;
    line-height: 1;
}

.batch-heading-row,
.batch-start-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.batch-heading-row {
    margin-bottom: 18px;
}

.batch-heading-row h2,
.batch-heading-row p {
    margin-bottom: 0;
}

.batch-prepared-row {
    grid-template-columns: 62px minmax(0,1fr) auto;
}

.batch-product-icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 42px;
    border-radius: 10px;
    background: rgba(168,85,247,.09);
    color: var(--grad);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.batch-row-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.batch-row-actions form {
    padding: 0 !important;
}

.batch-remove-button {
    padding: 7px 10px;
    border: 1px solid rgba(244,114,182,.20);
    border-radius: 8px;
    background: rgba(244,114,182,.06);
    color: var(--pink);
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.batch-remove-button:hover {
    border-color: rgba(244,114,182,.55);
    background: rgba(244,114,182,.12);
}

.batch-start-panel {
    margin-top: 20px;
    padding: 18px;
    border-top: 1px solid var(--line);
}

.batch-start-panel b,
.batch-start-panel span {
    display: block;
}

.batch-start-panel span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.batch-start-panel .primary-button {
    width: min(360px, 100%);
}

@media(max-width:700px) {
    .batch-add-bar,
    .batch-heading-row,
    .batch-start-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .batch-add-button {
        width: 100%;
    }

    .batch-prepared-row {
        grid-template-columns: 52px minmax(0,1fr);
    }

    .batch-row-actions {
        grid-column: 2;
        justify-content: space-between;
    }
}

/* TONIO BATCH RESULT POLISH */
.batch-prepared-row {
    position: relative;
}

.batch-error-message {
    grid-column: 2 / -1;
    margin-top: 10px;
    padding: 11px 13px;
    border: 1px solid rgba(244,114,182,.24);
    border-radius: 9px;
    background: rgba(244,114,182,.07);
}

.batch-error-message b,
.batch-error-message span {
    display: block;
}

.batch-error-message b {
    margin-bottom: 3px;
    color: #f9a8d4;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.batch-error-message span {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.batch-start-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.batch-start-actions form {
    padding: 0 !important;
}

@media(max-width:700px) {
    .batch-start-actions {
        width: 100%;
        flex-direction: column;
    }

    .batch-start-actions form,
    .batch-start-actions button {
        width: 100%;
    }
}

/* ===== BRAND CARD GLOW SYSTEM (youka.io style) ===== */
.product-card,.workflow-card,.step-card,.difference-card,.project-card,.midi-overview-card,.batch-add-bar{
  border-color:var(--line);
  background:linear-gradient(145deg,var(--surface),rgba(20,18,30,.62));
  box-shadow:var(--shadow);
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.product-card:hover,.workflow-card:hover,.step-card:hover,.difference-card:hover,.project-card:hover,.midi-overview-card:hover{
  transform:translateY(-4px);
  border-color:rgba(168,85,247,.45);
  box-shadow:0 24px 70px -20px var(--glow-purple),0 0 0 1px rgba(168,85,247,.18);
}
.product-card{position:relative;overflow:hidden}
.product-card:before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(420px circle at var(--pointer-x,80%) var(--pointer-y,30%),rgba(168,85,247,.16),transparent 45%);
  opacity:0;transition:opacity .3s ease;
}
.product-card:hover:before{opacity:1}
.workflow-icon{background:rgba(168,85,247,.12);color:var(--purple)}
.step-number{box-shadow:inset 0 0 0 1px rgba(168,85,247,.22),0 0 22px rgba(168,85,247,.10)}
.difference-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px;background:var(--surface)}
.difference-card span{font-size:30px;display:block;margin-bottom:16px}

/* ===== LINK AFFORDANCES: cards or buttons, never bare underlines ===== */
a{text-decoration:none}
.primary,.action-button,.card-action{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:42px;padding:10px 16px;border:1px solid rgba(168,85,247,.32);
  border-radius:10px;background:linear-gradient(120deg,rgba(59,130,246,.18),rgba(168,85,247,.20),rgba(236,72,153,.15));
  color:var(--text);font-weight:800;text-decoration:none;
  box-shadow:0 8px 24px -14px var(--glow-purple);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.primary:hover,.action-button:hover,.card-action:hover{
  transform:translateY(-2px);border-color:rgba(168,85,247,.60);
  background:linear-gradient(120deg,rgba(59,130,246,.25),rgba(168,85,247,.30),rgba(236,72,153,.22));
  box-shadow:0 14px 34px -14px var(--glow-purple);
}
.back{display:inline-flex;width:max-content;margin-bottom:26px;text-decoration:none}
.project-card{display:flex;flex-direction:column;align-items:stretch;cursor:pointer;text-decoration:none}
.project-card .card-action{align-self:flex-start;margin-top:auto}
.project-card:focus-visible,.workflow-card:focus-visible{outline:2px solid var(--purple);outline-offset:4px}

/* ===== BALANCED BRAND ACCENTS: blue leads, purple supports, pink highlights ===== */
.grad,.hero .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{color:var(--blue)}
.section-heading h2,.panel-heading h2{background:linear-gradient(105deg,var(--text) 18%,#93c5fd 55%,#c4b5fd 88%);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-mark{background:var(--grad);color:#fff}
.product-card.midi{border-color:rgba(59,130,246,.20)}
.product-card.audio{border-color:rgba(168,85,247,.20)}
.product-card.video{border-color:rgba(236,72,153,.20)}
.product-card.midi:after{background:radial-gradient(circle,rgba(59,130,246,.20),transparent 70%)}
.product-card.audio:after{background:radial-gradient(circle,rgba(168,85,247,.18),transparent 70%)}
.product-card.video:after{background:radial-gradient(circle,rgba(236,72,153,.18),transparent 70%)}
.product-card.midi:hover{border-color:rgba(59,130,246,.48);box-shadow:0 24px 70px -24px var(--glow-blue)}
.product-card.audio:hover{border-color:rgba(168,85,247,.45);box-shadow:0 24px 70px -24px var(--glow-purple)}
.product-card.video:hover{border-color:rgba(236,72,153,.44);box-shadow:0 24px 70px -24px var(--glow-pink)}
.workflow-card:nth-child(3n+1):hover,.step-card:nth-child(3n+1):hover,.project-card:nth-child(3n+1):hover{border-color:rgba(59,130,246,.45);box-shadow:0 24px 70px -24px var(--glow-blue)}
.workflow-card:nth-child(3n+2):hover,.step-card:nth-child(3n+2):hover,.project-card:nth-child(3n+2):hover{border-color:rgba(168,85,247,.42);box-shadow:0 24px 70px -24px var(--glow-purple)}
.workflow-card:nth-child(3n):hover,.step-card:nth-child(3n):hover,.project-card:nth-child(3n):hover{border-color:rgba(236,72,153,.40);box-shadow:0 24px 70px -24px var(--glow-pink)}
.workflow-icon{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(168,85,247,.14));color:#93c5fd}
.workflow-icon.audio{background:rgba(168,85,247,.14);color:#c4b5fd}
.workflow-icon.video{background:rgba(236,72,153,.13);color:#f9a8d4}
.step-number{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(168,85,247,.14));color:#bfdbfe}
.primary-button{background:var(--grad);color:#fff}
.primary,.action-button,.card-action{background:linear-gradient(120deg,rgba(59,130,246,.24),rgba(168,85,247,.20),rgba(236,72,153,.13));border-color:rgba(59,130,246,.30)}
.primary:hover,.action-button:hover,.card-action:hover{border-color:rgba(168,85,247,.48);box-shadow:0 14px 34px -14px var(--glow-blue)}
input:focus,select:focus,textarea:focus{border-color:rgba(59,130,246,.72);box-shadow:0 0 0 3px rgba(59,130,246,.12),0 0 24px rgba(168,85,247,.08)}

/* ===== YOUKA-INSPIRED KARAOKE TYPOGRAPHY + COMPACT TPB LOCKUP ===== */
.live-preview-screen{--karaoke-outline:3px}
.live-preview-row,.live-preview-chords{
  font-family:Arial,"Arial Black",sans-serif;
  font-weight:900;
  -webkit-text-stroke:var(--karaoke-outline) #000;
  paint-order:stroke fill;
  text-shadow:-3px -3px 0 #000,3px -3px 0 #000,-3px 3px 0 #000,3px 3px 0 #000,0 4px 8px rgba(0,0,0,.75);
}
.live-preview-chords{-webkit-text-stroke:2px #000}
.live-preview-brand{
  position:absolute;top:16px;right:18px;z-index:2;
  display:inline-flex;align-items:center;gap:7px;padding:0;
  background:transparent;color:rgba(255,255,255,.86);
  text-transform:uppercase;letter-spacing:.08em;line-height:1;
}
.brand-tpb{
  display:grid;place-items:center;width:30px;height:30px;border-radius:8px;
  background:linear-gradient(135deg,#3b82f6,#a855f7 58%,#ec4899);
  color:#fff;font:800 9px/1 Inter,sans-serif;letter-spacing:.06em;
  box-shadow:0 5px 18px rgba(59,130,246,.18),0 5px 18px rgba(168,85,247,.16);
}
.brand-copy{font-size:clamp(8px,1.1vw,12px);font-weight:700;white-space:nowrap}
.stem-mix-panel{display:flex;flex-direction:column;gap:16px;margin:18px 0}.stem-mix-row{display:flex;align-items:center;gap:16px}.stem-mix-row .checkbox{flex:0 0 190px;margin:0}.stem-mix-row input[type=range]{flex:1;width:auto;margin:0;accent-color:var(--accent-secondary)}.stem-mix-value{flex:0 0 52px;text-align:right;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}@media(max-width:640px){.stem-mix-row{flex-wrap:wrap}.stem-mix-row .checkbox{flex:1 1 100%}.stem-mix-row input[type=range]{flex:1 1 auto}}
.prow-wrap{position:relative}.prow-wrap .prow{padding-right:52px}.prow-delete-form{position:absolute;top:50%;right:10px;transform:translateY(-50%);margin:0;opacity:0;transition:opacity .12s ease}.prow-wrap:hover .prow-delete-form,.prow-wrap:focus-within .prow-delete-form{opacity:1}
.pcard-wrap{position:relative}.pcard-wrap .pcard-delete-form{position:absolute;top:10px;right:10px;margin:0;opacity:0;transition:opacity .12s ease}.pcard-wrap:hover .pcard-delete-form,.pcard-wrap:focus-within .pcard-delete-form{opacity:1}
.prow-delete-btn{border:0;border-radius:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:rgba(244,114,182,.12);color:var(--pink);cursor:pointer;font-size:14px}.prow-delete-btn:hover{background:rgba(244,114,182,.22)}
@media(max-width:760px){.prow-delete-form{opacity:1}.pcard-delete-form{opacity:1}}
.account-badge{display:flex;gap:10px;align-items:center;border:1px solid var(--line);padding:8px 12px;border-radius:999px;color:var(--muted);font-size:13px;text-decoration:none}
.account-badge form{padding:0;margin:0}
.lang-switch{display:flex;gap:2px;align-items:center;margin-right:8px}
.lang-switch a{padding:6px 8px;border-radius:7px;color:var(--muted);text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.03em}
.lang-switch a:hover{color:var(--text);background:var(--surface-2)}
.lang-switch a.lang-active{color:var(--text);background:var(--surface-2)}
.account-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-logout{border:0;background:transparent;color:var(--pink);font:inherit;font-weight:700;cursor:pointer;padding:0}
.account-signin{color:var(--text);font-weight:700}.account-signin:hover{border-color:var(--line-strong)}
.account-credits{color:var(--accent-secondary);font-weight:700;text-decoration:none;white-space:nowrap}.account-credits:hover{text-decoration:underline}
@media(max-width:600px){.account-email{max-width:90px}}
.auth-page{max-width:420px;margin:64px auto;padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.auth-page h1{margin:0 0 6px;font-size:28px}.auth-page p.lead{margin:0 0 24px}
.auth-page form{padding:0}.auth-page label{margin-bottom:14px}
.auth-page .form-note{margin-top:18px;text-align:center}.auth-page .form-note a{color:var(--grad);font-weight:700}
.oauth-button{width:100%;justify-content:center;margin-bottom:18px;text-decoration:none}
.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line)}
