:root{
  --ktv-black:#050505;
  --ktv-white:#fff;
  --ktv-lime:#d8ff45;
  --ktv-pink:#ff4fa3;
  --ktv-cyan:#27e8ff;
  --ktv-violet:#8d63ff;
  --ktv-gray:#a7a7a7;
  --ktv-line:#2a2a2a;
  --ktv-panel:#101010;
}

.ktv-app,.ktv-player-page{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif}
.ktv-app *,.ktv-player-page *{box-sizing:border-box}

.ktv-app{
  background:
    radial-gradient(circle at top right, rgba(255,79,163,.12), transparent 28%),
    radial-gradient(circle at top left, rgba(39,232,255,.10), transparent 26%),
    var(--ktv-black);
  color:var(--ktv-white);
  min-height:70vh;
  padding:clamp(18px,4vw,48px);
  border-radius:18px;
  border:1px solid rgba(255,255,255,.06);
  box-shadow:0 0 0 1px rgba(255,79,163,.08), 0 24px 60px rgba(0,0,0,.35);
}

.ktv-public{max-width:980px;margin:0 auto}
.ktv-hero{padding:8px 0 28px}
.ktv-kicker{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--ktv-cyan);
  text-shadow:0 0 12px rgba(39,232,255,.35);
}

.ktv-hero h1,.ktv-topbar h1{
  font-size:clamp(44px,10vw,96px);
  line-height:.9;
  margin:8px 0 16px;
  letter-spacing:-.06em;
  color:var(--ktv-white);
  text-shadow:0 0 18px rgba(39,232,255,.16), 0 0 26px rgba(255,79,163,.12);
}

.ktv-hero h1 span{
  color:var(--ktv-pink);
  text-shadow:0 0 16px rgba(255,79,163,.42), 0 0 28px rgba(255,79,163,.18);
}

.ktv-topbar h1,
.ktv-dialog-card h2,
.ktv-panel h2,
.ktv-now h2,
.ktv-pin-panel h2{
  color:var(--ktv-lime);
  text-shadow:0 0 14px rgba(216,255,69,.28);
}

.ktv-panel h2,
.ktv-dialog-card h2,
.ktv-pin-panel h2{letter-spacing:-.03em}

.ktv-hero p{font-size:clamp(18px,2.5vw,26px);margin:0;max-width:700px}

.ktv-search-wrap label,.ktv-dialog label{display:block;font-size:13px;font-weight:800;margin-bottom:7px}
.ktv-search,.ktv-dialog input,.ktv-inline input,.ktv-player-login input{
  width:100%;background:#151515;color:#fff;border:1px solid #454545;border-radius:12px;padding:15px 16px;font-size:17px;outline:none
}
.ktv-search:focus,.ktv-dialog input:focus,.ktv-inline input:focus,.ktv-player-login input:focus{border-color:var(--ktv-lime);box-shadow:0 0 0 3px rgba(216,255,69,.13)}

.ktv-muted{color:var(--ktv-gray)}
#ktv-song-count{margin:16px 0 10px;font-size:13px}

.ktv-song-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.ktv-song{
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)), #121212;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:15px;
  text-align:left;
  color:#fff;
  cursor:pointer;
  transition:.15s transform,.15s border-color,.15s box-shadow;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.ktv-song:hover{
  transform:translateY(-2px);
  border-color:rgba(39,232,255,.65);
  box-shadow:0 0 0 1px rgba(39,232,255,.18), 0 0 18px rgba(39,232,255,.10);
}
.ktv-song-title{
  font-size:18px;
  font-weight:800;
  line-height:1.1;
  color:var(--ktv-white);
  text-shadow:0 0 10px rgba(255,79,163,.14);
}
.ktv-song-artist{font-size:13px;color:var(--ktv-gray);margin-top:6px}

.ktv-dialog{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:999999;display:grid;place-items:center;padding:18px}
.ktv-dialog-card{
  position:relative;background:#0e0e0e;border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:26px;max-width:520px;width:100%;box-shadow:0 30px 80px rgba(0,0,0,.5), 0 0 0 1px rgba(255,79,163,.10)
}
.ktv-dialog-card h2{font-size:32px;line-height:1;margin:10px 42px 5px 0}
.ktv-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:#fff;font-size:34px;cursor:pointer}
.ktv-dialog form{margin-top:24px}
.ktv-dialog form button{width:100%;margin-top:12px}

