/* 통합 테마 (2026-09-16). 기존 페이지 위에 마지막으로 얹어 /ui 셸과 같은 룩으로 맞춘다.
   각 페이지의 CSS 변수 이름이 달라서 전부 다시 정의하고, 공통 요소(카드·버튼·입력·표)를 덮는다. */
:root{
  --bg:#0c0c0e; --bg-color:#0c0c0e; --bg-base:#0c0c0e;
  --card:#18181b; --bg-card:#18181b; --glass:#18181b; --glass-bg:#18181b; --glass-card:#1f1f23; --bg-card-hover:#1f1f23;
  --border:#2a2a30; --border-color:#2a2a30; --glass-border:#2a2a30; --border-highlight:#3a3a44; --border-glow:#3a3a44;
  --text:#ececec; --text-main:#ececec; --muted:#9a9aa3; --text-muted:#9a9aa3; --sub:#6f6f78;
  --primary:#ff5a1f; --accent:#ff5a1f; --accent-blue:#ff5a1f; --accent-train:#ff5a1f; --accent-purple:#ff8a5b; --accent-pur:#ff8a5b;
  --primary-glow:rgba(255,90,31,.25); --primary-gradient:linear-gradient(135deg,#ff5a1f,#ff8a5b);
  --ok:#7bd88f; --match:#7bd88f; --accent-match:#7bd88f; --accent-green:#7bd88f; --bad:#ff5a5a; --error:#ff5a5a; --accent-error:#ff5a5a; --warn:#ffcc66;
}
html.embedded .navbar, html.embedded .nav-links, html.embedded nav.topnav{display:none!important}
html.embedded body{padding-top:0!important}
body{background:#0c0c0e!important;color:#ececec!important;font-family:'Noto Sans KR',system-ui,sans-serif!important}
.container,.wrap{max-width:1400px!important}
.card,.panel,.glass,.glass-card,.stat,.player-box,.track{background:#18181b!important;border:1px solid #2a2a30!important;border-radius:14px!important;box-shadow:none!important;backdrop-filter:none!important}
h1,h2,h3,h4{color:#ececec!important;font-weight:600!important;letter-spacing:-.01em}
h2{font-size:15px!important} h3{font-size:14px!important}
.hint,.tiny,.status,.meta,small,.text-muted,.muted{color:#9a9aa3!important}
.mono,code,pre,.terminal,.log,#naf_terminal_content,#vlafp_terminal_content{font-family:'JetBrains Mono',ui-monospace,Menlo,monospace!important}
pre,.terminal,#naf_terminal_content,#vlafp_terminal_content{background:#101012!important;border:1px solid #2a2a30!important;border-radius:10px!important;color:#c9c9cf!important;font-size:11px!important}
button,.btn{background:#1f1f23!important;border:1px solid #35353d!important;color:#ececec!important;border-radius:9px!important;box-shadow:none!important;font-family:inherit!important;font-weight:500!important}
button:hover,.btn:hover{border-color:#6f6f78!important}
.btn-primary,button.primary,.btn.primary,.btn-train,.btn-start,.btn-match{background:#ff5a1f!important;border-color:#ff5a1f!important;color:#111!important;font-weight:700!important}
.btn-error,.btn-danger,.btn-stop,button.danger{background:#2a1414!important;border-color:#7a2a2a!important;color:#ff7a7a!important}
.btn-ghost,.btn-secondary{background:transparent!important}
button:disabled,.btn:disabled{opacity:.45!important}
input,select,textarea{background:#141416!important;border:1px solid #35353d!important;color:#ececec!important;border-radius:8px!important;font-family:'JetBrains Mono',ui-monospace,monospace!important;font-size:12px!important}
table{border-collapse:collapse!important} th{color:#9a9aa3!important;font-family:'JetBrains Mono',monospace!important;font-size:10px!important;letter-spacing:.1em!important;text-transform:uppercase!important;border-bottom:1px solid #2a2a30!important}
td{border-bottom:1px solid #1f1f23!important} tr:hover td{background:#141416!important}
.pill,.badge,.tag,.chip{background:#1f1f23!important;border:1px solid #35353d!important;color:#9a9aa3!important;border-radius:6px!important;font-family:'JetBrains Mono',monospace!important;font-size:10px!important}
.pill.hi,.badge.match,.badge-match,.badge.ok{background:#16331d!important;border-color:#2f6b3a!important;color:#7bd88f!important}
.badge.error,.badge-error,.badge.bad{background:#2a1414!important;border-color:#7a2a2a!important;color:#ff7a7a!important}
.ok,.match{color:#7bd88f!important} .bad,.error{color:#ff5a5a!important}
progress,.prog{background:#2a2a30!important} .prog>span,progress::-webkit-progress-value{background:#ff5a1f!important}
audio{filter:invert(.9) hue-rotate(180deg) saturate(.4)}

/* ---------- 2026-09-16 2차: 페이지별 남은 파랑/보라 규칙 덮기 ---------- */
/* 그라데이션 텍스트 제목 → 단색 */
h1,.nav-brand,.top-nav-brand,.page-header h1,.header-title h1,.hitl-header h2{background:none!important;-webkit-background-clip:initial!important;-webkit-text-fill-color:#ececec!important;color:#ececec!important;text-shadow:none!important}
h1{font-size:18px!important;text-align:left!important;font-weight:600!important}
/* 버튼 변형: 기본은 중립, 의미색만 유지 */
[class*="btn-"],.tab-btn,.judge-btn,.play-btn,.mode-btn,.nav-item{background:#1f1f23!important;border:1px solid #35353d!important;color:#ececec!important;box-shadow:none!important;background-image:none!important}
.btn-primary,.btn-train,.btn-analyze,.btn-amber,.tab-btn.active,.judge-btn.active,.nav-item.active,.active-nav,.mode-btn.active,.btn-search,.btn-generate,.btn-build{background:#ff5a1f!important;border-color:#ff5a1f!important;color:#111!important;font-weight:700!important}
.btn-match,.btn-excel,.btn-run,.btn-success,.btn-approve,.btn-ok{background:#16331d!important;border-color:#2f6b3a!important;color:#7bd88f!important}
.btn-error,.btn-stop,.btn-danger,.btn-batch-register,.btn-reject,.btn-delete{background:#2a1414!important;border-color:#7a2a2a!important;color:#ff7a7a!important}
.btn-dual-play,.btn-dual-play:hover,.play-btn.playing{background:#2a1712!important;border-color:#5a2a1a!important;color:#ff8a5b!important;animation:none!important}
/* 진행바·칩·강조 텍스트 */
.progress-bar-fill,.progress-fill,.bar-fill,.prog>span,.bar i{background:#ff5a1f!important;background-image:none!important}
.file-chip-meta,.song-track-name,.song-label-album,.title-full,.title-under,.kind-low,.rank,.track-rank,.stat-val,.score-badge,.step-pill,.step-pill.running,.gpu-pill,.gpu-text{color:#ff8a5b!important;background:transparent!important;border-color:#35353d!important}
.score-badge,.step-pill,.track-rank,.gpu-pill{background:#1f1f23!important;border:1px solid #35353d!important;border-radius:6px!important}
.player-card,.modal-card,.drawer-column,.stats-grid>*,.stat-box,.stat-card,.file-chip,.queue-table-wrap{background:#141416!important;border:1px solid #2a2a30!important;background-image:none!important;box-shadow:none!important}
.dropzone{border:1px dashed #35353d!important;background:#141416!important} .dropzone:hover,.dropzone.dragover{border-color:#ff5a1f!important;background:#1f1f23!important}
#toast,.toast{background:#1f1f23!important;border:1px solid #35353d!important;color:#ececec!important;background-image:none!important}
/* 인라인 스타일에 박힌 옛 팔레트 (속성 선택자) */
[style*="c084fc"],[style*="a78bfa"],[style*="a855f7"],[style*="8b5cf6"],[style*="7c3aed"],[style*="6366f1"],[style*="818cf8"],[style*="60a5fa"],[style*="3b82f6"],[style*="38bdf8"],[style*="06b6d4"],[style*="22d3ee"],[style*="2563eb"],
[style*="168, 85, 247"],[style*="139, 92, 246"],[style*="99, 102, 241"],[style*="59, 130, 246"],[style*="6, 182, 212"],[style*="96, 165, 250"],[style*="168,85,247"],[style*="139,92,246"],[style*="59,130,246"],[style*="6,182,212"]{color:#ff8a5b!important;border-color:#35353d!important}
button[style*="168, 85, 247"],button[style*="139, 92, 246"],button[style*="59, 130, 246"],button[style*="6, 182, 212"],button[style*="168,85,247"],button[style*="139,92,246"],a[style*="168, 85, 247"],a[style*="139, 92, 246"],.btn[style*="linear-gradient"],button[style*="linear-gradient"]{background:#1f1f23!important;background-image:none!important;color:#ececec!important}
div[style*="linear-gradient"],span[style*="linear-gradient"]{background-image:none!important;background-color:#18181b!important}
h3[style*="color"],h2[style*="color"],h4[style*="color"],label[style*="color"]{color:#ececec!important}
/* 오토태깅: 셸 안(≈1100px)에서 3열 그리드가 좁아 난잡 → 2열 + 모니터링 열은 아래로 */
html.embedded .app-container{grid-template-columns:340px minmax(0,1fr)!important;gap:14px!important;padding:14px!important;max-width:100%!important}
html.embedded .app-container>.drawer-column{grid-column:1 / -1!important}
html.embedded .glass-card{padding:14px!important}
.card-title{font-size:14px!important;font-weight:600!important;color:#ececec!important}
.card-header{border-bottom:1px solid #2a2a30!important}
@media (max-width:900px){html.embedded .app-container{grid-template-columns:1fr!important}}
/* 청취 검수: 모드 탭·헤더는 셸 메뉴가 대신함 */
html.embedded .mode-tabs{display:none!important}
html.embedded .wrap>h1,html.embedded .wrap>p.sub,html.embedded .wrap>.nav,html.embedded .page-header,html.embedded .top-nav{display:none!important}
html.embedded body{padding:0!important} html.embedded .wrap,html.embedded .container,html.embedded .main-layout{padding-top:10px!important}

/* ---------- 스크롤바: 얇고 어둡게 (셸·임베드 페이지 공통) ---------- */
*{scrollbar-width:thin;scrollbar-color:#3a3a44 transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#3a3a44;border-radius:6px;border:1px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:#55555f;background-clip:padding-box}
*::-webkit-scrollbar-corner{background:transparent}
html,body{scrollbar-color:#3a3a44 #0c0c0e}
