/* ===== 할로윈 캔디 이벤트 (관리자) ===== */
.cda{
  --panel:#fff; --soft:#faf6ef; --ground:#f7f3ea;
  --night:#1b1526;
  --pumpkin:#d4681f; --pumpkin-dk:#a8511a; --pumpkin-sf:#fbeee2;
  --grape:#4a2e75; --gold:#c08a2c;
  --bd:#e2d8c6; --bd-st:#c9bca4; --bd-lt:#f0ebe0;
  --tx:#241f2e; --tx-sf:#554d63; --tx-mu:#6b6276;
  --bad:#b13a2a; --bad-dk:#8c2f22; --good:#1f6149;
  --rad:14px; --sh:0 6px 16px rgba(74,56,18,.07);
  max-width:1420px; margin:0 auto; padding:26px 32px 60px; color:var(--tx);
}

/* ── 머리말 ── */
.cda .cda-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between;margin-bottom:16px}
.cda .eyebrow{font-size:.66rem;font-weight:900;letter-spacing:.2em;color:var(--tx-mu)}
.cda h1{margin:4px 0 0;font-size:1.5rem;font-weight:900;letter-spacing:-.015em}
.cda .sub{margin:5px 0 0;font-size:.78rem;font-weight:700;color:var(--tx-mu);line-height:1.65;max-width:860px}
.cda .cda-head .acts{display:flex;flex-wrap:wrap;gap:8px}

/* ── 버튼 ── */
.cda .cda-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid var(--bd-st);background:var(--panel);color:var(--tx);
  font-size:.76rem;font-weight:900;padding:10px 16px;border-radius:10px;min-height:42px;
  cursor:pointer;transition:.15s;text-decoration:none;font-family:inherit;box-sizing:border-box}
