/* GES 웹 — 편집창(ke-) · 결제창(pg-) · 관리자 공용 스타일. 색은 proto.css 토큰. */

/* ── 편집창 : 섹션 아코디언 ── */
.ke{display:block}
.ke-sec{border-top:1px solid var(--line)}
.ke-sec:first-child{border-top:0}
.ke-h{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:13px 2px;text-align:left}
.ke-h b{font-size:14px;font-weight:800;letter-spacing:-.01em}
.ke-no{width:22px;height:22px;border-radius:50%;background:var(--acc);color:var(--acc-ink);font-size:11px;font-weight:800;display:grid;place-items:center}
.ke-cnt{font-style:normal;font-size:11px;color:var(--mute)}
.ke-chev{width:9px;height:9px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg);transition:transform .45s var(--ease);margin:0 6px 3px 2px}
.ke-sec.open .ke-chev{transform:rotate(-135deg);margin-bottom:-3px}
.ke-sec.off .ke-no{background:var(--line);color:var(--mute)}
.ke-sec.off .ke-h b{color:var(--mute)}
.ke-b{display:none;padding:2px 0 16px}
.ke-sec.open .ke-b{display:block;animation:kein .5s var(--ease)}
@keyframes kein{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.ke-none{font-size:12px;color:var(--mute);padding:0 2px 12px;line-height:1.6}
.ke-sec:not(.off):not(.open) .ke-none{display:none}
/* 블록 교체 줄 */
.ke-swap{display:grid;grid-template-columns:38px 1fr 38px;gap:8px;align-items:center;margin:0 0 12px}
.ke-sec:not(.open) .ke-swap{display:none}
.ke-swap button{height:38px;border-radius:10px;border:1px solid var(--field-line);background:var(--field);font-size:12px;color:var(--ink);transition:all .3s var(--ease)}
.ke-swap button:hover{background:var(--acc);color:var(--acc-ink);border-color:var(--acc);transform:scale(1.04)}
.ke-swap span{height:38px;border-radius:10px;background:var(--paper2);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:12.5px}
.ke-swap span b{font-weight:800}
.ke-swap span em{font-style:normal;color:var(--mute);font-size:11px;font-variant-numeric:tabular-nums}
/* 칸 */
.ke-f{margin-top:10px;border-radius:10px;transition:box-shadow .4s,background .4s}
.ke-f label{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;color:var(--ink2);margin-bottom:5px}
.ke-f label em{font-style:normal;font-weight:500;color:var(--mute);font-size:11px;white-space:nowrap}
.ke-row{display:flex;gap:6px;align-items:stretch}
.ke-f textarea{flex:1;min-width:0;border:1px solid var(--field-line);border-radius:9px;padding:9px 11px;font-size:16px;line-height:1.45;background:var(--field);color:var(--ink);outline:0;resize:none;overflow:hidden;height:40px;transition:border-color .3s,box-shadow .3s}
.ke-f textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.ke-em{flex:0 0 38px;border:1px solid var(--field-line);border-radius:9px;background:var(--field);color:var(--ink2);font-size:12px;transition:all .3s}
.ke-em:hover{border-color:var(--acc)}
.ke-em.hint{background:var(--red);color:#fff;border-color:var(--red)}
.ke-imgbtn{flex:1;min-height:56px;border:1.5px dashed var(--field-line);border-radius:9px;background:var(--field) center/cover no-repeat;font-size:12.5px;font-weight:700;color:var(--ink2);transition:border-color .3s;position:relative;overflow:hidden}
.ke-imgbtn:hover{border-color:var(--acc)}
.ke-imgbtn.has{border-style:solid;min-height:84px}
.ke-imgbtn.has span{background:rgba(20,20,20,.7);color:#fff;padding:4px 10px;border-radius:999px}
.ke-x{flex:0 0 auto;padding:0 10px;border:1px solid var(--field-line);border-radius:9px;background:var(--field);font-size:12px;color:var(--mute)}
.ke-f.flash{animation:keflash 1.6s var(--ease)}
@keyframes keflash{0%{box-shadow:0 0 0 0 rgba(229,72,77,0);background:transparent}15%{box-shadow:0 0 0 6px rgba(229,72,77,.28);background:rgba(229,72,77,.08)}100%{box-shadow:0 0 0 6px rgba(229,72,77,0);background:transparent}}

/* ── 결제창(시연) ── */
.pg{position:fixed;inset:0;z-index:320;display:none}
.pg.on{display:block}
.pg .pg-bg{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.pg .pg-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(860px,calc(100% - 20px));max-height:94svh;overflow:hidden;background:#fff;color:#191f28;border-radius:18px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);display:flex;flex-direction:column;animation:pgin .5s var(--ease)}
@keyframes pgin{from{opacity:0;transform:translate(-50%,-46%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%)}}
.pg-top{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid #e5e8eb;flex:0 0 auto}
.pg-top b{font-size:15px;display:flex;align-items:center;gap:8px}
.pg-top b i{width:22px;height:22px;border-radius:6px;background:#3182f6;display:inline-block}
.pg-top span{font-size:11.5px;color:#8b95a1;font-weight:500}
.pg-top button{font-size:13px;color:#6b7684;border:1px solid #e5e8eb;border-radius:8px;padding:6px 12px}
.pg-body{display:grid;grid-template-columns:1.25fr 1fr;min-height:0;overflow:auto;flex:1 1 auto}
.pg-l{padding:20px 22px 24px;border-right:1px solid #e5e8eb}
.pg-r{padding:20px 22px 24px;background:#f9fafb}
.pg h5{font-size:13px;font-weight:800;color:#333d4b;margin:0 0 10px}
.pg .pg-sec{margin-bottom:22px}
.pg-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pg-tabs button{border:1px solid #e5e8eb;border-radius:12px;padding:13px;font-size:14px;font-weight:700;color:#4e5968;text-align:left;background:#fff}
.pg-tabs button small{display:block;font-size:11px;font-weight:500;color:#8b95a1;margin-top:2px}
.pg-tabs button[aria-pressed="true"]{border-color:#3182f6;background:#f0f6ff;color:#1b64da}
.pg-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pg-cards button{border:1px solid #e5e8eb;border-radius:10px;padding:11px 4px;font-size:12.5px;font-weight:700;color:#4e5968;background:#fff;transition:all .2s}
.pg-cards button:hover{border-color:#b0b8c1}
.pg-cards button[aria-pressed="true"]{border-color:#3182f6;background:#f0f6ff;color:#1b64da;box-shadow:0 0 0 2px rgba(49,130,246,.15)}
.pg-easy{display:grid;gap:6px}
.pg-easy button{display:flex;justify-content:space-between;align-items:center;border:1px solid #e5e8eb;border-radius:10px;padding:13px 14px;font-size:14px;font-weight:700;color:#4e5968;background:#fff}
.pg-easy button small{font-weight:500;color:#8b95a1;font-size:11.5px}
.pg-easy button[aria-pressed="true"]{border-color:#3182f6;background:#f0f6ff;color:#1b64da}
.pg select{width:100%;height:46px;border:1px solid #d1d6db;border-radius:10px;padding:0 12px;font-size:15px;background:#fff;color:#191f28}
.pg .pg-note{font-size:11.5px;color:#8b95a1;margin-top:6px;line-height:1.6}
.pg-item{font-size:13px;color:#6b7684}
.pg-item b{display:block;font-size:15px;color:#191f28;margin-top:2px}
.pg-sum{margin-top:14px;border-top:1px solid #e5e8eb;padding-top:12px;display:grid;grid-template-columns:1fr auto;gap:7px 12px;font-size:13.5px;color:#4e5968}
.pg-sum span:nth-child(even){text-align:right;font-variant-numeric:tabular-nums}
.pg-sum .tot{font-size:14px;font-weight:800;color:#191f28;padding-top:8px;border-top:1px solid #e5e8eb}
.pg-sum .tot+span{font-size:22px;font-weight:800;color:#191f28;padding-top:6px;border-top:1px solid #e5e8eb}
.pg-sum .sm{font-size:12px;color:#8b95a1}
.pg-agree{display:grid;gap:2px;font-size:13px;color:#4e5968}
.pg-agree label{display:flex;gap:8px;align-items:center;padding:7px 0;cursor:pointer}
.pg-agree label.all{font-weight:800;color:#191f28;border-bottom:1px solid #e5e8eb;padding-bottom:10px;margin-bottom:4px}
.pg-agree input{accent-color:#3182f6;width:17px;height:17px;flex:0 0 17px}
.pg-agree a{margin-left:auto;font-size:12px;color:#8b95a1;text-decoration:underline;cursor:pointer}
.pg-terms{display:none;font-size:11.5px;color:#6b7684;background:#fff;border:1px solid #e5e8eb;border-radius:8px;padding:9px 11px;line-height:1.6;margin:0 0 6px 25px}
.pg-terms.on{display:block}
.pg-go{margin-top:16px;width:100%;height:54px;border-radius:12px;background:#3182f6;color:#fff;font-weight:800;font-size:16px;transition:opacity .3s,transform .2s}
.pg-go:disabled{opacity:.35;cursor:not-allowed}
.pg-go:not(:disabled):active{transform:scale(.99)}
.pg-why{margin-top:8px;font-size:12px;color:#e5484d;min-height:17px;text-align:center}
/* 단계 화면 */
.pg-step{display:none;padding:44px 28px 36px;text-align:center;flex:1 1 auto;overflow:auto}
.pg[data-view="auth"] .pg-body,.pg[data-view="wait"] .pg-body,.pg[data-view="done"] .pg-body,.pg[data-view="fail"] .pg-body{display:none}
.pg[data-view="auth"] .pg-auth,.pg[data-view="wait"] .pg-wait,.pg[data-view="done"] .pg-done,.pg[data-view="fail"] .pg-fail{display:block}
.pg-step h4{font-size:20px;font-weight:800;margin:0 0 8px}
.pg-step p{font-size:14px;color:#6b7684;line-height:1.7;margin:0}
.pg-phone{width:210px;margin:22px auto 0;border:6px solid #191f28;border-radius:28px;padding:22px 16px 18px;text-align:left;background:#fff}
.pg-phone small{font-size:11px;color:#8b95a1}
.pg-phone b{display:block;font-size:20px;margin:4px 0 14px}
.pg-phone button{width:100%;height:42px;border-radius:10px;background:#191f28;color:#fff;font-weight:800;font-size:13.5px}
.pg-phone .no{background:#f2f4f6;color:#6b7684;margin-top:6px}
.pg-bar{height:6px;border-radius:999px;background:#e5e8eb;overflow:hidden;width:240px;margin:26px auto 0}
.pg-bar i{display:block;height:100%;width:0;background:#3182f6;border-radius:999px}
.pg[data-view="wait"] .pg-bar i{animation:pgbar 1.8s var(--ease2) forwards}
@keyframes pgbar{to{width:100%}}
.pg-ok{width:64px;height:64px;border-radius:50%;background:#3182f6;margin:0 auto 18px;display:grid;place-items:center;animation:pgpop .6s var(--ease)}
.pg-ok svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
@keyframes pgpop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.pg-rcpt{margin:22px auto 0;max-width:380px;text-align:left;border:1px solid #e5e8eb;border-radius:12px;padding:14px 16px;display:grid;grid-template-columns:auto 1fr;gap:7px 14px;font-size:13.5px}
.pg-rcpt dt{color:#8b95a1;margin:0}.pg-rcpt dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.pg-step .pg-go{max-width:380px;margin:20px auto 0;display:block}
.pg-step .pg-sub{display:block;margin:10px auto 0;font-size:13px;color:#8b95a1;text-decoration:underline}

/* ── 관리자 ── */
.adm-pw{position:fixed;inset:0;z-index:400;display:none;place-items:center;background:rgba(0,0,0,.55)}
.adm-pw.on{display:grid}
.adm-pw .box{width:min(380px,calc(100% - 24px));padding:26px 26px 22px}
.adm-pw h3{font-size:19px}
.adm-pw p{font-size:13px;color:var(--mute);margin-top:6px;line-height:1.6}
.adm-pw input{width:100%;height:48px;margin-top:14px;border:1px solid var(--field-line);border-radius:10px;padding:0 12px;font-size:16px;background:var(--field);outline:0}
.adm-pw input:focus{border-color:var(--acc)}
.adm-pw .err{min-height:18px;font-size:12.5px;color:var(--red);margin-top:6px}
.adm-pw .acts{display:flex;gap:8px;margin-top:8px}
.adm-pw .acts button{flex:1;height:46px;border-radius:10px;font-weight:700;font-size:14px;border:1px solid var(--line);background:var(--field)}
.adm-pw .acts button.pri{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}

@media (max-width:760px){
  .pg-body{grid-template-columns:1fr}.pg-l{border-right:0;border-bottom:1px solid #e5e8eb}
  .pg-cards{grid-template-columns:repeat(3,1fr)}
}

/* ── 6차 : 기본 정보 · 검색/공유 미리보기 ── */
.ke-in{flex:1;min-width:0;height:42px;border:1px solid var(--field-line);border-radius:9px;padding:0 11px;font-size:16px;background:var(--field);color:var(--ink);outline:0;transition:border-color .3s,box-shadow .3s}
textarea.ke-in{padding:9px 11px;line-height:1.45;resize:none}
.ke-in:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.ke-link{margin-top:6px;font-size:12.5px;font-weight:700;text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.ke-prev{margin-top:12px;display:grid;gap:8px}
.ke-g{border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px 12px;font-size:12px;line-height:1.5;color:#4d5156}
.ke-g .u{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#202124}.ke-g .u img{width:18px;height:18px;border-radius:5px}
.ke-g .t{color:#1a0dab;font-size:15px;font-weight:600;margin-top:3px;line-height:1.35}
.ke-kk{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--paper2);font-size:12px;line-height:1.45}
.ke-kk i{height:64px;border-radius:7px;background:repeating-linear-gradient(135deg,#ddd6cc 0 5px,#ebe5dc 5px 10px) center/cover}
.ke-kk b{display:block;font-size:13px;color:var(--ink)}.ke-kk em{font-style:normal;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ke-kk small{color:var(--mute)}
.ke-addnote{margin:10px 0 2px;padding:10px 12px;border:1px dashed var(--field-line);border-radius:10px;font-size:12px;color:var(--ink2);line-height:1.6}
/* 옵션 줄(가격표) */
.addrow .qhead{grid-template-columns:1.3fr 2fr .9fr 1fr 40px;cursor:default}
.addrow .qhead:hover{background:transparent}
.addrow b.t{font-size:15px!important}
.addrow .pr{font-size:15px!important}
.stp{display:inline-grid;grid-template-columns:34px 44px 34px;align-items:center;border:1px solid var(--field-line);border-radius:999px;background:var(--field);overflow:hidden}
.stp button{height:34px;font-size:16px;font-weight:800;color:var(--ink);transition:background .2s}
.stp button:hover{background:var(--paper2)}
.stp button:disabled{opacity:.25}
.stp b{text-align:center;font-size:14px;font-variant-numeric:tabular-nums}
.addrow.on .qhead{background:var(--paper2)}
.addhead{padding:10px 28px;font-size:11.5px;font-weight:800;letter-spacing:.1em;color:var(--mute);border-bottom:1px solid var(--doc-line);background:var(--paper2)}
/* 관리자 통계 카드 */
.adm-card{margin:12px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper2);font-size:12.5px;color:var(--ink2)}
.adm-card b{color:var(--ink);font-size:13px}
.adm-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;align-items:end;height:54px;margin:10px 0 4px}
.adm-bars i{display:block;background:var(--ink);border-radius:3px 3px 0 0;min-height:2px}
.adm-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;font-size:10px;color:var(--mute);text-align:center}
.adm-card a{font-weight:700;text-decoration:underline;color:var(--ink)}
@media (max-width:1000px){ .addrow .qhead{grid-template-columns:1fr auto;grid-template-areas:"t pr" "inc inc" "dur dur"} .addrow .qhead .ctl{display:none} .addhead{padding:10px 18px} }

/* ── 7차 : 섹션 밖 묶음 · 아이콘 고르기 · 블록 목록 ── */
.ke-outer .ke-no{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.ke-onote{display:none;margin:0 0 4px}
.ke-sec.open .ke-onote{display:block}
.ke-blocks{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px}
.ke-sec:not(.open) .ke-blocks{display:none}
.ke-blocks button{font-size:11.5px;font-weight:700;padding:5px 9px;border-radius:999px;border:1px solid var(--field-line);background:var(--field);color:var(--ink2);transition:all .25s}
.ke-blocks button:hover{border-color:var(--ink)}
.ke-blocks button[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#fff}
.ke-swap span{border-color:var(--red)!important;box-shadow:0 0 0 2px rgba(229,72,77,.12)}
.ke-icbtn{width:100%;height:38px;border:1px solid var(--field-line);border-radius:9px;background:var(--field);font-size:12.5px;font-weight:700;color:var(--ink2);text-align:left;padding:0 11px}
.ke-icons{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:6px}
.ke-icons[hidden]{display:none}
.ke-icons button{height:38px;border:1px solid var(--field-line);border-radius:8px;background:var(--field);font-size:11px;font-weight:700;color:var(--ink2);display:grid;place-items:center;transition:all .2s}
.ke-icons button:hover{border-color:var(--ink);transform:translateY(-1px)}
.ke-icons svg{width:18px;height:18px}
.ke-emoin{grid-column:span 3;height:38px;border:1px solid var(--field-line);border-radius:8px;background:var(--field);padding:0 9px;font-size:16px;outline:0;min-width:0}
