/* ASTRAN MATR 전용 보충 스타일 (ASTRAN UI 키트 위에 얹음) */
.qdrop{position:absolute;top:52px;right:170px;width:340px;max-height:380px;overflow:auto;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;box-shadow:var(--shadow);z-index:40;padding:6px}
.qdrop .it{padding:8px 10px;border-radius:8px;cursor:pointer;display:flex;gap:8px;align-items:center}
.qdrop .it:hover,.qdrop .it.act{background:var(--redbg)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.fam-tag{font-size:11px;padding:2px 8px;border-radius:20px;border:1px solid var(--line2);color:var(--sub);white-space:nowrap}
.utag{font-size:10.5px;padding:1px 7px;border-radius:20px;background:rgba(var(--red-rgb),.14);color:var(--red);font-weight:700}
.sel-wrap{display:grid;grid-template-columns:300px minmax(0,1fr) 300px;gap:14px;align-items:start}
@media(max-width:1300px){.sel-wrap{grid-template-columns:280px minmax(0,1fr)}.sel-wrap .res{grid-column:1/-1}}
@media(max-width:900px){.sel-wrap{grid-template-columns:minmax(0,1fr)}}
.stage{border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:8px;background:var(--panel2);cursor:pointer}
.stage.on{border-color:var(--red);box-shadow:0 0 0 1px rgba(var(--red-rgb),.4) inset}
.stage .st-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:12.5px}
.stage .st-h .x{margin-left:auto;color:var(--mute);border:0;background:none;cursor:pointer;font-size:15px}
.stage .st-d{color:var(--sub);font-size:11.5px;margin-top:4px;line-height:1.5}
.stage .cnt{font-size:11px;color:var(--green);font-weight:700}
.chartbox{position:relative;height:620px}
.chartbox .hint{position:absolute;left:14px;bottom:10px;font-size:11.5px;color:var(--mute);pointer-events:none}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.legend .lg{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 9px;border:1px solid var(--line);border-radius:20px;cursor:pointer;user-select:none}
.legend .lg.off{opacity:.35}
.reslist{max-height:560px;overflow:auto}
.reslist .ri{display:flex;align-items:center;gap:8px;padding:7px 6px;border-bottom:1px solid var(--line);cursor:pointer;font-size:12.5px}
.reslist .ri:hover{background:var(--redbg)}
.reslist .ri .rk{width:22px;color:var(--mute);font-variant-numeric:tabular-nums}
.reslist .ri .iv{margin-left:auto;white-space:nowrap;padding-left:6px;font-variant-numeric:tabular-nums;color:var(--sub);font-size:11.5px}
.tree{max-height:680px;overflow:auto}
.tree .fh{display:flex;align-items:center;gap:8px;padding:8px 8px;font-weight:700;cursor:pointer;border-radius:8px}
.tree .sh{padding:6px 8px 6px 26px;color:var(--sub);font-size:12px;cursor:pointer;border-radius:8px}
.tree .mi{padding:6px 8px 6px 40px;font-size:12.5px;cursor:pointer;border-radius:8px;display:flex;gap:6px;align-items:center}
.tree .fh:hover,.tree .sh:hover,.tree .mi:hover{background:var(--panel2)}
.tree .mi.on{background:var(--redbg);color:var(--red);font-weight:700}
.ds-sec{margin-top:14px}
.ds-sec h4{margin:0 0 6px;font-size:12.5px;color:var(--sub);font-weight:700}
.pbar{height:7px;background:var(--line);border-radius:4px;position:relative;min-width:120px}
.pbar i{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--red);opacity:.85}
.rate{display:inline-flex;gap:3px}
.rate b{width:14px;height:6px;border-radius:3px;background:var(--line2)}
.rate b.on{background:var(--green)}
.chat{display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:460px}
.msgs{flex:1;overflow:auto;padding:4px}
.msg{max-width:80%;padding:11px 14px;border-radius:12px;margin:8px 0;line-height:1.7;white-space:pre-wrap;word-break:break-word;font-size:13px}
.msg.u{margin-left:auto;background:linear-gradient(135deg,var(--red),var(--red2));color:#fff;border-bottom-right-radius:4px}
.msg.a{background:var(--panel2);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg .steps{margin-top:8px;font-size:11px;color:var(--mute)}
.ask{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.ask textarea{flex:1;resize:none;height:50px;margin:0}
.sugg{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.chipbtn{font-size:12px;padding:6px 11px;border:1px solid var(--line2);border-radius:20px;background:var(--panel2);color:var(--sub);cursor:pointer}
.chipbtn:hover{border-color:var(--red);color:var(--text)}
.prop-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:6px 8px;align-items:center;font-size:12px}
.prop-grid .inp{margin:0;height:32px;padding:0 8px}
.limits .lrow{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:6px;align-items:center;font-size:12px;margin-top:6px}
.limits .lrow .inp{margin:0;height:30px;padding:0 8px}
.limits h5{margin:12px 0 2px;font-size:12px;color:var(--sub)}
.best{background:var(--redbg)!important;color:var(--red);font-weight:700}
.notice{background:rgba(255,176,32,.1);border:1px solid rgba(255,176,32,.35);color:var(--text);border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.6}
.kbar{display:flex;gap:6px;flex-wrap:wrap}
.axis-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:end}
.small{font-size:11.5px}
.sp{flex:1}
/* 1.1 — 분류 나무 · 감성 · 제품 */
.tree .car{width:12px;color:var(--mute);font-size:11px}
.tree .sh{display:flex;gap:6px;align-items:center}
.sxrow .seg{justify-self:end}
.tree .th{padding:6px 8px 2px 34px;color:var(--mute);font-size:11px;font-weight:700}
.tree .mi{padding-left:44px}
.srows{display:grid;gap:6px}
.srow{display:grid;grid-template-columns:76px minmax(80px,1fr) 150px 52px;gap:10px;align-items:center;font-size:12.5px}
.sbar{position:relative;height:8px;border-radius:4px;background:var(--line)}
.sbar i{position:absolute;top:0;bottom:0;border-radius:4px;background:rgba(var(--red-rgb),.35)}
.sbar b{position:absolute;top:-3px;width:3px;height:14px;margin-left:-1px;border-radius:2px;background:var(--red)}
.srow .src{font-size:11px;font-weight:700;text-align:right}
.sxrow{display:grid;grid-template-columns:minmax(70px,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}
.seg.sm button{font-size:11px;padding:4px 8px}
.btn.sm{height:26px;padding:0 9px;font-size:11.5px}
.apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.app{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);text-align:center;font-size:12px}
.app svg{width:30px;height:30px;color:var(--red)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.pgrid.sm{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.pcard{position:relative;display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);cursor:pointer}
.pcard:hover{border-color:var(--red)}
.pcard img,.pcard .noimg{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:10px;background:#fff}
.pgrid.sm .pcard img,.pgrid.sm .noimg{aspect-ratio:1}
.pcard .noimg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--panel);color:var(--mute)}
.pcard .noimg svg{width:40px;height:40px}
.pchk{position:absolute;top:16px;right:16px;background:var(--bg2);border-radius:6px;padding:2px 4px}
.ptags{display:flex;flex-wrap:wrap;gap:4px}
.pmini{display:flex;gap:10px;font-size:11.5px;color:var(--sub)}
.pmini b{color:var(--red)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chipbtn.on{border-color:var(--red);color:var(--red)}
.drop{border:2px dashed var(--line2);border-radius:14px;min-height:220px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--panel2);overflow:hidden}
.drop.on{border-color:var(--red)}
.drop img{width:100%;max-height:300px;object-fit:contain;background:#fff}
.refi{padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.6}
.refi a{color:var(--red)}
details summary{cursor:pointer}
.adjs{display:flex;flex-wrap:wrap;gap:5px}
.adjc{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--line);border-radius:20px;font-size:11.5px;background:var(--panel2)}
.adjc b{color:var(--red)}
.adjc i,.adjb i,.kd{display:inline-block;width:7px;height:7px;border-radius:50%}
.kd{margin:0 3px 0 8px}
.adjgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px;margin-top:6px}
.adjb{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--line);border-radius:20px;background:transparent;color:var(--text);font-size:12px;cursor:pointer}
.adjb:hover{border-color:var(--red)}
.adjb.on{background:var(--red);border-color:var(--red);color:#fff}
/* ───── 감성 소재 선정 리포트 (인쇄 전용) ───── */
#rptHost{display:none}
@media print{
  @page{size:A4;margin:14mm 13mm}
  body.printing>*:not(#rptHost){display:none!important}
  body.printing #rptHost{display:block}
  body.printing{background:#fff!important}
}
.rp{font-family:Pretendard,'Malgun Gothic',sans-serif;color:#1f2633;font-size:10.5pt;line-height:1.6;background:#fff}
.rp section{margin-bottom:8mm}
.rp-cover{position:relative;padding-top:6mm}
.rp-band{height:5mm;background:#e8192c;margin:-6mm 0 8mm}
.rp-kicker{color:#e8192c;font-weight:700;font-size:10pt}
.rp h1{font-size:24pt;margin:2mm 0 1mm;line-height:1.25;color:#111}
.rp-sub{font-size:13pt;color:#4a5363;margin-bottom:5mm}
.rp h2{font-size:14pt;margin:7mm 0 3mm;padding-bottom:1.5mm;border-bottom:2px solid #e8192c;color:#111;break-after:avoid}
.rp h3{font-size:11.5pt;margin:5mm 0 2mm}
.rp-meta{width:100%;border-collapse:collapse;margin:3mm 0}
.rp-meta th{width:22mm;text-align:left;color:#667085;font-weight:600;padding:1.5mm 2mm;border-bottom:1px solid #e4e7ec;vertical-align:top}
.rp-meta td{padding:1.5mm 2mm;border-bottom:1px solid #e4e7ec}
.rp-box{background:#f6f7f9;border-left:3px solid #e8192c;padding:3mm 4mm;margin:4mm 0}
.rp-sum{display:grid;grid-template-columns:62mm 1fr;gap:5mm;align-items:start}
.rp-win{border:2px solid #e8192c;border-radius:3mm;padding:4mm}
.rp-k{color:#e8192c;font-weight:700;font-size:9pt}
.rp-v{font-size:16pt;font-weight:800;margin:1mm 0;line-height:1.3}
.rp-d{color:#667085;font-size:9pt}
.rp-rank{margin:0;padding-left:6mm}
.rp-rank li{padding:1mm 0;border-bottom:1px dashed #e4e7ec}
.rp-rank span{color:#e8192c;font-weight:700}
.rp-rank em{display:block;font-style:normal;color:#667085;font-size:9pt}
.rp-p{margin:2mm 0;text-align:justify}
.rp-t{width:100%;border-collapse:collapse;font-size:9.5pt;margin:2mm 0;break-inside:auto}
.rp-t th{background:#f2f4f7;text-align:left;padding:1.8mm 2mm;border-bottom:1.5px solid #c9ced8;font-weight:700}
.rp-t td{padding:1.6mm 2mm;border-bottom:1px solid #e4e7ec;vertical-align:top}
.rp-t tr{break-inside:avoid}
.rp-t .r{text-align:right;white-space:nowrap}
.rp-hl td{background:#fff1f2}
.rp-m{color:#7a8291;font-size:8.5pt}
.rp figure{margin:3mm 0;text-align:center;break-inside:avoid}
.rp figure img{max-width:100%;max-height:120mm}
.rp figcaption{color:#667085;font-size:9pt;margin-top:1mm}
.rp-cards{display:grid;grid-template-columns:1fr 1fr;gap:4mm}
.rp-card{border:1px solid #d9dde4;border-radius:2.5mm;padding:3mm 3.5mm;break-inside:avoid;font-size:9.5pt}
.rp-card>div{margin-top:1mm}
.rp-ch{display:flex;flex-wrap:wrap;gap:2mm;align-items:baseline;margin-bottom:1.5mm}
.rp-no{background:#e8192c;color:#fff;border-radius:50%;width:5.5mm;height:5.5mm;display:inline-flex;align-items:center;justify-content:center;font-size:8.5pt;font-weight:700}
.rp-l{display:inline-block;min-width:22mm;color:#667085;font-weight:600}
.rp-ol{padding-left:6mm}
.rp-refs{padding-left:6mm;font-size:9pt}
.rp-refs li{margin-bottom:1.5mm;break-inside:avoid}
.rp-url{color:#2f6fd6;font-size:8pt;word-break:break-all}
.rp-foot{margin-top:8mm;padding-top:2mm;border-top:1px solid #d9dde4;color:#98a2b3;font-size:8pt}
.rp-t td:first-child,.rp-t th:first-child{min-width:18mm}
.rp-t td:nth-child(2) b{white-space:nowrap}
.rp-t th{white-space:nowrap}
.rp-t td{word-break:keep-all}
.adjb.scn{border-radius:8px;padding:6px 10px}
/* 소재·제품 라이브러리 */
.libf label{display:block;margin-bottom:8px}.libf .inp{margin-top:3px}
.lib-h{display:flex;align-items:baseline;justify-content:space-between;margin:14px 0 6px;border-top:1px solid var(--line);padding-top:12px}
.lr{margin:4px 0 8px}.lr-t{display:flex;justify-content:space-between;font-size:11.5px;color:var(--mute)}.lr-t b{color:var(--text);font-weight:700}
.dual{position:relative;height:22px}
.dual::before{content:"";position:absolute;left:0;right:0;top:10px;height:3px;background:var(--line);border-radius:2px}
.dual input{position:absolute;left:0;top:0;width:100%;height:22px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.dual input::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--red);border:2px solid #fff;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.dual input::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:var(--red);border:2px solid #fff;cursor:pointer}
.dual input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--text);outline-offset:2px}
.libg{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.libg .pcard img{object-fit:cover;aspect-ratio:16/11}
.pcard{position:relative}.swn{position:absolute;top:16px;left:16px;font-style:normal;font-size:10.5px;padding:2px 7px;border-radius:20px;background:rgba(15,20,30,.62);color:#fff}
.adjs.sm .adjc{font-size:10.5px;padding:1px 6px}
.libpic{position:relative}.libpic img{width:100%;aspect-ratio:16/11;object-fit:cover;border-radius:12px;border:1px solid var(--line);display:block}.libpic .swn{top:10px;left:10px}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:10px 0 12px;font-size:12px}
.chain a{padding:3px 10px;border-radius:20px;border:1px solid var(--line);color:var(--sub);text-decoration:none}.chain a:hover{border-color:var(--red);color:var(--text)}.chain i{font-style:normal;color:var(--mute)}
