:root{
  --bg:#0b1220;
  --card:#111a2d;
  --muted:#93a4c7;
  --text:#eaf1ff;
  --line:rgba(255,255,255,.08);
  --btn:#2563eb;
  --btn2:#0ea5e9;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans Thai", "Anuphan", sans-serif;
  background:linear-gradient(180deg,#0b1220,#070b14);
  color:var(--text);
}
.wrap{max-width:1180px;margin:0 auto;padding:18px}
.topbar{
  display:flex;justify-content:space-between;gap:14px;align-items:flex-start;
  padding:16px 18px;border:1px solid var(--line);border-radius:18px;
  background:rgba(17,26,45,.75);backdrop-filter: blur(10px);
}
.title{font-size:20px;font-weight:800;letter-spacing:.2px}
.sub{font-size:13px;color:var(--muted);margin-top:4px}
.limits{font-size:12px;color:var(--muted);padding-top:4px}
.panel{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}
.card{
  background:rgba(17,26,45,.75);
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  box-shadow: 0 12px 30px rgba(0,0,0,.25);
}
h2{margin:0 0 10px 0;font-size:16px}
.small{font-size:12px}
.muted{color:var(--muted)}
.badge{
  display:inline-block;padding:4px 10px;border-radius:999px;
  background:rgba(14,165,233,.14);border:1px solid rgba(14,165,233,.35);
  color:#bfe9ff;font-weight:700;font-size:12px;
}
.grid{
  display:grid;grid-template-columns:repeat(6,1fr);
  gap:10px;
}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
input,select,textarea{
  width:100%;
  padding:10px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(6,10,20,.55);
  color:var(--text);
  outline:none;
}
textarea{resize:vertical}
.span2{grid-column:span 2}
.row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:12px}
.row-top{margin-top:0; margin-bottom:10px; align-items:flex-end}
.upload{flex:1}
.hint{font-size:12px;color:var(--muted);margin-top:6px}
.actions{min-width:320px}
button{
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:800;
  color:var(--text);
  background:rgba(255,255,255,.06);
}
button.primary{background:linear-gradient(90deg,var(--btn),var(--btn2));border:none}
button.ghost{background:rgba(255,255,255,.06)}
button:disabled{opacity:.45;cursor:not-allowed}
.msg{margin-top:10px;font-size:13px;color:var(--muted);min-height:18px}
.editor{display:grid;grid-template-columns:220px 1fr 560px;gap:14px;align-items:start}
.previewBox{display:flex;flex-direction:column;gap:8px}
.controls{display:flex;flex-direction:column;gap:10px}
.ctrlRow{display:flex;gap:10px;align-items:center}
.firstPreview{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
canvas{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:14px}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.thumb{border:1px solid rgba(255,255,255,.10);border-radius:14px;overflow:hidden;background:rgba(6,10,20,.45)}
.thumb img{width:100%;display:block;aspect-ratio:1/1;object-fit:cover}
.thumb .cap{padding:8px 10px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1100px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .span2{grid-column:span 2}
  .editor{grid-template-columns:1fr}
  .actions{min-width:auto}
}
