/* ============ 보장 리모델링 스튜디오 — v7 리디자인 ============ */
:root{
  /* neutrals */
  --surface-1:#ffffff; --page:#f4f5f8; --surface-2:#fafbfc;
  --ink-1:#12141a; --ink-2:#565d6b; --ink-3:#98a0ad;
  --grid:#ecedf1; --axis:#dcdfe6; --ring:rgba(18,20,26,.08);
  /* brand accent — refined blue */
  --accent:#2f6bff; --accent-strong:#1e50e6; --accent-soft:#edf2ff; --accent-ink:#1c46c9;
  /* semantic */
  --s1:#2f6bff; --s2:#12a150; --s3:#e0912a; --s4:#0f8a45;
  --s5:#5b53e0; --s6:#e5484d; --s7:#d55181; --s8:#e0692e;
  --good:#12a150; --warn:#e0912a; --serious:#e0692e; --critical:#e5484d;
  --good-text:#0f8a45;
  --good-soft:#e7f6ee; --warn-soft:#fdf3e3; --bad-soft:#fdecec;
  --radius:16px; --radius-sm:11px;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.04);
  --shadow-md:0 4px 14px rgba(16,24,40,.07), 0 2px 5px rgba(16,24,40,.04);
  --font:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --surface-1:#16181d; --surface-2:#1b1e24; --page:#0e0f13;
    --ink-1:#f2f3f5; --ink-2:#a6adba; --ink-3:#6e7683;
    --grid:#262930; --axis:#333843; --ring:rgba(255,255,255,.08);
    --accent:#5b8bff; --accent-strong:#7aa2ff; --accent-soft:#1a2440; --accent-ink:#a9c2ff;
    --s1:#5b8bff; --s2:#2bb56b; --s3:#d99a3f; --s4:#2bb56b; --s6:#f0686d;
    --good:#2bb56b; --warn:#d99a3f; --serious:#e0783e; --critical:#f0686d; --good-text:#4cc98a;
    --good-soft:#132a1e; --warn-soft:#2a2213; --bad-soft:#2c1618;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 6px 20px rgba(0,0,0,.5);
  }
}

*{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--page);color:var(--ink-1);line-height:1.55;
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  word-break:keep-all;letter-spacing:-.005em}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:.92rem;color:var(--ink-1);background:var(--surface-1);
  border:1px solid var(--axis);border-radius:10px;padding:.55rem .7rem;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{letter-spacing:-.02em}
::selection{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.hidden{display:none!important}

#app{display:flex;min-height:100vh}

/* ============ 사이드바 ============ */
#sidebar{width:252px;flex:0 0 252px;background:var(--surface-1);border-right:1px solid var(--grid);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:1.15rem .8rem}
.brand{display:flex;gap:.65rem;align-items:center;padding:.35rem .45rem 1.2rem}
.brand-mark{width:36px;height:36px;border-radius:11px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#2f6bff,#1e50e6);box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 38%,transparent)}
.brand-mark svg{width:21px;height:21px}
.brand-name{font-weight:800;font-size:1rem;letter-spacing:-.03em;color:var(--ink-1)}
.brand-sub{font-size:.64rem;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-top:1px}
#nav{display:flex;flex-direction:column;gap:1px;margin-top:.2rem}
.nav-item{position:relative;display:flex;align-items:center;gap:.6rem;padding:.62rem .7rem;border:0;background:none;
  border-radius:10px;color:var(--ink-2);font-size:.9rem;text-align:left;font-weight:600;transition:background .12s,color .12s}
.nav-item:hover:not(:disabled){background:var(--surface-2);color:var(--ink-1)}
.nav-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
.nav-item.active::before{content:"";position:absolute;left:-.8rem;top:50%;transform:translateY(-50%);
  width:3px;height:1.15rem;border-radius:0 3px 3px 0;background:var(--accent)}
.nav-item:disabled{opacity:.4;cursor:not-allowed}
.nav-ico{font-size:1.02rem;width:1.35rem;text-align:center;filter:grayscale(.15)}
.customer-chip{margin-top:1rem;padding:.8rem .85rem;border:1px solid var(--grid);border-radius:13px;background:var(--surface-2)}
.cc-name{font-weight:800;letter-spacing:-.02em}
.cc-meta{font-size:.78rem;color:var(--ink-2);margin-top:1px}
.cc-premium{font-size:.85rem;color:var(--accent-ink);font-weight:700;margin-top:.3rem}
.sidebar-foot{margin-top:auto;font-size:.7rem;color:var(--ink-3);line-height:1.6;padding:.7rem .45rem 0;
  border-top:1px solid var(--grid)}

/* ============ 메인 ============ */
#main{flex:1;padding:2rem 2.4rem 4.5rem;max-width:1760px;width:100%;margin:0 auto}
.view{display:none}
.view.active{display:block;animation:viewfade .22s ease}
@keyframes viewfade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.view-head{margin-bottom:1.5rem}
.view-head h1{font-size:1.6rem;letter-spacing:-.03em;font-weight:800}
.lead{color:var(--ink-2);margin-top:.4rem;max-width:62rem;font-size:.95rem;line-height:1.6}

.panel{background:var(--surface-1);border:1px solid var(--grid);border-radius:var(--radius);
  padding:1.3rem 1.4rem;margin-bottom:1.2rem;box-shadow:var(--shadow-sm)}
.panel h2{font-size:1.05rem;margin-bottom:.9rem;letter-spacing:-.02em;font-weight:800;display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem}
.h-note{font-size:.76rem;color:var(--ink-3);font-weight:500;margin-left:.45rem}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:0 0 1.2rem}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}}

/* 스탯 타일 */
.stat{background:var(--surface-1);border:1px solid var(--grid);border-radius:var(--radius);padding:1.05rem 1.15rem;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.stat .k{font-size:.76rem;color:var(--ink-2);font-weight:600}
.stat .v{font-size:1.6rem;font-weight:800;letter-spacing:-.03em;margin-top:.2rem}
.stat .d{font-size:.74rem;color:var(--ink-3);margin-top:.2rem}
.stat .v .unit{font-size:.85rem;font-weight:600;color:var(--ink-2);margin-left:2px}
.stat.accent::after,.stat.warn-tile::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.stat.accent::after{background:var(--accent)}
.stat.warn-tile::after{background:var(--serious)}

/* ============ 업로드 ============ */
.dropzone{border:1.5px dashed var(--axis);border-radius:20px;background:var(--surface-1);
  padding:3.6rem 1rem;text-align:center;transition:.15s;cursor:pointer;margin-bottom:1rem;box-shadow:var(--shadow-sm)}
.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.dz-icon{font-size:2.1rem}
.dz-title{font-weight:800;font-size:1.08rem;margin-top:.5rem;letter-spacing:-.02em}
.dz-sub{color:var(--ink-3);font-size:.84rem;margin-top:.25rem}
.parse-progress{margin:1rem 0}
.pp-bar{height:8px;background:var(--grid);border-radius:99px;overflow:hidden}
.pp-fill{height:100%;width:0%;background:var(--s1);border-radius:99px;transition:width .2s}
.pp-label{font-size:.85rem;color:var(--ink-2);margin-top:.4rem}
.privacy-note{font-size:.8rem;color:var(--ink-3);border:1px solid var(--grid);border-radius:12px;
  padding:.8rem 1rem;margin-top:1.2rem;background:var(--surface-1)}

/* 콜아웃 */
.callout{border-radius:13px;padding:.9rem 1.05rem;margin:.85rem 0;font-size:.9rem;border:1px solid var(--grid);
  background:var(--surface-2);line-height:1.6}
.callout.good{border-color:color-mix(in srgb,var(--good) 25%,var(--grid));background:var(--good-soft)}
.callout.info{border-color:color-mix(in srgb,var(--accent) 22%,var(--grid));background:var(--accent-soft)}
.callout.warn{border-color:color-mix(in srgb,var(--warn) 30%,var(--grid));background:var(--warn-soft)}
.callout.critical{border-color:color-mix(in srgb,var(--critical) 30%,var(--grid));background:var(--bad-soft)}

/* 버튼 */
.btn-primary{background:var(--accent);color:#fff;border:0;border-radius:11px;padding:.62rem 1.2rem;font-weight:700;font-size:.9rem;
  box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 32%,transparent);transition:transform .1s,box-shadow .12s,filter .12s}
.btn-primary:hover{filter:brightness(1.05);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent)}
.btn-primary:active{transform:translateY(1px)}
.btn-lg{padding:.85rem 1.6rem;font-size:1rem;border-radius:13px}
.btn-ghost{background:var(--surface-1);border:1px solid var(--axis);border-radius:11px;padding:.55rem 1.05rem;color:var(--ink-1);font-weight:600;font-size:.87rem;transition:.12s}
.btn-ghost:hover{border-color:var(--ink-3);background:var(--surface-2)}
.btn-ghost.danger{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 40%,transparent)}
.btn-ghost.danger:hover{background:var(--bad-soft)}
.btn-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.5rem 0}
.btn-sm{padding:.36rem .8rem;font-size:.8rem;border-radius:9px}

/* ============ 테이블 ============ */
.table-wrap{overflow-x:auto;border-radius:var(--radius-sm)}
table{width:100%;border-collapse:collapse;font-size:.87rem}
th{color:var(--ink-3);font-weight:700;text-align:left;border-bottom:1px solid var(--axis);padding:.6rem .65rem;
  white-space:nowrap;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase}
td{border-bottom:1px solid var(--grid);padding:.58rem .65rem;vertical-align:top}
tbody tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr.cat-row td{background:var(--surface-2);font-weight:800;font-size:.78rem;color:var(--ink-2);letter-spacing:.01em}
tbody tr{transition:background .1s}
tbody tr:hover td{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.zero{color:var(--ink-3)}
.neg{color:var(--critical);font-weight:700}
.pos{color:var(--good-text);font-weight:700}
.tag{display:inline-block;font-size:.7rem;font-weight:700;border-radius:7px;padding:.14rem .5rem;margin-right:.28rem;white-space:nowrap;letter-spacing:-.01em}
.tag.blue{background:var(--accent-soft);color:var(--accent-ink)}
.tag.green{background:var(--good-soft);color:var(--good-text)}
.tag.red{background:var(--bad-soft);color:var(--critical)}
.tag.amber{background:var(--warn-soft);color:#a8681a}
.tag.gray{background:var(--grid);color:var(--ink-2)}

/* ============ 가로 막대(커버리지) ============ */
.hbar-row{display:grid;grid-template-columns:170px 1fr 150px;gap:.7rem;align-items:center;padding:.42rem 0;border-bottom:1px solid var(--grid)}
.hbar-row:last-child{border-bottom:0}
.hbar-label{font-size:.85rem;font-weight:600;color:var(--ink-2)}
.hbar-track{position:relative;height:18px;background:var(--page);border-radius:4px;overflow:visible}
.hbar-fill{position:absolute;left:0;top:3px;height:12px;border-radius:0 4px 4px 0;background:var(--s1);min-width:2px}
.hbar-target{position:absolute;top:-3px;width:2px;height:24px;background:var(--ink-1);opacity:.55}
.hbar-val{font-size:.82rem;text-align:right;white-space:nowrap}
.hbar-val .pct{color:var(--ink-3);margin-left:.3rem}

/* ============ 시나리오 탭 ============ */
.scenario-tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}
.sc-tab{border:1px solid var(--grid);background:var(--surface-1);border-radius:12px;padding:.65rem 1.1rem;
  font-weight:700;font-size:.92rem;color:var(--ink-2);display:flex;gap:.5rem;align-items:center}
.sc-tab.active{border-color:var(--s1);color:var(--s1);background:color-mix(in srgb,var(--s1) 6%,var(--surface-1))}

/* 비용 스택 바 */
.coststack{margin:.7rem 0 .3rem}
.coststack-bar{display:flex;height:34px;border-radius:8px;overflow:hidden;background:var(--page)}
.coststack-seg{position:relative;min-width:3px}
.coststack-seg+.coststack-seg{border-left:2px solid var(--surface-1)}
.coststack-legend{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.55rem;font-size:.8rem;color:var(--ink-2)}
.leg-dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:.32rem}

/* 커버 게이지 */
.covergauge{margin:.9rem 0}
.cg-track{position:relative;height:26px;border-radius:8px;background:var(--page);overflow:hidden}
.cg-fill{position:absolute;top:0;left:0;height:100%;}
.cg-label-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--ink-2);margin-top:.3rem}

/* 타임라인 */
.timeline{display:flex;gap:0;margin:.8rem 0;border-radius:8px;overflow:hidden}
.tl-seg{padding:.5rem .6rem;font-size:.75rem;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ============ 납입 보험료 전망 ============ */
.po-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}
@media(max-width:820px){.po-grid{grid-template-columns:1fr 1fr}}
.po-item{background:var(--surface-2);border:1px solid var(--grid);border-radius:12px;padding:.85rem .95rem}
.po-item.hi{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,var(--grid))}
.po-item .k{font-size:.75rem;color:var(--ink-2);font-weight:600}
.po-item .v{font-size:1.35rem;font-weight:800;letter-spacing:-.03em;margin-top:.15rem}
.po-item.hi .v{color:var(--accent-ink)}
.po-item .d{font-size:.72rem;color:var(--ink-3);margin-top:.15rem}

/* ============ 병기(stage) 칩 ============ */
.stage-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}
.stage-chip{border:1px solid var(--grid);background:var(--surface-1);border-radius:9px;padding:.35rem .75rem;
  font-size:.82rem;font-weight:700;color:var(--ink-2);transition:.12s}
.stage-chip:hover{border-color:var(--accent);color:var(--accent-ink)}
.stage-chip.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 30%,transparent)}
.stage-note{font-size:.8rem;color:var(--ink-2);background:var(--surface-2);border-radius:8px;padding:.4rem .7rem;margin-bottom:.9rem}
.case-tbl.stage-sum{margin-top:.4rem}
.case-tbl.stage-sum th{font-size:.72rem}
.case-tbl.stage-sum tr.srow-on td{background:var(--accent-soft);font-weight:700}
.case-after.muted{background:var(--surface-2);color:var(--ink-2)}

/* ============ 리모델링 워크벤치 ============ */
.diet-table{width:100%}
.diet-table td{vertical-align:middle}
.diet-sel{padding:.35rem .4rem;border:1px solid var(--grid);border-radius:8px;background:var(--surface-1);font-size:.8rem;font-weight:700;width:100%}
tr.diet-active{background:color-mix(in srgb,var(--s2) 7%,var(--surface-1))}
tr.diet-active .diet-sel{border-color:var(--s2);color:var(--good-text)}
.diet-meta{font-size:.72rem;color:var(--ink-2);margin-top:.15rem}
.cov-chip{display:inline-block;background:var(--page);border:1px solid var(--grid);border-radius:6px;
  padding:.08rem .45rem;font-size:.72rem;margin:.1rem .2rem .1rem 0;white-space:nowrap}
.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}
.preset-card{border:1px solid var(--grid);border-radius:12px;padding:.9rem;display:flex;flex-direction:column;gap:.45rem;background:var(--surface-1)}
.preset-card.added{opacity:.55}
.preset-head{display:flex;justify-content:space-between;align-items:baseline;gap:.4rem}
.preset-head b{font-size:.92rem}
.preset-prem{font-size:.82rem;font-weight:800;color:var(--critical);white-space:nowrap}
.preset-prem small{color:var(--ink-2);font-weight:500}
.preset-tpl{font-size:.66rem;font-weight:700;color:var(--ink-3);background:var(--surface-2);
  border:1px solid var(--grid);border-radius:6px;padding:.1rem .45rem;white-space:nowrap}
.cov-chip[data-edititem]{cursor:pointer}
.cov-chip[data-edititem]:hover{border-color:var(--accent);color:var(--accent-ink)}
.preset-desc{font-size:.78rem;color:var(--ink-2)}
.preset-card .btn-primary{margin-top:auto}
.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media(max-width:800px){.diff-grid{grid-template-columns:1fr}}
.diff-cap{font-weight:800;font-size:.85rem;margin-bottom:.4rem;padding-bottom:.3rem;border-bottom:2px solid var(--grid)}
.diff-cap.up{color:var(--critical)}.diff-cap.dn{color:var(--good-text)}
.diff-row{display:flex;align-items:baseline;gap:.6rem;padding:.32rem 0;border-bottom:1px dashed var(--grid);font-size:.82rem}
.diff-name{flex:1;font-weight:600}
.diff-vals{color:var(--ink-2);white-space:nowrap}
.diff-delta{font-weight:800;white-space:nowrap;min-width:5.5rem;text-align:right}
.diff-delta.up{color:var(--critical)}.diff-delta.dn{color:var(--good-text)}
.diff-prem{margin-top:.8rem;background:var(--page);border-radius:10px;padding:.7rem 1rem;font-size:.9rem}
.diff-prem b.pos{color:var(--good-text)}.diff-prem b.neg{color:var(--critical)}

/* ============ 공용 모달 ============ */
.modal-backdrop{position:fixed;inset:0;background:rgba(16,20,28,.5);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:mfade .15s ease}
@keyframes mfade{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface-1);border-radius:18px;box-shadow:0 20px 60px rgba(16,24,40,.28);
  width:min(460px,100%);overflow:hidden;animation:mpop .18s cubic-bezier(.2,.8,.3,1)}
@keyframes mpop{from{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.3rem .3rem}
.modal-head h3{font-size:1.08rem;font-weight:800;letter-spacing:-.02em}
.modal-x{border:0;background:none;font-size:1.05rem;color:var(--ink-3);border-radius:8px;width:2rem;height:2rem}
.modal-x:hover{background:var(--surface-2);color:var(--ink-1)}
.modal-body{padding:.6rem 1.3rem .3rem}
.mf-label{display:block;font-size:.85rem;font-weight:700;color:var(--ink-1);margin:.7rem 0 .3rem}
.mf-hint{display:block;font-weight:500;font-size:.74rem;color:var(--ink-3);margin-top:1px}
.mf-input{width:100%;font-size:.95rem}
.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.3rem 1.3rem}

/* ============ 사례 조회 (KCD 검색) ============ */
.scen-searchwrap{position:relative;margin-bottom:.8rem}
.scen-suggest{position:absolute;top:calc(100% + .3rem);left:0;right:0;z-index:20;background:var(--surface-1);
  border:1px solid var(--grid);border-radius:14px;box-shadow:var(--shadow-md);max-height:340px;overflow-y:auto;padding:.35rem}
.sug-item{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;border:0;background:none;
  padding:.55rem .7rem;border-radius:10px;font-size:.9rem;color:var(--ink-1)}
.sug-item:hover{background:var(--accent-soft)}
.sug-code{flex:0 0 auto;background:var(--ink-1);color:#fff;font-size:.68rem;font-weight:800;border-radius:6px;padding:.12rem .45rem;min-width:3rem;text-align:center}
.sug-name{flex:1;font-weight:600}
.sug-cat{flex:0 0 auto;font-size:.74rem;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:.1rem .5rem}

/* 치료 과정 흐름 */
.case-flowwrap{display:grid;grid-template-columns:1fr 1.3fr;gap:1rem}
@media(max-width:820px){.case-flowwrap{grid-template-columns:1fr}}
.case-flow{list-style:none;margin:0;padding:.6rem .7rem;border-radius:12px;background:var(--surface-2);position:relative}
.case-flow.now{background:var(--accent-soft)}
.case-flow .cf-tag{display:inline-block;font-size:.68rem;font-weight:800;color:var(--ink-3);margin-bottom:.3rem;letter-spacing:.04em}
.case-flow.now .cf-tag{color:var(--accent-ink)}
.case-flow li{font-size:.82rem;padding:.22rem 0 .22rem 1.1rem;position:relative;color:var(--ink-1)}
.case-flow li:before{content:"›";position:absolute;left:.2rem;color:var(--ink-3)}
.case-flow.now li:before{color:var(--accent)}
.rider-adv{margin:0 0 1.2rem}
.rider-adv>summary{cursor:pointer;font-size:.86rem;font-weight:600;color:var(--ink-2);padding:.5rem .2rem;list-style:none}
.rider-adv>summary::-webkit-details-marker{display:none}
.rider-adv>summary:before{content:"▸ ";color:var(--accent)}
.rider-adv[open]>summary:before{content:"▾ "}
.scen-search{display:flex;align-items:center;gap:.5rem;background:var(--surface-1);border:1px solid var(--axis);
  border-radius:14px;padding:.4rem .5rem .4rem .9rem;box-shadow:var(--shadow-sm);margin-bottom:.8rem}
.scen-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.scen-search-ico{font-size:1rem;opacity:.6}
.scen-search input{flex:1;border:0;background:none;padding:.5rem .3rem;font-size:.95rem}
.scen-search input:focus{outline:none;box-shadow:none}
.scen-quick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.q-chip{border:1px solid var(--grid);background:var(--surface-1);border-radius:20px;padding:.35rem .8rem;
  font-size:.82rem;font-weight:600;color:var(--ink-1);transition:.12s}
.q-chip small{color:var(--ink-3);font-weight:500;margin-left:.1rem}
.q-chip:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
.case-card{background:var(--surface-1);border:1px solid var(--grid);border-radius:var(--radius);
  padding:1.3rem 1.4rem;margin-bottom:1.1rem;box-shadow:var(--shadow-md)}
.case-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:0 0 1.1rem}
@media(max-width:700px){.case-metrics{grid-template-columns:1fr}}
.cm-tile{border-radius:13px;padding:.9rem 1rem;border:1px solid var(--grid);background:var(--surface-2)}
.cm-tile .k{font-size:.76rem;color:var(--ink-2);font-weight:600}
.cm-tile .v{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;margin-top:.15rem}
.cm-tile .d{font-size:.72rem;color:var(--ink-3);margin-top:.2rem}
.cm-tile.red{background:var(--bad-soft);border-color:color-mix(in srgb,var(--critical) 20%,var(--grid))}
.cm-tile.red .v{color:var(--critical)}
.cm-tile.blue{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 20%,var(--grid))}
.cm-tile.blue .v{color:var(--accent-ink)}
.cm-tile.amber{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 25%,var(--grid))}
.cm-tile.amber .v{color:#a8681a}
.cm-tile.green{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 22%,var(--grid))}
.cm-tile.green .v{color:var(--good-text)}
.case-tbl tr.case-sub td{border-top:1px solid var(--axis);font-weight:700;color:var(--ink-2)}
.case-income .ci-line{display:block;font-size:.74rem;color:var(--ink-3);font-weight:500;margin-top:.25rem}
.case-income .ci-line b{color:var(--ink-1)}
.case-income input{width:6.5rem;font-size:.8rem;padding:.2rem .4rem;text-align:right}
.tx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}
.tx-card{border:1px solid var(--grid);border-radius:12px;padding:.8rem .9rem;background:var(--surface-2)}
.tx-name{font-weight:800;font-size:.88rem;margin-bottom:.4rem;letter-spacing:-.01em}
.tx-row{display:flex;gap:.5rem;font-size:.78rem;padding:.18rem 0;border-top:1px dashed var(--grid)}
.tx-row em{flex:0 0 2.4rem;font-style:normal;font-weight:700;color:var(--ink-2)}
.case-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;
  padding-bottom:.9rem;border-bottom:1px solid var(--grid)}