.cda .cda-btn:hover:not(:disabled):not(.pri):not(.dark):not(.danger):not(.ok){border-color:var(--pumpkin);color:var(--pumpkin-dk)}
.cda .cda-btn:disabled{opacity:.55;cursor:not-allowed}
.cda .cda-btn.pri{border:0;background:var(--pumpkin);color:#fff}
.cda .cda-btn.pri:hover:not(:disabled){background:#bd5a16;color:#fff}
.cda .cda-btn.dark{border:0;background:var(--night);color:#fff}
.cda .cda-btn.dark:hover:not(:disabled){background:#2c2240;color:#fff}
.cda .cda-btn.ok{border:0;background:var(--good);color:#fff}
.cda .cda-btn.ok:hover:not(:disabled){background:#17503c;color:#fff}
.cda .cda-btn.danger{border:1px solid var(--bad);background:var(--panel);color:var(--bad-dk)}
.cda .cda-btn.danger:hover:not(:disabled){background:#fdf1ee}
.cda .cda-btn.wide{width:100%}
.cda .cda-btn.grow{flex:1.4 1 0}
.cda .mini{border:1px solid var(--bd-st);background:var(--panel);border-radius:7px;
  font-size:.7rem;font-weight:900;padding:7px 11px;color:var(--tx);cursor:pointer;margin-left:4px;font-family:inherit}
.cda .mini:first-child{margin-left:0}
.cda .mini:hover:not(:disabled){border-color:var(--pumpkin);color:var(--pumpkin-dk)}
.cda .mini:disabled{opacity:.5;cursor:not-allowed}
.cda .mini.danger{border-color:#e8c0b7;color:var(--bad-dk)}
.cda .mini.danger:hover:not(:disabled){background:#fdf1ee;border-color:var(--bad)}

/* ── 알림 ── */
.cda .cda-msg{display:flex;align-items:center;gap:9px;padding:12px 16px;border-radius:10px;margin-bottom:14px;
  font-size:.8rem;font-weight:800;line-height:1.5}
.cda .cda-msg.ok{background:#e9f3ec;border:1px solid #bcdcc6;color:var(--good)}
.cda .cda-msg.err{background:#fdf1ee;border:1px solid #e8c0b7;color:var(--bad-dk)}

/* ── 탭 ── */
.cda .cda-tabs{display:flex;flex-wrap:wrap;gap:7px;border-bottom:1px solid var(--bd);padding-bottom:2px;margin-bottom:16px}
.cda .cda-tabs button{border:1px solid transparent;background:transparent;color:var(--tx-mu);
  font-size:.8rem;font-weight:900;padding:11px 18px;border-radius:10px 10px 0 0;min-height:44px;cursor:pointer;font-family:inherit}
.cda .cda-tabs button.on{border-color:var(--bd-st);border-bottom-color:var(--ground);background:var(--panel);color:var(--tx)}

/* ── 카드 ── */
.cda .cda-card{background:var(--panel);border:1px solid var(--bd);border-radius:var(--rad);overflow:hidden;margin-bottom:16px}
.cda .cda-card.form{border-color:var(--bd-st);box-shadow:var(--sh)}
.cda .ch{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--bd-lt);background:var(--soft)}
.cda .ch h2{margin:0;font-size:.92rem;font-weight:900}
.cda .ch h3{margin:0;font-size:.82rem;font-weight:900}
.cda .ch.dark{background:var(--night);border-bottom-color:#3b2d4f}
.cda .ch.dark h2{color:#fff}
.cda .ch.dark .k{font-size:.62rem;font-weight:900;letter-spacing:.16em;color:rgba(255,255,255,.52)}
.cda .cb{padding:16px 18px}
.cda .cb.col{display:flex;flex-direction:column;gap:13px}
.cda .cf{padding:13px 18px;border-top:1px solid var(--bd-lt);background:var(--soft)}
.cda .cf .row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:10px}
.cda .cf .row:first-child{margin-top:0}
.cda .note{margin:0;font-size:.72rem;font-weight:700;color:var(--tx-mu);line-height:1.7;max-width:820px}
.cda .dim{color:var(--tx-mu);font-weight:800}
.cda .sm{font-size:.72rem}
.cda .pri{color:var(--pumpkin-dk)}
.cda .grape{color:var(--grape)}
.cda .bad{color:var(--bad)}
.cda .plus{color:var(--good)}
.cda .minus{color:var(--bad)}
.cda .mono{font-variant-numeric:tabular-nums}
.cda .brk{word-break:break-all}
.cda .nowrap{white-space:nowrap}
.cda .none-box{padding:22px;text-align:center;font-size:.78rem;font-weight:700;color:var(--tx-mu);
  background:var(--soft);border:1px solid var(--bd);border-radius:11px}

/* ── 폼 ── */
.cda .f{display:flex;flex-direction:column;gap:6px;min-width:0}
.cda .f label{font-size:.7rem;font-weight:900;color:var(--tx-sf)}
.cda .f input,.cda .f select{border:1px solid var(--bd-st);border-radius:9px;padding:10px 12px;
  font-size:.8rem;font-weight:800;color:var(--tx);background:#fffdf8;min-height:44px;box-sizing:border-box;
  width:100%;font-family:inherit}
.cda .f input:focus,.cda .f select:focus{outline:none;border-color:var(--pumpkin);box-shadow:0 0 0 3px rgba(212,104,31,.14)}
.cda .f input.big{font-size:.95rem;font-weight:900}
.cda .f.hot input{border-color:var(--pumpkin);background:#fff8f1}
.cda .f .hint{font-size:.68rem;font-weight:700;color:var(--tx-mu);line-height:1.6}
.cda .grid6{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:14px}
.cda .grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.cda .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cda .chk{display:flex;align-items:center;gap:9px;font-size:.78rem;font-weight:900;cursor:pointer}
.cda .chk input{width:18px;height:18px;accent-color:var(--pumpkin)}
.cda .acts{display:flex;gap:9px}
.cda .acts .cda-btn{flex:1 1 0;min-height:46px}

.cda .seg{display:flex;gap:7px}
.cda .seg button{flex:1 1 0;border:1px solid var(--bd);background:var(--panel);color:var(--tx-mu);
  font-size:.76rem;font-weight:900;padding:11px;border-radius:9px;min-height:44px;cursor:pointer;font-family:inherit}
.cda .seg button.on{border-color:var(--pumpkin);background:var(--pumpkin-sf);color:var(--pumpkin-dk)}
.cda .seg button.on.neg{border-color:var(--bad);background:#fdf1ee;color:var(--bad-dk)}

/* 세이브코드 프리셋 */
.cda .sc-block{border:1px solid #adbfd9;border-radius:11px;background:#f4f7fb;padding:13px 14px;
  display:flex;flex-direction:column;gap:11px}
.cda .sc-block .sc-title{display:flex;align-items:center;gap:8px;font-size:.76rem;font-weight:900;color:#1f4877}
.cda .sc-block label{color:#1f4877}
.cda .sc-block input,.cda .sc-block select{border-color:#adbfd9;background:#fff}
.cda .sc-block .hint{color:#3c5a7d}
.cda .slot{display:flex;flex-direction:column;gap:4px;min-width:0}
.cda .slot .sn{font-size:.64rem;font-weight:800;color:#3c5a7d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── 상태 배지 ── */
.cda .phase{display:inline-flex;align-items:center;gap:7px;font-size:.7rem;font-weight:900;
  padding:4px 11px;border-radius:999px;background:#ece4d6;color:var(--tx-sf)}
.cda .phase.earning{background:#e9f3ec;color:var(--good)}
.cda .phase.exchange{background:#f6ecd5;color:#7a5311}
.cda .phase.upcoming{background:#ede7f4;color:var(--grape)}
.cda .phase.ended,.cda .phase.off{background:#ece4d6;color:var(--tx-mu)}
.cda .kind{display:inline-block;font-size:.65rem;font-weight:900;letter-spacing:.03em;padding:3px 8px;border-radius:6px}
.cda .st{font-size:.68rem;font-weight:900}
.cda .st.ok{color:var(--good)}
.cda .st.bad{color:var(--bad)}
.cda .st.dim{color:var(--tx-mu)}

/* ── 레이아웃 ── */
.cda .cda-split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.cda .cda-split>.cda-card:first-child{flex:999 1 620px;min-width:0}
.cda .cda-split>.cda-card.form{flex:1 1 390px}
.cda .cda-split.grant>.stack{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:0}
.cda .cda-split.grant>.cda-card{flex:1.3 1 460px;min-width:0}
.cda .cda-split.log>aside{flex:1 1 340px}

/* ── 표 ── */
.cda .tw{overflow-x:auto}
.cda .cda-table{width:100%;min-width:820px;border-collapse:collapse;font-size:.78rem}
.cda .cda-table.sm{min-width:620px;font-size:.74rem}
.cda .cda-table th{text-align:left;padding:10px 12px;font-size:.68rem;font-weight:900;color:var(--tx-sf);
  background:var(--soft);border-bottom:1px solid var(--bd);white-space:nowrap}
.cda .cda-table td{padding:11px 12px;border-bottom:1px solid var(--bd-lt);vertical-align:middle}
.cda .cda-table tr:last-child td{border-bottom:0}
.cda .cda-table th.r,.cda .cda-table td.r{text-align:right}
.cda .cda-table td.nm{font-weight:900}
.cda .cda-table td.code{font-size:.7rem;word-break:break-all}
.cda .cda-table td.none{padding:24px;text-align:center;color:var(--tx-mu);font-weight:700}
.cda .cda-table tr.editing{background:#fff8f1}
.cda .cda-table tr.off td{color:var(--tx-mu)}
.cda .cda-table tr.clickable{cursor:pointer}
.cda .cda-table tr.clickable:hover{background:var(--soft)}
.cda .pager{display:flex;gap:6px}

/* ── KPI ── */
.cda .cda-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(188px,1fr));gap:12px;margin-bottom:16px}
.cda .cda-kpis .kpi{background:var(--panel);border:1px solid var(--bd);border-radius:13px;padding:15px 17px}
.cda .cda-kpis .lab{font-size:.7rem;font-weight:900;color:var(--tx-mu)}
.cda .cda-kpis .val{font-size:1.5rem;font-weight:900;margin-top:3px;font-variant-numeric:tabular-nums}
.cda .cda-kpis .val small{font-size:.76rem;font-weight:800;color:var(--tx-mu);margin-left:2px}
.cda .cda-kpis .sub2{font-size:.66rem;font-weight:800;color:var(--tx-mu);margin-top:2px}
.cda .cda-kpis .sub2.bad{color:var(--bad-dk)}
.cda .cb.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}
.cda .cb.kpis .kpi{border:1px solid var(--bd-lt);border-radius:11px;background:var(--soft);padding:12px 14px}
.cda .cb.kpis .lab{font-size:.68rem;font-weight:900;color:var(--tx-mu)}
.cda .cb.kpis .val{font-size:1.2rem;font-weight:900;font-variant-numeric:tabular-nums}

/* ── 필터 ── */
.cda .cda-filter{background:var(--panel);border:1px solid var(--bd);border-radius:13px;padding:14px 17px;
  display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}
.cda .cda-filter .fg{display:flex;flex-direction:column;gap:6px;min-width:0}
.cda .cda-filter .fg.grow{flex:1 1 190px}
.cda .cda-filter .lb{font-size:.68rem;font-weight:900;color:var(--tx-sf)}
.cda .cda-filter input{border:1px solid var(--bd-st);border-radius:9px;padding:10px 12px;font-size:.76rem;
  font-weight:800;background:#fffdf8;min-height:42px;box-sizing:border-box;width:100%;font-family:inherit}
.cda .chips{display:flex;flex-wrap:wrap;gap:6px}
.cda .chips button{border:1px solid var(--bd);background:var(--panel);color:var(--tx-mu);
  font-size:.7rem;font-weight:900;padding:8px 13px;border-radius:999px;min-height:38px;cursor:pointer;font-family:inherit}
.cda .chips button.on{border-color:var(--pumpkin);background:var(--pumpkin-sf);color:var(--pumpkin-dk)}

/* ── 유저 선택 ── */
.cda .search{display:flex;gap:8px}
.cda .search input{flex:1 1 auto;min-width:0;border:1px solid var(--bd-st);border-radius:9px;padding:10px 12px;
  font-size:.8rem;font-weight:800;background:#fffdf8;min-height:44px;box-sizing:border-box;font-family:inherit}
.cda .ulist{border:1px solid var(--bd-lt);border-radius:11px;overflow:hidden}
.cda .ur{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--bd-lt);cursor:pointer}
.cda .ur:last-child{border-bottom:0}
.cda .ur.on{background:#fff8f1}
.cda .ur input{width:17px;height:17px;accent-color:var(--pumpkin);flex:0 0 auto}
.cda .ur .tx{flex:1 1 auto;min-width:0}
.cda .ur .tx .n{display:block;font-size:.8rem;font-weight:900}
.cda .ur .tx .t{display:block;font-size:.68rem;font-weight:700;color:var(--tx-mu)}
.cda .ur .bal{flex:0 0 auto;font-size:.74rem;font-weight:900;color:var(--pumpkin-dk);font-variant-numeric:tabular-nums}

/* ── 상세 섹션 ── */
.cda .sect{padding:0 18px 18px}
.cda .sect .sh{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0 8px}
.cda .plist{display:flex;flex-direction:column;gap:8px}
.cda .pr{border:1px solid var(--bd-lt);border-radius:11px;padding:12px 14px;
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.cda .pr.done{background:var(--soft);border-color:var(--bd)}
.cda .pr .tx{min-width:0}
.cda .pr .tx .n{font-size:.8rem;font-weight:900}
.cda .pr .tx .t{font-size:.68rem;font-weight:700;color:var(--tx-mu);margin-top:2px;line-height:1.5}

.cda .dl{display:flex;flex-direction:column;gap:9px}
.cda .dl .row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.cda .dl .row span{flex:0 0 auto;font-size:.7rem;font-weight:800;color:var(--tx-mu)}
.cda .dl .row b{text-align:right;font-size:.76rem;font-weight:900;min-width:0}
.cda .reason{border:1px solid var(--bd-lt);border-radius:11px;background:var(--soft);padding:12px 14px}
.cda .reason .k{font-size:.68rem;font-weight:900;color:var(--tx-sf)}
.cda .reason .v{margin-top:5px;font-size:.78rem;font-weight:800;line-height:1.6}
.cda .sc{border-radius:11px;background:var(--night);padding:12px 14px}
.cda .sc .t{font-size:.62rem;font-weight:900;letter-spacing:.14em;color:rgba(255,255,255,.5)}
.cda .sc .v{margin-top:6px;font-size:.76rem;font-weight:800;color:#fff;word-break:break-all;line-height:1.6}

.cda .warn-box{display:flex;gap:9px;align-items:flex-start;background:#fdf1ee;border:1px solid #e8c0b7;
  border-radius:10px;padding:11px 13px;font-size:.72rem;font-weight:800;color:var(--bad-dk);line-height:1.55}
.cda .warn-box i{flex:0 0 auto;margin-top:2px;color:var(--bad)}

/* ── 삭제 확인 ── */
.cda .cda-modal{position:fixed;inset:0;z-index:1200;background:rgba(27,21,38,.55);
  display:flex;align-items:center;justify-content:center;padding:20px}
.cda .cda-modal .box{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--bd-st);
  border-radius:16px;padding:22px;box-shadow:0 18px 44px rgba(27,21,38,.3)}
.cda .cda-modal h3{margin:0;font-size:1rem;font-weight:900}
.cda .cda-modal p{margin:10px 0 18px;font-size:.78rem;font-weight:700;color:var(--tx-sf);line-height:1.7}

/* ── 반응형 ── */
@media(max-width:900px){
  .cda{padding:20px 16px 48px}
  .cda .grid3,.cda .grid2{grid-template-columns:1fr}
  .cda .ch,.cda .cb,.cda .cf,.cda .sect{padding-left:16px;padding-right:16px}
}
