:root{--bg1:#667eea;--bg2:#764ba2;--card:#ffffff;--muted:#6b7280;--fg:#111827;--b:#e5e7eb;--pri:#2563eb}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,'Noto Sans KR',sans-serif;background:linear-gradient(135deg,var(--bg1),var(--bg2));min-height:100vh;color:var(--fg)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.75);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,0.06)}
.headbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:inherit}
.logo{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-weight:900}
.brandtitle{display:block;font-weight:900}
.brandsub{display:block;font-size:12px;color:var(--muted)}
.nav{display:none;gap:14px}
.nav a{color:#111827;text-decoration:none;font-weight:800;font-size:13px;opacity:.85}
.nav a:hover{opacity:1}
.actions{display:flex;align-items:center;gap:8px}
@media (min-width: 860px){.nav{display:flex}}

.card{margin:16px auto;background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);border-radius:20px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,0.25)}
.cardHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.title{font-weight:900;font-size:22px;color:var(--fg)}
.sub{font-size:12px;color:var(--muted)}
.btn{border:0;border-radius:14px;padding:12px 14px;font-weight:900;cursor:pointer}
.btn.primary{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}
.btn.ghost{background:#f3f4f6;color:#111827}
.tabs{display:flex;gap:8px;margin:12px 0}
.tab{flex:1;border:2px solid var(--b);background:#fff;border-radius:14px;padding:12px;font-weight:900;cursor:pointer}
.tab.active{border-color:var(--pri);box-shadow:0 0 0 4px rgba(37,99,235,0.12)}
.grid{display:grid;gap:12px}
@media (min-width: 860px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}}
label{font-size:12px;font-weight:900;color:#374151}
textarea,select,input[type="text"]{width:100%;border:2px solid var(--b);border-radius:14px;padding:12px;font-size:14px;outline:none;background:#fff}
textarea:focus,select:focus,input[type="text"]:focus{border-color:var(--pri);box-shadow:0 0 0 4px rgba(37,99,235,0.12)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.muted{color:var(--muted);font-size:12px}
.muted.small{font-size:11px}
.muted.tiny{font-size:10px;opacity:.85}
.panel{display:none}
.panel.active{display:block}
.preview{border:2px dashed var(--b);border-radius:18px;padding:14px;background:#fff}
.imgwrap{position:relative}
#layoutOverlay{position:absolute;inset:0;pointer-events:none;z-index:10}
.overlayBox{position:absolute;background:rgba(255,255,255,0.70);border:1px solid rgba(0,0,0,0.18);border-radius:8px;padding:2px 4px;overflow:hidden;font-size:12px;line-height:1.2;color:#111827}
.result{white-space:pre-wrap;background:#f9fafb;border:2px solid var(--b);border-radius:14px;padding:12px;min-height:120px;color:#111827}
.hide{display:none}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:2px solid var(--b);background:#fff;font-size:12px;font-weight:900;color:#111827}
.cards{margin-bottom:8px}
.miniCard{display:block;text-decoration:none;color:inherit;background:rgba(255,255,255,0.95);border:2px solid rgba(255,255,255,0.3);border-radius:18px;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,0.14)}
.miniCard:hover{transform:translateY(-1px)}
.miniTitle{font-weight:900;margin-bottom:6px}

.foot{padding:18px 16px 24px}
.footgrid{display:grid;gap:12px}
.footLinks{display:flex;gap:12px;flex-wrap:wrap}
.footLinks a{color:#111827;text-decoration:none;font-weight:900;font-size:12px;opacity:.9}
.footLinks a:hover{opacity:1}
.footTitle{font-weight:900;margin-bottom:6px}
.adwrap{margin:10px auto 24px;background:rgba(255,255,255,0.92);border-radius:18px;padding:10px;border:1px solid rgba(0,0,0,0.05)}
@media (min-width: 860px){.footgrid{grid-template-columns:1fr auto;align-items:center}}
