/* anl-profit — ANL-03 수익성 (M2) · DEM-02 계약 요약 */
.pt-anl-profit .kpi>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-anl-profit-tb tr[data-act] td{cursor:pointer}
.pt-anl-profit-intl td{opacity:.7}
.pt-anl-profit-sum td{background:var(--surface2)}
.pt-anl-profit-2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px;align-items:start}
.pt-anl-profit-svg{width:100%;height:auto;display:block}
.pt-anl-profit .card h6 .legend{margin-left:auto}
.pt-anl-profit .sqc{font-size:11px}
.pt-anl-profit .sqh .seg{margin-left:4px}
.pt-anl-profit-strip{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:8px 14px}
.pt-anl-profit-strip>b{font-size:12.5px}
.pt-anl-profit-strip small{display:block;font-size:10.5px;color:var(--muted);font-weight:400}
.pt-anl-profit-strip>span{font-size:12.5px}
@media (max-width:1100px){.pt-anl-profit-2{grid-template-columns:1fr}}
/* 성과표 보기 (요청 「매출 성과표 시각화」) — 월별 추이 · Squad별 비교 · 월 성과표 */
.pt-anl-profit-perf{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;align-items:start;margin-bottom:10px}
.pt-anl-profit-perf>.card{min-width:0;margin:0}
.pt-anl-profit-perf .card h6{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.pt-anl-profit-lg{gap:4px 10px}
.pt-anl-profit-lg>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.pt-anl-profit-note{font-size:11px;margin-top:6px;line-height:1.5}
.pt-anl-profit-hit rect{fill:var(--fg);opacity:0;cursor:default}
.pt-anl-profit-hit:hover rect{opacity:.06}
.pt-anl-profit-sq{cursor:pointer}
.pt-anl-profit-sq .bg{fill:var(--fg);opacity:0}
.pt-anl-profit-sq:hover .bg{opacity:.05}
.pt-anl-profit-pt td small{font-size:10.5px}
@media (max-width:1100px){.pt-anl-profit-perf{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.pt-anl-profit-perf .card h6 .legend{margin-left:0;flex-basis:100%}}
/* 조직 보기 (D-108) — 본부 손익 다리 · 조직 카드 · 효율 사분면 · 조직×Squad 매트릭스 · 조직 드로어 */
.anl03-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px}
.anl03-tl{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%}
.anl03-tl>small{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}
.anl03-tools .seg{max-width:100%;flex-wrap:wrap}
.anl03-tools .seg span{white-space:nowrap}
.anl03-lg{display:grid;gap:3px;margin-left:auto;font-size:11px;color:var(--muted);min-width:0}
.anl03-lg>div{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px}
.anl03-lg>div>b{color:var(--fg);font-weight:600;min-width:52px}
.anl03-lg span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.anl03-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);flex:0 0 auto;margin-right:2px}
.anl03-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"e1 e1" "e2 e3" "e4 e4";gap:10px;align-items:start}
.anl03-grid>div{min-width:0}
.anl03-a1{grid-area:e1}.anl03-a2{grid-area:e2}.anl03-a3{grid-area:e3}.anl03-a4{grid-area:e4}
.anl03-grid .card{margin:0}
.anl03-grid .card h6{flex-wrap:wrap;gap:4px 8px}
.anl03-hit{cursor:default}
.anl03-hit[data-act]{cursor:pointer}
.anl03-hit .bg{fill:var(--fg);opacity:0}
.anl03-hit[data-act]:hover .bg{opacity:.05}
.anl03-pt:hover circle:first-of-type{stroke-width:3}
.anl03-wf-v{display:none}
/* 조직 카드 */
.anl03-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:8px}
.anl03-card{border:1px solid var(--line);border-top:3px solid var(--c);border-radius:9px;padding:10px 12px 9px;background:var(--surface);cursor:pointer;min-width:0;display:flex;flex-direction:column;gap:5px;transition:border-color .12s,box-shadow .12s}
.anl03-card:hover{border-color:color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:var(--shadow)}
.anl03-card.intl{background:var(--surface2);border-top-style:dashed}
.anl03-card-h{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.anl03-card-h>b{font-size:13px}
.anl03-card-h>small{color:var(--muted);font-size:11px;margin-right:auto}
.anl03-card-m{display:flex;align-items:baseline;gap:8px}
.anl03-card-m>b{font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.anl03-card-m>b small{font-size:14px;margin-left:1px}
.anl03-card-m>span{font-size:11px;color:var(--muted)}
.anl03-card-sub{font-size:11.5px;color:var(--muted)}
.anl03-card-sub b{color:var(--fg)}
.anl03-gauge{position:relative;height:7px;border-radius:4px;background:var(--surface2);margin-top:2px}
.anl03-gauge>i{position:absolute;left:0;top:0;bottom:0;width:var(--v);background:var(--c);border-radius:4px}
.anl03-gauge>em{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--fg);border-radius:1px}
.anl03-gauge-s{position:relative;height:13px;font-size:9.5px;color:var(--muted)}
.anl03-gauge-s>span{position:absolute;top:0;white-space:nowrap}
.anl03-gauge-s>span.t{transform:translateX(-50%);color:var(--fg)}
.anl03-spark{margin:2px 0 0}
.anl03-card-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font-size:11.5px;color:var(--muted)}
.anl03-card-row b{color:var(--fg);font-variant-numeric:tabular-nums}
.anl03-card-row b.bad{color:var(--alert)}
.anl03-clues{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-top:1px solid var(--line);padding-top:6px;margin-top:1px}
.anl03-clues>span{display:flex;flex-direction:column;min-width:0;font-size:11px}
.anl03-clues small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.anl03-clues b{font-size:12.5px;font-variant-numeric:tabular-nums}
.anl03-clues em{font-style:normal;font-size:9.5px;color:var(--muted)}
/* 효율 사분면 */
.anl03-quad{max-width:480px;margin:0 auto}
.anl03-qlg{display:none;margin:6px 0 0;padding:0;list-style:none;font-size:11px;color:var(--muted)}
.anl03-qlg b{color:var(--fg);font-weight:600;margin-right:4px}
/* 조직×Squad 매트릭스 */
.anl03-mx-wrap{overflow-x:auto}
table.t.anl03-mx{width:100%;border-collapse:separate;border-spacing:3px;background:transparent}
table.t.anl03-mx th,table.t.anl03-mx td{border:0;padding:6px 8px;vertical-align:middle}
table.t.anl03-mx th{background:transparent}
.anl03-mx tr:first-child th{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}
.anl03-mx th small{font-weight:400}
table.t.anl03-mx .anl03-rh,table.t.anl03-mx .pt-anl-profit-sum th{text-align:left;white-space:nowrap;font-size:12px;color:var(--fg)}
.anl03-rh[data-act]{cursor:pointer}
.anl03-rh[data-act]:hover b{text-decoration:underline}
.anl03-rh small{color:var(--muted);font-weight:400;margin-left:5px;font-size:10.5px}
.anl03-c{position:relative;border-radius:6px;background:color-mix(in srgb,var(--hq) var(--h,0%),var(--surface2));min-width:84px;height:46px;cursor:pointer;outline:1.5px solid transparent;outline-offset:-1px}
.anl03-c:hover{outline-color:var(--hq)}
.anl03-mx td b{display:block;font-size:12.5px;font-variant-numeric:tabular-nums}
.anl03-mx td small{display:block;font-size:10.5px;font-variant-numeric:tabular-nums}
.anl03-cn{position:absolute;left:6px;top:4px;font-size:9.5px;color:var(--muted)}
table.t.anl03-mx td.anl03-intl{background:repeating-linear-gradient(135deg,var(--surface2) 0 6px,var(--surface) 6px 9px)}
.anl03-mx th.anl03-intl{color:var(--muted)}
table.t.anl03-mx .anl03-tot{background:var(--surface2);border-radius:6px;box-shadow:inset 2px 0 0 var(--line)}
table.t.anl03-mx .pt-anl-profit-sum th,table.t.anl03-mx .pt-anl-profit-sum td{background:var(--surface2);border-radius:6px}
.anl03-lock{color:var(--muted);white-space:nowrap}
.anl03-heat{display:inline-block;width:26px;height:9px;border-radius:2px;background:linear-gradient(90deg,var(--surface2),color-mix(in srgb,var(--hq) 40%,var(--surface2)));margin-right:4px;vertical-align:-1px}
.anl03-mx-list{display:none}
.anl03-ml{border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:var(--surface)}
.anl03-ml>summary{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;font-size:12.5px;list-style:none}
.anl03-ml>summary::-webkit-details-marker{display:none}
.anl03-ml>summary::before{content:"▸";color:var(--muted);font-size:10px}
.anl03-ml[open]>summary::before{content:"▾"}
.anl03-ml>summary>span{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.anl03-ml>summary>span b{color:var(--fg)}
.anl03-ml>summary>span b.bad{color:var(--alert)}
.anl03-ml-r{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 10px;border-top:1px solid var(--line);font-size:12px}
.anl03-ml-r[data-act]{cursor:pointer}
.anl03-ml-r .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.anl03-ml-r .nm small{color:var(--muted)}
.anl03-ml-r .bar{height:8px;border-radius:4px;background:var(--surface2);overflow:hidden}
.anl03-ml-r .bar i{display:block;height:100%;background:var(--hq);border-radius:4px}
.anl03-ml-r .v{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.anl03-ml-r .v small{display:inline;margin-left:4px}
.anl03-ml-more{padding:6px 10px;border-top:1px solid var(--line);font-size:11.5px;color:var(--hq);cursor:pointer;text-align:right}
/* 표로 보기 */
.anl03-tbl{margin-top:10px!important;padding:0}
.anl03-tbl>summary{padding:10px 14px;cursor:pointer;font-size:12.5px}
.anl03-tbl[open]>summary{border-bottom:1px solid var(--line)}
.anl03-tbl-f{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 14px 10px;font-size:11.5px}
.anl03-tbl-f .btn{margin-left:auto}
/* 조직 드로어 */
.anl03-dr{display:grid;gap:10px}
.anl03-dr .card{margin:0}
.anl03-dr .kpis.anl03-dk{grid-template-columns:repeat(5,minmax(0,1fr));margin:0}
.anl03-dr .kpi{min-width:0}
.anl03-dr .kpi b{font-size:18px}
table.t.anl03-clue td,table.t.anl03-clue th{padding:4px 10px}
@media (max-width:1100px){.anl03-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"e1" "e2" "e3" "e4"}.anl03-lg{margin-left:0;flex-basis:100%}}
/* 390px (설계 4.5): 세로 폭포 · 카드 1열 · 매트릭스 → 조직별 접힘 목록 · 사분면 라벨은 목록으로 · 순서 E1 → E2 → E4 → E3 · 드로어 전체 화면(app.css) */
@media (max-width:640px){
  .anl03-grid{grid-template-areas:"e1" "e2" "e4" "e3"}
  .anl03-wf-h{display:none}.anl03-wf-v{display:block}
  .anl03-cards{grid-template-columns:minmax(0,1fr)}
  .anl03-mx-wrap{display:none}.anl03-mx-list{display:block}
  .anl03-ql{display:none}.anl03-qlg{display:grid;gap:2px}
  .anl03-quad{max-width:100%}
  .anl03-tl{flex-wrap:wrap}
  .anl03-dr .kpis.anl03-dk{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
