
body{margin:0;background:#050805;color:#f4f6ef;font-family:Inter,system-ui,sans-serif}.app{display:grid;grid-template-columns:64px 1fr;min-height:100vh}.rail{background:#060a06;border-right:1px solid #172017;padding:16px 8px}.logo{color:#9dff35;font-weight:900;text-align:center;margin-bottom:18px}.nav button{width:42px;height:42px;margin:8px auto;display:block;border:0;border-radius:9px;background:transparent;color:#a8b2a3;cursor:pointer}.nav button.active,.nav button:hover{background:#9dff35;color:#071007}.main{padding:34px}.hero{margin:-34px -34px 24px;padding:64px 34px 24px;border-bottom:1px solid #172017}.hero h1{font-family:Georgia,serif;font-size:58px;font-weight:400;letter-spacing:-.05em;margin:0}.hero span{color:#9dff35;font-style:italic}.muted,.hero p{color:#969d91}.stats{display:flex;gap:18px;flex-wrap:wrap;font-family:ui-monospace,monospace;color:#969d91}.stats strong{color:#f4f6ef}.section-head{display:flex;justify-content:space-between;align-items:end;margin:0 0 14px}.section-head h2{font-family:ui-monospace,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.22em;margin:0}.patch-head{margin:0 0 14px}.patch-head h2{font-family:ui-monospace,monospace;font-size:20px;text-transform:uppercase;letter-spacing:.16em;margin:0 0 8px}.patch-head p{margin:0;font-family:ui-monospace,monospace;font-size:12px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.btn{height:32px;border:1px solid #344034;border-radius:6px;background:#172017;color:#9dff35;padding:0 12px;font-weight:800;cursor:pointer}.secondary{color:#d8ddd4;background:transparent}.danger{color:#ff786f;border-color:#57302d}input,select,textarea{border:1px solid #2a332a;border-radius:7px;background:#111711;color:#d9ded4;padding:0 10px}input,select{height:34px}textarea{min-height:70px;padding:10px}.search{width:360px}.editor{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;border:1px solid #222b22;border-radius:8px;background:#090e09;padding:16px;margin-bottom:18px}.edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.edit-grid label{display:grid;gap:5px;color:#969d91;font-size:12px}.edit-grid .wide{grid-column:1/-1}.table-wrap{overflow:auto;border:1px solid #222b22;border-radius:8px;background:#090e09}table{width:100%;border-collapse:collapse;min-width:900px}th,td{border-bottom:1px solid #1a221a;padding:10px;text-align:left;font-size:13px;vertical-align:top}th{font-family:ui-monospace,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#7d8879}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#1e241e;border:1px solid #303a30;font-size:12px}.long{background:#9dff35;color:#071007}.short{background:#f7d719;color:#111}.dyn{background:#57c2ff;color:#061018}.fx{background:#a487ff;color:#0e0920}.xml{white-space:pre;overflow:auto;max-height:520px;background:#030603;border:1px solid #222b22;border-radius:8px;padding:16px;font-size:12px}.drag-list{display:grid;gap:8px}.drag-card{display:grid;grid-template-columns:36px 1fr 110px 110px 120px;gap:8px;align-items:center;border:1px solid #263126;background:#0d130d;border-radius:8px;padding:10px}.drag-card.dragging{opacity:.45;border-color:#9dff35}.drag-handle{cursor:grab;display:grid;place-items:center;height:34px;border-radius:7px;background:#172017;color:#9dff35;font-weight:900}.drag-card input,.drag-card select{width:100%}.group-block{margin:16px 0}.group-title{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#969d91;margin:0 0 8px}.savebar{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;background:rgba(5,8,5,.92);backdrop-filter:blur(10px);border:1px solid #222b22;border-radius:8px;padding:12px;margin-top:18px}.dirty{color:#f7d719;font-family:ui-monospace,monospace;font-size:12px}@media(max-width:1000px){.app{display:block}.editor,.edit-grid{grid-template-columns:1fr}.hero h1{font-size:42px}.drag-card{grid-template-columns:32px 1fr}.drag-card>*{grid-column:auto}}

/* v1.6.22 nav labels */
.app{grid-template-columns:132px 1fr}.rail{min-width:132px}.rail .nav button{display:flex!important;align-items:center;justify-content:flex-start;gap:8px;width:100%;min-width:100px;padding:0 10px}.rail .nav button span{font-size:12px;font-weight:800}.rail .nav button .ico{width:18px;text-align:center}


/* v1.6.31 editor library cards */
.editor-library-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(230px,1fr));
  gap:12px;
  margin-top:16px;
}
.editor-library-card{
  border:1px solid #263426;
  background:#111811;
  border-radius:9px;
  padding:16px;
  min-height:160px;
  cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,background .12s ease;
}
.editor-library-card:hover{
  transform:translateY(-1px);
  border-color:#405440;
  background:#151f15;
}
.editor-library-meta{
  font-family:ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:10px;
  color:#879184;
  margin-bottom:10px;
}
.editor-library-card h3{
  font-size:15px;
  line-height:1.3;
  margin:0 0 8px;
  color:#f4f7f0;
}
.editor-library-code{
  font-family:ui-monospace,monospace;
  color:#9dff35;
  font-size:12px;
  margin-bottom:12px;
}
.editor-library-badges{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.badge.ok{
  background:#9dff35!important;
  color:#061006!important;
  border-color:#9dff35!important;
  font-weight:800;
}
.badge.player{
  background:#40aae8!important;
  color:#061018!important;
  border-color:#40aae8!important;
}
@media(max-width:1500px){.editor-library-grid{grid-template-columns:repeat(3,minmax(230px,1fr));}}
@media(max-width:1000px){.editor-library-grid{grid-template-columns:1fr;}}


/* v1.6.32 editor developer dropdown */
.toolbar .developer-select{
  min-width:220px;
  max-width:280px;
}

/* v1.6.41 arts compact rows + visible/editable keyswitches */
.group-block{max-width:980px;}
.drag-list{max-width:980px;}
.drag-card.art-row{grid-template-columns:32px minmax(240px,1fr) 92px 86px 86px 96px;gap:6px;padding:8px;}
.drag-card.art-row input,.drag-card.art-row select{height:30px;font-size:12px;}
.drag-card.art-row .btn{height:30px;padding:0 9px;}
.art-key{text-transform:uppercase;font-family:ui-monospace,monospace;}
.patch-head h2{font-size:24px;letter-spacing:.12em;line-height:1.2;}
@media(max-width:1000px){.group-block,.drag-list{max-width:none}.drag-card.art-row{grid-template-columns:32px 1fr}.drag-card.art-row>*{grid-column:auto}}


/* v1.6.47 larger left menu icons retained + refined classic hero title */
.rail .nav button{height:48px;}
.rail .nav button .ico{
  width:28px;
  min-width:28px;
  font-size:24px;
  line-height:1;
  text-align:center;
}
.rail .nav button span:not(.ico){font-size:12px;}
.hero h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:64px;
  font-weight:400;
  letter-spacing:-.055em;
  line-height:1.02;
}
.hero h1 span{
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-weight:400;
  color:#9dff35;
  letter-spacing:-.035em;
}
@media(max-width:1000px){.hero h1{font-size:44px}}