.case-head b{font-size:1.15rem;letter-spacing:-.02em;margin:0 .35rem}
.case-code{display:inline-block;background:var(--ink-1);color:#fff;font-size:.72rem;font-weight:800;border-radius:6px;
  padding:.12rem .5rem;letter-spacing:.03em;vertical-align:middle}
.case-verdict{font-size:.92rem;font-weight:800;padding:.35rem .9rem;border-radius:20px;white-space:nowrap}
.case-verdict.short{background:var(--bad-soft);color:var(--critical)}
.case-verdict.ok{background:var(--good-soft);color:var(--good-text)}
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
@media(max-width:820px){.case-grid{grid-template-columns:1fr}}
.case-cap{font-weight:800;font-size:.9rem;margin-bottom:.5rem}
.case-cap span{font-weight:500;font-size:.74rem;color:var(--ink-3);margin-left:.3rem}
.case-tbl{width:100%;font-size:.85rem}
.case-tbl td{padding:.5rem .3rem;border-bottom:1px solid var(--grid);vertical-align:top}
.case-note{font-size:.72rem;color:var(--ink-3);margin-top:.15rem}
.case-tbl tr.nopay td{color:var(--ink-3)}
.miss{color:var(--critical);font-weight:700;font-size:.82rem}
.case-tbl tr.case-total td{font-weight:800;border-top:2px solid var(--axis);border-bottom:0;font-size:.92rem}
.case-tbl tr.case-gap td{font-weight:700;border-bottom:0;padding-top:.2rem}
.case-after{margin-top:.7rem;background:var(--accent-soft);border-radius:10px;padding:.6rem .8rem;font-size:.85rem;color:var(--accent-ink)}
.case-after b{font-size:1rem}
.scen-featured{margin-top:.6rem;border:1px solid var(--grid);border-radius:12px;background:var(--surface-1);padding:.2rem .3rem}
.scen-featured>summary{cursor:pointer;padding:.7rem .9rem;font-weight:700;font-size:.9rem;color:var(--ink-2);list-style:none}
.scen-featured>summary::-webkit-details-marker{display:none}
.scen-featured>summary:before{content:"▸ ";color:var(--accent)}
.scen-featured[open]>summary:before{content:"▾ "}
.scen-featured>summary:hover{color:var(--ink-1)}
.scen-featured .scenario-tabs{padding:.4rem .9rem 0}
.scen-featured>#scen-content{padding:0 .3rem}