.ktv-primary,.ktv-secondary,.ktv-danger,.ktv-file-label{
  appearance:none;border:0;border-radius:11px;padding:12px 16px;font-weight:900;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.15s transform,.15s box-shadow,.15s border-color
}
.ktv-primary{
  background:linear-gradient(90deg, var(--ktv-lime), #efff9e);
  color:#000;
  box-shadow:0 0 18px rgba(216,255,69,.24);
}
.ktv-primary:hover{transform:translateY(-1px)}
.ktv-secondary,.ktv-file-label{
  background:#171717;color:#fff;border:1px solid rgba(39,232,255,.36);box-shadow:0 0 14px rgba(39,232,255,.08)
}
.ktv-secondary:hover,.ktv-file-label:hover{border-color:rgba(39,232,255,.7);box-shadow:0 0 16px rgba(39,232,255,.16)}
.ktv-danger{background:#3a1023;color:#fff;border:1px solid rgba(255,79,163,.48);box-shadow:0 0 16px rgba(255,79,163,.12)}
.ktv-big{font-size:17px;padding:15px 22px}

.ktv-hidden{display:none!important}
.ktv-hp{position:absolute!important;left:-9999px!important}

.ktv-notice,.ktv-result{border-radius:12px;padding:14px 16px;margin:14px 0}
.ktv-notice{background:#382b00;border:1px solid #6a5600}
.ktv-result{background:#173000;border:1px solid #426e10}
.ktv-result strong{font-size:20px}
.ktv-error{color:#ff8aa9;margin-top:8px}

.ktv-topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:18px;margin-bottom:20px}
.ktv-topbar h1{font-size:48px;margin:4px 0 0}
.ktv-status{padding:8px 10px;background:#161616;border:1px solid rgba(39,232,255,.22);border-radius:999px;font-size:12px}

.ktv-panel,.ktv-now{
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)), var(--ktv-panel);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  padding:20px;
  margin-bottom:18px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.ktv-pin-panel{max-width:560px}
.ktv-inline{display:flex;gap:8px}
.ktv-inline input{max-width:260px}

.ktv-now h2{font-size:clamp(28px,5vw,54px);line-height:1;margin:8px 0}
.ktv-now-singer{font-size:24px;color:var(--ktv-pink);font-weight:800;text-shadow:0 0 14px rgba(255,79,163,.22)}
.ktv-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.ktv-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ktv-panel h2{margin:4px 0 0}

.ktv-queue{margin-top:12px}
.ktv-queue-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;border-top:1px solid #2b2b2b;padding:12px 0}
.ktv-queue-pos{font-size:22px;font-weight:900;color:var(--ktv-lime);text-shadow:0 0 12px rgba(216,255,69,.2)}
.ktv-q-song{font-weight:800;font-size:17px;color:var(--ktv-white)}
.ktv-q-meta{font-size:13px;color:var(--ktv-gray);margin-top:3px}
.ktv-q-actions{display:flex;gap:5px}
.ktv-q-actions button{width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#191919;color:#fff;cursor:pointer}
.ktv-empty{color:#aaa;padding:28px 0;text-align:center}

.ktv-player-page{background:#0a0a0a;color:#fff;min-height:100vh}
.ktv-player-tools{padding:12px;background:#111;border-bottom:1px solid #333}
.ktv-player-brand{display:flex;gap:12px;align-items:center;margin-bottom:9px}
.ktv-player-brand strong{color:var(--ktv-pink);text-shadow:0 0 12px rgba(255,79,163,.28)}
.ktv-player-brand span{font-size:12px;color:#aaa}
.ktv-player-login{display:flex;flex-wrap:wrap;gap:7px}
.ktv-player-login input{width:170px;padding:10px 12px}
.ktv-file-label input{display:none}
.ktv-player-detail,.ktv-match-summary{font-size:12px;color:#bbb;margin-top:8px}
.ktv-stage{width:100%;height:70vh;background:#000;display:grid;place-items:center;overflow:hidden}
.ktv-stage:fullscreen{width:100vw;height:100vh;background:#000}
.ktv-stage video{width:100%;height:100%;object-fit:contain;background:#000;display:none}
.ktv-stage.ktv-playing video{display:block}

@media(max-width:640px){
  .ktv-app{padding:18px;border-radius:0}
  .ktv-song-grid{grid-template-columns:1fr}
  .ktv-topbar{align-items:flex-start}
  .ktv-queue-row{grid-template-columns:34px minmax(0,1fr)}
  .ktv-q-actions{grid-column:2}
  .ktv-controls>button{flex:1 1 45%}
  .ktv-inline{flex-direction:column}
  .ktv-inline input{max-width:none}
  .ktv-panel-head{align-items:flex-start;flex-direction:column}
}

/* Song visibility / editions */
.ktv-visibility-help{margin:8px 0 16px;color:#d9d9d9;max-width:760px}
.ktv-tag-controls{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.ktv-tag-toggle,.ktv-song-toggle{
  appearance:none;border-radius:999px;font-weight:900;cursor:pointer;transition:.15s transform,.15s box-shadow,.15s border-color;background:#171717;color:#fff
}
.ktv-tag-toggle{display:inline-flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid rgba(255,255,255,.12)}
.ktv-tag-toggle strong{font-size:11px;letter-spacing:.08em;padding:3px 7px;border-radius:999px}
.ktv-tag-toggle.is-visible{border-color:rgba(216,255,69,.55);box-shadow:0 0 14px rgba(216,255,69,.10)}
.ktv-tag-toggle.is-visible strong{background:var(--ktv-lime);color:#000}
.ktv-tag-toggle.is-hidden{border-color:rgba(255,79,163,.58);box-shadow:0 0 14px rgba(255,79,163,.10)}
.ktv-tag-toggle.is-hidden strong{background:var(--ktv-pink);color:#000}
.ktv-tag-toggle:hover,.ktv-song-toggle:hover{transform:translateY(-1px)}
.ktv-visibility-search-wrap{margin:10px 0 12px}
.ktv-visibility-list{border-top:1px solid rgba(255,255,255,.08);max-height:430px;overflow:auto;padding-right:4px}
.ktv-visibility-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.ktv-visibility-title{font-weight:900;font-size:16px;color:#fff}
.ktv-visibility-artist{font-size:13px;color:var(--ktv-gray);margin-top:3px}
.ktv-mini-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.ktv-mini-tags span{font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--ktv-cyan);border:1px solid rgba(39,232,255,.28);border-radius:999px;padding:3px 7px}
.ktv-song-toggle{min-width:58px;padding:9px 13px;border:1px solid rgba(255,255,255,.12)}
.ktv-song-toggle.is-on{color:#000;background:var(--ktv-lime);border-color:var(--ktv-lime);box-shadow:0 0 14px rgba(216,255,69,.16)}
.ktv-song-toggle.is-off{color:#000;background:var(--ktv-pink);border-color:var(--ktv-pink);box-shadow:0 0 14px rgba(255,79,163,.16)}
.ktv-effective-hidden{grid-column:1 / -1;width:max-content;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--ktv-pink);margin-top:-7px}

@media(max-width:640px){
  .ktv-visibility-list{max-height:520px}
  .ktv-visibility-row{grid-template-columns:minmax(0,1fr) 58px}
}

/* v0.3: focused standalone shell + mobile UX */
html:has(body.ebi-ktv-standalone){background:#050505!important}
body.ebi-ktv-standalone{
  margin:0!important;
  padding:0!important;
  background:#050505!important;
  color:#fff!important;
  min-height:100%;
  overflow-x:hidden;
}
body.ebi-ktv-standalone #wpadminbar{display:none!important}
body.ebi-ktv-standalone.admin-bar{margin-top:0!important}
html:has(body.ebi-ktv-standalone.admin-bar){margin-top:0!important}
body.ebi-ktv-standalone .ktv-shell{display:block;width:100%;min-height:100svh;background:#050505}
body.ebi-ktv-standalone .ktv-public{min-height:100svh;border-radius:0;border-left:0;border-right:0}
body.ebi-ktv-standalone .ktv-regie{max-width:1200px;margin:0 auto;min-height:100svh;border-radius:0}
body.ebi-ktv-standalone .ktv-player-page{min-height:100svh}
body.ktv-dialog-open{overflow:hidden}
.ktv-result-close{width:100%;margin-top:12px}

@media(max-width:640px){
  body.ebi-ktv-standalone .ktv-app{
    min-height:100svh;
    padding:calc(16px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom));
    border:0;
    box-shadow:none;
  }

  .ktv-public{max-width:none}
  .ktv-hero{padding:8px 2px 16px}
  .ktv-hero .ktv-kicker{font-size:10px;letter-spacing:.14em}
  .ktv-hero h1{font-size:clamp(48px,17vw,68px);margin:7px 0 10px;line-height:.86}
  .ktv-hero p{font-size:16px;line-height:1.35;max-width:310px;color:#f4f4f4}

  .ktv-search-wrap{
    position:sticky;
    top:0;
    z-index:50;
    margin:0 -14px;
    padding:10px 14px 12px;
    background:linear-gradient(180deg,rgba(5,5,5,.98) 72%,rgba(5,5,5,.88));
    border-bottom:1px solid rgba(255,255,255,.06);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
  }
  .ktv-search-wrap label{font-size:11px;margin-bottom:6px;color:var(--ktv-cyan);letter-spacing:.04em;text-transform:uppercase}
  .ktv-search{min-height:50px;border-radius:15px;padding:13px 15px;font-size:16px;background:#111;border-color:rgba(255,255,255,.13)}
  #ktv-song-count{margin:12px 2px 8px;font-size:12px;color:#aaa}

  .ktv-song-grid{grid-template-columns:1fr;gap:8px}
  .ktv-song{
    position:relative;
    min-height:70px;
    padding:14px 54px 14px 15px;
    border-radius:16px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    touch-action:manipulation;
  }
  .ktv-song::after{
    content:'+';
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    width:29px;
    height:29px;
    border-radius:50%;
    display:grid;
    place-items:center;
    font-size:22px;
    line-height:1;
    font-weight:500;
    color:#000;
    background:var(--ktv-lime);
    box-shadow:0 0 14px rgba(216,255,69,.20);
  }
  .ktv-song:active{transform:scale(.99);border-color:rgba(216,255,69,.55)}
  .ktv-song-title{font-size:17px;line-height:1.12;padding-right:2px}
  .ktv-song-artist{font-size:12px;margin-top:5px}

  .ktv-dialog{
    align-items:end;
    justify-items:stretch;
    padding:0;
    background:rgba(0,0,0,.72);
  }
  .ktv-dialog-card{
    width:100%;
    max-width:none;
    max-height:90svh;
    overflow:auto;
    border-radius:24px 24px 0 0;
    border-left:0;
    border-right:0;
    border-bottom:0;
    padding:22px 18px calc(20px + env(safe-area-inset-bottom));
    box-shadow:0 -24px 80px rgba(0,0,0,.58),0 0 0 1px rgba(255,79,163,.12);
    animation:ktv-sheet-in .18s ease-out;
  }
  @keyframes ktv-sheet-in{from{transform:translateY(22px);opacity:.7}to{transform:translateY(0);opacity:1}}
  .ktv-dialog-card h2{font-size:30px;margin:8px 48px 4px 0}
  .ktv-dialog-card .ktv-muted{margin-top:5px}
  .ktv-close{
    width:44px;
    height:44px;
    right:10px;
    top:8px;
    border-radius:50%;
    background:#1a1a1a;
    border:1px solid rgba(255,255,255,.10);
    display:grid;
    place-items:center;
    line-height:1;
  }
  .ktv-dialog form{margin-top:20px}
  .ktv-dialog form input{min-height:52px;border-radius:14px;font-size:16px}
  .ktv-dialog form button,.ktv-result-close{min-height:52px;border-radius:14px;font-size:15px}
  .ktv-result{padding:18px}
  .ktv-result strong{font-size:22px;color:var(--ktv-lime)}
  .ktv-result p{line-height:1.4}

  /* Regie: compact, thumb-friendly and less desktop-like */
  .ktv-topbar{align-items:flex-start;margin-bottom:14px;padding-bottom:12px}
  .ktv-topbar h1{font-size:42px;margin-bottom:0}
  .ktv-status{font-size:10px;padding:6px 8px;margin-top:2px}
  .ktv-panel,.ktv-now{padding:16px;border-radius:17px;margin-bottom:12px}
  .ktv-now h2{font-size:32px;line-height:1.02}
  .ktv-now-singer{font-size:20px}
  .ktv-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
  .ktv-controls>button{min-height:48px;width:100%}
  .ktv-controls #ktv-next{grid-column:1 / -1;min-height:54px}
  .ktv-panel-head{gap:10px}
  .ktv-panel-head h2{font-size:26px}
  .ktv-queue-row{padding:13px 0;gap:8px}
  .ktv-q-song{font-size:16px}
  .ktv-q-actions button{width:40px;height:40px}
  .ktv-visibility-list{max-height:none}
}