/* v1.7.4 Folder Scan Import Preview */
.folder-drop{
  border:1px dashed rgba(157,255,53,.45);
  border-radius:18px;
  padding:22px;
  background:rgba(255,255,255,.035);
  margin-bottom:16px;
}
.folder-drop.drag-over{
  border-color:#9dff35;
  background:rgba(157,255,53,.08);
}
.file-btn{position:relative;overflow:hidden;display:inline-flex;margin-top:8px;}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.import-stats{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 16px;}
.import-stats span{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);border-radius:999px;padding:7px 11px;color:var(--muted);}
.import-stats strong{color:var(--fg);}
.import-preview table{min-width:1260px;}
.import-preview input{width:100%;min-width:130px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:var(--fg);padding:7px 8px;}
.import-preview tr.dup{opacity:.62;}
.import-preview tr.warn td{background:rgba(255,190,80,.05);}
.import-preview .path-cell{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12px;}
.import-global{display:flex;gap:10px;align-items:end;flex-wrap:wrap;border:1px solid rgba(255,255,255,.12);background:rgba(157,255,53,.04);border-radius:12px;padding:12px;margin:12px 0 14px;}
.import-global label{display:grid;gap:5px;color:var(--muted);font-size:12px;min-width:260px;}
.import-global input{width:100%;}
