:root{
  --bg:#222222; --panel:#2d2d2d; --border:#1a1a1a;
  --txt:#eeeeee; --accent:#ff9500; --sub:#8e44ad;
  --radius:10px; --radius-sm:6px;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:"Courier New",Menlo,monospace;}
html,body{height:100%;}
body{background:var(--bg);color:var(--txt);display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none;}
button{font-family:inherit;}
[hidden]{display:none !important;}

/* ── ボタン階層（スタイルガイド準拠）── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:2px solid transparent;border-radius:var(--radius);cursor:pointer;font-size:14px;padding:8px 14px;transition:border-color .15s,color .15s,background .15s,opacity .15s;}
.btn-primary{background:var(--accent);color:var(--bg);font-weight:bold;}
.btn-primary:hover{opacity:.85;}
.btn-secondary{background:var(--panel);color:var(--txt);border-color:var(--border);}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent);}
.btn-sub{background:var(--sub);color:#fff;}
.btn-sub:hover{opacity:.85;}
.btn-toggle{background:var(--panel);color:var(--txt);border-color:var(--border);}
.btn-toggle:hover{border-color:var(--accent);color:var(--accent);}
.btn-toggle.on{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:bold;}
.btn-sm{font-size:14px;padding:6px 12px;}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.35;cursor:not-allowed;}
.btn:disabled:hover{border-color:var(--border);color:var(--txt);}

/* ── ヘッダー ── */
header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:2px solid var(--border);}
.brand{display:flex;align-items:baseline;gap:12px;}
.tname{color:var(--accent);font-size:20px;font-weight:bold;letter-spacing:1px;}
.tsub{color:var(--txt);opacity:.5;font-size:14px;}
.hbtns{display:flex;gap:8px;align-items:center;}
.info-btn{background:none;color:var(--txt);border:2px solid var(--border);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:15px;opacity:.4;cursor:pointer;transition:border-color .15s,color .15s,opacity .15s;}
.info-btn:hover{border-color:var(--accent);color:var(--accent);opacity:1;}

/* ── レイアウト ── */
main{flex:1;display:flex;gap:14px;padding:14px;min-height:0;}
#stage{flex:1;min-width:0;position:relative;border:2px solid var(--border);border-radius:var(--radius);background:#1c1c1c;display:flex;align-items:center;justify-content:center;overflow:hidden;}
#stage.drag{border-color:var(--accent);}
#cv{display:block;}
#cv.brush{cursor:crosshair;}
#emptyMsg{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;color:var(--txt);opacity:.55;font-size:14px;text-align:center;cursor:pointer;line-height:1.9;}
#dropHint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:var(--txt);opacity:.45;font-size:14px;pointer-events:none;white-space:nowrap;}

/* ── 画面内オーバーレイUI ── */
#compareBtn{position:absolute;left:14px;bottom:14px;}
#compareBtn.hold{background:var(--accent);border-color:var(--accent);color:var(--bg);}
#transport{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);width:min(72%,560px);display:flex;align-items:center;gap:10px;background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:8px 12px;}
#playBtn{flex:0 0 auto;width:36px;height:32px;padding:0;color:var(--accent);}
#playBtn:hover{border-color:var(--accent);}
#scrub{position:relative;height:18px;flex:1;cursor:pointer;touch-action:none;}
#timeLabel{color:var(--txt);opacity:.7;font-size:14px;white-space:nowrap;flex:0 0 auto;}

/* ── パネル ── */
#panel{flex:0 0 300px;border:2px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:14px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;}
.pgroup{display:flex;flex-direction:column;gap:8px;}
.ptitle{color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.14em;}
#modes{display:flex;gap:6px;}
#presets{display:flex;gap:6px;flex-wrap:wrap;}

/* スライダー */
#sliders{display:flex;flex-direction:column;gap:8px;}
.srow{cursor:pointer;touch-action:none;}
.shead{display:flex;align-items:center;font-size:14px;margin-bottom:4px;}
.slabel{color:var(--txt);}
.sval{color:var(--accent);margin-left:auto;}
.strack{position:relative;height:18px;}
.sbar{position:absolute;left:0;right:0;top:7px;height:4px;border-radius:2px;background:var(--border);}
.sfill{position:absolute;left:0;top:7px;height:4px;border-radius:2px;background:var(--accent);}
.sknob{position:absolute;top:2px;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);margin-left:-7px;}
#gachaBtn{margin-left:8px;color:var(--accent);font-size:11px;padding:3px 8px;}
#gachaBtn:hover{border-color:var(--accent);color:var(--accent);}

.bgrow{display:flex;align-items:center;gap:8px;}

/* ブラシマスク */
#brushSection{display:flex;flex-direction:column;gap:8px;}
.brushHead{display:flex;justify-content:space-between;align-items:center;}
#brushToggle{width:30px;height:30px;padding:0;font-size:13px;}
#brushControls{display:flex;flex-direction:column;gap:10px;}
.btargets{display:flex;gap:4px;flex-wrap:wrap;}
.btar{font-size:11px;padding:5px 9px;}
.btn-mask-tar{background:var(--panel);color:var(--txt);border-color:var(--border);}
.btn-mask-tar:hover{border-color:var(--sub);color:var(--sub);}
.btn-mask-tar.on{background:var(--sub);border-color:var(--sub);color:#fff;font-weight:bold;}
.brushRow{display:flex;gap:6px;flex-wrap:wrap;}
.brushRow .btn{flex:1;min-width:0;}

#videoExports{display:flex;flex-direction:column;gap:8px;}
.fpsrow{display:flex;align-items:center;gap:8px;}
.fpsrow .ptitle{flex:0 0 auto;}
.exportCol{display:flex;flex-direction:column;gap:8px;}
.exportCol .btn{width:100%;padding:10px;}

#status{color:var(--txt);opacity:.6;font-size:14px;min-height:18px;line-height:1.5;}
.projRow{display:flex;gap:6px;}
.projRow .btn{flex:1;}

/* ── 情報モーダル ── */
#infoOverlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;z-index:10;}
#infoBox{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);width:90%;max-width:520px;padding:24px;position:relative;}
#infoBox h2{color:var(--accent);font-size:20px;margin-bottom:14px;}
#infoBox p{color:var(--txt);opacity:.75;font-size:14px;line-height:1.9;}
#infoBox .ver{color:var(--txt);opacity:.45;font-size:14px;margin-top:14px;}
#infoClose{position:absolute;top:12px;right:12px;width:30px;height:30px;padding:0;}
