:root{
  --bg:#070910;--panel:#0d111b;--panel2:#121824;--panel3:#181f2d;--line:#283248;
  --text:#f5f7fb;--sub:#b7c1d3;--mute:#77839a;--green:#37df82;--aqua:#4fdcff;
  --violet:#9276ff;--gold:#f7c95c;--red:#ff7079;--shadow:0 24px 70px rgba(0,0,0,.42)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% -20%,#151d34 0,#080b13 34%,#05070c 70%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}code{font-family:"SFMono-Regular",Consolas,monospace}.hidden{display:none!important}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--aqua);text-transform:uppercase}.panel{background:linear-gradient(180deg,rgba(17,22,34,.97),rgba(8,11,18,.97));border:1px solid rgba(72,84,116,.42);border-radius:20px;box-shadow:var(--shadow)}
.topbar{height:76px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(74,87,119,.28);background:rgba(7,9,15,.86);backdrop-filter:blur(18px);position:sticky;top:0;z-index:50}.brand-block{display:flex;align-items:center;gap:12px}.brand-mark{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;font-weight:950;letter-spacing:-.08em;background:linear-gradient(135deg,var(--aqua),var(--violet));color:#05070d;box-shadow:0 12px 34px rgba(90,121,255,.2)}.brand-mark.small{width:42px;height:42px;border-radius:13px}.brand-title{font-weight:900;font-size:18px}.brand-title span{font-size:9px;color:var(--green);vertical-align:top;margin-left:5px}.top-actions{display:flex;align-items:center;gap:9px}.save-state{font-size:9px;font-weight:800;color:var(--green);border:1px solid rgba(55,223,130,.25);padding:8px 11px;border-radius:999px;background:rgba(55,223,130,.08)}
.studio-grid{display:grid;grid-template-columns:300px minmax(620px,1fr) 280px;gap:14px;padding:14px;max-width:1800px;margin:0 auto}.left-panel,.right-panel{padding:18px;align-self:start;position:sticky;top:90px;max-height:calc(100vh - 104px);overflow:auto}.main-panel{display:grid;gap:14px}.waveform-panel,.chart-panel,.preview-panel{padding:18px}.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.section-title-row.compact{align-items:center}.section-title-row h2{margin:3px 0 0;font-size:19px}.status-pill{font-size:9px;font-weight:900;letter-spacing:.08em;padding:7px 10px;border-radius:999px;background:rgba(55,223,130,.1);color:var(--green);border:1px solid rgba(55,223,130,.25)}.status-pill.neutral{color:var(--mute);background:rgba(127,139,162,.08);border-color:rgba(127,139,162,.18)}
button,.button-link{border:0;border-radius:11px;padding:10px 13px;font-size:11px;font-weight:800;text-decoration:none;text-align:center;transition:.15s ease}.primary{background:linear-gradient(135deg,#58f39d,#2bd174);color:#061009;box-shadow:0 8px 22px rgba(46,213,119,.14)}.primary:hover{transform:translateY(-1px)}.ghost{background:linear-gradient(180deg,#20283a,#151b29);color:var(--text);border:1px solid rgba(81,94,127,.42)}.danger-soft{background:rgba(255,112,121,.09);color:var(--red);border:1px solid rgba(255,112,121,.2)}.wide{width:100%;margin-top:8px}.round-btn{width:38px;height:38px;padding:0;border-radius:50%;display:grid;place-items:center}.transport{display:flex;gap:10px;align-items:center;color:var(--sub);font-variant-numeric:tabular-nums;font-size:11px}
.dropzone{border:1px dashed rgba(91,109,151,.6);border-radius:17px;min-height:170px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:16px;background:linear-gradient(180deg,rgba(23,29,45,.7),rgba(12,15,24,.7));transition:.18s}.dropzone.drag{border-color:var(--aqua);background:rgba(79,220,255,.06)}.dropzone strong{font-size:14px;margin-top:7px}.dropzone span,.dropzone em{font-size:10px;color:var(--mute);margin-top:5px;font-style:normal}.dropzone em{color:var(--green)}.drop-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;font-size:28px;background:rgba(79,220,255,.08);color:var(--aqua);border:1px solid rgba(79,220,255,.18)}.audio-meta{margin-top:12px;padding:12px;background:rgba(23,29,45,.55);border-radius:13px}.file-name{font-weight:800;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.meta-row{display:flex;justify-content:space-between;color:var(--mute);font-size:10px;margin-top:5px}.meta-row strong{color:var(--sub)}.section-separator{height:1px;background:rgba(75,88,119,.26);margin:18px 0}
.field-grid{display:grid;gap:10px;margin-top:10px}.field-grid label,.timing-controls label,.chart-toolbar label{font-size:9px;font-weight:800;color:var(--mute);letter-spacing:.03em}.field-grid input,.field-grid select,.timing-controls input,.chart-toolbar input,.chart-toolbar select{width:100%;margin-top:6px;padding:10px 11px;border-radius:10px;background:#101621;color:var(--text);border:1px solid rgba(76,89,120,.48);outline:none}.field-grid input:focus,.timing-controls input:focus,.chart-toolbar input:focus{border-color:rgba(79,220,255,.6)}.analysis-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.metric{padding:10px;border-radius:12px;background:#111723;border:1px solid rgba(71,83,112,.35)}.metric span{display:block;font-size:8px;color:var(--mute);font-weight:800}.metric strong{display:block;margin-top:4px;font-size:14px}.mini-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px}.mini-actions button{padding:8px 4px;font-size:9px}
.wave-wrap{position:relative;height:260px;border-radius:15px;overflow:hidden;background:linear-gradient(180deg,#0c111b,#080b12);border:1px solid rgba(64,76,105,.4)}#waveCanvas{width:100%;height:100%;display:block;cursor:crosshair}.playhead{position:absolute;top:0;bottom:0;width:1px;background:var(--green);box-shadow:0 0 12px rgba(55,223,130,.8);left:0;pointer-events:none}.timing-controls{display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;gap:9px;margin-top:10px}.timing-controls input[type=range]{padding:0;height:36px}.calibration-hint{font-size:10px;color:var(--mute);margin-top:10px;padding:10px 12px;background:rgba(79,220,255,.04);border-left:2px solid rgba(79,220,255,.48);border-radius:8px}
.difficulty-tabs{display:flex;gap:5px}.difficulty-tabs button{background:#141a27;color:var(--mute);border:1px solid rgba(69,82,111,.34);padding:8px 11px}.difficulty-tabs button.active{background:rgba(79,220,255,.08);border-color:rgba(79,220,255,.35);color:var(--aqua)}.chart-toolbar{display:grid;grid-template-columns:1.2fr 90px 90px auto auto auto;gap:8px;align-items:end;margin-bottom:10px}.chart-toolbar input[type=range]{padding:0;height:34px}.chart-canvas-wrap{overflow-x:auto;border:1px solid rgba(65,77,106,.4);border-radius:14px;background:#090d14}.chart-canvas-wrap canvas{height:320px;min-width:100%;display:block;cursor:crosshair}.editor-help{font-size:9px;color:var(--mute);margin-top:8px}
.preview-stage{height:420px;position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(67,80,111,.36);background:radial-gradient(circle at 50% 80%,rgba(68,84,139,.28),transparent 42%),linear-gradient(180deg,#0a0f19 0,#0c1120 60%,#080a10 100%)}.preview-ambient{position:absolute;border-radius:999px;filter:blur(60px);opacity:.25}.preview-ambient.one{width:280px;height:280px;background:#4fdcff;left:10%;top:10%}.preview-ambient.two{width:320px;height:320px;background:#9276ff;right:5%;bottom:-15%}.preview-label{position:absolute;top:16px;left:18px;color:rgba(214,223,240,.55);font-size:8px;font-weight:900;letter-spacing:.13em}.preview-lanes{position:absolute;left:50%;transform:translateX(-50%);width:560px;top:0;bottom:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.preview-lane{position:relative}.receptor{position:absolute;bottom:12px;left:50%;width:82px;height:82px;transform:translateX(-50%)}.receptor img,.falling-note img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 10px rgba(255,255,255,.18))}.preview-lane[data-dir=LEFT] img{transform:rotate(-90deg)}.preview-lane[data-dir=DOWN] img{transform:rotate(180deg)}.preview-lane[data-dir=RIGHT] img{transform:rotate(90deg)}.falling-note{position:absolute;width:70px;height:70px;left:50%;margin-left:-35px;will-change:transform,top;pointer-events:none}.falling-note.left img{transform:rotate(-90deg)}.falling-note.down img{transform:rotate(180deg)}.falling-note.right img{transform:rotate(90deg)}.falling-note.left img,.falling-note.right img{filter:sepia(1) saturate(20) hue-rotate(315deg) drop-shadow(0 0 12px rgba(255,62,62,.6))}.falling-note.up img,.falling-note.down img{filter:sepia(1) saturate(15) hue-rotate(165deg) drop-shadow(0 0 12px rgba(60,132,255,.6))}.preview-judgement{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font-weight:950;font-size:30px;text-shadow:0 4px 24px #000;color:var(--text)}.preview-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.preview-actions span{margin-left:auto;color:var(--mute);font-size:10px}
.validation-list{display:grid;gap:8px;margin-bottom:14px}.validation-list div{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--mute)}.validation-list div.done{color:var(--sub)}.dot{width:7px;height:7px;border-radius:50%;background:#3b4354}.done .dot{background:var(--green);box-shadow:0 0 8px rgba(55,223,130,.4)}.export-summary{display:grid;gap:1px;border-radius:13px;overflow:hidden;margin:12px 0}.export-summary div{display:flex;justify-content:space-between;padding:10px 11px;background:#111722;font-size:10px}.export-summary span{color:var(--mute)}.export-summary strong{max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rule-card{display:grid;gap:5px;font-size:10px;color:var(--sub);padding:12px;border-radius:12px;background:#111722}.rule-card span{color:var(--mute);margin-bottom:6px}.api-code{display:block;padding:10px;background:#0a0e16;border:1px solid rgba(64,76,105,.4);border-radius:9px;color:var(--aqua);font-size:9px;overflow:auto}.small-copy{font-size:9px;color:var(--mute);line-height:1.5}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);padding:34px;border-radius:25px;background:linear-gradient(180deg,#121827,#080b12);border:1px solid rgba(81,95,130,.44);box-shadow:var(--shadow)}.login-card .brand-mark{margin-bottom:20px}.login-card h1{font-size:29px;margin:6px 0 8px}.login-card p{color:var(--sub);font-size:12px;line-height:1.5}.login-card label{font-size:9px;color:var(--mute);font-weight:800}.login-card input{width:100%;margin:7px 0 6px;background:#0d121d;color:var(--text);border:1px solid rgba(76,89,120,.48);padding:13px;border-radius:11px}.login-card small{display:block;margin-top:16px;color:var(--mute);font-size:9px}.login-error{padding:9px 11px;background:rgba(255,112,121,.08);color:var(--red);border-radius:9px;font-size:10px;margin-bottom:12px}
.modal{position:fixed;inset:0;z-index:100}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.64);backdrop-filter:blur(8px)}.modal-card{position:absolute;width:min(720px,calc(100% - 28px));max-height:76vh;overflow:auto;left:50%;top:50%;transform:translate(-50%,-50%);padding:20px;border-radius:20px;background:#0d111b;border:1px solid rgba(80,94,128,.46);box-shadow:var(--shadow)}.library-list{display:grid;gap:8px}.library-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:13px;border-radius:12px;background:#121824;border:1px solid rgba(70,82,112,.34)}.library-item strong{font-size:12px}.library-item small{display:block;color:var(--mute);font-size:9px;margin-top:4px}.library-item .right{text-align:right}.library-item button{margin-top:7px;padding:7px 10px}.toast{position:fixed;z-index:200;top:18px;left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 30px));padding:11px 14px;border-radius:13px;background:#121824;border:1px solid rgba(78,92,124,.46);box-shadow:var(--shadow);display:flex;gap:10px;align-items:center}.toast strong{font-size:9px;color:var(--green)}.toast span{font-size:10px;color:var(--sub)}
@media(max-width:1250px){.studio-grid{grid-template-columns:260px minmax(560px,1fr)}.right-panel{position:static;grid-column:1/-1;max-height:none}.left-panel{top:88px}.chart-toolbar{grid-template-columns:1fr 90px 90px repeat(3,auto)}}
@media(max-width:900px){.topbar{position:static}.studio-grid{grid-template-columns:1fr;padding:8px}.left-panel,.right-panel{position:static;max-height:none}.main-panel{min-width:0}.timing-controls{grid-template-columns:1fr 1fr}.chart-toolbar{grid-template-columns:1fr 1fr 1fr}.difficulty-tabs{overflow:auto}.preview-lanes{width:92%}.left-panel{order:0}.main-panel{order:1}.right-panel{order:2}.top-actions .save-state{display:none}}
@media(max-width:600px){.topbar{height:auto;padding:12px}.brand-title{font-size:15px}.top-actions{gap:5px}.top-actions button,.button-link{padding:8px;font-size:9px}.analysis-cards{grid-template-columns:1fr}.chart-toolbar{grid-template-columns:1fr 1fr}.preview-stage{height:360px}.preview-lanes{gap:2px}.receptor{width:64px;height:64px}.section-title-row.compact{align-items:flex-start;flex-direction:column}.timing-controls{grid-template-columns:1fr}.studio-grid{display:block}.panel{margin-bottom:8px}}


/* =========================================================
   V1.1 — Collapsible Output / Website Library clarification
   ========================================================= */
.output-header{align-items:center}
.output-close{
  flex:0 0 auto;
  width:30px;
  height:30px;
  font-size:18px;
  line-height:1;
  color:var(--sub);
}
.output-close:hover{color:var(--text);border-color:rgba(79,220,255,.44)}
.output-toggle.active{
  border-color:rgba(79,220,255,.35);
  color:var(--aqua);
  background:rgba(79,220,255,.06);
}
.storage-card{
  padding:12px;
  border-radius:13px;
  background:#111722;
  border:1px solid rgba(67,80,111,.28);
}
.storage-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:9px;
  color:var(--mute);
  margin-bottom:8px;
}
.storage-row strong{color:var(--text);font-size:9px}
.storage-card code{
  display:block;
  padding:8px 9px;
  border-radius:9px;
  background:#090d14;
  border:1px solid rgba(64,76,105,.34);
  color:var(--aqua);
  font-size:9px;
  overflow:auto;
}
.storage-card p{
  margin:9px 0 0;
  color:var(--mute);
  font-size:9px;
  line-height:1.55;
}
.storage-card b{color:var(--sub)}

.output-collapsed .right-panel{display:none}
.output-collapsed .studio-grid{
  grid-template-columns:300px minmax(620px,1fr);
  max-width:1540px;
}

@media(max-width:1250px){
  .output-collapsed .studio-grid{
    grid-template-columns:260px minmax(560px,1fr);
  }
}
@media(max-width:900px){
  .output-collapsed .studio-grid{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V1.2 — Progressive 2:30 Battle
   ========================================================= */
.battle-mode-badge{
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:999px;
  border:1px solid rgba(79,220,255,.28);
  background:rgba(79,220,255,.055);
  color:var(--aqua);
  font-size:9px;
  font-weight:800;
  letter-spacing:.09em;
}
.live-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--green);
  box-shadow:0 0 14px rgba(55,223,130,.62);
}
.progressive-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:14px 16px;
  margin-bottom:12px;
  border:1px solid rgba(66,82,114,.30);
  border-radius:15px;
  background:linear-gradient(120deg,rgba(16,22,35,.92),rgba(10,14,23,.82));
}
.progressive-copy{display:flex;flex-direction:column;gap:4px}
.progressive-copy strong{font-size:13px;color:var(--text)}
.progressive-copy span{font-size:9px;color:var(--mute)}
.battle-duration-chip{
  min-width:94px;
  padding:10px 12px;
  text-align:center;
  border-radius:13px;
  border:1px solid rgba(55,223,130,.30);
  background:rgba(55,223,130,.06);
}
.battle-duration-chip small{
  display:block;
  color:var(--mute);
  font-size:7px;
  letter-spacing:.1em;
  margin-bottom:3px;
}
.battle-duration-chip strong{font-size:17px;color:var(--green)}
.phase-track{
  display:flex;
  min-height:58px;
  margin:0 0 13px;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(64,78,108,.32);
  background:#0b1019;
}
.phase{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:70px;
  padding:8px 10px;
  border-right:1px solid rgba(255,255,255,.06);
}
.phase:last-child{border-right:0}
.phase strong{font-size:8px;letter-spacing:.08em;color:var(--text)}
.phase span{font-size:7px;color:var(--mute);margin-top:3px}
.phase.easy{background:rgba(55,223,130,.05)}
.phase.normal{background:rgba(79,220,255,.06)}
.phase.hard{background:rgba(111,130,255,.07)}
.phase.expert{background:rgba(174,91,255,.08)}
.phase.finale{background:rgba(247,201,92,.10)}
.progressive-toolbar{grid-template-columns:1.1fr .6fr .7fr auto auto}
.battle-length-warning{
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:11px;
  border:1px solid rgba(55,223,130,.25);
  background:rgba(55,223,130,.05);
  color:var(--sub);
  font-size:9px;
  line-height:1.5;
}
.battle-length-warning.bad{
  border-color:rgba(255,96,108,.30);
  background:rgba(255,96,108,.06);
  color:#ff9ca4;
}
@media(max-width:900px){
  .phase-track{overflow-x:auto}
  .phase{min-width:105px;flex:none!important}
  .progressive-toolbar{grid-template-columns:1fr 1fr}
  .progressive-card{align-items:flex-start}
}


/* V1.3 balanced curve */
.phase.easy strong{color:#78eab1}
.phase.normal strong{color:#8cddff}
.phase.hard strong{color:#a9b6ff}
.phase.expert strong{color:#d2a8ff}
.phase.finale strong{color:#f7d67c}
