/* ----- Custom fonts (must match the font-family names used in buildSvg) ----- */
@font-face { font-family:"Anton";             src:url("fonts/Anton-Regular.ttf") format("truetype");        font-display:swap; }
@font-face { font-family:"Bebas Neue";        src:url("fonts/BebasNeue-Regular.ttf") format("truetype");    font-display:swap; }
@font-face { font-family:"Bangers";           src:url("fonts/Bangers-Regular.ttf") format("truetype");      font-display:swap; }
@font-face { font-family:"Russo One";         src:url("fonts/RussoOne-Regular.ttf") format("truetype");     font-display:swap; }
@font-face { font-family:"Cinzel";            src:url("fonts/Cinzel-Regular.ttf") format("truetype");       font-display:swap; }
@font-face { font-family:"Cinzel Decorative"; src:url("fonts/CinzelDecorative-Bold.ttf") format("truetype");font-display:swap; }
@font-face { font-family:"Metamorphous";      src:url("fonts/Metamorphous-Regular.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Pirata One";        src:url("fonts/PirataOne-Regular.ttf") format("truetype");    font-display:swap; }

:root{
  --bg:#1f2227; --panel:#272b32; --panel2:#2f343c; --border:#3a4049;
  --text:#e6e8eb; --muted:#9aa0a8; --accent:#d4a657; --accent2:#a87a2c;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,sans-serif}
.app{display:grid;grid-template-columns:380px 1fr;height:100vh}
.controls{background:var(--panel);overflow-y:auto;padding:14px 16px;border-right:1px solid var(--border)}
.preview{display:flex;align-items:center;justify-content:center;padding:20px;background:#15171a;flex-direction:column;gap:14px}
h2{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:18px 0 6px}
h2:first-child{margin-top:0}
label{display:block;font-size:11px;color:var(--muted);margin:8px 0 3px}
input[type=text],input[type=number],textarea,select{
  width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--border);
  border-radius:5px;padding:6px 8px;font:13px/1.3 system-ui,sans-serif
}
textarea{min-height:60px;resize:vertical;font-family:monospace}
input[type=range]{width:100%;accent-color:var(--accent)}
.row{display:flex;gap:8px}
.row>*{flex:1}
.platz-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
.platz-row button{
  background:var(--panel2);color:var(--text);border:1px solid var(--border);
  border-radius:5px;padding:8px;cursor:pointer;font-weight:600
}
.platz-row button.active{background:var(--accent);color:#1a1a1a;border-color:var(--accent2)}
.slider-row{display:grid;grid-template-columns:1fr 50px;gap:8px;align-items:center}
.slider-row span{font-size:11px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:6px;max-height:240px;overflow-y:auto;padding:4px;background:#15171a;border-radius:4px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;cursor:pointer;border:2px solid transparent;border-radius:3px;display:block}
.gallery img.selected{border-color:var(--accent)}
.gallery img:hover{opacity:.85}
.gallery .empty{grid-column:1/-1;color:var(--muted);font-size:11px;padding:10px;text-align:center}
.tabs{display:flex;gap:4px;margin-bottom:6px}
.tab{flex:1;background:var(--panel2);color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:5px;cursor:pointer;font-size:12px;text-align:center}
.tab.active{background:var(--accent);color:#1a1a1a;border-color:var(--accent2)}
.upload-zone{border:2px dashed var(--border);border-radius:6px;padding:14px;text-align:center;color:var(--muted);cursor:pointer;margin-top:6px}
.upload-zone:hover{border-color:var(--accent);color:var(--accent)}
.preview-stage{background:#0a0a0a;padding:14px;border-radius:8px;box-shadow:0 6px 28px #000a}
.preview-stage svg, .preview-stage img{display:block;max-height:78vh;height:auto;width:auto}
.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.btn{background:var(--accent);color:#1a1a1a;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;font-weight:700}
.btn.secondary{background:var(--panel2);color:var(--text);border:1px solid var(--border)}
.btn:hover{filter:brightness(1.1)}
.btn:disabled{opacity:.5;cursor:default;filter:none}
.meta{color:var(--muted);font-size:12px;text-align:center}
details>summary{cursor:pointer;margin-top:8px;color:var(--accent);font-size:12px;letter-spacing:.05em;text-transform:uppercase;user-select:none}
details[open]>summary{margin-bottom:6px}