/* ============ 질병 시나리오 ============ */
.scen-hero{display:flex;gap:1rem;align-items:center;background:linear-gradient(135deg,var(--s1),#274b6d);
  color:#fff;border-radius:14px;padding:1.1rem 1.3rem;margin-bottom:1rem}
.scen-hero-emoji{font-size:2.4rem;line-height:1}
.scen-hero-name{font-size:1.15rem;font-weight:800}
.scen-hero-story{font-size:.86rem;color:#d3deea;margin-top:.25rem;line-height:1.5}
.scen-flowwrap .panel{margin:0}
.scen-flow{list-style:none;margin:.3rem 0 0;padding:0;counter-reset:sf}
.scen-flow li{position:relative;padding:.4rem .5rem .4rem 2rem;font-size:.85rem;border-left:2px solid var(--grid);margin-left:.6rem}
.scen-flow li:before{counter-increment:sf;content:counter(sf);position:absolute;left:-0.7rem;top:.35rem;
  width:1.4rem;height:1.4rem;border-radius:50%;background:var(--page);border:1px solid var(--grid);
  font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center;color:var(--ink-2)}
.scen-flow.now li:before{background:var(--s1);color:#fff;border-color:var(--s1)}
.scen-flow.now li{border-left-color:color-mix(in srgb,var(--s1) 40%,var(--grid))}
.pt{display:inline-block;padding:.12rem .5rem;border-radius:6px;font-size:.72rem;font-weight:800;white-space:nowrap}
.pt-gy{background:#e6f0e6;color:#1a7a1a}          /* 급여 */
.pt-sb{background:#fdf2dd;color:#9a6a06}          /* 선별급여 */
.pt-jb{background:#f0e7f8;color:#6b3fa0}          /* 전액본인 */
.pt-bg{background:#fce4e4;color:#c0392b}          /* 비급여 */
.pt-lv{background:#e7eef6;color:#274b6d}          /* 생활비 */
.scen-total td{font-weight:800;border-top:2px solid var(--grid);background:var(--page)}
.scen-silson{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;margin-top:.7rem;
  background:var(--page);border-radius:10px;padding:.8rem 1rem}
.scen-silson>div{display:flex;flex-direction:column}
.scen-silson span{font-size:.74rem;color:var(--ink-2)}
.scen-silson b{font-size:1.1rem;font-weight:800}
.scen-silson-note{flex:1;min-width:14rem;font-size:.8rem;color:var(--ink-2);line-height:1.5;
  border-left:3px solid var(--s6);padding-left:.7rem;font-weight:400}
.scen-cover{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.scen-cover-col{flex:1;min-width:15rem}
.scc-cap{font-size:.82rem;font-weight:700;margin-bottom:.2rem}
.scen-cover-arrow{color:var(--s2);font-size:1.3rem;font-weight:800}
.scen-need{margin-top:.9rem;font-size:.82rem;line-height:1.9}
.scen-need b{display:block;margin-bottom:.3rem}
.need-chip{display:inline-block;background:var(--page);border:1px solid var(--grid);border-radius:20px;
  padding:.18rem .7rem;font-size:.75rem;margin:.15rem .25rem .15rem 0;color:var(--ink-1)}
.tkb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.8rem}
.tkb-card{border:1px solid var(--grid);border-radius:12px;padding:.9rem;background:var(--surface-1)}
.tkb-head{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.5rem}
.tkb-cat{align-self:flex-start;background:var(--s1);color:#fff;font-size:.68rem;font-weight:800;padding:.1rem .5rem;border-radius:5px}
.tkb-head b{font-size:.92rem}
.tkb-row{display:flex;gap:.5rem;font-size:.78rem;padding:.2rem 0;border-top:1px dashed var(--grid)}
.tkb-row em{flex:0 0 2.6rem;font-style:normal;font-weight:700;color:var(--ink-2)}
.tkb-row.warn span{color:#c0392b}
.tkb-riders{margin-top:.5rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:800px){.grid-2{grid-template-columns:1fr}}

/* ============ 리모델링 ============ */
.remodel-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:1000px){.remodel-grid{grid-template-columns:1fr}}
.rec-item{display:flex;gap:.7rem;align-items:flex-start;padding:.7rem;border:1px solid var(--grid);border-radius:12px;margin-bottom:.6rem;background:var(--page)}
.rec-item label.switch{margin-top:.15rem}
.rec-body{flex:1}
.rec-title{font-weight:700;font-size:.92rem}
.rec-desc{font-size:.8rem;color:var(--ink-2);margin-top:.15rem}
.rec-amt{font-size:.88rem;font-weight:800;white-space:nowrap}
.rec-amt.add{color:var(--critical)}
.rec-amt.save{color:var(--good-text)}

.switch{position:relative;display:inline-block;width:38px;height:22px;flex:0 0 38px}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;inset:0;background:var(--axis);border-radius:99px;transition:.15s}
.slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s}
.switch input:checked+.slider{background:var(--s1)}
.switch input:checked+.slider:before{transform:translateX(16px)}

.premium-meter{position:sticky;top:0;z-index:5;background:var(--surface-1);border:1px solid var(--grid);
  border-radius:var(--radius);padding:.9rem 1.1rem;margin-bottom:1rem;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.pm-row{display:flex;gap:1.4rem;align-items:baseline;flex-wrap:wrap}
.pm-item .k{font-size:.72rem;color:var(--ink-2);font-weight:700}
.pm-item .v{font-size:1.25rem;font-weight:800}
.pm-delta{font-size:.9rem;font-weight:800;padding:.2rem .6rem;border-radius:8px}
.pm-delta.ok{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good-text)}
.pm-delta.over{background:color-mix(in srgb,var(--critical) 12%,transparent);color:var(--critical)}

/* ============ 폼 ============ */
.form-row{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.7rem;max-width:480px}
.form-row label{font-size:.8rem;font-weight:700;color:var(--ink-2)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin-bottom:.7rem}
.form-grid .form-row{margin:0;max-width:none}
.fine{font-size:.76rem;color:var(--ink-3);margin-top:.5rem}
.api-status{font-size:.82rem;font-weight:700}

/* 이벤트 카드 */
.event-card{display:flex;gap:.8rem;align-items:flex-start;border:1px solid var(--grid);border-radius:12px;padding:.7rem .9rem;margin-bottom:.55rem;background:var(--surface-1)}
.event-main{flex:1}
.event-title{font-weight:700;font-size:.92rem}
.event-meta{font-size:.78rem;color:var(--ink-3)}
.del-btn{background:none;border:0;color:var(--ink-3);font-size:1rem;padding:.2rem}
.del-btn:hover{color:var(--critical)}

/* 판정 결과 */
.verdict{border-radius:12px;border:1px solid var(--grid);padding:.8rem 1rem;margin-bottom:.6rem}
.verdict .v-head{display:flex;align-items:center;gap:.5rem;font-weight:800}
.v-detail{font-size:.84rem;color:var(--ink-2);margin-top:.35rem}
.v-detail li{margin-left:1.1rem;margin-top:.15rem}

/* 청구 체크리스트 */
.claim-item{display:flex;gap:.75rem;border:1px solid var(--grid);border-radius:12px;padding:.75rem .9rem;margin-bottom:.55rem;background:var(--surface-1);align-items:flex-start}
.claim-item.done{opacity:.55}
.claim-check{margin-top:.2rem;width:18px;height:18px;accent-color:var(--good)}
.claim-body{flex:1}
.claim-title{font-weight:700;font-size:.92rem}
.claim-sub{font-size:.8rem;color:var(--ink-2);margin-top:.1rem}
.claim-docs{font-size:.76rem;color:var(--ink-3);margin-top:.3rem}
.claim-amt{font-weight:800;white-space:nowrap}

/* 아코디언 */
.acc-item{border:1px solid var(--grid);border-radius:12px;margin-bottom:.5rem;overflow:hidden;background:var(--surface-1)}
.acc-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem .9rem;cursor:pointer;background:none;border:0;width:100%;text-align:left}
.acc-head:hover{background:var(--page)}
.acc-title{font-weight:700;font-size:.9rem}
.acc-meta{font-size:.76rem;color:var(--ink-3)}
.acc-right{display:flex;gap:.7rem;align-items:center;white-space:nowrap;font-size:.85rem}
.acc-body{display:none;border-top:1px solid var(--grid);padding:.6rem .9rem}
.acc-item.open .acc-body{display:block}

/* AI 박스 */
.ai-box{border:1px dashed var(--s5);border-radius:12px;padding:.9rem 1rem;margin:1rem 0;background:color-mix(in srgb,var(--s5) 4%,var(--surface-1))}
.ai-box h3{font-size:.92rem;color:var(--s5);margin-bottom:.5rem}
.ai-box textarea{width:100%;min-height:110px;resize:vertical}
.ai-out{white-space:pre-wrap;font-size:.88rem;background:var(--surface-1);border:1px solid var(--grid);border-radius:10px;padding:.8rem;margin-top:.6rem;max-height:420px;overflow-y:auto}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--grid);border-top-color:var(--s5);border-radius:50%;animation:sp 1s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}

@media(max-width:760px){
  #app{flex-direction:column}
  #sidebar{width:100%;height:auto;position:static;flex-direction:column}
  #nav{flex-direction:row;overflow-x:auto}
  .nav-item{white-space:nowrap}
  #main{padding:1rem}
  .hbar-row{grid-template-columns:110px 1fr 110px}
}
@media print{
  #sidebar,.dropzone,.btn-row,.ai-box{display:none!important}
  .view{display:none!important}
  #view-report{display:block!important}
  #view-report .view-head,.rp-toolbar{display:none!important}
  #main{padding:0}
}

/* ============ 상담보고서 (A4 인쇄) ============ */
#report-root{background:#e4e4df;padding:1.2rem 0;border-radius:var(--radius);overflow-x:auto}
.rp-page{width:210mm;min-height:295mm;margin:0 auto 1.1rem;background:#fff;color:#1b1b1b;
  padding:16mm 15mm;box-shadow:0 3px 18px rgba(0,0,0,.14);box-sizing:border-box;position:relative;
  font-family:var(--font);font-size:9.3pt;line-height:1.62;font-variant-numeric:tabular-nums}

/* ---- 표지 ---- */
.rp-cover{display:flex;flex-direction:column;background:linear-gradient(160deg,#ffffff 55%,#f2f5f9 100%)}
.rp-cover-top{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #dfe3e8;padding-bottom:3mm}
.rp-brand{letter-spacing:.32em;font-size:7.5pt;color:#2a5c8f;font-weight:800}
.rp-brand-date{font-size:8pt;color:#98a2ad}
.rp-cover-main{margin-top:30mm;flex:1}
.rp-title{font-size:31pt;font-weight:800;letter-spacing:-.02em;line-height:1.18;color:#12283f;margin:0}
.rp-cover-line{width:30mm;height:1.6mm;background:linear-gradient(90deg,#2a5c8f,#7aa7d4);margin:8mm 0 12mm;border-radius:1mm}
.rp-cover-name{font-size:18pt;font-weight:800;color:#12283f}
.rp-cover-name span{font-size:12pt;font-weight:600;color:#5a6774}
.rp-cover-meta{color:#5a6774;margin-top:1.5mm;font-size:9pt}
.rp-cover-cards{display:flex;gap:5mm;margin-bottom:18mm}
.rp-cc{flex:1;background:#fff;border:1px solid #dfe3e8;border-radius:3mm;padding:5mm;box-shadow:0 1px 4px rgba(18,40,63,.05)}
.rp-cc .k{font-size:7.5pt;color:#7d8894;font-weight:700;letter-spacing:.04em}
.rp-cc .v{font-size:17pt;font-weight:800;color:#12283f;margin-top:1mm}
.rp-cc .v small{font-size:9pt;color:#5a6774;font-weight:600;margin-left:.5mm}
.rp-cc .d{font-size:7.5pt;color:#98a2ad;margin-top:.5mm}
.rp-cc-g{display:flex;align-items:center;gap:3mm}
.rp-gauge{width:22mm;height:22mm;flex:0 0 22mm}
.rp-cc-g .gk{font-size:8pt;color:#5a6774;line-height:1.5}
.rp-cc-g .gk b{font-size:10.5pt;color:#12283f}
.rp-cover-foot{font-size:7pt;color:#98a2ad;border-top:1px solid #dfe3e8;padding-top:3mm;line-height:1.7}

/* ---- 섹션 ---- */
.rp-h2{display:flex;align-items:center;gap:3mm;margin:0 0 5mm;border-bottom:2px solid #12283f;padding-bottom:2.2mm;break-after:avoid}
.rp-h2 .no{background:#12283f;color:#fff;font-weight:800;font-size:9.5pt;border-radius:1.5mm;padding:1mm 2.6mm;letter-spacing:.05em}
.rp-h2 .t{font-size:13.5pt;font-weight:800;color:#12283f;letter-spacing:-.01em}
.rp-h2 small{margin-left:auto;font-size:7.5pt;color:#98a2ad;font-weight:500}
.rp-h3{font-size:10.5pt;font-weight:800;color:#2a5c8f;margin:6mm 0 2.2mm;break-after:avoid}
.rp-lead{color:#3a4550;margin:0 0 4mm}
.rp-fine{font-size:7.3pt;color:#98a2ad;margin-top:2mm}

/* 판정 요약 바 */
.rp-verdictbar{display:flex;gap:3mm;align-items:center;margin-bottom:5mm}
.rp-verdictbar>div{border-radius:2mm;padding:2.2mm 4mm;font-size:9pt;font-weight:600}
.rp-verdictbar b{font-size:12pt;margin-left:1mm}
.rp-verdictbar .ok{background:#e9f5e9;color:#1a7a1a}
.rp-verdictbar .wr{background:#fdf3e4;color:#b45f06}
.rp-verdictbar .bd{background:#fdeaea;color:#c0392b}
.rp-verdictbar .tt{margin-left:auto;background:none;color:#98a2ad;font-size:7.8pt;font-weight:500}

/* 핵심 소견 */
.rp-findings{display:flex;flex-direction:column;gap:2mm;margin-bottom:6mm}
.rp-find{display:flex;gap:2.5mm;align-items:flex-start;background:#f7f9fb;border-radius:2mm;padding:2.5mm 3.5mm;break-inside:avoid}
.rp-find p{margin:0;font-size:8.6pt;color:#28323c}
.ftag{flex:0 0 auto;font-size:7pt;font-weight:800;border-radius:1.5mm;padding:.8mm 2.2mm;margin-top:.4mm}
.f-강점{background:#e9f5e9;color:#1a7a1a}.f-보완{background:#fdf3e4;color:#b45f06}
.f-공백{background:#fdeaea;color:#c0392b}.f-중복{background:#eef1f7;color:#4a5a8f}.f-검토{background:#f0ecf7;color:#6a4a9f}

/* ---- 표 ---- */
.rp-table{width:100%;border-collapse:collapse;font-size:8.1pt;margin-bottom:3mm}
.rp-table thead{display:table-header-group}
.rp-table tr{break-inside:avoid}
.rp-table th{background:#12283f;color:#fff;font-weight:700;padding:1.8mm 2.2mm;text-align:left;font-size:7.6pt;letter-spacing:.02em}
.rp-table th:first-child{border-radius:1.5mm 0 0 0}.rp-table th:last-child{border-radius:0 1.5mm 0 0}
.rp-table th.r,.rp-table td.r{text-align:right}.rp-table th.c,.rp-table td.c{text-align:center}
.rp-table td{border-bottom:.4pt solid #e3e6ea;padding:1.6mm 2.2mm;vertical-align:top}
.rp-table tbody tr:nth-child(even) td{background:#f8fafc}
.rp-table td.cat{font-weight:800;color:#2a5c8f;white-space:nowrap}
.rp-table td.small,.rp-table td .small{font-size:7.4pt;color:#5a6774}
.rp-table .neg{color:#c0392b;font-weight:700}.rp-table .pos{color:#1a7a1a;font-weight:700}
.est{color:#b45f06;font-size:6.5pt;font-weight:700;margin-left:1mm}
.pill{display:inline-block;font-size:7.2pt;font-weight:800;border-radius:99px;padding:.6mm 2.6mm}
.p-ok{background:#e9f5e9;color:#1a7a1a}.p-mid{background:#fdf3e4;color:#b45f06}.p-bad{background:#fdeaea;color:#c0392b}

/* 비급여 카드 */
.rp-npcard{border:1px solid #e3e6ea;border-left:1mm solid #2a5c8f;border-radius:2mm;padding:3mm 4mm;margin-bottom:2.6mm;break-inside:avoid;background:#fff}
.rp-nphead{display:flex;align-items:center;gap:2.5mm;margin-bottom:1.2mm;font-size:9.6pt}
.npb{font-size:7pt;letter-spacing:.5mm}
.npb.g3{color:#1a7a1a}.npb.g2{color:#b45f06}.npb.g1{color:#98a2ad}
.rp-nptotal{margin-left:auto;font-weight:800;color:#12283f;font-size:9.6pt}
.rp-nptotal .none{color:#c0392b;font-style:normal;font-size:8pt}
.rp-nprow{font-size:7.9pt;color:#3a4550;margin-top:.8mm;display:flex;gap:2.5mm}
.rp-nprow em{flex:0 0 9mm;font-style:normal;font-weight:800;color:#2a5c8f;font-size:7.3pt;padding-top:.3mm}

/* 리모델링 미터 */
.rp-meter{display:flex;align-items:center;gap:4mm;background:#f7f9fb;border:1px solid #e3e6ea;border-radius:2.5mm;padding:4mm 5mm;margin-bottom:4mm;break-inside:avoid}
.rp-meter em{display:block;font-style:normal;font-size:7pt;color:#7d8894;font-weight:700}
.rp-meter b{font-size:11.5pt;color:#12283f}
.rp-meter b.neg{color:#c0392b}.rp-meter b.pos{color:#1a7a1a}
.rp-meter .arr{font-size:13pt;color:#c3ccd5;font-weight:300}
.rp-meter .delta{margin-left:auto;font-weight:800;font-size:11pt;color:#c0392b;text-align:right}
.rp-meter .delta.ok{color:#1a7a1a}
.rp-meter .delta small{display:block;font-size:7pt;font-weight:700}
.rp-warnbox{background:#fdf6e8;border-left:1mm solid #e8a200;border-radius:0 1.5mm 1.5mm 0;padding:2.2mm 3.2mm;font-size:7.8pt;margin:2mm 0;break-inside:avoid}
.rp-disclaimer{margin-top:7mm;background:#f7f9fb;border-radius:2mm;padding:4mm;font-size:7.6pt;color:#5a6774;break-inside:avoid}
.rp-disclaimer b{color:#12283f;display:block;margin-bottom:1mm}
.rp-disclaimer p{margin:0;line-height:1.8}
.rp-sign{display:flex;justify-content:space-between;margin-top:12mm;font-size:9pt;color:#28323c;break-inside:avoid}
.rp-sign em{font-style:normal;font-size:7.5pt;color:#7d8894;font-weight:700;display:block;margin-bottom:1mm}
.rp-toolbar{display:flex;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}

/* ---- 약관 분석 ---- */
.terms-drop{border:2px dashed var(--axis);border-radius:14px;background:var(--surface-1);padding:1.6rem 1rem;text-align:center;cursor:pointer;margin:.6rem 0}
.terms-drop:hover{border-color:var(--s1)}
.terms-hit{border:1px solid var(--grid);border-radius:12px;margin-bottom:.6rem;overflow:hidden}
.terms-hit-head{display:flex;gap:.6rem;align-items:center;padding:.6rem .9rem;background:var(--page);font-weight:700;font-size:.9rem}
.terms-hit-body{padding:.5rem .9rem}
.terms-ex{font-size:.8rem;color:var(--ink-2);border-left:3px solid var(--grid);padding:.3rem .6rem;margin:.35rem 0}
.terms-ex b{color:var(--s1)}

/* ---- 변경 전/후 비교표 (헤드라인) ---- */
.rp-cmp-hero{display:flex;justify-content:space-between;gap:6mm;align-items:stretch;
  background:linear-gradient(135deg,#12283f,#274b6d);color:#fff;border-radius:3mm;padding:6mm 7mm;margin-bottom:5mm}
.rp-cmp-hero-l{display:flex;flex-direction:column;justify-content:center}
.rp-cmp-kicker{font-size:8pt;letter-spacing:.22em;color:#9dc0e4;font-weight:700}
.rp-cmp-title{font-size:19pt;font-weight:800;margin-top:2mm;line-height:1.25;word-break:keep-all}
.rp-cmp-title b{color:#ffd34d}
.rp-cmp-sub{font-size:8.5pt;color:#b9c7d6;margin-top:2.5mm}
.rp-cmp-hero-r{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;min-width:52mm}
.rp-cmp-prem{font-size:8pt;color:#c6d3e0}
.rp-cmp-prem b{display:block;font-size:15pt;font-weight:800;color:#fff;margin-top:.5mm;font-variant-numeric:tabular-nums}
.rp-cmp-prem.after b{color:#ffd34d}
.rp-cmp-prem-arrow{font-size:11pt;font-weight:800;margin:1.5mm 0}
.rp-cmp-prem-arrow.down{color:#5fe08a}.rp-cmp-prem-arrow.up{color:#ffd34d}.rp-cmp-prem-arrow.eq{color:#c6d3e0}
.rp-cmp-badge{margin-top:2mm;font-size:8.5pt;font-weight:800;padding:1.5mm 4mm;border-radius:6mm}
.rp-cmp-badge.eq{background:#3f6690;color:#fff}.rp-cmp-badge.down{background:#5fe08a;color:#0b3d1f}.rp-cmp-badge.up{background:#ffd34d;color:#5a4700}
.rp-cmp-table td,.rp-cmp-table th{padding:2.4mm 3mm;font-size:9.2pt}
.rp-cmp-table thead th{background:#12283f;color:#fff}
.rp-cmp-name{font-weight:700;color:#1b2b3d}
.rp-cmp-note{display:block;font-size:7.3pt;color:#9098a3;font-weight:500;margin-top:.3mm}
.rp-cmp-before{color:#7b8794}
.rp-cmp-arr{color:#b9c2cc;font-size:8pt}
.rp-cmp-after{font-weight:700;color:#1b2b3d}
.rp-cmp-after.up{color:#c0392b}
.rp-cmp-after.dn{color:#1a7a1a}
.rp-cmp-table tr.rp-chg{background:#fff7ec}
.rp-cmp-table tr.rp-chg .rp-cmp-arr{color:#e08a2b}
.rp-noamt{color:#c0392b;font-style:normal;font-size:8pt}

/* ---- 인쇄 ---- */
@media print{
  body *{visibility:hidden}
  #report-root, #report-root *{visibility:visible}
  #report-root{position:absolute;left:0;top:0;width:100%;background:#fff;padding:0;overflow:visible}
  .rp-page{width:auto;min-height:0;margin:0;box-shadow:none;padding:10mm 9mm;page-break-after:always;background:#fff!important}
  .rp-page:last-child{page-break-after:auto}
  .rp-cover{height:275mm;page-break-inside:avoid}
  .rp-table thead{display:table-header-group}
  .rp-table tr,.rp-npcard,.rp-find,.rp-meter,.rp-cmp-hero{page-break-inside:avoid}
  .rp-cmp-hero{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-h2,.rp-h3{page-break-after:avoid}
}
@page{size:A4;margin:9mm}

/* ============================================================
 * auth.js — 로그인 게이트 · 상단바 · 관리자 · 저장소 (v12)
 * ============================================================ */
#app{visibility:hidden}
body.authed #app{visibility:visible}

/* 로그인/가입 오버레이 */
#auth-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  padding:24px;background:linear-gradient(150deg,var(--page),color-mix(in srgb,var(--accent) 8%,var(--page)));overflow:auto}
#auth-overlay.hidden{display:none}
.auth-card{width:100%;max-width:420px;background:var(--surface-1);border:1px solid var(--grid);
  border-radius:20px;box-shadow:var(--shadow-md);padding:30px 30px 26px}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.auth-mark{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);display:grid;place-items:center}
.auth-mark svg{width:26px;height:26px}
.auth-title{font-weight:800;font-size:1.12rem;letter-spacing:-.03em}
.auth-sub{font-size:.8rem;color:var(--ink-2);margin-top:2px}
.auth-tabs{display:flex;gap:6px;background:var(--surface-2);border:1px solid var(--grid);border-radius:12px;padding:4px;margin-bottom:18px}
.auth-tab{flex:1;padding:9px;border:none;background:transparent;border-radius:9px;font-weight:700;font-size:.9rem;color:var(--ink-2);cursor:pointer}
.auth-tab.active{background:var(--surface-1);color:var(--accent-ink);box-shadow:var(--shadow-sm)}
.auth-form{display:flex;flex-direction:column}
.auth-form label{font-size:.82rem;font-weight:700;color:var(--ink-2);margin:11px 0 5px}
.auth-form label .req{color:var(--critical)}
.auth-form input{padding:11px 12px;border:1px solid var(--axis);border-radius:10px;font-size:.95rem}
.auth-submit{margin-top:20px;padding:12px;border:none;border-radius:11px;background:var(--accent);color:#fff;
  font-weight:800;font-size:.98rem;cursor:pointer;transition:background .12s}
.auth-submit:hover{background:var(--accent-strong)}
.auth-submit:disabled{opacity:.6;cursor:default}
.auth-foot{margin-top:16px;font-size:.8rem;color:var(--ink-3);text-align:center;line-height:1.5}
.auth-msg{padding:10px 12px;border-radius:10px;font-size:.85rem;margin-bottom:14px;font-weight:600}
.auth-msg.err{background:var(--bad-soft);color:var(--critical)}
.auth-msg.ok{background:var(--good-soft);color:var(--good-text)}

/* 상단바 */
#topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px;margin:-28px -28px 22px;background:var(--surface-1);
  border-bottom:1px solid var(--grid);position:sticky;top:0;z-index:60}
.tb-left,.tb-right{display:flex;align-items:center;gap:8px}
.tb-btn{padding:8px 13px;border:1px solid var(--axis);background:var(--surface-1);border-radius:9px;
  font-weight:700;font-size:.85rem;color:var(--ink-1);cursor:pointer;transition:.12s;white-space:nowrap}
.tb-btn:hover{background:var(--surface-2)}
.tb-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.tb-btn.primary:hover{background:var(--accent-strong)}
.tb-btn.admin{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.tb-btn.ghost{background:transparent;color:var(--ink-2)}
.tb-btn.danger{background:var(--bad-soft);color:var(--critical);border-color:transparent}
.tb-btn:disabled{opacity:.5;cursor:default}
.tb-user{display:flex;flex-direction:column;line-height:1.2;text-align:right;margin:0 4px}
.tb-user b{font-size:.85rem}
.tb-user span{font-size:.72rem;color:var(--ink-3)}

/* auth 모달 */
.auth-modal-bk{position:fixed;inset:0;z-index:1100;background:rgba(16,20,30,.5);
  display:flex;align-items:center;justify-content:center;padding:24px}
.auth-modal-bk.hidden{display:none}
.auth-modal{width:100%;max-width:440px;background:var(--surface-1);border-radius:18px;box-shadow:var(--shadow-md);overflow:hidden}
.auth-modal.wide{max-width:820px}
.am-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--grid)}
.am-head h3{font-size:1.02rem;font-weight:800}
.am-x{border:none;background:transparent;font-size:1rem;cursor:pointer;color:var(--ink-3)}
.am-body{padding:18px 20px 22px;max-height:70vh;overflow:auto}
.mp-label{display:block;font-size:.85rem;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.mp-input{width:100%;padding:11px 12px;border:1px solid var(--axis);border-radius:10px;font-size:.95rem}
.mp-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

/* 케이스 목록 */
.case-list{display:flex;flex-direction:column;gap:8px}
.case-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border:1px solid var(--grid);border-radius:12px;background:var(--surface-2)}
.case-info b{font-size:.92rem}
.case-info span{display:block;font-size:.76rem;color:var(--ink-3);margin-top:2px}
.case-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.case-empty{padding:26px;text-align:center;color:var(--ink-3);font-size:.9rem}
/* 고객별 묶음 — 고객 하나가 폴더다 */
.case-fold{display:flex;flex-direction:column;gap:7px}
.case-fold h4{display:flex;align-items:center;gap:7px;font-size:.92rem;font-weight:750;
  letter-spacing:-.015em;margin-top:6px;padding-bottom:6px;border-bottom:1px solid var(--grid)}
.case-fold.orphan h4{color:var(--warn)}
.case-fold.orphan .case-row{border-style:dashed}
.case-note{font-size:.78rem;color:var(--ink-3);line-height:1.6;margin:2px 0 4px}
.case-dup{color:var(--warn);font-weight:700}
/* 동명이인일 때만 나오는 구분 표시 (생년월일). 제목만 보고 남의 폴더를 열지 않게 */
.case-who{font-style:normal;font-size:.78rem;font-weight:500;color:var(--ink-3);
  background:var(--surface-2);border:1px solid var(--grid);border-radius:6px;padding:.04rem .34rem}
.case-pick{font-size:.82rem;padding:.34rem .5rem;border:1px solid var(--axis);
  border-radius:9px;background:var(--surface-1);color:var(--ink-1);max-width:210px}

/* 관리자 테이블 */
.admin-hint{font-size:.84rem;color:var(--ink-2);margin-bottom:14px}
.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}
.admin-table th,.admin-table td{padding:10px 12px;border-bottom:1px solid var(--grid);text-align:left;vertical-align:top}
.admin-table th{font-size:.76rem;color:var(--ink-3);font-weight:700}
.admin-table .dim{color:var(--ink-3);font-size:.78rem}
.admin-acts{display:flex;flex-wrap:wrap;gap:5px}
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.72rem;font-weight:700}
.badge.pending{background:var(--warn-soft);color:var(--warn)}
.badge.approved{background:var(--good-soft);color:var(--good-text)}
.badge.rejected{background:var(--bad-soft);color:var(--critical)}
.badge.admin{background:var(--accent-soft);color:var(--accent-ink)}

/* 수기 입력 패널 */
.manual-panel{margin-top:20px}
.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.manual-grid{grid-template-columns:1fr}}

/* 토스트 */
.auth-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(20px);
  z-index:1200;background:var(--ink-1);color:var(--surface-1);padding:11px 20px;border-radius:11px;
  font-size:.88rem;font-weight:600;opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow-md)}
.auth-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.auth-toast.err{background:var(--critical);color:#fff}
.auth-toast.ok{background:var(--good);color:#fff}

/* ============================================================
 * matrix.js — 담보 × 회사 매트릭스 (v13)
 * ============================================================ */
.mx-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.mx-wrap{overflow-x:auto;overflow-y:visible;border:1px solid var(--grid);border-radius:12px;margin-top:12px}
.mx-table{border-collapse:separate;border-spacing:0;font-size:.73rem;white-space:nowrap;min-width:100%;line-height:1.2}
.mx-table th,.mx-table td{border-bottom:1px solid var(--grid);border-right:1px solid var(--grid);padding:2px 7px;text-align:center;background:var(--surface-1)}
.mx-table thead th{position:sticky;top:0;z-index:3;background:var(--surface-2);vertical-align:top}
.mx-table .mx-nm{position:sticky;left:0;z-index:2;text-align:left;background:var(--surface-1);font-weight:600;min-width:104px}
.mx-table thead .mx-nm{z-index:4;background:var(--surface-2)}
.mx-num{text-align:right;font-variant-numeric:tabular-nums}
.mx-num.dim{color:var(--ink-3)}
.mx-num.after{font-weight:700;background:color-mix(in srgb,var(--accent) 6%,var(--surface-1))}
.mx-num.up{color:var(--good-text)} .mx-num.down{color:var(--serious)}
.mx-num.ok{color:var(--good-text)} .mx-num.short{color:var(--critical)}
.mx-ch{min-width:92px}
.mx-ch.new{background:color-mix(in srgb,var(--s2) 12%,var(--surface-2))}
.mx-co{font-weight:800;font-size:.76rem}
.mx-pr{font-size:.68rem;color:var(--ink-2);margin:0}
.mx-pm{font-size:.68rem;color:var(--accent-ink);font-weight:600;margin-bottom:2px}
.mx-adj{width:100%;padding:2px;font-size:.7rem;border-radius:6px;border:1px solid var(--axis)}
.mx-badge.new{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:700;background:var(--good-soft);color:var(--good-text)}
.mx-del{display:block;margin:4px auto 0;font-size:.68rem;color:var(--critical);background:none;border:none;cursor:pointer;text-decoration:underline}
.mx-grp td{background:var(--accent-soft);color:var(--accent-ink);font-weight:800;text-align:left;position:sticky;left:0;font-size:.72rem;padding:2px 7px}
.mx-cell{padding:1px}
.mx-in{width:60px;padding:2px 5px;text-align:right;border:1px solid transparent;border-radius:5px;background:transparent;font-variant-numeric:tabular-nums}
.mx-in:hover{border-color:var(--axis)} .mx-in:focus{border-color:var(--accent);background:var(--surface-1)}
.mx-foot td{position:sticky;bottom:0;background:var(--surface-2);font-weight:700;z-index:2}
.mx-foot .mx-nm,.mx-foot td:first-child{position:sticky;left:0;text-align:left}
/* 회사 칸 더 좁게(상품 여러 개 대응) */
.mx-ch{min-width:74px;max-width:96px}
.mx-in{width:52px}
/* 실행후·과부족 = 오른쪽 고정 (회사들만 가운데서 가로 스크롤) */
.mx-table .mx-rc1{position:sticky;right:0;z-index:2;min-width:82px;max-width:82px;background:var(--surface-1);box-shadow:-4px 0 6px -4px rgba(0,0,0,.12)}
.mx-table .mx-rc2{position:sticky;right:82px;z-index:2;min-width:60px;max-width:60px;background:var(--surface-1)}
.mx-table thead .mx-rc1,.mx-table thead .mx-rc2{z-index:4;background:var(--surface-2)}
.mx-table tbody .mx-rc2.after{background:color-mix(in srgb,var(--accent) 8%,var(--surface-1))}
.mx-table .mx-foot.mx-rc1,.mx-table tfoot .mx-rc1{background:var(--surface-2)} .mx-table tfoot .mx-rc2{background:var(--surface-2)}
.mx-foot .mx-rc1,.mx-foot .mx-rc2{bottom:0}
.mx-result{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}
.mx-result>div{flex:1;min-width:150px;background:var(--surface-2);border:1px solid var(--grid);border-radius:12px;padding:12px 14px}
.mx-result span{display:block;font-size:.78rem;color:var(--ink-2)}
.mx-result b{font-size:1.15rem;font-weight:800}
.mx-result b.pos{color:var(--good-text)} .mx-result b.neg{color:var(--serious)}

/* ============================================================
 * matrix.js 상담보고서 (인쇄본) v14
 * ============================================================ */
.rp-doc{background:var(--surface-1);border:1px solid var(--grid);border-radius:14px;padding:30px 38px;width:100%}
.rp-doc .rp-kpis .rp-kpi{padding:16px 20px}
.rp-doc .rp-adjbox{grid-template-columns:1fr 1fr}
.rp-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--accent);padding-bottom:14px;margin-bottom:18px}
.rp-title{font-size:1.3rem;font-weight:800;letter-spacing:-.02em}
.rp-sub{color:var(--ink-2);margin-top:4px;font-size:.9rem}
.rp-brand{font-size:.82rem;color:var(--accent-ink);font-weight:700}
.rp-kpis{display:flex;gap:12px;margin-bottom:22px;flex-wrap:wrap}
.rp-kpi{flex:1;min-width:150px;background:var(--surface-2);border:1px solid var(--grid);border-radius:12px;padding:12px 14px}
.rp-kpi.hi{background:var(--accent-soft);border-color:transparent}
.rp-kpi span{display:block;font-size:.76rem;color:var(--ink-2)}
.rp-kpi b{font-size:1.2rem;font-weight:800}
.rp-kpi small{display:block;font-size:.72rem;color:var(--ink-3);margin-top:2px}
.rp-kpi b.pos{color:var(--good-text)} .rp-kpi b.neg{color:var(--serious)}
.rp-h{font-size:1rem;font-weight:800;margin:22px 0 8px;padding-left:9px;border-left:3px solid var(--accent)}
.rp-table{width:100%;border-collapse:collapse;font-size:.85rem}
.rp-table th,.rp-table td{border-bottom:1px solid var(--grid);padding:7px 10px;text-align:left}
.rp-table th{font-size:.76rem;color:var(--ink-3);font-weight:700;background:var(--surface-2)}
.rp-table .num{text-align:right;font-variant-numeric:tabular-nums}
.rp-table .ctr{text-align:center}
.rp-table .dim{color:var(--ink-3)}
.rp-table tfoot td{font-weight:700;border-top:2px solid var(--axis);background:var(--surface-2)}
.rp-table .after{font-weight:700}
.rp-table .after small{font-weight:600;font-size:.72rem;margin-left:4px;color:var(--ink-3)}
.rp-table .up{color:var(--good-text)} .rp-table .down{color:var(--serious)}
.rp-table .ok{color:var(--good-text)} .rp-table .short{color:var(--critical)}
.rp-grp td{background:var(--accent-soft);color:var(--accent-ink);font-weight:800;font-size:.82rem}
.rp-nm{font-weight:600}
.rp-adj{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.74rem;font-weight:700;background:var(--surface-2)}
.rp-adj.cut{background:var(--bad-soft);color:var(--critical)}
.rp-adj.red{background:var(--warn-soft);color:var(--warn)}
.rp-adj.new{background:var(--good-soft);color:var(--good-text)}
.rp-tag.new{font-size:.68rem;color:var(--good-text)}
.rp-note{font-size:.76rem;color:var(--ink-3);margin-top:18px;line-height:1.6}
@media print{
  .rp-doc{border:none;border-radius:0;padding:0;max-width:100%}
  .rp-grp td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* matrix v15 — 실손 표시 + 조정내역 */
.mx-sil{font-size:.72rem;font-weight:600;color:var(--ink-3)}
.mx-cell.sil{text-align:center;color:var(--good-text);font-weight:700}
.rp-adjbox{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px}
@media(max-width:640px){.rp-adjbox{grid-template-columns:1fr}}
.rp-adjcol{border:1px solid var(--grid);border-radius:12px;padding:12px 14px;background:var(--surface-2)}
.rp-adjt{font-weight:800;font-size:.85rem;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--grid)}
.rp-adjt.cut{color:var(--critical)} .rp-adjt.new{color:var(--good-text)}
.rp-list{list-style:none;margin:0;padding:0;font-size:.83rem}
.rp-list li{padding:6px 0;border-bottom:1px dashed var(--grid)}
.rp-list li:last-child{border-bottom:none}
.rp-covs{font-size:.76rem;color:var(--ink-2);margin-top:3px;padding-left:4px}

/* 상담보고서 — 치료 트렌드 근거 (why) v17 */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:8px}
@media(max-width:820px){.why-grid{grid-template-columns:1fr}}
.why-card{border:1px solid var(--grid);border-radius:12px;padding:16px 18px;background:var(--surface-2)}
.why-card.up{background:color-mix(in srgb,var(--accent) 5%,var(--surface-1));border-color:color-mix(in srgb,var(--accent) 25%,var(--grid))}
.why-h{font-weight:800;font-size:1rem;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.why-badge{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--surface-2);color:var(--ink-3)}
.why-badge.on,.why-badge.up{background:var(--accent-soft);color:var(--accent-ink)}
/* 조정 여부에 따라 카드 색이 갈린다 — '아직 안 건드림'을 강조색으로 위장하지 않는다 */
.why-card.down{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 34%,var(--grid))}
.why-card.todo{background:var(--surface-1);border-style:dashed;border-color:color-mix(in srgb,var(--critical) 34%,var(--grid))}
.why-card.keep{background:var(--surface-2)}
.why-badge.down{background:var(--warn-soft);color:var(--serious)}
.why-badge.todo{background:var(--bad-soft);color:var(--critical)}
.why-badge.keep{background:var(--surface-2);color:var(--ink-3)}
.why-card.todo .why-w{color:var(--critical)}
.why-card.down .why-w{color:var(--serious)}
.why-card.keep .why-w{color:var(--ink-2)}
.why-t{font-size:.85rem;color:var(--ink-2);line-height:1.55}
.why-w{font-size:.86rem;font-weight:700;color:var(--accent-ink);margin-top:10px;padding-top:8px;border-top:1px dashed var(--grid)}

/* 상담보고서 — 신치료 소개 카드 v18 */
.tx-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:8px}
@media(max-width:900px){.tx-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tx-cards{grid-template-columns:1fr}}
.tx-card{border:1px solid var(--grid);border-radius:12px;padding:14px;background:var(--surface-2);display:flex;flex-direction:column}
.tx-ico{font-size:1.5rem;margin-bottom:6px}
.tx-name{font-weight:800;font-size:.9rem;line-height:1.3;margin-bottom:6px}
.tx-cost{font-size:.78rem;color:var(--critical);font-weight:600;line-height:1.4;margin-bottom:5px}
.tx-eff{font-size:.76rem;color:var(--ink-2);line-height:1.45;margin-top:auto}

/* 상담보고서 — 보험도감 스타일 v19 */
.rp-lead2{color:var(--ink-2);margin:-2px 0 14px;font-size:.9rem;line-height:1.6}
.rp-hl{color:var(--critical)}
/* 논지 스트립 (진단비 → 치료비) */
.rp-thesis{background:linear-gradient(120deg,var(--accent-soft),transparent);border-left:4px solid var(--accent);border-radius:0 12px 12px 0;padding:14px 18px;margin:4px 0 20px}
.rp-thesis-t{font-size:1.05rem;font-weight:800;letter-spacing:-.01em;color:var(--ink-1)}
.rp-thesis-t b{color:var(--accent-ink)}
.rp-thesis-s{font-size:.85rem;color:var(--ink-2);margin-top:4px}
.rp-thesis-s b{color:var(--ink-1)}
/* 상담 포인트 박스 (노랑) */
.rp-point{background:#fdf6e8;border-left:4px solid #e8a200;border-radius:0 10px 10px 0;padding:12px 16px;margin:14px 0 4px;font-size:.85rem;line-height:1.65;color:#5a4a1a}
.rp-point b{color:#8a6400}
.rp-point.close{background:var(--good-soft);border-left-color:var(--good-text);color:var(--ink-1)}
.rp-point.close b{color:var(--good-text)}
@media(prefers-color-scheme:dark){.rp-point{background:color-mix(in srgb,#e8a200 12%,var(--surface-1));color:var(--ink-1)}.rp-point b{color:#e8b53a}}
/* 생애주기 우선순위 */
.rp-life{margin-top:12px;border:1px solid var(--grid);border-radius:12px;padding:12px 16px;background:var(--surface-2)}
.rp-life-h{font-size:.85rem;font-weight:800;margin-bottom:8px}
.rp-life-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:640px){.rp-life-row{grid-template-columns:1fr}}
.rp-life-item{font-size:.84rem;font-weight:700;display:flex;flex-direction:column;gap:3px;background:var(--surface-1);border:1px solid var(--grid);border-radius:9px;padding:8px 11px}
.rp-life-no{font-size:.68rem;font-weight:800;color:var(--accent-ink);background:var(--accent-soft);border-radius:20px;padding:1px 9px;align-self:flex-start}
/* 신치료 데이터 표 */
.rp-tx td{vertical-align:middle}
.rp-tx .tx-cat{font-size:.74rem;white-space:nowrap}
.rp-tx .tx-cost{font-weight:700;color:var(--critical);white-space:nowrap;font-size:.82rem}
.rp-tx .tx-sil{font-size:.76rem;line-height:1.4}
.rp-tx .rp-nm{font-weight:700;font-size:.86rem}

/* 걱정 질병 순위 선택 (질병 시나리오 메뉴) */
.worry-pick{border:1px solid var(--grid);border-radius:14px;padding:14px 16px;margin-bottom:14px;background:var(--surface-1)}
.wp-head{font-size:.9rem;font-weight:700;margin-bottom:10px}
.wp-head b{color:var(--accent-ink)}
.wp-note{display:inline-block;font-size:.74rem;font-weight:500;color:var(--ink-3);margin-left:6px}
.wp-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.wp-chip{display:flex;align-items:center;gap:8px;border:1.5px solid var(--grid);background:var(--surface-1);border-radius:12px;padding:10px 16px;font-size:.92rem;font-weight:700;color:var(--ink-1);cursor:pointer;transition:.12s;position:relative}
.wp-chip:hover{border-color:var(--accent);background:var(--surface-2)}
.wp-chip.on{border-color:var(--accent);background:var(--accent-soft)}
.wp-chip .wp-ico{font-size:1.15rem}
.wp-rank{font-size:.68rem;font-weight:800;color:#fff;background:var(--accent);border-radius:20px;padding:2px 8px}
.wp-plus{font-size:.9rem;color:var(--ink-3);font-weight:800}
.wp-clear{border:0;background:none;color:var(--ink-3);font-size:.82rem;font-weight:600;cursor:pointer;text-decoration:underline;padding:6px}

/* 상담보고서 — 걱정 질병 시나리오 카드 */
.rp-hint{background:var(--surface-2);border:1px dashed var(--grid);border-radius:10px;padding:12px 14px;color:var(--ink-2)}
.rp-scen{border:1px solid var(--grid);border-radius:12px;padding:14px 16px;margin-bottom:10px;background:var(--surface-1)}
.rp-scen-h{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:800;margin-bottom:10px;flex-wrap:wrap}
.rp-scen-h small{font-weight:600;font-size:.8rem;color:var(--ink-3)}
.rp-scen-no{font-size:.7rem;font-weight:800;color:#fff;background:var(--accent);border-radius:20px;padding:2px 10px}
.rp-scen-v{margin-left:auto}
.rp-scen-metrics{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface-2);border-radius:10px;padding:11px 14px}
.rp-scen-m{display:flex;flex-direction:column;gap:2px;min-width:96px}
.rp-scen-m em{font-style:normal;font-size:.72rem;color:var(--ink-3);font-weight:700}
.rp-scen-m b{font-size:1.15rem;font-weight:800}
.rp-scen-m b.neg{color:var(--critical)} .rp-scen-m b.pos{color:var(--good-text)}
.rp-scen-m small{font-size:.72rem;color:var(--ink-3)}
.rp-scen-m.arr{min-width:0;font-size:1.2rem;color:var(--ink-3);font-weight:300;align-self:center}
.rp-scen-path{margin-top:10px;font-size:.82rem;color:var(--ink-2);line-height:1.7;display:flex;flex-wrap:wrap;align-items:center;gap:2px}
.rp-scen-path em{font-style:normal;font-weight:800;color:var(--accent-ink);margin-right:6px;font-size:.78rem}
.rp-scen-path i{color:var(--ink-3);font-style:normal;margin:0 4px}
.rp-scen-path span{white-space:nowrap}

/* 범용 인식(KB 외 양식) 배지 */
.gen-badge{display:inline-block;margin-left:8px;font-size:.72rem;font-weight:800;color:#8a6400;background:#fdf6e8;border:1px solid #e8c877;border-radius:20px;padding:2px 10px;vertical-align:middle}

/* 상담보고서 v23 — 컨설팅 전/후 히어로 */
.rp-hero{display:flex;align-items:stretch;gap:0;margin:6px 0 14px;flex-wrap:wrap}
.rp-hero-box{flex:1;min-width:200px;border-radius:14px;padding:18px 22px;color:#fff}
.rp-hero-box.before{background:linear-gradient(135deg,#f0a500,#e8890a)}
.rp-hero-box.after{background:linear-gradient(135deg,#1a3a5c,#12283f)}
.rp-hero-t{font-size:.9rem;font-weight:700;opacity:.92}
.rp-hero-c{font-size:.82rem;opacity:.85;margin:2px 0 6px}
.rp-hero-p{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;line-height:1}
.rp-hero-p small{font-size:.8rem;font-weight:600;opacity:.85;margin-left:3px}
.rp-hero-arr{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 18px;min-width:120px}
.rp-hero-arr b{font-size:1.35rem;font-weight:800}
.rp-hero-arr b.add{color:#c0392b} .rp-hero-arr b.save{color:var(--good-text)}
.rp-hero-arr span{font-size:.72rem;color:var(--ink-3)}
@media(max-width:680px){.rp-hero-arr{padding:10px 0;min-width:0;flex-direction:row;gap:8px}}
.rp-addlist{margin-bottom:16px}
.rp-addlist th{background:#f0a500;color:#fff}

/* 질병별 비급여 최신치료 WHY */
.rp-why-d{margin:14px 0 18px;border:1px solid var(--grid);border-radius:14px;overflow:hidden}
.rp-why-dh{background:var(--surface-2);font-size:1rem;font-weight:800;padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--grid)}
.rp-why-ico{font-size:1.15rem}
.rp-why-d>.rp-lead2{padding:10px 16px 0;margin-bottom:6px}
.rp-tx-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 16px 16px}
@media(max-width:760px){.rp-tx-grid{grid-template-columns:1fr}}
.rp-tx-card{display:flex;gap:12px;border:1px solid var(--grid);border-radius:12px;padding:12px;background:var(--surface-1)}
.rp-tx-img{flex:0 0 64px;width:64px;height:64px;border-radius:10px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}
.rp-tx-img svg{width:42px;height:42px}
.rp-tx-body{flex:1;min-width:0}
.rp-tx-name{font-weight:800;font-size:.92rem;letter-spacing:-.01em;line-height:1.25}
.rp-tx-meta{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.rp-tx-cost{font-size:.78rem;font-weight:700;color:var(--critical);background:var(--bad-soft);border-radius:6px;padding:2px 8px}
.rp-tx-dur{font-size:.78rem;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:2px 8px}
.rp-tx-why{font-size:.82rem;color:var(--ink-2);line-height:1.5}
.rp-tx-why b{color:var(--accent-ink)}

/* 매트릭스 뷰 토글 (전체/요약) */
.mx-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mx-viewtoggle{display:inline-flex;border:1px solid var(--grid);border-radius:9px;overflow:hidden;background:var(--surface-2)}
.mx-vt{border:0;background:none;padding:7px 14px;font-size:.82rem;font-weight:700;color:var(--ink-2);cursor:pointer;transition:.12s}
.mx-vt.on{background:var(--accent);color:#fff}
.mx-hint{font-size:.82rem;color:var(--ink-2);background:var(--accent-soft);border-radius:9px;padding:8px 12px;margin:10px 0 0}
.mx-wrap.mx-summary{overflow-x:visible}
.mx-wrap.mx-summary .mx-table{min-width:0;width:100%}
.mx-wrap.mx-summary .mx-rc1,.mx-wrap.mx-summary .mx-rc2{position:static;box-shadow:none;max-width:none}
.mx-wrap.mx-summary .mx-nm{position:static}

/* 비급여 치료 → 변경된 설계안 보장 (현재 → 설계 후) */
.rp-tx-cover{margin-top:8px;padding:8px 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--grid);display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.rp-tx-cover.on{background:var(--good-soft);border-color:color-mix(in srgb,var(--good-text) 30%,var(--grid))}
.rp-tx-cover.miss{background:var(--bad-soft);border-color:color-mix(in srgb,var(--critical) 25%,var(--grid))}
.rp-cv-name{font-size:.76rem;color:var(--ink-2)}
.rp-cv-name b{color:var(--ink-1)}
.rp-cv-ba{display:flex;align-items:center;gap:6px;font-size:.8rem;font-variant-numeric:tabular-nums}
.rp-cv-b{color:var(--ink-3)}
.rp-cv-ba i{color:var(--ink-3);font-style:normal}
.rp-cv-a b{color:var(--good-text)}
.rp-cv-badge{font-size:.7rem;font-weight:800;border-radius:20px;padding:2px 9px;margin-left:auto}
.rp-cv-badge.up{background:var(--good-text);color:#fff}
.rp-cv-badge.keep{background:var(--accent-soft);color:var(--accent-ink)}
.rp-cv-badge.no{background:var(--bad-soft);color:var(--critical)}

/* 시상 계산기 */
.aw-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:760px){.aw-summary{grid-template-columns:1fr 1fr}}
.aw-sum-tile{background:var(--surface-2);border:1px solid var(--grid);border-radius:12px;padding:14px 16px}
.aw-sum-tile span{display:block;font-size:.78rem;color:var(--ink-2);font-weight:600}
.aw-sum-tile b{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums}
.aw-sum-tile b small{font-size:.85rem;font-weight:600;color:var(--ink-2);margin-left:2px}
.aw-sum-tile.hi{background:var(--accent-soft);border-color:transparent}
.aw-sum-tile.hi b{color:var(--accent-ink)}
.aw-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.aw-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.86rem}
.aw-table th{text-align:left;font-size:.74rem;color:var(--ink-3);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--grid)}
.aw-table td{padding:5px 8px;border-bottom:1px solid var(--grid);vertical-align:middle}
.aw-in{padding:6px 8px;border:1px solid var(--axis);border-radius:8px;font-size:.86rem;background:var(--surface-1)}
.aw-num{text-align:right;font-variant-numeric:tabular-nums}
.aw-unit{color:var(--ink-3);font-size:.8rem}
.aw-flags{white-space:nowrap}
.aw-tag{display:inline-block;font-size:.66rem;font-weight:800;border-radius:20px;padding:1px 7px;margin-right:3px}
.aw-tag.chubb{background:var(--accent-soft);color:var(--accent-ink)}
.aw-tag.spot{background:var(--warn-soft,#fdf6e8);color:#8a6400}
.aw-del{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:.9rem;border-radius:6px;padding:3px 7px}
.aw-del:hover{background:var(--bad-soft);color:var(--critical)}
.aw-opts{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--grid)}
.aw-opt{display:flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600}
.aw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:4px 0 14px}
.aw-card{border:1px solid var(--grid);border-radius:12px;padding:12px 14px;background:var(--surface-1);opacity:.7}
.aw-card.on{opacity:1;border-color:color-mix(in srgb,var(--good-text) 35%,var(--grid));background:var(--good-soft)}
.aw-card-h{display:flex;align-items:center;gap:7px;font-weight:700;font-size:.88rem}
.aw-chk{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-2);color:var(--ink-3);font-size:.72rem;font-weight:800}
.aw-chk.ok{background:var(--good-text);color:#fff}
.aw-pay{font-size:1.25rem;font-weight:800;margin:6px 0 2px;color:var(--ink-3)}
.aw-pay.on{color:var(--good-text)}
.aw-note{font-size:.74rem;color:var(--ink-2)}
.aw-total{display:flex;justify-content:flex-end;align-items:baseline;gap:10px;font-size:1rem;font-weight:700;padding-top:10px;border-top:2px solid var(--axis)}
.aw-total b{font-size:1.6rem;font-weight:800;color:var(--accent-ink)}

/* 담보별 컨설팅 전/후 진단결과 표 (인카 레퍼런스 형식) */
.rp-vd{display:inline-block;font-weight:800;font-size:.9rem;line-height:1}
.rp-vd.o{color:var(--good-text)} .rp-vd.t{color:#e8a200} .rp-vd.x{color:var(--critical)}
.rp-ba td.ctr,.rp-ba th.ctr{text-align:center}
.rp-chg{display:inline-block;font-weight:800;font-size:.8rem;border-radius:6px;padding:1px 7px}
.rp-chg.up{background:var(--bad-soft);color:var(--critical)}
.rp-chg.down{background:var(--good-soft);color:var(--good-text)}
.rp-ba tr.rp-changed td{background:color-mix(in srgb,var(--accent) 4%,var(--surface-1))}
.rp-ba .after{font-weight:800}

/* 총평(맨 위) — 60대도 한눈에 */
.rp-verdict{background:linear-gradient(135deg,#12283f,#1f4468);color:#fff;border-radius:16px;padding:22px 26px;margin:6px 0 22px}
.rp-verdict-badge{display:inline-block;font-size:.82rem;font-weight:800;background:rgba(255,255,255,.16);border-radius:20px;padding:4px 13px;margin-bottom:12px}
.rp-verdict-big{font-size:1.5rem;font-weight:800;line-height:1.4;letter-spacing:-.01em;word-break:keep-all}
.rp-verdict-big b{color:#ffd34d}
.rp-verdict-sub{font-size:1.02rem;color:#d6e2f0;margin-top:10px;line-height:1.6;word-break:keep-all}
.rp-verdict-sub b{color:#fff}
.rp-verdict-nums{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}
.rv-n{flex:1;min-width:130px;background:rgba(255,255,255,.10);border-radius:12px;padding:12px 16px}
.rv-n span{display:block;font-size:.82rem;color:#b9c7d6;font-weight:600}
.rv-n b{font-size:1.7rem;font-weight:800}
.rv-n b small{font-size:.9rem;font-weight:600;color:#c6d3e0;margin-left:2px}
.rv-n.hi{background:#ffd34d;color:#3a2e00}
.rv-n.hi span{color:#7a6410}
.rv-n.hi em{display:block;font-style:normal;font-size:.86rem;font-weight:800;margin-top:1px}
@media(max-width:640px){.rp-verdict-big{font-size:1.22rem}}
/* 신담보(치료비·생활비) 카드 */
.rp-new-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:8px}
.rp-new-card{border:1px solid var(--grid);border-left:4px solid var(--good-text);border-radius:12px;padding:13px 15px;background:var(--good-soft)}
.rp-new-label{font-size:1rem;font-weight:800}
.rp-new-plain{font-size:.82rem;color:var(--ink-2);margin:4px 0 8px;line-height:1.45}
.rp-new-ba{display:flex;align-items:baseline;gap:7px;font-size:.95rem;font-variant-numeric:tabular-nums}
.rp-new-ba i{color:var(--ink-3);font-style:normal}
.rp-new-ba b{font-size:1.2rem;font-weight:800;color:var(--good-text)}
/* 60대 친화 — 보고서 본문 글씨 키움 */
.rp-doc .rp-lead2{font-size:.95rem}
.rp-doc .rp-table{font-size:.9rem}

/* 간편 조절(바) 모드 */
.mx-slider{width:100%;min-width:0}
.mx-slider .sl-cell{min-width:200px}
.sl-range{width:130px;vertical-align:middle;accent-color:var(--accent);cursor:pointer}
.sl-pct{display:inline-block;min-width:38px;text-align:right;font-size:.78rem;font-weight:700;color:var(--accent-ink);margin-left:8px}
.mx-slider .sl-after{font-weight:800}
.mx-slider .sl-after .sl-add{display:block;font-size:.68rem;font-weight:700;color:var(--good-text)}
.mx-slider .rp-vd{font-size:1rem}
/* 해지 자동 분류 패널 */
.sl-cancel{margin-top:20px;border-top:1px solid var(--grid);padding-top:16px}
#sl-cancel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:10px}
.sl-cc{border:1px solid var(--grid);border-radius:12px;padding:12px 14px;background:var(--surface-1)}
.sl-cc.cut{border-left:4px solid var(--critical);background:var(--bad-soft)}
.sl-cc.warn{border-left:4px solid #e8a200;background:#fdf6e8}
.sl-cc.keep{border-left:4px solid var(--good-text)}
.sl-cc-h{font-size:.9rem;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sl-cc-badge{font-size:.68rem;font-weight:800;border-radius:20px;padding:2px 9px}
.sl-cc-badge.cut{background:var(--critical);color:#fff}
.sl-cc-badge.warn{background:#e8a200;color:#fff}
.sl-cc-badge.keep{background:var(--good-soft);color:var(--good-text)}
.sl-cc-r{font-size:.8rem;color:var(--ink-2);margin:6px 0 8px;line-height:1.5}
.sl-apply{border:1px solid var(--critical);background:var(--critical);color:#fff;border-radius:8px;padding:5px 12px;font-size:.8rem;font-weight:700;cursor:pointer}
.sl-apply.warn{border-color:#e8a200;background:#e8a200}
.sl-apply.undo{background:var(--surface-1);color:var(--ink-2);border-color:var(--axis)}
@media(prefers-color-scheme:dark){.sl-cc.warn{background:color-mix(in srgb,#e8a200 12%,var(--surface-1))}}

/* 보고서 — 시뮬레이터 반영 배너 + 신담보 변경 표시 */
.rp-banner{font-size:.88rem;line-height:1.55;color:var(--ink-2);background:var(--surface-2);border:1px dashed var(--grid);border-radius:10px;padding:11px 15px;margin:0 0 16px}
.rp-banner b{color:var(--ink-1)}
.rp-banner.on{background:var(--good-soft);border-style:solid;border-color:color-mix(in srgb,var(--good-text) 25%,var(--grid))}
.rp-new-badge{font-size:.66rem;font-weight:800;border-radius:20px;padding:2px 8px;margin-left:4px;vertical-align:middle}
.rp-new-badge.up{background:var(--good-text);color:#fff}
.rp-new-badge.keep{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--grid)}
.rp-new-card.keep{background:var(--surface-2);border-left-color:var(--ink-3);opacity:.9}
.rp-new-delta{font-size:.8rem;font-weight:800;color:var(--good-text);background:var(--good-soft);border-radius:6px;padding:1px 7px}

/* 상담보고서 생성 게이트 (분석하기 눌러야 생성) */
.rp-gate{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 24px;border:1px dashed var(--grid);border-radius:16px;background:var(--surface-2)}
.rp-gate-ic{font-size:2.6rem;margin-bottom:10px}
.rp-gate-t{font-size:1.35rem;font-weight:800;letter-spacing:-.01em}
.rp-gate-d{font-size:.98rem;color:var(--ink-2);line-height:1.7;margin:10px 0 22px;max-width:38rem}
.rp-gate-d b{color:var(--ink-1)}
.rp-gate-btn{font-size:1.05rem;font-weight:800;padding:14px 30px;border-radius:12px}
.rp-gate-btn:disabled{opacity:.7}
.rp-gate-sub{font-size:.82rem;color:var(--ink-3);margin-top:14px}

/* 해지 분류 카드 — 버튼 변형 */
.sl-cc-btn{display:flex;gap:8px;flex-wrap:wrap}
.sl-apply.ghost{background:var(--surface-1);color:var(--critical);border:1px solid var(--critical)}
.sl-cc.done{opacity:.8}
.sl-cc.done .sl-cc-badge{background:var(--ink-3)}

/* ===== 해지 경제성 (econ.js) ===== */
.ec-cfgbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;background:#f6f8fb;border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px;margin:6px 0 12px}
.ec-cfgl{font-weight:800;color:#1e293b;font-size:.85rem}
.ec-cfgbar label{font-size:.8rem;color:#475569;display:flex;align-items:center;gap:5px}
.ec-cfgbar input{width:64px;padding:4px 6px;border:1px solid #cbd5e1;border-radius:6px;font-size:.8rem;text-align:right}
.ec-cfgbar small{color:#94a3b8;font-size:.7rem}
.ec-w{margin:8px 0 4px;border-top:1px dashed #e2e8f0;padding-top:7px}
.ec-w>summary{cursor:pointer;font-size:.82rem;font-weight:700;color:#334155;list-style:none}
.ec-w>summary::-webkit-details-marker{display:none}
.ec-w>summary::before{content:"▸ ";color:#94a3b8}
.ec-w[open]>summary::before{content:"▾ "}
.ec-s{margin-left:6px;padding:1px 7px;border-radius:20px;font-size:.72rem}
.ec-s.ok{background:#dcfce7;color:#15803d}.ec-s.bad{background:#fee2e2;color:#b91c1c}.ec-s.warn{background:#fef3c7;color:#a16207}
.ec-box{margin-top:8px;border-radius:10px;padding:11px 13px;border:1px solid #e2e8f0;background:#fbfcfe}
.ec-box.ok{border-color:#bbf7d0;background:#f6fef9}
.ec-box.bad{border-color:#fecaca;background:#fffafa}
.ec-box.warn{border-color:#fde68a;background:#fffdf5}
.ec-head{display:flex;align-items:center;gap:9px;margin-bottom:6px;flex-wrap:wrap}
.ec-badge{padding:2px 10px;border-radius:20px;font-size:.75rem;font-weight:800}
.ec-badge.ok{background:#16a34a;color:#fff}.ec-badge.bad{background:#dc2626;color:#fff}.ec-badge.warn{background:#d97706;color:#fff}
.ec-gain{font-weight:800;color:#0f172a;font-size:.85rem}
.ec-why{font-size:.82rem;line-height:1.65;color:#334155;margin-bottom:8px}
.ec-t{width:100%;border-collapse:collapse;font-size:.78rem}
.ec-t th{text-align:left;font-weight:600;color:#64748b;padding:3px 8px 3px 0;white-space:nowrap;width:120px}
.ec-t td.ec-n{font-weight:800;color:#0f172a;text-align:right;width:130px;font-variant-numeric:tabular-nums}
.ec-t td.ec-d{color:#94a3b8;padding-left:10px;font-size:.73rem}
.ec-t tr.keep td.ec-n{color:#1d4ed8}.ec-t tr.new td.ec-n{color:#b91c1c}.ec-t tr.ref td.ec-n{color:#15803d}
.ec-in{display:flex;flex-wrap:wrap;gap:10px;margin-top:9px;padding-top:8px;border-top:1px dashed #e2e8f0}
.ec-in label{font-size:.74rem;color:#64748b;display:flex;align-items:center;gap:5px}
.ec-in input{width:106px;padding:4px 7px;border:1px solid #cbd5e1;border-radius:6px;font-size:.76rem;text-align:right}
.sl-cc.warn2{border-left-color:#f59e0b;background:#fffdf5}
.sl-cc-badge.warn2{background:#fef3c7;color:#a16207}

/* ===== 상품 추천 · 인수심사 (products.js) ===== */
.uw-grade{border-radius:12px;padding:14px 18px;margin-bottom:16px;border:1px solid #e2e8f0;background:#f8fafc}
.uw-grade.g0{background:#f0fdf4;border-color:#bbf7d0}
.uw-grade.g1{background:#eff6ff;border-color:#bfdbfe}
.uw-grade.g2{background:#fffbeb;border-color:#fde68a}
.uw-grade.g3{background:#fef2f2;border-color:#fecaca}
.uw-gl{font-size:.74rem;color:#64748b;font-weight:700;letter-spacing:.04em}
.uw-gn{font-size:1.3rem;font-weight:900;color:#0f172a;margin:2px 0 4px}
.uw-gd{font-size:.84rem;color:#475569;line-height:1.6}
.uw-gm{font-size:.78rem;color:#64748b;margin-top:5px}
.uw-drop{border:2px dashed #cbd5e1;border-radius:12px;padding:20px;text-align:center;color:#64748b;cursor:pointer;font-size:.9rem;background:#fbfcfe;transition:.15s}
.uw-drop:hover,.uw-drop.drag{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}
.uw-drop small{display:block;color:#94a3b8;font-size:.75rem;margin-top:4px}
.uw-ta{width:100%;min-height:88px;margin-top:10px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font-size:.8rem;line-height:1.6;resize:vertical;font-family:inherit}
.uw-tb{display:flex;gap:8px;margin:8px 0 4px}
.uw-found{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:11px 14px;margin:10px 0}
.uw-found>b{font-size:.82rem;color:#0f172a}
.uw-fi{font-size:.8rem;color:#475569;margin-top:6px;line-height:1.5}
.uw-fh{display:inline-block;background:#fee2e2;color:#b91c1c;border-radius:5px;padding:1px 7px;font-weight:700;margin-right:6px}
.uw-fi small{display:block;color:#94a3b8;font-size:.72rem;margin-top:2px}
.uw-fn{font-size:.76rem;color:#b45309;margin-top:8px}
.uw-qs{display:grid;gap:7px;margin-top:6px}
.uw-q{display:flex;gap:9px;align-items:flex-start;padding:10px 13px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font-size:.85rem;color:#334155;line-height:1.55;background:#fff;transition:.12s}
.uw-q:hover{border-color:#cbd5e1;background:#f8fafc}
.uw-q.on{border-color:#f59e0b;background:#fffbeb}
.uw-q input{margin-top:3px;width:16px;height:16px;accent-color:#d97706}
.pr-gate{padding:26px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;font-size:.9rem}
.pr-gate.ok{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}
.pr-disc{font-size:.76rem;color:#94a3b8;margin:-4px 0 12px;line-height:1.6}
.pr-card{border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px;margin-bottom:14px;background:#fff}
.pr-card.blocked{opacity:.72;background:#fafafa;border-style:dashed}
.pr-h{display:flex;align-items:center;gap:13px}
.pr-ico{font-size:1.7rem}
.pr-h h3{margin:0;font-size:1.05rem;color:#0f172a}
.pr-ch{font-size:.75rem;color:#94a3b8;margin-top:2px}
.pr-p{margin-left:auto;text-align:right}
.pr-p b{font-size:1.15rem;color:#1d4ed8;display:block}
.pr-p small{font-size:.7rem;color:#94a3b8}
.pr-x{background:#fee2e2;color:#b91c1c;border-radius:20px;padding:3px 11px;font-size:.76rem;font-weight:700}
.pr-why{font-size:.83rem;color:#475569;line-height:1.65;margin:9px 0 10px;padding-left:11px;border-left:3px solid #e2e8f0}
.pr-t{width:100%;border-collapse:collapse;font-size:.79rem;margin-bottom:10px}
.pr-t th{background:#f8fafc;color:#64748b;font-weight:600;padding:5px 8px;text-align:left;border-bottom:1px solid #e2e8f0}
.pr-t td{padding:5px 8px;border-bottom:1px solid #f1f5f9;color:#334155}
.pr-t .n{text-align:right;font-variant-numeric:tabular-nums}
.pr-t .up{color:#b91c1c;font-weight:700}
.pr-t .dim{color:#94a3b8}
.pr-ins{font-size:.78rem;color:#64748b;margin-bottom:8px}
.pr-chip{display:inline-block;background:#f1f5f9;color:#475569;border-radius:20px;padding:2px 9px;font-size:.72rem;margin:2px 3px 0 0}
.pr-note{font-size:.78rem;color:#b45309;background:#fffbeb;border-radius:8px;padding:7px 11px;line-height:1.55}
.pr-btns{display:flex;gap:8px;align-items:center;margin-top:11px}
.pr-sel{padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:.8rem}
.rp-econ td.num{font-variant-numeric:tabular-nums}
.rp-econ td.rp-nm small{display:block;font-weight:400;font-size:.72rem}
.rp-ecv{padding:2px 9px;border-radius:20px;font-size:.74rem;font-weight:800;white-space:nowrap}
.rp-ecv.ok{background:#dcfce7;color:#15803d}
.rp-ecv.bad{background:#fee2e2;color:#b91c1c}
.rp-ecv.warn{background:#fef3c7;color:#a16207}

/* ============================================================
 * v38 — 약관 빈티지(vt) · 컴플라이언스(cp) · 산출근거(bs)
 * ============================================================ */

/* ---------- 공통 블록 ---------- */
.vt-block,.cp-block,.bs-block{margin:18px 0;padding:16px 18px;border:1px solid var(--grid);border-radius:var(--radius-sm);background:var(--surface-2)}
.vt-h,.cp-h,.bs-h{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--ink-1);letter-spacing:-.02em}
.vt-lead,.bs-lead{margin:0 0 12px;font-size:.86rem;color:var(--ink-2);line-height:1.6}
.vt-warn{margin:10px 0 0;padding:9px 11px;border-radius:8px;background:var(--warn-soft);color:var(--serious);font-size:.83rem;line-height:1.55;font-weight:600}
.vt-src{margin:6px 0 0;font-size:.74rem;color:var(--ink-3);line-height:1.5}
.vt-grade{display:inline-block;margin-left:5px;padding:1px 6px;border-radius:5px;font-size:.66rem;font-weight:700;vertical-align:middle}
.vt-g-t{background:var(--warn-soft);color:var(--serious)}
.vt-g-u{background:var(--grid);color:var(--ink-3)}

/* ---------- 담보 계층 ---------- */
.vt-hier{margin:12px 0;padding:13px 14px;border:1px solid var(--grid);border-radius:10px;background:var(--surface-1)}
.vt-hier.warn{border-color:#f0c98a}
.vt-hier-hd{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:11px;font-size:.93rem}
.vt-sum{font-size:.79rem;color:var(--ink-3);font-weight:600}
.vt-lv{display:flex;align-items:stretch;gap:5px;flex-wrap:wrap;margin-bottom:11px}
.vt-lv-i{flex:1;min-width:118px;padding:8px 9px;border-radius:8px;border:1px solid var(--grid);background:var(--surface-2);display:flex;flex-direction:column;gap:2px}
.vt-lv-i.on{border-color:var(--accent);background:var(--accent-soft)}
.vt-lv-i.off{opacity:.55;border-style:dashed}
.vt-lv-i.na{opacity:.4}
.vt-lv-n{font-size:.82rem;font-weight:700;color:var(--ink-1)}
.vt-lv-k{font-size:.68rem;color:var(--ink-3)}
.vt-lv-a{font-size:.82rem;font-weight:700;color:var(--accent-ink);margin-top:2px}
.vt-lv-i.off .vt-lv-a{color:var(--ink-3)}
.vt-lv-arw{display:flex;align-items:center;color:var(--ink-3);font-size:.95rem;font-weight:700}
table.vt-case{width:100%;border-collapse:collapse;font-size:.8rem}
table.vt-case th{background:var(--surface-2);color:var(--ink-2);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--axis);text-align:left}
table.vt-case td{padding:6px 8px;border-bottom:1px solid var(--grid)}
table.vt-case td.num{text-align:right;font-variant-numeric:tabular-nums}
table.vt-case td.ctr{text-align:center}
table.vt-case tr.bad td{background:var(--bad-soft)}
table.vt-case td.neg{color:var(--critical);font-weight:700}

/* ---------- 실손 세대 ---------- */
.vt-sil{margin:9px 0;padding:12px 14px;border-radius:10px;border:1px solid var(--grid);background:var(--surface-1)}
.vt-sil.vt-lock{border-color:var(--critical);background:var(--bad-soft)}
.vt-sil.vt-keep{border-color:var(--good)}
.vt-sil.vt-check{border-color:var(--warn)}
.vt-sil-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.92rem}
.vt-sil-bd{display:flex;gap:14px;flex-wrap:wrap;margin:7px 0 5px;font-size:.78rem;color:var(--ink-2)}
.vt-sil-note{margin:0;font-size:.81rem;color:var(--ink-1);line-height:1.55}
.vt-badge{padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:700;white-space:nowrap}
.vt-badge.b-lock{background:var(--critical);color:#fff}
.vt-badge.b-keep{background:var(--good);color:#fff}
.vt-badge.b-check{background:var(--warn);color:#fff}
.vt-badge.b-new{background:var(--accent);color:#fff}
.vt-dday{margin-left:auto;padding:2px 9px;border-radius:999px;background:var(--grid);color:var(--ink-2);font-size:.73rem;font-weight:700}
.vt-dday.soon{background:var(--warn-soft);color:var(--serious)}

/* ---------- 구계약 우위 배지 ---------- */
.vt-card{margin:10px 0;padding:13px 14px;border:1px solid var(--grid);border-radius:10px;background:var(--surface-1)}
.vt-card-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.88rem;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--grid)}
.vt-badges{display:flex;flex-direction:column;gap:7px}
.vt-bd{padding:9px 11px;border-radius:8px;border-left:4px solid var(--ink-3);background:var(--surface-2);font-size:.83rem;line-height:1.55}
.vt-bd b{display:block;margin:1px 0 2px;color:var(--ink-1)}
.vt-bd-t{font-size:.68rem;font-weight:800;letter-spacing:.03em;color:var(--ink-3)}
.vt-bd-w{color:var(--ink-2)}
.vt-l-lock{border-left-color:var(--critical);background:var(--bad-soft)}
.vt-l-lock .vt-bd-t{color:var(--critical)}
.vt-l-high{border-left-color:var(--serious);background:var(--warn-soft)}
.vt-l-high .vt-bd-t{color:var(--serious)}
.vt-l-mid{border-left-color:var(--accent)}
.vt-l-mid .vt-bd-t{color:var(--accent-ink)}
.vt-l-info{border-left-color:var(--axis)}

/* ---------- 보장 공백 ---------- */
.vt-gapbar{display:flex;gap:3px;margin:12px 0;height:52px;border-radius:8px;overflow:hidden}
.vt-gapbar>div{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.76rem;font-weight:700;color:#fff;text-align:center;line-height:1.3}
.vt-gapbar small{font-weight:600;opacity:.85;font-size:.68rem}
.vt-gap-free{background:var(--critical)}
.vt-gap-cut{background:var(--serious)}
.vt-gap-full{background:var(--good)}
ul.vt-loss{margin:10px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px}
ul.vt-loss li{font-size:.82rem;color:var(--ink-2);line-height:1.55;padding-left:15px;position:relative}
ul.vt-loss li:before{content:"—";position:absolute;left:0;color:var(--ink-3)}
ul.vt-loss b{color:var(--ink-1);margin-right:4px}

/* ---------- 타임라인 ---------- */
ul.vt-tl{margin:8px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}
ul.vt-tl li{display:grid;grid-template-columns:78px 1fr;gap:4px 10px;font-size:.82rem;line-height:1.5;padding-bottom:8px;border-bottom:1px solid var(--grid)}
.vt-tl-d{font-size:.73rem;font-weight:700;color:var(--accent-ink);font-variant-numeric:tabular-nums}
ul.vt-tl b{color:var(--ink-1)}
.vt-tl-x{grid-column:2;color:var(--ink-2);font-size:.78rem}

/* ---------- 승환 신호등 ---------- */
.cp-light{border-width:2px}
.cp-light.cp-red{border-color:var(--critical);background:var(--bad-soft)}
.cp-light.cp-amber{border-color:var(--warn);background:var(--warn-soft)}
.cp-light.cp-green{border-color:var(--good);background:var(--good-soft)}
.cp-light-hd{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.cp-dot{flex:none;width:16px;height:16px;border-radius:50%;margin-top:3px;box-shadow:0 0 0 4px rgba(0,0,0,.05)}
.cp-red .cp-dot{background:var(--critical)}
.cp-amber .cp-dot{background:var(--warn)}
.cp-green .cp-dot{background:var(--good)}
.cp-light-hd b{font-size:.96rem;display:block}
.cp-law{font-size:.72rem;color:var(--ink-2);font-weight:600}
.cp-msg{margin:0 0 8px;font-size:.85rem;color:var(--ink-1);line-height:1.6}
.cp-escape{margin:0 0 8px;padding:9px 11px;border-radius:8px;background:var(--surface-1);font-size:.82rem;line-height:1.55}
.cp-escape b{color:var(--accent-ink);margin-right:5px}
ul.cp-cuts{margin:0 0 8px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:4px}
ul.cp-cuts li{font-size:.81rem;color:var(--ink-2);display:flex;justify-content:space-between;gap:10px;padding:5px 9px;border-radius:6px;background:var(--surface-1)}
.cp-quote{margin:8px 0 4px;padding-left:11px;border-left:3px solid var(--axis);font-size:.78rem;color:var(--ink-2);line-height:1.6}
.cp-fine{margin:3px 0 0;font-size:.74rem;color:var(--ink-3);line-height:1.55}

/* ---------- 컴플라이언스 푸터 ---------- */
.cp-foot{margin-top:24px;border-top:2px solid var(--axis)}
table.cp-meta{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:.8rem}
table.cp-meta th{background:var(--surface-1);color:var(--ink-2);font-weight:600;padding:6px 9px;border:1px solid var(--grid);white-space:nowrap;width:80px;text-align:left}
table.cp-meta td{padding:6px 9px;border:1px solid var(--grid);color:var(--ink-1)}
.cp-src>b,.cp-disc>b{display:block;font-size:.79rem;color:var(--ink-1);margin-bottom:4px}
.cp-disc p b{display:inline;color:var(--ink-1);font-weight:700}
.cp-src ul{margin:0 0 12px;padding-left:16px}
.cp-src li{font-size:.74rem;color:var(--ink-2);line-height:1.55;margin-bottom:2px}
.cp-u{color:var(--ink-3);word-break:break-all}
.cp-disc p{margin:0 0 6px;font-size:.76rem;color:var(--ink-2);line-height:1.6}
.cp-sign{display:flex;gap:26px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--axis)}
.cp-sg{display:flex;align-items:flex-end;gap:7px;font-size:.78rem;color:var(--ink-2)}
.cp-sg i{display:inline-block;width:110px;height:19px;border-bottom:1px solid var(--ink-2)}

/* ---------- 산출 근거 ---------- */
.bs-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 7px;border-radius:999px;font-size:.67rem;font-weight:700;cursor:help}
.bs-b{background:var(--good-soft);color:var(--good-text)}
.bs-p{background:var(--warn-soft);color:var(--serious)}
.bs-u{background:var(--grid);color:var(--ink-3)}
.bs-badge i{font-style:normal;opacity:.6;font-size:.62rem}
table.bs-tb{width:100%;border-collapse:collapse;font-size:.8rem}
table.bs-tb th{background:var(--surface-1);color:var(--ink-2);font-weight:600;padding:7px 9px;border-bottom:1px solid var(--axis);text-align:left}
table.bs-tb td{padding:8px 9px;border-bottom:1px solid var(--grid);vertical-align:top}
table.bs-tb td.num{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
table.bs-tb td.ctr{text-align:center}
.bs-n{font-weight:700;color:var(--ink-1);white-space:nowrap}
.bs-f{color:var(--ink-1);line-height:1.55}
.bs-f ul{margin:4px 0 0;padding-left:15px}
.bs-f li{font-size:.73rem;color:var(--ink-3);line-height:1.5}
.bs-foot{margin:10px 0 0;font-size:.74rem;color:var(--ink-3);line-height:1.6}
.bs-pop{padding:11px 13px;border-radius:10px;border:1px solid var(--grid);background:var(--surface-1);box-shadow:var(--shadow-md);max-width:380px}
.bs-pop-hd{font-size:.86rem;margin-bottom:5px}
.bs-formula{font-size:.79rem;color:var(--accent-ink);font-weight:600;line-height:1.5;margin-bottom:6px}
ul.bs-basis{margin:0;padding-left:15px}
ul.bs-basis li{font-size:.74rem;color:var(--ink-2);line-height:1.5}
.bs-warn{margin:6px 0 0;font-size:.72rem;color:var(--serious)}

/* ===================================================================
 * ⑫ 가입 당시 약관 ↔ 현행 약관 대조표 / ⑬ 약관 원문 확보 경로
 * =================================================================== */
.vt-vd{margin:14px 0;padding:13px 14px;border:1px solid var(--grid);border-radius:10px;background:var(--surface-1)}
.vt-vd-hd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:9px;font-size:.9rem}
.vt-vd-hd b{color:var(--ink-1)}
.vt-vd-dt{margin-left:auto;font-size:.75rem;color:var(--ink-3)}
table.vt-vd-tb,table.vt-rt,table.vt-wt{width:100%;border-collapse:collapse;font-size:.79rem}
table.vt-vd-tb th,table.vt-rt th,table.vt-wt th{background:var(--surface-2);color:var(--ink-2);font-weight:700;
  text-align:left;padding:6px 8px;border-bottom:1px solid var(--axis);white-space:nowrap}
table.vt-vd-tb td,table.vt-rt td,table.vt-wt td{padding:7px 8px;border-bottom:1px solid var(--grid);
  vertical-align:top;line-height:1.5;color:var(--ink-2)}
table.vt-vd-tb td.ctr,table.vt-rt td.ctr,table.vt-wt td.ctr{text-align:center;white-space:nowrap}
table.vt-vd-tb td small,table.vt-rt td small,table.vt-wt td small{display:block;font-size:.68rem;color:var(--ink-3);font-weight:500;margin-top:2px}
.vt-vd-tb tr.w-good td:first-child{box-shadow:inset 3px 0 0 var(--positive,#1f7a4d)}
.vt-vd-tb tr.w-bad  td:first-child{box-shadow:inset 3px 0 0 var(--serious,#b3261e)}
.vt-vd-tb tr.w-neu  td:first-child{box-shadow:inset 3px 0 0 var(--axis)}
.vt-who{display:inline-block;font-size:.7rem;font-weight:700;padding:.15rem .45rem;border-radius:6px;white-space:nowrap}
.vt-who.w-good{background:rgba(31,122,77,.12);color:var(--positive,#1f7a4d)}
.vt-who.w-bad{background:rgba(179,38,30,.10);color:var(--serious,#b3261e)}
.vt-who.w-neu{background:var(--surface-2);color:var(--ink-3)}
.vt-vd-say{margin-top:10px;padding:10px 12px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 8px 8px 0}
.vt-vd-say-t{display:block;font-size:.7rem;font-weight:800;letter-spacing:.04em;color:var(--accent-ink);margin-bottom:4px}
.vt-vd-say ul{margin:0;padding-left:15px}
.vt-vd-say li{font-size:.8rem;color:var(--ink-1);line-height:1.6;margin:2px 0}

.vt-rt-how{font-size:.73rem;color:var(--ink-3)}
.vt-rt td a{color:var(--accent-ink);font-weight:600}
.vt-tag{display:inline-block;margin-left:5px;font-size:.66rem;padding:.1rem .35rem;border-radius:5px;
  background:rgba(31,122,77,.12);color:var(--positive,#1f7a4d);font-weight:700}
.vt-tag.vt-tag-fb{background:rgba(120,120,130,.14);color:var(--ink-3)}
.vt-na{font-size:.73rem;color:var(--ink-3)}
.vt-rt-note{margin-top:12px;padding:11px 13px;border:1px dashed var(--axis);border-radius:9px;background:var(--surface-1)}
.vt-rt-note b{font-size:.83rem;color:var(--ink-1)}
.vt-rt-note p{margin:5px 0 0;font-size:.77rem;color:var(--ink-2);line-height:1.65}
.vt-rt-step{color:var(--ink-1)!important}
.vt-wt-n{font-size:.74rem;color:var(--ink-3)}

@media print{
  .vt-block,.cp-block,.bs-block{break-inside:avoid;background:#fff}
  .cp-light{border-width:1px}
  .vt-card,.vt-hier,.vt-sil,.vt-vd{break-inside:avoid}
  table.vt-vd-tb,table.vt-rt,table.vt-wt{font-size:.72rem}
}

/* ===================================================================
 * P2 ⑨⑩⑪ — Sales 모드 · 숨은 보험금 · 활동 관리
 * =================================================================== */

/* 공통 */
.btn-mini{font-size:.76rem;padding:.3rem .6rem;border-radius:8px;border:1px solid var(--axis);
  background:var(--surface-1);color:var(--ink-2)}
.btn-mini:hover{border-color:var(--accent);color:var(--accent)}

/* ── ⑩ 숨은 보험금 스캔 ── */
.hb-kpi{margin:.9rem 0 1rem}
.hb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:.8rem;margin:.9rem 0}
.hb-card{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:.85rem .95rem;
  background:var(--surface-1);border-left:4px solid var(--ink-3)}
.hb-card.high{border-left-color:var(--critical);background:color-mix(in srgb,var(--critical) 3%,var(--surface-1))}
.hb-card.mid{border-left-color:var(--warn)}
.hb-card.low{border-left-color:var(--s1)}
.hb-head{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.5rem}
.hb-t{font-weight:700;font-size:.94rem;line-height:1.35;flex:1}
.hb-amt{font-weight:700;font-size:.9rem;color:var(--accent-ink);white-space:nowrap}
.hb-where{display:flex;flex-wrap:wrap;gap:.28rem;margin-bottom:.55rem}
.hb-chip{font-size:.71rem;background:var(--surface-2);border:1px solid var(--grid);
  border-radius:6px;padding:.13rem .38rem;color:var(--ink-2)}
.hb-chip.dim{color:var(--ink-3)}
.hb-card>div[class^="hb-"]:not(.hb-head):not(.hb-where){font-size:.82rem;line-height:1.62;margin-bottom:.45rem;color:var(--ink-2)}
.hb-why b,.hb-trig b,.hb-docs b{color:var(--ink-1);font-size:.76rem}
.hb-trig{background:var(--surface-2);border-radius:8px;padding:.5rem .6rem}
.hb-docs{color:var(--ink-3) !important;font-size:.78rem !important}
.hb-tip{background:var(--accent-soft);border-radius:8px;padding:.5rem .6rem;color:var(--accent-ink) !important;font-size:.8rem !important}
.hb-struct{border:1px dashed var(--axis);border-radius:var(--radius-sm);padding:.75rem .9rem;margin:.6rem 0;background:var(--surface-2)}
.hb-struct>b{display:block;font-size:.88rem;margin-bottom:.3rem}
.hb-struct p{font-size:.83rem;color:var(--ink-2);line-height:1.65}
.hb-struct .hb-act{color:var(--accent-ink);margin-top:.3rem;font-weight:600}
.hb-finders{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:.75rem .9rem;margin:.8rem 0;background:var(--surface-1)}
.hb-finders>b{display:block;font-size:.85rem;margin-bottom:.45rem}
.hb-f{font-size:.81rem;margin-bottom:.28rem}
.hb-f a{font-weight:600}
.hb-disc{margin-top:.7rem;color:var(--ink-3)}
.hb-wrap{margin:1.4rem 0}
.hb-wrap .hb-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

/* ── ⑨ Sales 모드 ── */
.rp-tb-sep{width:1px;height:22px;background:var(--axis);margin:0 .2rem;display:inline-block}
.rp-tb-mode.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);font-weight:700}
.rp-mode{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem .85rem;margin-bottom:1rem;
  border-radius:var(--radius-sm);border:1px solid var(--grid);background:var(--surface-2)}
.rp-mode.agent{border-color:var(--s5);background:color-mix(in srgb,var(--s5) 6%,var(--surface-1))}
.rp-mode-l{font-size:.76rem;color:var(--ink-3);font-weight:700}
.rp-mode-b{font-size:.8rem;padding:.3rem .7rem;border-radius:8px;border:1px solid var(--axis);
  background:var(--surface-1);color:var(--ink-2)}
.rp-mode-b.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);font-weight:700}
.rp-mode-d{font-size:.76rem;color:var(--ink-2);flex:1;min-width:220px}

.sc-wrap{margin-top:1.6rem;border-top:3px double var(--s5);padding-top:1.1rem}
.sc-banner{background:color-mix(in srgb,var(--s5) 8%,var(--surface-1));border:1px solid var(--s5);
  border-radius:var(--radius-sm);padding:.7rem .9rem;font-size:.85rem;color:var(--ink-1);margin-bottom:1rem}
.sc-h{color:var(--s5) !important}
.sc-step{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:.85rem .95rem;margin-bottom:.75rem;background:var(--surface-1)}
.sc-step-h{font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.sc-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--s5);color:#fff;font-size:.76rem;font-weight:700;flex:none}
.sc-goal{font-size:.81rem;color:var(--ink-2);margin-bottom:.55rem;line-height:1.6}
.sc-goal b{color:var(--ink-1);font-size:.75rem;margin-right:.25rem}
.sc-say{border-left:3px solid var(--accent);padding-left:.75rem;margin:.55rem 0}
.sc-say p{font-size:.87rem;line-height:1.72;color:var(--ink-1);margin-bottom:.4rem}
.sc-note{font-size:.75rem;color:var(--ink-3)}
.sc-dont{font-size:.8rem;color:var(--serious);background:var(--warn-soft);border-radius:8px;padding:.5rem .6rem;margin-top:.5rem;line-height:1.6}
.sc-dont b{color:var(--serious)}
.sc-law{font-size:.79rem;color:var(--ink-2);background:var(--surface-2);border:1px dashed var(--axis);
  border-radius:8px;padding:.5rem .6rem;margin-top:.45rem;line-height:1.65}
.sc-objs{display:grid;gap:.55rem;margin:.4rem 0}
.sc-obj{border:1px solid var(--grid);border-radius:10px;padding:.6rem .75rem;background:var(--surface-2)}
.sc-obj-q{font-weight:700;font-size:.86rem;color:var(--ink-1);margin-bottom:.3rem}
.sc-obj-a{font-size:.85rem;line-height:1.7;color:var(--ink-1);border-left:3px solid var(--good);padding-left:.6rem;margin-bottom:.35rem}
.sc-obj-n{font-size:.76rem;color:var(--ink-3);line-height:1.55}
.sc-cklist{display:grid;gap:.35rem;margin:.7rem 0}
.sc-ck{display:flex;gap:.55rem;align-items:flex-start;font-size:.84rem;line-height:1.6;
  border:1px solid var(--grid);border-radius:9px;padding:.5rem .65rem;background:var(--surface-1);cursor:pointer}
.sc-ck.crit{border-left:3px solid var(--critical)}
.sc-ck.done{background:var(--good-soft);border-color:var(--good)}
.sc-ck input{margin-top:.2rem;flex:none;width:16px;height:16px;accent-color:var(--good)}
.sc-act td{vertical-align:top}
.sc-act tr.crit td{background:var(--bad-soft)}
.sc-when{font-weight:700;font-size:.82rem;white-space:nowrap}
.sc-why{font-size:.76rem;color:var(--ink-3);margin-top:.2rem;line-height:1.55}
.sc-final{margin-top:1rem;padding:.8rem .95rem;border-radius:var(--radius-sm);
  background:var(--accent-soft);color:var(--accent-ink);font-size:.86rem;line-height:1.72}

/* ── ⑪ 활동 관리 ── */
.pl-kpi{margin-bottom:1rem}
.pl-goals{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.6rem}
.pl-goal-set{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;font-size:.8rem;color:var(--ink-2)}
.pl-goal-set input{width:88px;margin-left:.3rem}
.pl-goal-h{font-size:.83rem;color:var(--ink-2);margin-bottom:.35rem}
.pl-goal-h b{color:var(--ink-1);font-size:.95rem;margin-left:.3rem}
.pl-bar{height:9px;border-radius:6px;background:var(--grid);overflow:hidden;margin-bottom:.3rem}
.pl-bar i{display:block;height:100%;background:var(--accent);border-radius:6px;transition:width .3s}
.pl-bar.p i{background:var(--good)}
.pl-link{font-size:.78rem;margin-left:auto}
.pl-acts{display:grid;gap:.4rem;margin-top:.5rem}
.pl-act{display:flex;align-items:center;gap:.7rem;border:1px solid var(--grid);border-radius:10px;
  padding:.55rem .7rem;background:var(--surface-1)}
.pl-act.over{border-left:4px solid var(--critical);background:var(--bad-soft)}
.pl-act.today{border-left:4px solid var(--warn);background:var(--warn-soft)}
.pl-act.soon{border-left:4px solid var(--s1)}
.pl-act-d{font-size:.76rem;font-weight:700;color:var(--ink-2);width:64px;flex:none;text-align:center}
.pl-act-b{flex:1;font-size:.87rem}
.pl-act-t{font-size:.8rem;color:var(--ink-2);margin-top:.12rem}
.pl-board{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:.6rem;margin-top:.8rem;overflow-x:auto}
.pl-col{border:1px solid var(--grid);border-radius:var(--radius-sm);background:var(--surface-2);padding:.5rem;min-width:150px}
.pl-col-h{display:flex;justify-content:space-between;align-items:center;font-size:.83rem;
  padding:.35rem .45rem;border-radius:8px;background:var(--surface-1);border:1px solid var(--grid)}
.pl-col-h span{font-size:.76rem;color:var(--ink-3);font-weight:700}
.pl-col-h.s0{border-bottom:3px solid var(--ink-3)}
.pl-col-h.s1{border-bottom:3px solid var(--s1)}
.pl-col-h.s2{border-bottom:3px solid var(--s3)}
.pl-col-h.s3{border-bottom:3px solid var(--good)}
.pl-col-h.s4{border-bottom:3px solid var(--s5)}
.pl-col-h.s5{border-bottom:3px solid var(--s7)}
.pl-col-d{font-size:.71rem;color:var(--ink-3);padding:.3rem .25rem .45rem;line-height:1.45}
.pl-col-b{display:grid;gap:.35rem}
.pl-card{border:1px solid var(--grid);border-radius:9px;padding:.5rem .55rem;background:var(--surface-1);cursor:pointer}
.pl-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.pl-card-n{font-weight:700;font-size:.85rem}
.pl-card-p{font-size:.75rem;color:var(--accent-ink);margin-top:.1rem}
.pl-card-a{font-size:.74rem;color:var(--ink-2);margin-top:.2rem;line-height:1.45}
.pl-empty{font-size:.74rem;color:var(--ink-3);text-align:center;padding:.6rem 0}
.pl-badge{font-size:.68rem;padding:.1rem .35rem;border-radius:5px;background:var(--surface-2);
  border:1px solid var(--grid);color:var(--ink-2)}
.pl-closedbox{margin-top:.7rem}
.pl-closed{font-size:.79rem;color:var(--ink-2);margin-bottom:.2rem}
.pl-modal-bg{position:fixed;inset:0;background:rgba(10,12,18,.45);display:flex;align-items:center;
  justify-content:center;z-index:9000;padding:1rem}
.pl-modal{background:var(--surface-1);border-radius:var(--radius);padding:1.2rem 1.3rem;
  max-width:640px;width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow-md)}
.pl-modal-h{font-weight:700;font-size:1.05rem;margin-bottom:.8rem}
.pl-modal-f{display:flex;gap:.5rem;margin-top:.9rem;align-items:center}
.pl-modal-f .pl-del{margin-left:auto;color:var(--critical)}
.pl-logs{margin-top:.7rem;border-top:1px solid var(--grid);padding-top:.5rem}
.pl-logs>b{font-size:.78rem;color:var(--ink-3);display:block;margin-bottom:.25rem}
.pl-log{font-size:.78rem;color:var(--ink-2)}
@media (max-width:900px){
  .pl-board{grid-template-columns:repeat(3,minmax(140px,1fr))}
  .pl-goals{grid-template-columns:1fr}
  .hb-grid{grid-template-columns:1fr}
}
@media print{
  .rp-mode,.rp-tb-mode,.rp-tb-sep{display:none !important}
  .hb-card,.sc-step,.sc-obj,.hb-struct{break-inside:avoid;background:#fff}
  .sc-wrap{break-before:page}
}

/* ── 판매 프로세스 단계 띠 (상담보고서) ────────────────────────────
   보고서를 '기능 목록'이 아니라 '상담이 흘러가는 순서'로 읽히게 하는 구분선.
   인쇄에서도 단계가 끊겨 보이지 않도록 break-inside 를 막는다. */
.rp-flow{margin:16px 0 6px;padding:12px 14px;border:1px solid var(--grid);
  border-radius:var(--radius-sm);background:var(--surface-2)}
.rp-flow-h{font-size:.85rem;color:var(--ink-2);margin-bottom:9px}
.rp-flow-row{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.rp-flow-i{display:flex;align-items:center;gap:5px;font-size:.74rem;color:var(--ink-3);
  padding:4px 8px;border-radius:999px;white-space:nowrap}
.rp-flow-i span{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
  border-radius:50%;background:var(--grid);color:var(--ink-3);font-size:.64rem;font-weight:800}
.rp-flow-i.on{color:var(--accent-ink);background:var(--accent-soft);font-weight:700}
.rp-flow-i.on span{background:var(--accent);color:#fff}
.rp-flow-row i{color:var(--ink-3);font-style:normal;font-size:.72rem}
.rp-flow-f{margin-top:8px;font-size:.72rem;color:var(--ink-3)}

.rp-stage{display:flex;align-items:center;gap:13px;margin:34px 0 6px;padding:13px 16px;
  border-radius:var(--radius-sm);background:var(--accent-soft);
  border-left:5px solid var(--accent);break-inside:avoid;page-break-inside:avoid}
.rp-stage-n{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:46px;height:46px;border-radius:12px;background:var(--accent);color:#fff;
  font-size:1.22rem;font-weight:800;line-height:1}
.rp-stage-n small{font-size:.55rem;font-weight:700;opacity:.85;margin-top:2px}
.rp-stage-t{font-size:1.02rem;font-weight:800;color:var(--accent-ink)}
.rp-stage-d{font-size:.79rem;color:var(--ink-2);margin-top:3px;line-height:1.5}
/* 단계마다 색을 달리해 인쇄본에서도 눈으로 구간이 끊긴다 */
.rp-stage.st6{background:var(--warn-soft);border-left-color:var(--warn)}
.rp-stage.st6 .rp-stage-n{background:var(--warn)}
.rp-stage.st6 .rp-stage-t{color:var(--serious)}
.rp-stage.st7{background:var(--good-soft);border-left-color:var(--good)}
.rp-stage.st7 .rp-stage-n{background:var(--good)}
.rp-stage.st7 .rp-stage-t{color:var(--good-text)}
.rp-stage.st8{background:color-mix(in srgb,var(--s5) 9%,var(--surface-1));border-left-color:var(--s5)}
.rp-stage.st8 .rp-stage-n{background:var(--s5)}
.rp-stage.st8 .rp-stage-t{color:var(--s5)}

/* 단계 안에 끼워 넣는 설계사 스크립트 */
.sc-wrap.sc-inline{margin:14px 0 4px;padding:12px 14px;border:1px dashed var(--s5);
  border-radius:var(--radius-sm);background:color-mix(in srgb,var(--s5) 4%,var(--surface-1))}
.sc-inline-h{font-size:.9rem;font-weight:800;color:var(--s5);margin:4px 0 8px}
.sc-inline-h .dim{font-weight:400;font-size:.76rem}
.rp-after td{vertical-align:top}

/* 업로드 화면의 '신규 가입제안서' 보조 진입점 */
.up-second{margin:16px 0 6px;padding:16px 18px;border:1px dashed var(--axis);
  border-radius:var(--radius-sm);background:var(--surface-2)}
.up-second-t{font-size:.95rem;font-weight:800;color:var(--ink-1)}
.up-second-d{font-size:.8rem;color:var(--ink-2);line-height:1.6;margin:5px 0 11px}

/* ══════════════════════════════════════════════════════════════════
 * 상담보고서 v43 — 문서형 확장 (표지 · 목차 · 계약일람 · 부록)
 * 기존 report.js(.rp-page) 쪽과 클래스명이 겹치므로 전부 .rp-doc 하위로
 * 한정한다. 인쇄에서 '읽는 문서'로 보이는 것이 이 블록의 목적.
 * ══════════════════════════════════════════════════════════════════ */

/* ---- 표지 ---- */
.rp-doc .rp-cover{display:block;background:linear-gradient(158deg,var(--surface-1) 52%,var(--accent-soft) 100%);
  border:1px solid var(--axis);border-radius:var(--radius);padding:34px 36px 26px;margin:0 0 26px;height:auto}
.rp-doc .rp-cover-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  border-bottom:1px solid var(--axis);padding-bottom:11px}
.rp-cover-brand{letter-spacing:.3em;font-size:.68rem;font-weight:800;color:var(--accent-ink)}
.rp-cover-kind{font-size:.72rem;color:var(--ink-3);font-weight:700}
.rp-cover-mid{padding:34px 0 26px}
.rp-cover-eyebrow{font-size:.83rem;color:var(--ink-2);font-weight:600;letter-spacing:-.01em}
.rp-doc .rp-cover-title{font-size:2.35rem;font-weight:800;line-height:1.22;letter-spacing:-.03em;
  color:var(--ink-1);margin:9px 0 0}
.rp-cover-who{margin-top:16px;font-size:1.28rem;font-weight:800;color:var(--ink-1)}
.rp-cover-who span{font-size:.88rem;font-weight:600;color:var(--ink-2);margin-left:6px}
.rp-cover-rule{width:96px;height:5px;border-radius:3px;margin:18px 0 20px;
  background:linear-gradient(90deg,var(--accent),var(--s5))}
.rp-cover-tbl{border-collapse:collapse;width:100%;max-width:520px;font-size:.86rem}
.rp-cover-tbl th{text-align:left;width:126px;padding:7px 0;color:var(--ink-3);font-weight:600;
  vertical-align:top;white-space:nowrap}
.rp-cover-tbl td{padding:7px 0;color:var(--ink-1);border-bottom:1px solid var(--grid)}
.rp-doc .rp-cover-foot{font-size:.72rem;line-height:1.75;color:var(--ink-3);
  border-top:1px solid var(--axis);padding-top:11px;margin:0}

/* ---- 목차 ---- */
.rp-toc{border:1px solid var(--grid);border-radius:var(--radius);padding:22px 26px;margin:0 0 26px;
  background:var(--surface-2)}
.rp-toc-h{font-size:1.05rem;font-weight:800;color:var(--ink-1);letter-spacing:.05em}
.rp-toc-lead{font-size:.82rem;color:var(--ink-2);margin:6px 0 14px;line-height:1.6}
.rp-toc-list{list-style:none;margin:0;padding:0;columns:2;column-gap:30px}
@media(max-width:760px){.rp-toc-list{columns:1}}
.rp-toc-i{display:flex;gap:9px;align-items:baseline;padding:5px 0;font-size:.85rem;
  border-bottom:1px dotted var(--grid);break-inside:avoid}
.rp-toc-n{flex:0 0 auto;min-width:20px;text-align:right;font-weight:800;color:var(--accent-ink);font-size:.78rem}
.rp-toc-t{color:var(--ink-1);font-weight:600}
.rp-toc-t em{display:block;font-style:normal;font-size:.72rem;color:var(--ink-3);font-weight:400;margin-top:1px}
.rp-toc-i.appx .rp-toc-n{color:var(--ink-3)}
.rp-toc-i.appx .rp-toc-t{font-weight:500;color:var(--ink-2)}
.rp-toc-foot{margin-top:14px;font-size:.73rem;color:var(--ink-3);line-height:1.6}

/* ---- 고객 프로필 ---- */
.rp-prof th{width:118px;background:var(--surface-2);color:var(--ink-2);font-weight:600;
  text-align:left;white-space:nowrap}
.rp-prof td{color:var(--ink-1)}
.rp-life{margin:12px 0 4px;padding:13px 15px;border:1px solid var(--grid);
  border-radius:var(--radius-sm);background:var(--surface-2)}
.rp-life-h{font-size:.86rem;font-weight:800;color:var(--ink-1);margin-bottom:9px}
.rp-life-row{display:flex;flex-wrap:wrap;gap:8px}
.rp-life-item{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--ink-1);
  background:var(--surface-1);border:1px solid var(--grid);border-radius:999px;padding:5px 12px}
.rp-life-no{font-size:.68rem;font-weight:800;color:var(--accent-ink);background:var(--accent-soft);
  border-radius:999px;padding:2px 7px}

/* ---- 보유계약 일람 ---- */
.rp-ctsum td,.rp-ctsum th{font-size:.8rem}
.rp-ctsum-f td{background:var(--surface-2);font-weight:800;border-top:2px solid var(--axis)}
.rp-adj{display:inline-block;font-size:.68rem;font-weight:800;border-radius:999px;padding:2px 8px;white-space:nowrap}
.rp-adj.new{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--grid)}
.rp-adj.cut{background:color-mix(in srgb,var(--critical) 12%,var(--surface-1));color:var(--critical)}
.rp-adj.red{background:color-mix(in srgb,var(--warn) 16%,var(--surface-1));color:var(--serious)}
.rp-ct{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:15px 17px;margin:13px 0;
  background:var(--surface-1);break-inside:avoid;page-break-inside:avoid}
.rp-ct-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rp-ct-no{flex:0 0 auto;width:23px;height:23px;border-radius:7px;background:var(--accent);color:#fff;
  font-size:.74rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.rp-ct-ttl{flex:1 1 auto;font-size:.95rem;color:var(--ink-1)}
.rp-ct-ttl b{font-weight:800}
.rp-ct-ttl span{font-weight:500;color:var(--ink-2);font-size:.86rem;margin-left:5px}
.rp-ct-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
.rp-ct-meta span{display:inline-flex;align-items:baseline;gap:5px;font-size:.75rem;color:var(--ink-1);
  background:var(--surface-2);border:1px solid var(--grid);border-radius:7px;padding:4px 9px}
.rp-ct-meta em{font-style:normal;color:var(--ink-3);font-size:.68rem}
.rp-ctdet{margin-top:10px}
.rp-ctdet td,.rp-ctdet th{font-size:.78rem;padding-top:5px;padding-bottom:5px}
.rp-ct-zero{margin-top:9px;font-size:.74rem;line-height:1.6;color:var(--ink-2);
  background:var(--surface-2);border-left:3px solid var(--axis);padding:8px 11px;border-radius:0 7px 7px 0}
.rp-kd{display:inline-block;font-size:.66rem;font-weight:800;border-radius:5px;padding:2px 6px;
  background:var(--surface-2);color:var(--ink-2);border:1px solid var(--grid);white-space:nowrap}
.rp-kd.sil{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.rp-kd.np{background:color-mix(in srgb,var(--critical) 11%,var(--surface-1));color:var(--critical);border-color:transparent}
.rp-kd.lv{background:color-mix(in srgb,var(--warn) 15%,var(--surface-1));color:var(--serious);border-color:transparent}

/* ---- 실손 세대 비교 ---- */
.rp-silgen td{font-size:.79rem;vertical-align:top}
.rp-sg-n{line-height:1.6;color:var(--ink-2)}
.rp-silgen tr.sg-keep td:first-child{box-shadow:inset 3px 0 0 var(--good);font-weight:800;color:var(--good-text,var(--good))}
.rp-silgen tr.sg-check td:first-child{box-shadow:inset 3px 0 0 var(--accent);font-weight:800}
.rp-silgen tr.sg-watch td:first-child{box-shadow:inset 3px 0 0 var(--warn);font-weight:800;color:var(--serious)}
.rp-silgen tr.sg-todo td:first-child{box-shadow:inset 3px 0 0 var(--axis);font-weight:800;color:var(--ink-3)}
.rp-silgen tr.sg-todo td{color:var(--ink-3)}

/* ---- 총 납입 계획 ---- */
.rp-pay td,.rp-pay th{font-size:.79rem}
.rp-paynote{margin:10px 0 4px;padding:11px 14px;border-radius:var(--radius-sm);
  background:var(--surface-2);border:1px solid var(--grid);font-size:.83rem;line-height:1.7;color:var(--ink-1)}

/* ---- 청구 가이드 ---- */
.rp-claim td,.rp-claim2 td{font-size:.8rem;line-height:1.65;vertical-align:top}
.rp-claim2{margin-top:12px}
.rp-claim2 td:first-child,.rp-claim td:first-child{background:var(--surface-2)}

/* ---- 부록 ---- */
.rp-appx{margin-top:40px;border-top:3px double var(--axis);padding-top:24px}
.rp-appx-hd{margin-bottom:18px}
.rp-appx-k{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.2em;
  color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:3px 11px;margin-right:9px}
.rp-appx-hd b{font-size:1.02rem;color:var(--ink-1)}
.rp-appx-hd em{display:block;font-style:normal;font-size:.78rem;color:var(--ink-3);margin-top:6px;line-height:1.6}
.rp-ev{margin:16px 0 22px;border:1px solid var(--grid);border-radius:var(--radius-sm);padding:15px 17px;
  background:var(--surface-1)}
.rp-ev-h{font-size:.98rem;font-weight:800;color:var(--ink-1)}
.rp-ev-intro{font-size:.8rem;line-height:1.7;color:var(--ink-2);margin:7px 0 11px}
.rp-evf td,.rp-evf th,.rp-evs td,.rp-evs th{font-size:.78rem}
.rp-evs{margin-top:11px}
.rp-evs thead tr:first-child th{background:var(--surface-2);font-size:.83rem;color:var(--ink-1);text-align:left}
.rp-est{display:inline-block;font-size:.63rem;font-weight:800;border-radius:4px;padding:1px 5px;
  background:color-mix(in srgb,var(--warn) 16%,var(--surface-1));color:var(--serious)}
.rp-src{margin-top:14px;padding:15px 17px;border:1px solid var(--grid);border-radius:var(--radius-sm);
  background:var(--surface-2)}
.rp-src-h{font-size:.88rem;font-weight:800;color:var(--ink-1);margin-bottom:9px}
.rp-src-l{margin:0;padding-left:20px;font-size:.77rem;line-height:1.85;color:var(--ink-1)}
.rp-src-l li{margin-bottom:2px}
.rp-src-u{color:var(--ink-3);font-size:.71rem;word-break:break-all}
.rp-src-f{margin:11px 0 0;font-size:.73rem;line-height:1.65;color:var(--ink-3)}
.rp-gloss td{font-size:.8rem;line-height:1.68;vertical-align:top}
.rp-gloss td:first-child{width:150px;background:var(--surface-2);font-weight:800;color:var(--ink-1);white-space:nowrap}
.rp-sign td{font-size:.8rem;line-height:1.68}
.rp-chk{border:1px solid var(--axis)!important;background:var(--surface-2)}
.rp-signrow{display:flex;gap:20px;margin-top:20px;flex-wrap:wrap}
.rp-signbox{flex:1 1 210px;min-width:200px}
.rp-signbox em{display:block;font-style:normal;font-size:.75rem;color:var(--ink-3);margin-bottom:9px}
.rp-signbox span{font-size:.8rem;font-weight:700;color:var(--ink-2)}
.rp-signbox i{display:block;border-bottom:1px solid var(--ink-3);height:34px}

/* ---- 인쇄: 문서처럼 끊어 읽히게 ---- */
@media print{
  .rp-doc .rp-cover{height:auto;min-height:0;page-break-after:always;break-after:page;
    page-break-inside:avoid;break-inside:avoid;border:none;border-radius:0;padding:0 0 10mm;
    background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-doc .rp-cover-mid{padding:26mm 0 30mm}
  .rp-toc{page-break-after:always;break-after:page;border:none;border-radius:0;background:#fff!important;padding:0}
  .rp-toc-list{columns:1}
  .rp-stage{page-break-before:always;break-before:page}
  .rp-doc .rp-flow + .rp-stage,.rp-doc .rp-stage:first-child{page-break-before:auto;break-before:auto}
  .rp-doc h3.rp-h{page-break-after:avoid;break-after:avoid}
  .rp-ct,.rp-ev,.rp-src,.rp-life,.rp-paynote,.rp-signrow{page-break-inside:avoid;break-inside:avoid}
  .rp-appx{page-break-before:always;break-before:page}
  .rp-doc .rp-table thead{display:table-header-group}
}

/* =====================================================================
 * 담보 정의 풀이 (covdefs.js) — "이 담보, 실제로 어떤 병입니까"
 * ================================================================== */
.rp-doc .rp-cd-grid{display:flex;flex-direction:column;gap:11px;margin:12px 0 4px}
.rp-doc .rp-cd{border:1px solid var(--grid);border-left:3px solid var(--accent);
  border-radius:var(--radius-sm);padding:14px 16px;background:var(--surface-1);
  break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-cd.trap{border-left-color:var(--critical)}
.rp-doc .rp-cd-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rp-doc .rp-cd-ttl{flex:1 1 auto;font-size:1rem;color:var(--ink-1)}
.rp-doc .rp-cd-ttl b{font-weight:800}
.rp-doc .rp-cd-amt{flex:0 0 auto;font-size:.9rem;font-weight:800;color:var(--ink-1)}
.rp-doc .rp-cd-g{display:inline-block;margin-left:6px;font-size:.63rem;font-weight:700;
  padding:2px 6px;border-radius:5px;vertical-align:middle}
.rp-doc .rp-cd-g.t{background:#f4efe2;color:#8a6d1f;border:1px solid #e3d6b4}
.rp-doc .rp-cd-g.u{background:#f6eaea;color:#a03a3a;border:1px solid #e6cccc}
.rp-doc .rp-cd-src{margin-top:5px;font-size:.72rem;color:var(--ink-3)}
.rp-doc .rp-cd-src em{font-style:normal;color:var(--ink-2)}
.rp-doc .rp-cd-sum{margin:9px 0 0;font-size:.88rem;line-height:1.62;color:var(--ink-1)}
.rp-doc .rp-cd-block{margin-top:10px}
.rp-doc .rp-cd-lb{font-size:.7rem;font-weight:700;color:var(--ink-3);margin-bottom:5px;letter-spacing:.02em}
.rp-doc .rp-cd-block.ex .rp-cd-lb{color:var(--critical)}
.rp-doc .rp-cd-dzs{display:flex;flex-wrap:wrap;gap:5px}
.rp-doc .rp-cd-dz{display:inline-flex;align-items:baseline;gap:5px;font-size:.75rem;color:var(--ink-1);
  background:var(--surface-2);border:1px solid var(--grid);border-radius:6px;padding:3px 8px}
.rp-doc .rp-cd-dz b{font-weight:600}
.rp-doc .rp-cd-dz em{font-style:normal;font-size:.67rem;color:var(--ink-3);
  font-family:ui-monospace,Menlo,Consolas,monospace}
.rp-doc .rp-cd-ex{display:inline-block;font-size:.75rem;color:#a03a3a;background:#fbf3f3;
  border:1px solid #ecd6d6;border-radius:6px;padding:3px 8px}
.rp-doc .rp-cd-var{margin-top:10px;font-size:.78rem;line-height:1.6;color:var(--ink-2);
  padding-left:10px;border-left:2px solid var(--grid)}
.rp-doc .rp-cd-var em{font-style:normal;font-weight:700;color:var(--ink-3);margin-right:4px}
.rp-doc .rp-cd-q{margin-top:11px;padding:10px 13px;border-radius:8px;background:var(--surface-2);
  border:1px solid var(--grid);font-size:.85rem;line-height:1.66;color:var(--ink-1);font-weight:600}
.rp-doc .rp-cd-q.sm{font-size:.78rem;font-weight:500;margin-top:8px}
.rp-doc .rp-cd-miss{margin:16px 0 4px;border:1px solid var(--grid);border-radius:var(--radius-sm);
  padding:14px 16px;background:var(--surface-2)}
.rp-doc .rp-cd-miss-h{font-size:.92rem;font-weight:800;color:var(--ink-1)}
.rp-doc .rp-cd-miss-l{margin:7px 0 10px;font-size:.8rem;line-height:1.62;color:var(--ink-2)}
.rp-doc .rp-cd-mt td.rp-cd-mp{font-size:.75rem;color:var(--ink-2)}
.rp-doc .rp-cd-cps{margin:16px 0 4px}
.rp-doc .rp-cd-cps-h{font-size:.92rem;font-weight:800;color:var(--ink-1);margin-bottom:9px}
.rp-doc .rp-cd-cp{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:12px 15px;
  margin-bottom:9px;background:var(--surface-1);break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-cd-cp-t{font-size:.88rem;font-weight:800;color:var(--ink-1);margin-bottom:6px}
.rp-doc .rp-cd-cp p{margin:0;font-size:.82rem;line-height:1.66;color:var(--ink-2)}
@media print{
  .rp-doc .rp-cd,.rp-doc .rp-cd-cp,.rp-doc .rp-cd-miss{page-break-inside:avoid;break-inside:avoid}
}
.rp-doc .rp-cd.unk{border-left-color:#b08a3c;background:var(--surface-2)}
.rp-doc .rp-cd-pth{margin-top:10px;padding:9px 12px;border-radius:8px;border:1px dashed var(--grid);
  font-size:.76rem;line-height:1.6;color:var(--ink-2)}
.rp-doc .rp-cd-pth em{display:block;font-style:normal;font-weight:700;color:var(--ink-3);
  font-size:.68rem;margin-bottom:3px}

/* ═══ 약관 해석 원칙 (interpret.js) ═══════════════════════════════════
   ✅/❌ 두 방향을 시각적으로 확실히 갈라놓는 것이 이 스타일의 목적이다.
   warn(⚠)은 절대 lever(⚖)처럼 보이면 안 된다. */
.rp-doc .rp-lv-wrap{margin-top:11px;display:flex;flex-direction:column;gap:8px}
.rp-doc .rp-lv-wrap.wide{margin:12px 0 4px;gap:10px}
.rp-doc .rp-lv{border-radius:var(--radius-sm);padding:11px 13px 10px;border:1px solid var(--grid);
  border-left:4px solid var(--grid);background:var(--surface-1);
  break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-lv.ok{border-left-color:var(--accent);background:var(--accent-soft)}
.rp-doc .rp-lv.warn{border-left-color:var(--critical);
  background:color-mix(in srgb,var(--critical) 7%,transparent);
  border-color:color-mix(in srgb,var(--critical) 26%,var(--grid))}
.rp-doc .rp-lv-t{font-size:.82rem;font-weight:800;line-height:1.5;color:var(--ink-1);
  display:flex;gap:6px;align-items:flex-start}
.rp-doc .rp-lv.warn .rp-lv-t{color:var(--critical)}
.rp-doc .rp-lv-ic{flex:0 0 auto;font-size:.8rem;line-height:1.5}
.rp-doc .rp-lv-b{margin:6px 0 0;font-size:.78rem;line-height:1.68;color:var(--ink-2)}
.rp-doc .rp-lv-n{margin:5px 0 0;font-size:.72rem;line-height:1.6;color:var(--ink-3)}
.rp-doc .rp-lv-src{margin-top:7px;font-size:.68rem;color:var(--ink-3);font-weight:700;
  letter-spacing:-.01em;border-top:1px dotted var(--grid);padding-top:5px}
.rp-doc .rp-lv-wrap.wide .rp-lv-t{font-size:.9rem}
.rp-doc .rp-lv-wrap.wide .rp-lv-b{font-size:.83rem}

.rp-doc .rp-dir{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.rp-doc .rp-dir-col{border:1px solid var(--grid);border-radius:var(--radius-sm);
  padding:13px 15px;background:var(--surface-1);break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-dir-col.ok{border-color:color-mix(in srgb,var(--good) 32%,var(--grid));
  background:color-mix(in srgb,var(--good) 5%,transparent)}
.rp-doc .rp-dir-col.no{border-color:color-mix(in srgb,var(--critical) 30%,var(--grid));
  background:color-mix(in srgb,var(--critical) 5%,transparent)}
.rp-doc .rp-dir-h{font-size:.92rem;font-weight:800;margin-bottom:9px;padding-bottom:7px;
  border-bottom:1px solid var(--grid);color:var(--ink-1)}
.rp-doc .rp-dir-col.ok .rp-dir-h{color:var(--good)}
.rp-doc .rp-dir-col.no .rp-dir-h{color:var(--critical)}
.rp-doc .rp-dir-r{padding:8px 0;border-bottom:1px dotted var(--grid)}
.rp-doc .rp-dir-r:last-child{border-bottom:0;padding-bottom:0}
.rp-doc .rp-dir-t{font-size:.8rem;font-weight:800;color:var(--ink-1);margin-bottom:3px}
.rp-doc .rp-dir-r p{margin:0;font-size:.76rem;line-height:1.65;color:var(--ink-2)}
.rp-doc .rp-dir-one{margin:4px 0 18px;padding:13px 16px;border-radius:var(--radius-sm);
  background:var(--surface-2);border-left:4px solid var(--accent);
  font-size:.86rem;line-height:1.7;font-weight:700;color:var(--ink-1);
  break-inside:avoid;page-break-inside:avoid}

.rp-doc .rp-ip-sub{margin:20px 0 8px;font-size:.95rem;font-weight:800;color:var(--ink-1);
  padding-bottom:6px;border-bottom:2px solid var(--grid)}

.rp-doc .rp-pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.rp-doc .rp-pr{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:12px 14px;
  background:var(--surface-1);break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-pr.star{border-color:color-mix(in srgb,var(--accent) 34%,var(--grid));
  background:var(--accent-soft);grid-column:1 / -1}
.rp-doc .rp-pr-h{display:flex;align-items:center;gap:7px;font-size:.88rem;color:var(--ink-1);margin-bottom:6px}
.rp-doc .rp-pr-n{flex:0 0 auto;width:19px;height:19px;border-radius:50%;background:var(--ink-3);
  color:#fff;font-size:.66rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.rp-doc .rp-pr.star .rp-pr-n{background:var(--accent)}
.rp-doc .rp-pr-d{margin:0;font-size:.79rem;line-height:1.68;color:var(--ink-2)}
.rp-doc .rp-pr-w,.rp-doc .rp-pr-l{margin:7px 0 0;font-size:.75rem;line-height:1.62;color:var(--ink-2)}
.rp-doc .rp-pr-l{color:var(--serious)}
.rp-doc .rp-pr-w em,.rp-doc .rp-pr-l em{display:block;font-style:normal;font-weight:800;
  font-size:.67rem;color:var(--ink-3);margin-bottom:2px}
.rp-doc .rp-pr-s{margin-top:8px;padding-top:6px;border-top:1px dotted var(--grid);
  font-size:.67rem;font-weight:700;color:var(--ink-3)}

.rp-doc .rp-jd-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.rp-doc .rp-jd{border:1px solid var(--grid);border-left:4px solid var(--grid);
  border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface-1);
  break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-jd.pro{border-left-color:var(--good)}
.rp-doc .rp-jd.con{border-left-color:var(--critical)}
.rp-doc .rp-jd-h{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.87rem;
  font-weight:800;color:var(--ink-1);margin-bottom:3px}
.rp-doc .rp-jd-b{flex:0 0 auto;font-size:.65rem;font-weight:800;padding:2px 7px;border-radius:20px;color:#fff}
.rp-doc .rp-jd.pro .rp-jd-b{background:var(--good)}
.rp-doc .rp-jd.con .rp-jd-b{background:var(--critical)}
.rp-doc .rp-jd-no{font-size:.69rem;font-weight:700;color:var(--ink-3);margin-bottom:7px}
.rp-doc .rp-jd-c{margin:0 0 6px;font-size:.75rem;line-height:1.6;color:var(--ink-2)}
.rp-doc .rp-jd-c em{display:block;font-style:normal;font-weight:800;font-size:.66rem;color:var(--ink-3)}
.rp-doc .rp-jd-r{margin:0;font-size:.78rem;line-height:1.68;color:var(--ink-1)}

.rp-doc .rp-dp{margin:8px 0 4px}
.rp-doc .rp-dp td{font-size:.75rem;line-height:1.6;vertical-align:top}
.rp-doc .rp-dp-ref{display:block;font-style:normal;font-size:.66rem;font-weight:700;
  color:var(--ink-3);margin-top:2px}

.rp-doc .rp-al-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.rp-doc .rp-al{border:1px solid color-mix(in srgb,var(--warn) 30%,var(--grid));
  border-radius:var(--radius-sm);padding:12px 14px;
  background:color-mix(in srgb,var(--warn) 7%,transparent);
  break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-al-t{font-size:.85rem;font-weight:800;color:var(--ink-1);margin-bottom:5px;line-height:1.5}
.rp-doc .rp-al p{margin:0;font-size:.77rem;line-height:1.68;color:var(--ink-2)}
.rp-doc .rp-al-s{margin-top:7px;font-size:.67rem;font-weight:700;color:var(--ink-3)}

@media print{
  .rp-doc .rp-lv,.rp-doc .rp-dir-col,.rp-doc .rp-dir-one,
  .rp-doc .rp-pr,.rp-doc .rp-jd,.rp-doc .rp-al{page-break-inside:avoid;break-inside:avoid}
  .rp-doc .rp-ip-sub{page-break-after:avoid;break-after:avoid}
}
@media (max-width:820px){
  .rp-doc .rp-dir,.rp-doc .rp-pr-grid,.rp-doc .rp-jd-grid,.rp-doc .rp-al-grid{grid-template-columns:1fr}
}

/* ═══ 약관 원문 확보 현황 (termslib.js) ═══════════════════════════════ */
.rp-doc .rp-tl-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.rp-doc .rp-tl-n{border:1px solid var(--grid);border-radius:var(--radius-sm);padding:11px 14px;
  background:var(--surface-1);break-inside:avoid}
.rp-doc .rp-tl-n span{display:block;font-size:.7rem;color:var(--ink-3);font-weight:700;margin-bottom:3px}
.rp-doc .rp-tl-n b{font-size:1.35rem;font-weight:800;color:var(--ink-1);letter-spacing:-.02em}
.rp-doc .rp-tl-n small{font-size:.72rem;font-weight:700;color:var(--ink-3);margin-left:2px}
.rp-doc .rp-tl td{font-size:.77rem;line-height:1.6;vertical-align:top}
.rp-doc .rp-tl-do{color:var(--ink-2)}
.rp-doc .rp-tl-ok,.rp-doc .rp-tl-no{display:inline-block;font-size:.68rem;font-weight:800;
  padding:2px 7px;border-radius:20px;color:#fff}
.rp-doc .rp-tl-ok{background:var(--good)}
.rp-doc .rp-tl-no{background:var(--ink-3)}
.rp-doc .rp-tl-req{margin:14px 0 4px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--grid));
  border-radius:var(--radius-sm);padding:14px 16px;background:var(--accent-soft);
  break-inside:avoid;page-break-inside:avoid}
.rp-doc .rp-tl-req-h{font-size:.92rem;font-weight:800;color:var(--ink-1);margin-bottom:6px}
.rp-doc .rp-tl-req-l{margin:0 0 8px;font-size:.79rem;line-height:1.68;color:var(--ink-2)}
.rp-doc .rp-tl-steps{margin:0 0 10px;padding-left:1.15rem}
.rp-doc .rp-tl-steps li{font-size:.79rem;line-height:1.7;color:var(--ink-2);margin-bottom:3px}
.rp-doc .rp-tl-script{border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--grid));
  border-radius:8px;padding:11px 13px;background:var(--surface-1);
  font-size:.79rem;line-height:1.72;color:var(--ink-1)}
.rp-doc .rp-tl-script em{display:block;font-style:normal;font-weight:800;font-size:.68rem;
  color:var(--ink-3);margin-bottom:4px}
@media print{
  .rp-doc .rp-tl-req,.rp-doc .rp-tl-n{page-break-inside:avoid;break-inside:avoid}
}
@media (max-width:820px){ .rp-doc .rp-tl-bar{grid-template-columns:1fr} }

/* ============================================================
 * 고객관리(CRM) — crm.js
 * 보험도감 톤을 따른다: 네이비 계열, 장식 최소, 숫자는 크게.
 * 60대 고객 앞에서 화면을 돌려 보여줄 수 있어야 하므로
 * 본문 글자를 작게 만들지 않는다.
 * ========================================================== */
.crm-seg{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--grid);
  border-radius:12px;padding:3px}
.crm-seg button{border:none;background:transparent;color:var(--ink-2);font-size:.9rem;font-weight:650;
  padding:.44rem .85rem;border-radius:9px;transition:background .12s,color .12s}
.crm-seg button:hover{color:var(--ink-1)}
.crm-seg button.on{background:var(--surface-1);color:var(--accent-ink);box-shadow:var(--shadow-sm)}
.crm-seg.wide{display:flex;width:100%}
.crm-seg.wide button{flex:1}
.crm-seg.top{margin-bottom:16px}

.crm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin-bottom:14px}
.crm-tile{background:var(--surface-1);border:1px solid var(--grid);border-radius:var(--radius-sm);
  padding:.7rem .85rem;box-shadow:var(--shadow-sm)}
.crm-tile span{display:block;font-size:.76rem;color:var(--ink-3);font-weight:650;letter-spacing:-.01em}
.crm-tile b{display:block;font-size:1.5rem;font-weight:800;margin-top:2px;letter-spacing:-.03em}
.crm-tile small{font-size:.8rem;font-weight:650;color:var(--ink-3);margin-left:2px}
.crm-tile.bad{border-color:var(--critical);background:var(--bad-soft)}
.crm-tile.bad b{color:var(--critical)}
.crm-tile.hot{border-color:var(--accent);background:var(--accent-soft)}
.crm-tile.hot b{color:var(--accent-ink)}

.crm-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}
.crm-bar-l,.crm-bar-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crm-search{min-width:240px}

.crm-sec{margin:18px 0}
.crm-sec-h{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;
  border-bottom:1px solid var(--grid);padding-bottom:6px}
.crm-sec-h h3{font-size:1rem;font-weight:750;letter-spacing:-.02em}
.crm-sec-h h3 b{color:var(--accent-ink);margin-left:3px}
.crm-sec-h span{font-size:.8rem;color:var(--ink-3)}

.crm-task{display:flex;gap:12px;align-items:flex-start;background:var(--surface-1);
  border:1px solid var(--grid);border-left:3px solid var(--axis);border-radius:var(--radius-sm);
  padding:.72rem .85rem;margin-bottom:7px;box-shadow:var(--shadow-sm)}
.crm-task.tone-urgent{border-left-color:var(--critical)}
.crm-task.tone-warn{border-left-color:var(--warn)}
.crm-task.tone-ok{border-left-color:var(--good)}
.crm-task.tone-soft{border-left-color:var(--s5)}
.ct-ico{font-size:1.25rem;line-height:1.4;flex:none}
.ct-body{flex:1;min-width:0}
.ct-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:2px}
.ct-label{font-size:.76rem;font-weight:750;color:var(--ink-2);background:var(--surface-2);
  border:1px solid var(--grid);border-radius:6px;padding:.06rem .38rem}
.ct-date{font-size:.78rem;color:var(--ink-3)}
.ct-title{font-size:.98rem;font-weight:700;letter-spacing:-.015em}
.ct-detail{font-size:.86rem;color:var(--ink-2);margin-top:1px}
.ct-why{font-size:.82rem;color:var(--ink-3);margin-top:4px;line-height:1.45}
.ct-basis{font-size:.76rem;color:var(--ink-3);margin-top:4px;padding-left:8px;
  border-left:2px solid var(--grid);line-height:1.4}
.ct-acts{display:flex;gap:5px;flex:none;flex-wrap:wrap;justify-content:flex-end;max-width:260px}

.crm-dd{font-size:.76rem;font-weight:800;color:var(--ink-2);background:var(--surface-2);
  border-radius:6px;padding:.06rem .4rem}
.crm-dd.over{background:var(--bad-soft);color:var(--critical)}
.crm-dd.today{background:var(--accent-soft);color:var(--accent-ink)}

.crm-mini{font-size:.78rem;font-weight:700;color:var(--ink-2);background:var(--surface-1);
  border:1px solid var(--axis);border-radius:8px;padding:.26rem .55rem;text-decoration:none;
  display:inline-block;transition:border-color .12s,color .12s,background .12s}
.crm-mini:hover{border-color:var(--accent);color:var(--accent-ink)}
.crm-mini.ok{border-color:var(--good);color:var(--good-text)}
.crm-mini.bad:hover{border-color:var(--critical);color:var(--critical)}

.crm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:11px}
.crm-card{background:var(--surface-1);border:1px solid var(--grid);border-radius:var(--radius-sm);
  padding:.85rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .12s,transform .12s,box-shadow .12s}
.crm-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.cc-h{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.cc-h b{font-size:1.06rem;font-weight:750;letter-spacing:-.02em}
.cc-age{font-size:.8rem;color:var(--ink-3)}
.cc-grade{font-size:.74rem;font-weight:800;width:19px;height:19px;border-radius:6px;
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  background:var(--surface-2);color:var(--ink-2);border:1px solid var(--grid)}
.cc-grade.gA{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
.cc-grade.gC{color:var(--ink-3)}
.cc-meta{display:flex;flex-wrap:wrap;gap:4px 11px;font-size:.82rem;color:var(--ink-2);margin-bottom:6px}
.cc-stat{display:flex;flex-wrap:wrap;gap:4px 11px;font-size:.8rem;color:var(--ink-3);
  border-top:1px solid var(--grid);padding-top:6px}
.cc-stat b{color:var(--ink-1);font-weight:750}
.cc-stat .stale{color:var(--warn)}
.cc-memo{font-size:.8rem;color:var(--ink-3);margin-top:6px;line-height:1.4}
/* 카드 안에 무엇이 몇 건 보관되어 있는지 — 검색 결과에서 열어 보기 전에 알 수 있게 */
.cc-bag{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;
  font-size:.78rem;font-weight:650;color:var(--accent-ink)}
.cc-bag span{color:var(--ink-3);font-weight:400}

.crm-empty{text-align:center;padding:44px 20px;background:var(--surface-1);
  border:1px dashed var(--axis);border-radius:var(--radius)}
.ce-ico{font-size:2.1rem;margin-bottom:8px}
.ce-t{font-size:1.06rem;font-weight:750;margin-bottom:5px}
.ce-d{font-size:.88rem;color:var(--ink-2);line-height:1.6;margin-bottom:14px}
.crm-fine{font-size:.8rem;color:var(--ink-3);line-height:1.55;margin-top:12px}

/* ── 고객 상세 ── */
.cd-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.crm-back{border:1px solid var(--axis);background:var(--surface-1);color:var(--ink-2);
  border-radius:9px;padding:.4rem .7rem;font-size:.86rem;font-weight:650}
.crm-back:hover{border-color:var(--accent);color:var(--accent-ink)}
.cd-name{display:flex;align-items:center;gap:9px;flex:1;flex-wrap:wrap}
.cd-name h2{font-size:1.34rem;font-weight:800;letter-spacing:-.03em}
.cd-sub{font-size:.85rem;color:var(--ink-3)}
.cd-acts{display:flex;gap:7px}
.cd-info{display:flex;flex-wrap:wrap;gap:6px 18px;background:var(--surface-2);
  border:1px solid var(--grid);border-radius:var(--radius-sm);padding:.7rem .85rem;
  font-size:.87rem;margin-bottom:10px}
.cd-info i{font-style:normal;color:var(--ink-3);font-size:.78rem;font-weight:650;margin-right:6px}
.cd-memo{font-size:.87rem;color:var(--ink-2);line-height:1.6;margin-bottom:12px;
  padding-left:10px;border-left:3px solid var(--grid)}
.cd-body{margin-top:14px}
.cd-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cd-bar .crm-fine{margin-top:0}
.cd-none{text-align:center;padding:28px;color:var(--ink-3);font-size:.9rem;
  background:var(--surface-2);border-radius:var(--radius-sm)}

.crm-row{display:flex;gap:12px;align-items:flex-start;background:var(--surface-1);
  border:1px solid var(--grid);border-radius:var(--radius-sm);padding:.75rem .85rem;
  margin-bottom:7px;box-shadow:var(--shadow-sm)}
.crm-row.off{opacity:.55}
.cr-main{flex:1;min-width:0}
.cr-t{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:3px}
.cr-t b{font-size:.98rem;font-weight:750;letter-spacing:-.015em}
.cr-kind{font-size:.75rem;font-weight:750;color:var(--ink-2);background:var(--surface-2);
  border:1px solid var(--grid);border-radius:6px;padding:.06rem .38rem}
.cr-kind.k-auto{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
.cr-off{font-size:.73rem;font-weight:750;color:var(--critical);background:var(--bad-soft);
  border-radius:5px;padding:.04rem .34rem}
.cr-ok{font-size:.73rem;font-weight:750;color:var(--good-text);background:var(--good-soft);
  border-radius:5px;padding:.04rem .34rem}
.cr-d{font-size:.84rem;color:var(--ink-2)}
.cr-m,.cr-body{font-size:.86rem;color:var(--ink-2);margin-top:4px;line-height:1.55}
.cr-next{font-size:.82rem;color:var(--accent-ink);margin-top:5px;font-weight:650}
.cr-side{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}
.cr-prem{font-size:1.02rem;font-weight:800;letter-spacing:-.02em}
.cr-prem small{font-size:.72rem;font-weight:650;color:var(--ink-3);margin-left:2px}
.cr-btns{display:flex;gap:5px;flex:none}

.cd-files{display:flex;flex-direction:column;gap:7px}
.cf-item{display:flex;align-items:center;gap:11px;background:var(--surface-1);
  border:1px solid var(--grid);border-radius:var(--radius-sm);padding:.65rem .8rem}
.cf-ico{font-size:1.3rem;flex:none}
.cf-main{flex:1;min-width:0}
.cf-n{font-size:.93rem;font-weight:700;word-break:break-all}
.cf-m{font-size:.78rem;color:var(--ink-3);margin-top:1px}
.cf-kind{font-weight:750;color:var(--accent-ink);margin-right:6px}
.cf-acts{display:flex;gap:5px;flex:none}

/* 보관함 묶음 — 고객이 폴더, 그 안이 다시 종류별 */
.cd-fold{margin-bottom:16px}
.cd-fold h4{display:flex;align-items:center;gap:7px;font-size:.9rem;font-weight:750;
  letter-spacing:-.015em;margin-bottom:7px;padding-bottom:5px;border-bottom:1px solid var(--grid)}
.cd-cnt{font-size:.75rem;font-weight:750;color:var(--ink-2);background:var(--surface-2);
  border:1px solid var(--grid);border-radius:6px;padding:.04rem .36rem}
.cd-fold h4 em{font-style:normal;font-size:.76rem;font-weight:400;color:var(--ink-3);margin-left:auto}

/* ── 모달 ── */
.crm-modal{position:fixed;inset:0;background:rgba(12,14,20,.5);z-index:900;
  display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.cm-card{background:var(--surface-1);border-radius:var(--radius);width:min(680px,100%);
  max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shadow-md);
  border:1px solid var(--grid)}
.cm-h{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:1rem 1.15rem;border-bottom:1px solid var(--grid)}
.cm-h h3{font-size:1.1rem;font-weight:750;letter-spacing:-.02em}
.cm-x{border:none;background:transparent;font-size:1.05rem;color:var(--ink-3);padding:2px 6px}
.cm-x:hover{color:var(--ink-1)}
.cm-b{padding:1.1rem 1.15rem;overflow:auto}
.cm-f{display:flex;justify-content:flex-end;gap:8px;padding:.85rem 1.15rem;
  border-top:1px solid var(--grid);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius)}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.cf-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.cf-grid .cf-row{margin-bottom:0}
.cf-row.full{grid-column:1/-1}
.cf-row label{font-size:.82rem;font-weight:650;color:var(--ink-2)}
.cf-row input,.cf-row select,.cf-row textarea{width:100%}
.cf-row.check label{display:flex;align-items:center;gap:7px;font-size:.9rem;color:var(--ink-1);font-weight:600}
.cf-row.check input{width:auto}
.crm-ta{width:100%;font-size:.92rem;line-height:1.7;font-family:var(--font)}
.crm-basis{font-size:.8rem;color:var(--ink-3);margin-top:10px;padding-left:9px;
  border-left:2px solid var(--grid);line-height:1.5}
.crm-why{font-size:.84rem;color:var(--ink-2);margin-top:8px;line-height:1.55}

/* ── 캘린더 자동 연동 ── */
.cal-lead{font-size:.92rem;line-height:1.65;color:var(--ink-1)}
.cal-url{display:flex;gap:7px;margin-top:12px}
.cal-url input{flex:1;min-width:0;font-size:.83rem;font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  background:var(--surface-2);color:var(--ink-2)}
.cal-url .btn-primary{flex:none;white-space:nowrap}
.cal-open{margin-top:7px;font-size:.85rem}
.cal-open a{color:var(--accent,#1f3a63);font-weight:650;text-decoration:underline;text-underline-offset:2px}
.cal-warn{margin-top:14px;padding:11px 13px;border-radius:9px;
  background:rgba(180,40,40,.055);border:1px solid rgba(180,40,40,.22)}
.cal-warn>b{display:block;font-size:.86rem;font-weight:750;color:#9d2b2b;margin-bottom:4px}
.cal-warn p b{color:#9d2b2b;font-weight:750}
.cal-warn p{font-size:.845rem;line-height:1.6;color:var(--ink-2)}
.cal-how{margin-top:15px;padding:12px 13px;border-radius:9px;background:var(--surface-2);border:1px solid var(--grid)}
.cal-how>b{display:block;font-size:.86rem;font-weight:750;color:var(--ink-1);margin-bottom:7px}
.cal-how dt{font-size:.83rem;font-weight:700;color:var(--ink-1);margin-top:8px}
.cal-how dt:first-of-type{margin-top:0}
.cal-how dd{font-size:.83rem;line-height:1.6;color:var(--ink-2);margin-top:2px}
.cal-opt{margin-top:16px;padding-top:13px;border-top:1px solid var(--grid)}
.cal-opt select{max-width:280px}
.cal-acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.cal-stat{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;padding-top:11px;
  border-top:1px solid var(--grid);font-size:.8rem;color:var(--ink-3)}
.cal-stat b{color:var(--ink-1);font-weight:700}
.cal-err{font-size:.9rem;line-height:1.6;color:#9d2b2b}

/* ── 주소 → 네이버지도 링크 ──
   폰에서 손가락으로 눌러야 하므로 글자만 파랗게 두지 않고
   눌리는 덩어리로 만든다. 최소 높이 26px 는 오조작을 줄이려는 것. */
.crm-map{display:inline-flex;align-items:center;gap:3px;min-height:26px;
  padding:2px 9px 2px 7px;border-radius:20px;white-space:nowrap;
  font-size:.79rem;font-weight:650;line-height:1.3;text-decoration:none;
  color:#0b6b3a;background:rgba(3,199,90,.10);border:1px solid rgba(3,199,90,.32)}
.crm-map:hover{background:rgba(3,199,90,.18);border-color:rgba(3,199,90,.5)}
.crm-map:active{transform:translateY(1px)}
.ct-place{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:5px}
.ct-place .crm-fine{margin:0}
.cc-addr .crm-map{font-size:.76rem;min-height:22px;padding:1px 8px}
.cd-info span.wide{flex-basis:100%}
.cd-info .crm-map{margin-left:4px}
.cr-d .crm-map{margin-left:2px}
.cr-d .crm-fine{margin:0}
/* 주소 입력칸 + 「지도로 확인」 */
.cf-addr{display:flex;gap:6px}
.cf-addr input{flex:1;min-width:0}
.cf-addr .btn-ghost{flex:none;white-space:nowrap;padding-top:0;padding-bottom:0}

@media(max-width:640px){
  .cf-grid{grid-template-columns:1fr}
  .ct-acts{max-width:none;width:100%;justify-content:flex-start;margin-top:6px}
  .crm-task{flex-wrap:wrap}
  .cal-url{flex-direction:column}
  .cal-url .btn-primary{width:100%}
  .cf-addr{flex-wrap:wrap}
  .cf-addr input{flex-basis:100%}
  .cf-addr .btn-ghost{flex:1}
}
@media print{ .crm-modal{display:none} }
