/* 그로스: 배너·랜딩 — console.css 셸 + transfer.css 토큰 재사용 (admin/banner.css 새 디자인 충실 이식) */
.modfilters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:4px;}
.modf{font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;border:1px solid var(--color-border-strong,#D8CCC2);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);border-radius:999px;padding:6px 13px;}
.modf--on{background:var(--op-ink,#0F172A);border-color:var(--op-ink,#0F172A);color:#fff;}
.bnlist{display:grid;gap:11px;}
.bnrow{display:flex;align-items:center;gap:14px;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:14px;padding:13px 15px;}
.bn-lplink{display:flex;gap:7px;margin-top:8px;}
.bn-lplink .tmbtn{flex:1;justify-content:center;}
.bnrow__th{width:120px;height:62px;border-radius:11px;flex:0 0 auto;position:relative;}
.bnrow__slotbadge{position:absolute;bottom:7px;left:7px;font-size:9.5px;font-weight:800;color:#fff;background:rgba(0,0,0,.3);border-radius:999px;padding:2px 8px;backdrop-filter:blur(4px);}
.bnrow__b{flex:1;min-width:0;}
.bnrow__t{font-size:14.5px;font-weight:800;color:var(--color-text-strong,#15110E);letter-spacing:-.01em;}
.bnrow__m{font-size:11.5px;color:var(--color-text-muted,#6B5F57);margin-top:3px;}
.bnrow__stats{display:flex;gap:14px;margin-top:6px;font-size:12px;color:var(--color-text-muted,#6B5F57);flex-wrap:wrap;}
.bnrow__stats i{font-size:10px;color:var(--accent-text,#B23A12);margin-right:4px;}
.bnrow__stats em{font-style:normal;font-weight:800;color:var(--ok,#1F8A5B);}
.bn-perfgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-top:18px;}
@media(max-width:1100px){.bn-perfgrid{grid-template-columns:1fr;}}
.bn-freq{display:flex;flex-direction:column;gap:9px;}
.bn-freq__row{display:flex;align-items:center;gap:11px;}
.bn-freq__b{flex:0 0 52px;font-size:12.5px;font-weight:700;color:var(--color-text,#3D342E);}
.bn-freq__bar{flex:1;height:18px;border-radius:6px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;}
.bn-freq__fill{height:100%;border-radius:6px;background:var(--accent-text,#B23A12);opacity:.55;}
.bn-freq__fill.is-over{background:var(--amber,#92660C);opacity:1;}
.bn-freq__p{flex:0 0 36px;text-align:right;font-size:12px;font-weight:800;}
.lp-scroll{display:flex;flex-direction:column;gap:9px;}
.lp-scroll__row{display:flex;align-items:center;gap:11px;}
.lp-scroll__d{flex:0 0 96px;font-size:12px;color:var(--color-text,#3D342E);}
.lp-scroll__bar{flex:1;height:18px;border-radius:6px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;}
.lp-scroll__fill{height:100%;border-radius:6px;background:var(--sky,#0369A1);opacity:.75;}
.lp-scroll__r{flex:0 0 36px;text-align:right;font-size:12px;font-weight:800;}
.bnrow__r{display:flex;align-items:center;gap:8px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;}
.bnrow__edit{font-size:12px;padding:6px 11px;}
.txnote i{color:var(--accent-text,#B23A12);margin-top:2px;}
@media(max-width:1100px){.op{grid-template-columns:var(--op-rail) 1fr;}.side{display:none;}.tm__kpis{grid-template-columns:repeat(2,1fr);}}
@media(max-width:680px){.bnrow{flex-wrap:wrap;}.bnrow__th{width:100%;height:80px;}}

/* 새 배너 버튼 */
.bn-new{margin-top:12px;}
/* 배너 생성·편성 드로어 */
.bn-scrim{position:fixed;inset:0;background:rgba(15,17,21,.4);z-index:60;}
.bn-drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:94vw;background:var(--color-surface,#fff);z-index:61;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.18);animation:bn-slide .22s ease;}
@keyframes bn-slide{from{transform:translateX(40px);opacity:.6;}to{transform:translateX(0);opacity:1;}}
.bn-drawer__head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--color-divider,#EDE4DD);}
.bn-drawer__t{font-size:16px;font-weight:800;margin:0;}
.bn-drawer__s{font-size:12px;color:var(--color-text-subtle,#9A8C82);}
.bn-drawer__x{margin-left:auto;width:34px;height:34px;border-radius:9px;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);cursor:pointer;color:var(--color-text-muted);font-size:15px;}
.bn-drawer__body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:16px;}
.bn-drawer__foot{display:flex;gap:8px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--color-divider,#EDE4DD);}
.bn-lb{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-subtle,#9A8C82);margin-bottom:7px;}
.bn-lb small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--color-text-subtle);margin-left:4px;}
.bn-prev{height:140px;border-radius:13px;position:relative;display:flex;align-items:center;padding:16px;overflow:hidden;gap:12px;}
.bn-prev--center{justify-content:center;text-align:center;}
.bn-slotbox{position:relative;border-radius:13px;background:repeating-linear-gradient(45deg,#F1EAE3 0 12px,#F7F2EC 12px 24px);border:1.5px dashed var(--color-border-strong,#C9BCB1);display:flex;align-items:center;justify-content:center;max-height:220px;}
.bn-slotbox__r{position:absolute;top:8px;left:8px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;font-weight:800;color:#fff;background:rgba(15,23,42,.72);border-radius:6px;padding:2px 7px;letter-spacing:.02em;}
.bn-slotbox__ph{font-size:11.5px;font-weight:600;color:var(--color-text-subtle,#9A8C82);display:flex;align-items:center;gap:6px;text-align:center;padding:0 14px;}
.bn-slotbox__ph i{font-size:13px;}
.bn-slotnote{font-size:11.5px;line-height:1.55;color:var(--color-text-muted,#6B5F57);margin-top:9px;}
.bn-slotnote b{font-weight:800;color:var(--color-text,#3D342E);}
.bn-slotwarn{display:flex;gap:7px;font-size:11.5px;line-height:1.5;color:#9A2D0E;background:#FDECE4;border:1px solid #F5C9B6;border-radius:9px;padding:8px 11px;margin-top:9px;}
.bn-slotwarn i{margin-top:1px;}
.bn-prev--fullbleed{align-items:flex-end;}
.bnp-txt{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:5px;max-width:64%;}
.bn-prev--center .bnp-txt{align-items:center;max-width:88%;}
.bn-prev--fullbleed .bnp-txt{max-width:78%;}
.bnp-badge{display:inline-block;font-size:10px;font-weight:800;color:#9A2D0E;background:rgba(255,255,255,.9);border-radius:999px;padding:2px 9px;}
.bnp-t{font-size:17px;font-weight:800;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.28);line-height:1.22;}
.bnp-c{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.95);text-shadow:0 1px 4px rgba(0,0,0,.25);line-height:1.35;}
.bnp-cta{display:inline-block;margin-top:3px;font-size:10.5px;font-weight:800;background:#fff;color:#15110E;padding:4px 11px;border-radius:999px;}
.bnp-more{font-size:11.5px;font-weight:700;color:rgba(255,255,255,.92);margin-top:2px;text-shadow:0 1px 4px rgba(0,0,0,.25);}
.bnp-ill{flex:0 0 auto;width:84px;height:84px;border-radius:16px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:34px;color:rgba(255,255,255,.92);backdrop-filter:blur(2px);margin-left:auto;}
.bnp-ill--c{border-radius:13px;background:rgba(255,255,255,.92);color:var(--accent-text,#B23A12);box-shadow:0 8px 20px rgba(0,0,0,.16);}
.bnp-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.12) 65%,transparent);}
.bnp-ad{position:absolute;top:10px;right:10px;z-index:3;background:#FFD45E;color:#3A2A00;font-size:9.5px;font-weight:800;letter-spacing:.03em;padding:2px 7px;border-radius:5px;}
.bn-adrow{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px solid var(--color-border,#E0D5CC);border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .12s,background .12s;}
.bn-adrow:hover{border-color:var(--color-border-strong,#D8CCC2);}
.bn-adrow.is-on{border-color:#E0A800;background:#FFFBEB;}
.bn-adrow__l{display:flex;align-items:center;gap:11px;}
.bn-adrow__ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:13px;color:#92660C;background:#FEF3C7;flex-shrink:0;}
.bn-adrow.is-on .bn-adrow__ic{color:#fff;background:#E0A800;}
.bn-adrow__t{font-size:13px;font-weight:800;color:var(--color-text-strong,#15110E);}
.bn-adrow__t small{font-weight:500;color:var(--color-text-subtle,#9A8C82);margin-left:4px;}
.bn-adrow__d{font-size:11px;color:var(--color-text-muted,#6B5F57);line-height:1.4;margin-top:1px;}
.bn-switch{flex:0 0 auto;width:40px;height:23px;border-radius:999px;background:var(--color-border,#E0D5CC);position:relative;transition:background .15s;}
.bn-adrow.is-on .bn-switch{background:#E0A800;}
.bn-switch__k{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s;}
.bn-adrow.is-on .bn-switch__k{transform:translateX(17px);}
.bn-presets{display:flex;gap:8px;flex-wrap:wrap;}
.bn-sw{width:42px;height:34px;border-radius:9px;border:2px solid transparent;cursor:pointer;}
.bn-sw.is-on{border-color:var(--color-text-strong,#15110E);box-shadow:0 0 0 2px #fff inset;}
.bn-upload{font-family:inherit;font-size:12px;font-weight:700;border:1px dashed var(--color-border-strong,#D8CCC2);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);border-radius:9px;padding:0 13px;min-height:34px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.bn-upload:hover{border-color:var(--accent-text,#B23A12);color:var(--accent-text,#B23A12);}
.bn-imgnote{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ok,#1F8A5B);margin-top:8px;}
.bn-input{width:100%;font-family:inherit;font-size:13.5px;color:var(--color-text-strong,#15110E);border:1px solid var(--color-border,#E0D5CC);border-radius:10px;padding:10px 12px;background:var(--color-surface,#fff);}
.bn-input:focus{outline:none;border-color:var(--accent-text,#B23A12);box-shadow:0 0 0 3px var(--accent-bg,#FFE9E0);}
.bn-fld2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.bn-frames{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.bn-frame{font-family:inherit;text-align:left;display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);border-radius:11px;padding:11px 12px;cursor:pointer;transition:border-color .12s,background .12s;}
.bn-frame:hover{border-color:var(--color-border-strong,#D8CCC2);}
.bn-frame.is-on{border-color:var(--accent-text,#B23A12);background:var(--accent-bg,#FFF1EC);box-shadow:0 0 0 2px var(--accent-bg,#FFE9E0);}
.bn-frame__ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:12px;color:var(--accent-text,#B23A12);background:var(--accent-bg,#FFF1EC);margin-bottom:3px;}
.bn-frame.is-on .bn-frame__ic{background:#fff;}
.bn-frame__n{font-size:12.5px;font-weight:800;color:var(--color-text-strong,#15110E);}
.bn-frame__d{font-size:10.5px;font-weight:500;color:var(--color-text-subtle,#9A8C82);line-height:1.35;}
.bn-review{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border-radius:11px;background:var(--color-bg-subtle,#F5EEE9);font-size:12px;color:var(--color-text,#3D342E);line-height:1.5;}
.bn-review>i{color:var(--accent-text,#B23A12);margin-top:2px;flex:0 0 auto;}
.bn-review b{color:var(--color-text-strong,#15110E);}

/* ── 레거시 호환(/banner-legacy 구 드로어 프리뷰 자식 클래스 — 신규 .bnp-* 와 disjoint·충돌 없음) ── */
.bn-prev__slot{position:absolute;top:11px;left:11px;font-size:10px;font-weight:800;color:#fff;background:rgba(0,0,0,.3);border-radius:999px;padding:3px 9px;backdrop-filter:blur(4px);}
.bn-prev__t{font-size:17px;font-weight:800;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.25);line-height:1.25;}
.bn-prev__sub{font-size:12px;font-weight:700;color:rgba(255,255,255,.92);margin-top:4px;}
