/* Registration 공통 스타일 — 다크 네이비 사이드바 + 블루 포인트 */
@import url("https://cdn.jsdelivr.net/npm/@fontsource/nanum-myeongjo/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/nanum-pen-script/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/noto-sans-kr/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/noto-sans-kr/700.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/noto-serif-kr/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/noto-serif-kr/700.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/nanum-gothic/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/nanum-gothic/700.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/gowun-dodum/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/gowun-batang/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/gowun-batang/700.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-kr/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-kr/700.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/black-han-sans/index.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/do-hyeon/index.css");
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");
:root{
  --accent:#3B82F6; --bg:#F1F5F9; --navy:#2563EB; --navy2:#EAF2FF; --text:#1E293B; --muted:#64748B; --line:#E2E8F0; --card:#fff;
  --input-h:48px; --input-r:10px; --card-r:14px; --btn-r:10px; --fs:17px; --maxw:640px; --gap:36px;
  --ok:#16A34A; --warn:#D97706; --bad:#DC2626;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Pretendard Variable",Pretendard,-apple-system,"Segoe UI","Noto Sans KR",sans-serif;font-size:var(--fs);color:var(--text);background:var(--bg);line-height:1.55}
a{color:var(--accent)}
.hidden{display:none!important}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-r);padding:20px}
.input,select.input,textarea.input{width:100%;height:var(--input-h);border:1px solid #CBD5E1;border-radius:var(--input-r);padding:0 14px;font:inherit;background:#fff;color:var(--text)}
textarea.input{height:auto;min-height:calc(var(--input-h)*2);padding:10px 14px;resize:vertical}
 select.input{appearance:none;-webkit-appearance:none;padding-right:46px;cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 18px center/16px}
select.input:focus{background-color:#fff}
.input:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent)}
.input.err{border-color:var(--bad)}
.btn{height:var(--input-h);padding:0 20px;border:0;border-radius:var(--btn-r);background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.btn:disabled{opacity:.55;cursor:default}
.btn.ghost{background:#fff;color:var(--text);border:1px solid #CBD5E1}
.btn.danger{background:var(--bad)}
.btn.sm{height:38px;padding:0 14px;font-size:.9em;--btn-r:8px}
.muted{color:var(--muted)} .small{font-size:.88em}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.8em;font-weight:600;background:#E2E8F0;color:#334155}
.badge.접수{background:#DBEAFE;color:#1D4ED8}.badge.확정{background:#DCFCE7;color:#15803D}.badge.대기{background:#FEF3C7;color:#B45309}.badge.취소{background:#FEE2E2;color:#B91C1C}
.badge.open{background:#DCFCE7;color:#15803D}.badge.draft{background:#E2E8F0;color:#475569}.badge.closed{background:#FEE2E2;color:#B91C1C}.badge.upcoming{background:#FEF3C7;color:#B45309}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#fff;color:var(--text);border:1px solid #BFDBFE;box-shadow:0 8px 24px rgba(37,99,235,.18);padding:11px 18px;border-radius:10px;font-size:14px;z-index:99;max-width:90vw}
.toast.bad{background:var(--bad)}

/* 접수 페이지 */
.wrap{max-width:var(--maxw);margin:0 auto;padding:20px 16px 60px}
.hero{background:linear-gradient(135deg,var(--hero-bg,#2563EB),color-mix(in srgb,var(--hero-bg,#2563EB) 72%,#fff));color:var(--hero-fg,#fff);border-radius:var(--card-r);padding:26px 22px;margin-bottom:14px}
.hero h1{margin:0 0 8px;font-size:1.5em;line-height:1.3}
.hero .meta{color:inherit;opacity:.8;font-size:.9em;display:grid;gap:2px}
.desc{white-space:pre-wrap;color:#334155;font-size:.97em}
.field{margin-top:var(--gap,36px)}
.field>label:not(.opt),.field>.lbl{display:block;font-weight:600;margin-bottom:6px}
.req{color:var(--bad);margin-left:3px}
.help{font-size:.9em;color:var(--muted);margin:-2px 0 6px}
.errmsg{color:var(--bad);font-size:.9em;margin-top:4px}
.opt{display:flex;align-items:center;gap:10px;min-height:var(--input-h);padding:6px 14px;border:1px solid #CBD5E1;border-radius:var(--input-r);margin-bottom:8px;cursor:pointer;background:#fff}
.opt input[type=radio],.opt input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:0}
.opt:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,#fff)}
.opt .other{flex:1;min-width:0;height:34px;border:0;border-bottom:1px solid #CBD5E1;font:inherit;background:transparent;padding:0 4px}
.consent-box{white-space:pre-wrap;background:#F8FAFC;border:1px solid var(--line);border-radius:var(--input-r);padding:12px 14px;font-size:.92em;max-height:220px;overflow:auto;margin-bottom:8px;color:#334155}
.tabs{display:flex;gap:6px;margin:0 0 14px}
.tabs button{flex:1;height:40px;border:1px solid var(--line);background:#fff;border-radius:var(--btn-r);font:inherit;cursor:pointer}
.tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.done{text-align:center;padding:34px 10px}
.done .no{font-size:1.8em;font-weight:800;letter-spacing:.02em;color:var(--accent);margin:8px 0}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* 목록(첫 화면) */
.ev-list{display:grid;gap:12px}
.ev-item{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:var(--card-r);padding:16px 18px}
.ev-item:hover{border-color:var(--accent)}
.ev-item h3{margin:0 0 4px;font-size:1.05em}

/* 관리자/주관업체 레이아웃 */
.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.side{background:#fff;border-right:1px solid #DBEAFE;color:#475569;padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.side h2{margin:2px 10px 16px;color:#1E3A8A;font-size:1.1em;display:flex;align-items:center;gap:8px}
.side h2 i{width:10px;height:10px;border-radius:3px;background:var(--accent);display:inline-block}
.side .grp{font-size:12px;letter-spacing:.08em;color:#94A3B8;margin:16px 10px 6px;text-transform:uppercase}
.side a,.side button.nav{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:#475569;text-decoration:none;background:none;border:0;font:inherit;padding:9px 10px;border-radius:8px;cursor:pointer}
.side a:hover,.side button.nav:hover{background:#F1F7FF}
.side a.on,.side button.nav.on{background:var(--navy2);color:#1D4ED8;font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}
.side .pill{font-size:12px;background:#E0EAFF;border-radius:99px;padding:1px 8px;color:#1D4ED8}
.main{padding:24px 28px 60px;min-width:0}
.main h1{margin:0 0 4px;font-size:1.4em}
.topbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.kpi b{display:block;font-size:1.7em;line-height:1.2}
.kpi span{color:var(--muted);font-size:.92em}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bar{display:grid;grid-template-columns:minmax(80px,38%) 1fr 44px;gap:8px;align-items:center;font-size:.95em;margin:6px 0}
.bar .t{height:10px;border-radius:99px;background:#E2E8F0;overflow:hidden}.bar .t i{display:block;height:100%;background:var(--accent);border-radius:99px}
.bar .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spark{display:flex;align-items:flex-end;gap:2px;height:90px}.spark i{flex:1;max-width:28px;background:var(--accent);border-radius:2px 2px 0 0;min-height:2px;opacity:.85}
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:.94em}
th,td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
th{background:#F8FAFC;font-size:.88em;color:var(--muted);position:sticky;top:0;cursor:pointer;user-select:none}
tr:hover td{background:#F8FAFC}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.form-grid label{display:block;font-size:.92em;color:var(--muted);margin-bottom:4px}
.fcard{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;margin-bottom:8px}
.fcard .hd{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.fcard .hd b{flex:1}
.range{display:grid;grid-template-columns:120px 1fr 52px;gap:10px;align-items:center;margin:8px 0}
.sec{margin-bottom:18px}
.sec h3{margin:0 0 10px;font-size:1.02em}
.modal-bg{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal{background:#fff;border-radius:14px;padding:22px;max-width:560px;width:100%;max-height:90vh;overflow:auto}
.login{max-width:360px;margin:12vh auto;padding:0 16px}
@media(max-width:860px){
  .app{grid-template-columns:1fr}.side{position:static;height:auto}
  .main{padding:16px 14px 50px}.grid2{grid-template-columns:1fr}
}

/* 서식 있는 글(표시) + 에디터 */
.rich{white-space:normal;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
.rich p,.rich div{margin:0 0 .5em}.rich img{max-width:100%;height:auto;border-radius:8px;display:block;margin:.5em 0}
.rich ul,.rich ol{margin:.4em 0;padding-left:1.4em}.rich a{color:var(--accent)}.rich blockquote{margin:.5em 0;padding:.2em 1em;border-left:3px solid var(--line);color:#475569}
.rte{border:1px solid #CBD5E1;border-radius:var(--input-r);background:#fff;overflow:hidden}
.rte:focus-within{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.rte-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 10px;background:#F8FAFC;border-bottom:1px solid var(--line)}
.rte-btn{height:34px;min-width:34px;padding:0 10px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;font:inherit;font-size:.9em;cursor:pointer}
.rte-btn:hover{border-color:var(--accent)}.rte-btn.b{font-weight:800}.rte-btn.i{font-style:italic}.rte-btn.u{text-decoration:underline}.rte-btn.s{text-decoration:line-through}.rte-btn.sm{font-size:.8em;padding:0 8px}
.rte-sel{height:34px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;font:inherit;font-size:.9em;padding:0 8px}
.rte-color{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;cursor:pointer;font-weight:700;overflow:hidden}
.rte-color input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.rte-area{padding:14px 16px;outline:none;max-height:520px;overflow:auto}
.rte-area img{cursor:pointer}

/* 폼 빌더 (구글폼 스타일) */
.fb-bar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:var(--bg);padding:10px 0 12px}
.fb-bar .grow{flex:1}.fb-dirty{color:var(--warn);font-size:.9em}
.fb-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.qcard{position:relative;background:#fff;border:1px solid var(--line);border-left:4px solid transparent;border-radius:14px;padding:18px 20px;margin-bottom:12px;cursor:pointer;transition:box-shadow .15s}
.qcard:hover{box-shadow:0 2px 10px rgba(15,23,42,.06)}
.qcard.on{border-left-color:var(--accent);box-shadow:0 4px 18px rgba(15,23,42,.1);cursor:default}
.qcard .grip{position:absolute;top:4px;left:50%;transform:translateX(-50%);color:#94A3B8;cursor:grab;letter-spacing:2px;font-size:14px;line-height:1;padding:2px 14px;user-select:none}
.qcard.drop{outline:2px dashed var(--accent)}
.q-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-top:6px}
.q-title{flex:1;min-width:240px;height:52px;border:0;border-bottom:2px solid #CBD5E1;background:#F8FAFC;border-radius:8px 8px 0 0;padding:0 14px;font:inherit;font-size:1.05em}
.q-title:focus{outline:none;border-bottom-color:var(--accent);background:#F1F5F9}
.q-type{width:200px;height:52px}
.q-sub{font-size:.9em;color:var(--muted);margin:14px 0 6px}
.q-opt{display:flex;align-items:center;gap:10px;margin:6px 0}
.q-opt .ic{width:22px;text-align:center;color:#94A3B8;flex:none}
.q-opt input.o{flex:1;height:42px;border:0;border-bottom:1px solid transparent;background:transparent;font:inherit;padding:0 4px}
.q-opt input.o:hover{border-bottom-color:#CBD5E1}.q-opt input.o:focus{outline:none;border-bottom-color:var(--accent)}
.q-x{border:0;background:none;color:#94A3B8;font-size:18px;cursor:pointer;width:32px;height:32px;border-radius:8px}.q-x:hover{background:#F1F5F9;color:var(--bad)}
.q-link{border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;padding:6px 4px}
.q-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.q-foot .sp{flex:1}
.sw{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.sw input{display:none}.sw i{width:40px;height:22px;border-radius:99px;background:#CBD5E1;position:relative;transition:.15s}
.sw i::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}
.sw input:checked+i{background:var(--accent)}.sw input:checked+i::after{left:20px}
.q-view .t{font-weight:600}.q-view .t .req{color:var(--bad)}
.q-view .fake{margin-top:10px;height:40px;border-bottom:1px dotted #94A3B8;color:#94A3B8;display:flex;align-items:center;max-width:420px}
.q-view .fopt{display:flex;gap:10px;align-items:center;margin-top:6px;color:#475569}
.q-view .tag{font-size:.8em;color:var(--muted);margin-left:8px;font-weight:400}
.q-info-view{background:#F8FAFC;border-radius:10px;padding:10px 14px}
.top-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.top-opt{border:2px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;background:#fff}
.top-opt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,#fff)}
.top-opt .mini{border-radius:8px;background:#F1F5F9;padding:8px;margin-bottom:8px;display:grid;gap:5px}
.top-opt .mini i{display:block;height:9px;border-radius:3px;background:#CBD5E1}.top-opt .mini i.dk{background:var(--accent);height:26px}.top-opt .mini i.tt{background:var(--accent);width:55%;height:11px}
.top-opt b{display:block}
@media(max-width:700px){.top-pick{grid-template-columns:1fr}}
.top-title{margin:6px 2px 14px;font-size:1.7em;line-height:1.3}
.info-block{background:#F8FAFC;border:1px solid var(--line);border-radius:var(--input-r);padding:14px 16px}
.help.rich{margin:-2px 0 8px}

/* PC/모바일 전환 */
.seg{display:inline-flex;background:#E2E8F0;border-radius:10px;padding:3px}
.seg button{border:0;background:none;font:inherit;font-size:.92em;padding:7px 14px;border-radius:8px;cursor:pointer;color:#475569}
.seg button.on{background:#fff;color:var(--text);font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.fb-stage{display:flex;flex-direction:column;align-items:center}
.fb-canvas,.fb-add{width:100%;margin:0 auto;transition:max-width .2s}
.fb-add{justify-content:flex-start}
.fb-canvas.mobile .qcard{padding:14px 14px}.fb-canvas.mobile .q-type{width:100%}.fb-canvas.mobile .q-title{min-width:0;width:100%}
.fb-canvas.mobile .rte-bar{gap:4px}
.fb-note{width:100%;max-width:640px;background:#FEF3C7;color:#92400E;border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:.92em}
.pv-frame{border:1px solid #CBD5E1;border-radius:14px;background:#fff;height:78vh;min-height:560px;max-width:100%}
.pv-frame.mobile{border:10px solid #BFDBFE;border-radius:34px}
.fb-bar .btn,.fb-bar .btn.sm,.fb-bar .seg{height:40px;box-sizing:border-box}
.fb-bar .btn{padding:0 18px;font-size:.95em;--btn-r:10px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.fb-bar .seg button{height:34px;padding:0 14px}
.form-grid.stack{grid-template-columns:1fr;max-width:640px;gap:16px}
.form-grid.stack label{margin-bottom:6px;font-weight:600;color:var(--text)}

.hero.wide{border-radius:0;width:100vw;margin:-20px calc(50% - 50vw) 16px;padding:34px max(16px,calc(50vw - var(--maxw)/2 + 16px)) 30px;box-sizing:border-box}
body{overflow-x:hidden}
.top-opt .mini i.wd{background:var(--accent);height:16px;margin:-8px -8px 8px;border-radius:0}

.hero.img{background-size:cover;background-position:center;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.hero.img h1{font-size:1.8em}
.hero.wide.img{min-height:280px}
.img-pick{display:flex;gap:8px;align-items:center;margin:10px 0 4px;flex-wrap:wrap}
.opt.plain{border:0;background:transparent;min-height:0;padding:10px 4px 2px;margin:0;border-radius:0}
.opt.plain:has(input:checked){background:transparent}
.consent-box+.opt.plain{margin-top:2px}
.row .btn{min-width:84px}
.fg{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px 14px}
.fg>.sp2{grid-column:span 2}.fg>.sp3{grid-column:span 3}.fg>.sp4{grid-column:span 4}.fg>.sp6{grid-column:span 6}
.fg label{display:block;font-size:.92em;font-weight:600;color:var(--text);margin-bottom:6px}
@media(max-width:820px){.fg>div{grid-column:span 6}}
/* 접수 폼 편집: 상단(헤더) 직접 설정 */
.fb-top{width:100%;align-self:stretch;margin:0 auto 14px;box-sizing:border-box;transition:max-width .2s}
.fb-top .hero{margin-bottom:8px}
.fb-top .hero.wide-pv{border-radius:6px}
.tt-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:#fff;border:1px solid #DBEAFE;border-radius:12px;padding:8px 12px;font-size:.92em}
.tt-c{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.tt-c input[type=color]{width:34px;height:28px;border:1px solid #CBD5E1;border-radius:6px;padding:2px;background:#fff;cursor:pointer}
.tt-c input[type=range]{width:110px;accent-color:var(--accent)}
.hero.img{min-height:0}
.hero.notext{padding:0}.hero.notext>*{display:none}
.tt-bar.sub{margin-top:8px;background:#F8FBFF}
.tt-bar .seg button{padding:5px 11px}
.tt-c input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent)}
/* 추천 배경 */
.bg-pick{margin-top:8px;background:#fff;border:1px solid #DBEAFE;border-radius:12px;padding:12px}
.bg-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.bg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.bg-item{border:2px solid transparent;border-radius:10px;padding:0;background:none;cursor:pointer;overflow:hidden;text-align:left;font:inherit}
.bg-item:hover{border-color:var(--accent)}
.bg-item canvas{display:block;width:100%;height:auto;border-radius:8px}
.bg-item span{display:block;font-size:.8em;color:var(--muted);padding:4px 2px 0}
.field:first-child{margin-top:4px}

/* 항목 글꼴 (디자인 설정) */
.field{font-family:var(--f-body,inherit)}
.field .input,.field select,.field textarea{font-family:inherit}
.field>label:not(.opt),.field>.lbl{font-family:var(--f-title,inherit);font-size:var(--title-fs,1em)}
.field .help{font-family:var(--f-help,inherit);font-size:var(--help-fs,.9em)}
/* 섹션 머리·체크·주관업체 항목 */
.sec-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.sec-head h3{margin:0}
.chk{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.95em}
.chk input{width:18px;height:18px;margin:0;accent-color:var(--accent)}
.chk-row{display:flex;gap:28px;flex-wrap:wrap;padding-top:2px}
.link-row{display:flex;gap:8px}.link-row .input{flex:1;min-width:0;color:#475569;background:#F8FAFC}
.vis-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.vis-row{display:grid;grid-template-columns:18px 26px 1fr auto;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fff;transition:.15s}
.vis-row:hover{border-color:#BFDBFE}
.vis-row.on{border-color:#BFDBFE;background:#F5F9FF}
.vis-row input{width:18px;height:18px;margin:0;accent-color:var(--accent)}
.vis-no{font-size:.8em;color:#94A3B8;text-align:right}
.vis-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95em}
.vis-k{font-size:.75em;color:#64748B;background:#F1F5F9;border-radius:99px;padding:2px 8px;white-space:nowrap}
.save-bar{display:flex;justify-content:flex-end;margin-top:4px}
.fg label.chk{display:inline-flex;margin:0;font-weight:500;color:var(--text)}
.sec-head .grow{flex:1}
.vis-t{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}
/* 섹션(페이지) */
.sec-step{display:flex;flex-direction:column;gap:6px;margin-bottom:6px;font-size:.82em;color:var(--muted)}
.sec-step .track{height:5px;border-radius:99px;background:#E2E8F0;overflow:hidden}
.sec-step .track i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .3s}
.sec-block{border-left:4px solid var(--accent);padding:4px 0 4px 14px}
.sec-title{margin:0 0 6px;font-size:1.25em;line-height:1.35;font-family:var(--f-title,inherit)}
.sec-desc{color:#475569;font-size:.95em}
.sec-nav{display:flex;justify-content:space-between;gap:10px;margin-top:var(--gap,36px)}
.sec-nav .btn{min-width:120px}
.sec-nav.single .btn:last-child{flex:1}
.sec-nav:not(.single) .btn:last-child{flex:1;max-width:60%}
/* 빌더: 섹션 카드 */
.qcard.is-sec{border-top:6px solid var(--accent);margin-top:26px}
.sec-badge{display:inline-block;background:var(--accent);color:#fff;font-size:.78em;font-weight:700;border-radius:8px 8px 8px 0;padding:3px 10px;margin-bottom:8px}
.q-sec-view .t{font-size:1.15em;font-weight:700;margin-bottom:4px}
.q-opt .tgt{width:auto;max-width:220px;height:36px;font-size:.85em;padding:0 30px 0 10px;margin-left:auto}
/* 상단 문구 */
.hero-sub{white-space:pre-line;opacity:.92;margin:-2px 0 10px;font-size:1em;line-height:1.5}
.hero.center{text-align:center}.hero.center.img{align-items:center}
.tt-text{display:grid;grid-template-columns:auto 1fr;align-items:start}
.tt-text>b{padding-top:10px}
.tt-in{height:40px;font-size:.95em}.tt-area{height:auto;min-height:60px;padding:8px 12px;resize:vertical;grid-column:2}
.tt-checks{grid-column:2;display:flex;gap:18px;align-items:center;flex-wrap:wrap}

/* 배너 글상자 */
.hero.layered{position:relative;container-type:inline-size;padding:0;overflow:hidden;display:block}
.hero-layer{position:absolute;white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;text-shadow:none}
/* 설명 블록·이미지: 배경 박스 없이 그대로 */
.info-block{background:none;border:0;padding:0;border-radius:0}
.q-info-view{background:none;padding:0}
.rich img{border-radius:0;background:none;box-shadow:none}
.hero.editing .hero-layer{cursor:move;outline:1px dashed rgba(255,255,255,.35);outline-offset:2px;user-select:none;touch-action:none}
.hero.editing .hero-layer.sel{outline:2px solid #FBBF24}
.hero.editing .hero-layer[contenteditable=true]{cursor:text;user-select:text;outline:2px solid #22C55E}
.lbar{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.lrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.lbar .font-sel{width:190px;height:38px;font-size:.9em}
.lbar .tt-area{grid-column:auto}
/* 상단 배경 움직이는 도형 */
.hero{position:relative;overflow:hidden}
.hero>*:not(.hero-fx){position:relative;z-index:1}
.hero>.hero-layer{position:absolute;z-index:1}
.hero-fx{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero-fx i{position:absolute;display:block;width:calc(var(--s)*1px);height:calc(var(--s)*1px);animation-iteration-count:infinite;animation-timing-function:ease-in-out}
.fx-bubbles i{border-radius:50%;background:color-mix(in srgb,var(--fx) 22%,transparent);border:1px solid color-mix(in srgb,var(--fx) 40%,transparent);top:auto!important;bottom:-60px;animation-name:fxRise;animation-timing-function:linear}
@keyframes fxRise{0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:1}100%{transform:translateY(-480px) translateX(30px);opacity:0}}
.fx-shapes i{border:2px solid color-mix(in srgb,var(--fx) 45%,transparent);animation-name:fxFloat;animation-direction:alternate}
.fx-shapes i.c{border-radius:50%}.fx-shapes i.r{border-radius:30%;background:color-mix(in srgb,var(--fx) 10%,transparent)}
.fx-shapes i.t{border:0;width:0;height:0;border-left:calc(var(--s)*.5px) solid transparent;border-right:calc(var(--s)*.5px) solid transparent;border-bottom:calc(var(--s)*.9px) solid color-mix(in srgb,var(--fx) 25%,transparent)}
@keyframes fxFloat{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(40px,-25px) rotate(90deg)}100%{transform:translate(-30px,20px) rotate(200deg)}}
.fx-sparkle i{border-radius:50%;background:var(--fx);box-shadow:0 0 calc(var(--s)*2px) var(--fx);animation-name:fxTwinkle}
@keyframes fxTwinkle{0%,100%{opacity:.1;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}
.fx-waves i{width:220%;height:120%;border-radius:42%;background:color-mix(in srgb,var(--fx) 9%,transparent);animation-name:fxWave;animation-timing-function:linear;left:-60%!important}
@keyframes fxWave{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.fx-orbs i{width:calc(var(--s)*1%);height:auto;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--fx) 35%,transparent),transparent 70%);filter:blur(8px);animation-name:fxOrb;animation-direction:alternate}
@keyframes fxOrb{0%{transform:translate(-20%,-10%) scale(1)}100%{transform:translate(30%,20%) scale(1.3)}}
.fx-lines i{width:40%;height:calc(var(--s)*1px);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--fx) 60%,transparent),transparent);left:-40%!important;animation-name:fxLine;animation-timing-function:linear}
@keyframes fxLine{from{transform:translateX(0)}to{transform:translateX(400%)}}
@media (prefers-reduced-motion:reduce){.hero-fx i{animation:none!important}}
/* 이미지 크게 보기 */
.rich img{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.88);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:lbIn .15s ease-out}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-x{position:fixed;top:14px;right:16px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:20px;cursor:pointer}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.rte-area.rich img{cursor:pointer}
