  :root{
    --bg:#0f1117; --panel:#171a23; --panel2:#1e222e; --line:#2a2f3d;
    --text:#e7e9ee; --muted:#9aa1b1; --accent:#6c8cff; --accent2:#8b5cf6;
    --ok:#3ecf8e; --radius:12px;
  }
  *{box-sizing:border-box}
  body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans KR",sans-serif;
    background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
  header{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;
    border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:10}
  header h1{font-size:16px;margin:0;font-weight:700;letter-spacing:-.3px}
  header h1 span{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
  .badge{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:3px 8px;border-radius:20px}
  .mode-switch{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}
  .mode-switch input{accent-color:var(--accent)}
  .adv{display:none}
  body.adv-on .adv{display:block}
  .wrap{display:grid;grid-template-columns:380px 1fr;gap:0;height:calc(100vh - 53px)}
  .controls{overflow-y:auto;padding:18px;border-right:1px solid var(--line);background:var(--panel)}
  .stage{overflow:auto;padding:30px;display:flex;flex-direction:column;align-items:center;gap:16px;background:
    radial-gradient(circle at 20% 0%,#1a1d28 0,transparent 50%),var(--bg)}
  .card{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:14px}
  .card h2{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 12px}
  label{display:block;font-size:12px;color:var(--muted);margin:10px 0 5px}
  input[type=text],textarea,select{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);
    padding:9px 11px;border-radius:9px;font-size:13px;font-family:inherit;outline:none}
  input[type=text]:focus,textarea:focus,select:focus{border-color:var(--accent)}
  textarea{resize:vertical;min-height:60px}
  .keyfield{position:relative;display:flex;align-items:center;background:var(--bg);
    border:1px solid var(--line);border-radius:9px;transition:.15s;overflow:hidden}
  .keyfield:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(108,140,255,.18)}
  .keyfield.filled{border-color:rgba(62,207,142,.6)}
  .keyfield input{border:none!important;background:transparent!important;box-shadow:none!important;
    flex:1;padding:9px 11px;letter-spacing:.4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
  .keyfield input:focus{border:none!important}
  .kf-eye{flex:0 0 auto;background:transparent;border:none;border-left:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600;
    padding:0 11px;align-self:stretch;cursor:pointer;opacity:.8;transition:.15s}
  .kf-eye:hover{opacity:1;color:var(--text)}
  .kf-eye.on{color:var(--accent);opacity:1}
  .row{display:flex;gap:8px}
  .row > *{flex:1}
  button{cursor:pointer;border:none;border-radius:9px;font-size:13px;font-weight:600;font-family:inherit;
    padding:9px 12px;transition:.15s}
  .btn-primary{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#fff}
  .btn-primary:hover{filter:brightness(1.1)}
  .btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--line)}
  .btn-ghost:hover{border-color:var(--accent)}
  .btn-sm{padding:6px 10px;font-size:12px}
  .swatches{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .sw{width:26px;height:26px;border-radius:7px;cursor:pointer;border:2px solid transparent}
  .sw.active{border-color:#fff}
  .seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:9px;overflow:hidden}
  .seg button{flex:1;background:transparent;color:var(--muted);border-radius:0;font-weight:500}
  .seg button.active{background:var(--accent);color:#fff}
  .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .chip{background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:5px 11px;font-size:12px;cursor:pointer;color:var(--muted)}
  .chip:hover{border-color:var(--accent);color:var(--text)}
  .drop{border:2px dashed var(--line);border-radius:11px;padding:22px;text-align:center;color:var(--muted);cursor:pointer;transition:.15s}
  .drop:hover,.drop.over{border-color:var(--accent);color:var(--text);background:rgba(108,140,255,.05)}
  .ai-out{margin-top:10px;display:flex;flex-direction:column;gap:6px}
  .ai-line{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}
  .ai-line:hover{border-color:var(--accent)}
  .ai-line small{color:var(--muted);flex-shrink:0}
  .slider{width:100%;accent-color:var(--accent)}
  .hint{font-size:11px;color:var(--muted);margin-top:5px}
  canvas{border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5);max-height:78vh;width:auto}
  .thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
  .thumb{position:relative;width:54px;height:96px;border-radius:6px;overflow:hidden;border:2px solid var(--line);cursor:pointer;background:#000}
  .thumb.active{border-color:var(--accent)}
  .thumb img{width:100%;height:100%;object-fit:cover}
  .thumb-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:9px;color:var(--muted);line-height:1.2}
  .thumb .x{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.7);border-radius:50%;width:16px;height:16px;font-size:11px;line-height:16px;text-align:center;color:#fff}
  details summary{cursor:pointer;color:var(--muted);font-size:12px;padding:4px 0}
  .toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
  .size-tag{font-size:12px;color:var(--muted)}
  .tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
  .tpl{cursor:pointer;border:2px solid transparent;border-radius:9px;overflow:hidden;background:var(--bg);transition:.15s}
  .tpl:hover{transform:translateY(-2px)}
  .tpl.active{border-color:var(--accent)}
  .tpl-thumb{aspect-ratio:9/16;display:flex;flex-direction:column;padding:7px 6px;gap:3px;position:relative}
  .tpl-thumb.bottom{justify-content:flex-end}
  .tpl-bar{height:3px;border-radius:2px}
  .tpl-bar.w1{width:80%}
  .tpl-bar.w2{width:55%;opacity:.7}
  .tpl-phone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38%;height:46%;border-radius:5px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25)}
  .tpl-name{font-size:9.5px;color:var(--muted);text-align:center;padding:4px 2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .toggle{display:flex;align-items:center;gap:8px;margin-top:8px}
  .toggle input{accent-color:var(--accent)}
  ::-webkit-scrollbar{width:9px;height:9px}
  ::-webkit-scrollbar-thumb{background:#2a2f3d;border-radius:5px}
