:root{
  color-scheme:light dark;
  --font-sans:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --page-width:1280px;
  --bg:#f5f4f0; --panel:#fff; --panel-2:#faf9f6; --ink:#1b1d21; --ink-2:#4a4f57; --ink-3:#646b75;
  --line:#e3e1db; --line-2:#efede8; --accent:#b80d60; --accent-soft:#fce8f1; --on-accent:#fff;
  --sidebar-bg:#f7f3f9;
  --t1:#1f6f4a; --t1-soft:#e2f2ea; --t2:#8a5a00; --t2-soft:#fbf0d9; --t3:#6b6f76; --t3-soft:#eceef0;
  --neg:#b42318; --warn-bg:#fff4cc; --warn-ink:#7a5200; --good:#1f6f4a;
  --shadow:0 1px 2px rgba(20,20,20,.04),0 4px 16px rgba(20,20,20,.04);
  --dn:#1d5fb8;
  /* 회사 색 8개 — 프로젝트 안에서 고정 순서 */
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100; --s5:#e87ba4; --s6:#8c5a2b; --s7:#6250d6; --s8:#e34948;
  --good-ink:#0a7d0a; --warn-ink2:#a35f00; --info-ink:#52514e;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#121417; --panel:#1a1d21; --panel-2:#16191c; --ink:#eceae5; --ink-2:#b8bcc3; --ink-3:#9da4ae;
    --line:#2c3036; --line-2:#24282d; --accent:#ff8fbe; --accent-soft:#382032; --on-accent:#25101b;
    --sidebar-bg:#211b26;
    --t1:#6fd3a2; --t1-soft:#17302a; --t2:#f0c060; --t2-soft:#33291a; --t3:#a9adb4; --t3-soft:#26292e;
    --neg:#ff8a7a; --warn-bg:#3a3014; --warn-ink:#f3cf73; --good:#6fd3a2; --shadow:none;
    --dn:#7fb2e5;
    --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --s5:#d55181; --s6:#c29672; --s7:#9085e9; --s8:#e66767;
    --good-ink:#0ca30c; --warn-ink2:#fab219; --info-ink:#b8bcc3;
  }
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
.num,td.n,th.n,code,.tk,.kpi .v,input[inputmode="decimal"],input[type="number"],.ff-val,.ff-axis span,.st-tlab,.st-0,.st-max,.viz .tick{font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.muted{color:var(--ink-3);font-size:14px}

.top{border-bottom:1px solid var(--line);background:var(--panel)}
.top-inner{display:flex;align-items:flex-start;gap:16px;max-width:var(--page-width);margin:0 auto;padding:12px 24px}
.brand{display:inline-flex;align-items:center;flex-shrink:0;min-height:42px;font-weight:700;font-size:17px;text-decoration:none;gap:16px;flex-wrap:wrap;max-width:100%}
.brand-logo{display:block;width:124px;height:41px;object-fit:contain}

.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);min-width:0}
.card h2{font-size:15px;margin:0;padding:14px 16px 10px;font-weight:600;display:flex;gap:8px;align-items:baseline}
.card h2 .sub{color:var(--ink-3);font-weight:400;margin-left:auto;font-size:14px}
.btn{display:inline-block;border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:7px 12px;cursor:pointer;white-space:nowrap;text-decoration:none;font-size:15px}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.empty{padding:24px;text-align:center;color:var(--ink-3)}
.err{color:var(--neg);margin:0;font-size:15px}
code{font-size:14px;background:var(--panel-2);padding:0 4px;border-radius:3px}

/* home */
.home{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;padding:24px;max-width:var(--page-width);margin:0 auto;align-items:start}
.home .quick-search,.home .stats,.home .home-data{grid-column:1/-1}
.home .quick-search h1{overflow-wrap:anywhere;word-break:keep-all}
.home .hero-search{max-width:800px}
.home-search-help{margin:0 0 16px}
.home .manual-settings{border-top:1px solid var(--line);margin-top:16px}
.home .manual-settings>summary{padding:14px 0 0}
.home .manual-settings[open]>summary{padding-bottom:14px}
.home .manual-settings .form{padding:0}
.home-section-help{margin:0;padding:0 16px 12px;color:var(--ink-3);font-size:14px}
.home-paged-card.is-paginated{height:320px;display:flex;flex-direction:column}
.home-paged-card .home-section-help{min-height:42px}
.home-paged-card.is-paginated .home-card-pages{flex:1;min-height:0}
.home-paged-card.is-paginated .home-card-page{display:grid;grid-auto-rows:56px;padding-bottom:8px}
.home-paged-card.is-paginated .home-card-page li{min-width:0;min-height:0}
.home-paged-card .home-card-page li+li{border-top:1px solid var(--line)}
.home-paged-card.is-paginated .plist a{height:100%;display:flex;flex-direction:column;justify-content:center;gap:4px}
.home-paged-card.is-paginated .plist a.home-project-row{display:grid;grid-template-columns:minmax(0,1fr) 88px 60px;align-items:center;gap:12px}
.home-project-name{min-width:0}
.home .home-project-row .stage{justify-self:center;white-space:nowrap;font-size:12.5px}
.home .home-project-row .home-peer-count{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.home-paged-card.is-paginated .plist b,.home .home-item-meta{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 16px;padding:8px 0;border-top:1px solid var(--line)}
.home-pager .btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;background:transparent;font-size:24px;line-height:1}
.home-pager .btn:hover:not(:disabled){background:var(--accent-soft)}
.home-pager .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.home-pager [data-page-status]{min-width:42px;text-align:center;font-variant-numeric:tabular-nums}
.home .plist a{flex-wrap:wrap}
.home .plist b{min-width:0;overflow-wrap:anywhere}
.home .plist span{white-space:normal;overflow-wrap:anywhere}
.home .recent-searches .plist a{flex-direction:column;gap:4px}
.home .plist a:focus-visible,.home summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.home .stats .kpis{gap:0;padding:0 16px;margin-bottom:12px}
.home .stats .kpi{display:grid;grid-template-rows:auto auto 1fr;gap:4px;padding:12px 16px;background:transparent;border:0;border-radius:0}
.home .stats .kpi:first-child{padding-left:0}
.home .stats .kpi+.kpi{border-left:1px solid var(--line)}
.home .stats .kpi .v{font-size:24px}
.home .home-data{box-shadow:none}
.home .home-data .avail{padding:12px 16px}
.home .home-data p{margin-bottom:0;overflow-wrap:anywhere}
@media (max-width:900px){.home{grid-template-columns:1fr;padding:16px}}
@media (max-width:480px){
  .home-paged-card.is-paginated .plist a.home-project-row{grid-template-columns:minmax(0,1fr) 76px 48px;gap:6px}
  .home .hero-search .search-row{flex-direction:column}
  .home .manual-settings>summary span{display:block;margin:4px 0 0}
}
.form{display:grid;gap:12px;padding:0 16px 16px}
.form label{display:grid;gap:4px;font-size:14px;color:var(--ink-3)}
.form input,.form select,.form textarea{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:8px 10px;color:var(--ink);font-size:16px;min-width:0}
.avail{padding:0 16px 16px;font-size:14px;color:var(--ink-3)}
.avail summary{cursor:pointer}
.plist{list-style:none;margin:0;padding:0 8px 8px}
.plist a{display:flex;justify-content:space-between;gap:12px;padding:10px 8px;border-radius:8px;text-decoration:none}
.plist a:hover{background:var(--panel-2)}
.plist span{color:var(--ink-3);font-size:14px;white-space:nowrap}
.stats .kpis{padding:0 16px;grid-template-columns:repeat(3,minmax(0,1fr))}
.stats .muted{padding:0 16px 16px;margin:8px 0 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
[hidden]{display:none!important}
.quick-search{padding:28px 32px}
.quick-search h1{font-size:30px;letter-spacing:-.03em;margin:0 0 6px}
.search-intro{color:var(--ink-2);margin:0 0 20px}
.company-search{position:relative;min-width:0}
.company-search label{display:block;font-size:14px;color:var(--ink-2);margin-bottom:6px}
.search-row{display:flex;gap:8px;min-width:0}
.search-field{position:relative;flex:1;min-width:0}
.search-row input{display:block;flex:1;min-width:0;width:100%;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);padding:8px 12px}
.search-suggestions{display:none;position:absolute;top:calc(100% + 4px);left:0;width:100%;z-index:20}
.company-search:focus-within .search-field>input:not(:placeholder-shown)+.search-suggestions{display:block}
.search-suggestions ul{list-style:none;margin:0;padding:4px;max-height:min(320px,50vh);overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}
.search-suggestions a{display:grid;gap:2px;padding:10px 12px;border-radius:4px;text-decoration:none;word-break:keep-all;overflow-wrap:anywhere}
.search-suggestions a:hover,.search-suggestions a:focus-visible{background:var(--accent-soft)}
.search-suggestions strong{font-size:15px;font-weight:500}
.search-suggestions span{color:var(--ink-2);font-size:12.5px}
.hero-search .search-row input{font-size:20.5px;padding:13px 14px}
.hero-search .btn{padding:12px 22px}
.company-search input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.header-search{margin-left:auto;width:min(440px,50%)}
.header-search .search-status{overflow-wrap:anywhere}
.search-status{display:block;min-height:18px;margin-top:4px}
.header-search .search-status:empty{display:none}
.search-help{display:block;margin-top:6px;font-size:14px;color:var(--ink-2)}
.search-loading{font-size:14px;color:var(--ink-2)}
.search-hint{margin:12px 0 0}
.search-error{margin:8px 0}
.search-candidates{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px}
.search-candidates a{display:flex;gap:12px;flex-wrap:wrap;padding:8px 12px;background:var(--panel-2);border-radius:6px;text-decoration:none}
.search-candidates a:hover{background:var(--accent-soft)}
.search-candidates span{font-size:14px;color:var(--ink-2);overflow-wrap:anywhere}
.manual-settings>summary{cursor:pointer;padding:14px 16px;font-weight:600}
.manual-settings>summary span{font-weight:400;margin-left:8px}
.initial-auto p{margin:0 0 8px}
.initial-auto.htmx-request .initial-retry{display:none}
.notice.err{color:var(--neg);border-color:var(--neg)}
.notice.auto-progress{border-color:var(--accent);background:var(--accent-soft)}
.workspace-recovery{display:flex;flex-wrap:wrap;gap:4px 12px;padding:10px 24px 0;font-size:14px;color:var(--ink-2)}
.workspace-recovery a{color:var(--accent)}
.workspace-controls{border:0;padding:0;margin:0;min-width:0}
.workspace-controls:disabled .seg{display:none}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.65;cursor:not-allowed}
.htmx-request .btn:disabled{cursor:wait}
@media (max-width:900px){
  .top-inner{flex-wrap:wrap;gap:10px;padding:12px 16px}
  .brand{min-height:0}
  .header-search{width:100%;margin-left:0}
  .quick-search{padding:20px 16px}
  .quick-search h1{font-size:26.5px}
  .hero-search .search-row input{font-size:18.5px}
  .hero-search .btn{padding:10px 14px}
  .home .plist a{flex-wrap:wrap;gap:4px 12px}
  .home .plist b{overflow-wrap:anywhere}
  .home .plist span{white-space:normal}
  .home .stats .kpis{grid-template-columns:1fr}
  .home .stats .kpi{padding:12px 0}
  .home .stats .kpi+.kpi{border-left:0;border-top:1px solid var(--line)}
  .ws .notice{margin-left:16px;margin-right:16px}
  .workspace-recovery{padding-left:16px;padding-right:16px}
  .ws .meta-form{min-width:0}
}

/* project */
.projbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 24px 0;max-width:1480px;margin:0 auto}
.meta-form{display:flex;gap:10px;flex:1 1 640px;min-width:260px;flex-wrap:wrap}
.meta-form input{border:1px solid transparent;background:none;border-radius:6px;padding:4px 8px;min-width:0}
.meta-form input:hover,.meta-form input:focus{border-color:var(--line);background:var(--panel)}
.meta-form .pname{font-size:20.5px;font-weight:700;flex:0 1 320px}
.meta-form .ptarget{color:var(--ink-2);flex:1 1 300px}
.meta-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.meta-help{flex-basis:100%;margin:0;font-size:14px;color:var(--ink-2)}
.meta{display:flex;gap:16px;color:var(--ink-3);font-size:14px;align-items:center;flex-wrap:wrap}
.meta b{color:var(--ink-2);font-weight:500}
.wrap{display:flex;flex-direction:column;gap:12px;padding:12px 24px 16px;max-width:var(--page-width);margin:0 auto}
.wrap .mainpane{order:-1}
@media (max-width:900px){.wrap{grid-template-columns:1fr;padding:12px 16px 32px}.projbar{padding:12px 16px 0}}

.peers{list-style:none;margin:0;padding:0 8px 8px}
.peer{display:grid;grid-template-columns:auto 1fr auto auto;gap:2px 8px;padding:8px;border-radius:8px;align-items:center}
.peer:hover{background:var(--panel-2)}
.peer-panel>summary{padding:12px 16px;cursor:pointer;font-size:15px;color:var(--ink-2)}
.peer-panel .peers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.peer-guide{margin:0 16px 12px;font-size:15px;color:var(--ink-2)}
.peer-guide>summary{cursor:pointer}
.peer-guide p{margin:6px 0}
.peer.off .pname,.peer.off .why{opacity:.45}
.peer form{margin:0;display:flex}
.peer input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin:0}
.pname{font-weight:600;font-size:15px;min-width:0}
.pname .tk{font-family:var(--font-sans);color:var(--ink-3);font-weight:400;font-size:12.5px;margin-left:5px}
.why{grid-column:2/5;font-size:14px;color:var(--ink-3);line-height:1.4}
.rm button{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:17px;padding:0 2px;opacity:0;transition:opacity .15s}
.peer:hover .rm button,.rm button:focus{opacity:1}
.tier{font-size:12.5px;font-weight:600;padding:1px 7px;border-radius:999px;white-space:nowrap;border:0}
select.tier{cursor:pointer;appearance:none;padding:2px 8px}
.tier.t1{background:var(--t1-soft);color:var(--t1)}
.tier.t2{background:var(--t2-soft);color:var(--t2)}
.tier.t3,.tier.t0{background:var(--t3-soft);color:var(--t3)}
.pending{margin:0 16px 12px;padding:10px 12px;border:1px dashed var(--line);border-radius:8px;font-size:14px;color:var(--ink-2)}
.pending ul{margin:4px 0 0;padding-left:18px}
.addpeer{display:flex;gap:6px;padding:4px 16px 16px}
.addpeer input{flex:1;min-width:0;border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:7px 10px}
.addpeer .busy{align-self:center;font-size:14px;color:var(--ink-3)}
.busy{display:none}
.global-busy{position:fixed;right:16px;top:12px;z-index:1000;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow);font-size:14px;visibility:hidden;opacity:0;pointer-events:none;transition:visibility 0s,opacity 0s}
.global-busy.htmx-request{visibility:visible;opacity:1;transition-delay:150ms}
#ws-main{min-width:0;overflow-anchor:none}
.peer:has(.include-check[aria-checked="false"]){background:var(--panel-2)}
.peer-state:empty{display:none}
.ws:has(.peer-action.htmx-request) .peer-action{pointer-events:none}
.tierf .tier-apply{display:none}
.tierf:has(option:checked:not([selected])):not(.htmx-request) .tier-apply{display:inline-block}
.htmx-request .busy,.htmx-request.busy{display:inline}
.meta form{margin:0}
.notice{margin:12px max(24px,calc((100% - 1232px) / 2)) 0;padding:9px 14px;border:1px solid var(--line);border-radius:8px;font-size:15px;color:var(--ink-2);background:var(--panel)}

.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 8px;overflow-x:auto;scrollbar-width:none}
@media (max-width:700px){.tabs{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);padding-right:32px}}
.tabs [role="tab"]{padding:12px 14px;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-weight:500;text-decoration:none}
.tabs [aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.pane{padding:16px}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px;font-size:15px}
.toolbar label{display:flex;gap:6px;align-items:center;color:var(--ink-3)}
.toolbar input:not([type=checkbox]){border:1px solid var(--line);background:var(--panel-2);border-radius:5px;padding:4px 8px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.seg a{padding:6px 12px;color:var(--ink-2);border-right:1px solid var(--line);text-decoration:none}
.seg a:last-child{border-right:0}
.seg a[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.note{color:var(--ink-3);font-size:14px}

.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.kpis,.kpis.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{border:1px solid var(--line-2);background:var(--panel-2);border-radius:8px;padding:10px 12px;min-width:0}
.kpi .k{font-size:12.5px;color:var(--ink-3)}
.kpi .v{font-family:var(--font-sans);font-size:25.5px;font-weight:500;letter-spacing:-.02em}
.kpi .d{font-size:12.5px;color:var(--ink-3)}

.tbl-wrap{overflow-x:auto;border:1px solid var(--line-2);border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{padding:8px 10px;border-bottom:1px solid var(--line-2);text-align:left;white-space:nowrap}
th{font-size:12.5px;color:var(--ink-3);font-weight:500;background:var(--panel-2)}
td.n,th.n{text-align:right}
tr.off td{color:var(--ink-3)}
tr.off td:not(.name){text-decoration:line-through;text-decoration-color:var(--line)}
tr.agg td{background:var(--panel-2);font-weight:600}
tr.agg.first td{border-top:1px solid var(--line)}
td.name,th.name{position:sticky;left:0;background:var(--panel);z-index:1}
th.name,tr.agg td.name{background:var(--panel-2)}
td.hl{background:var(--accent-soft);font-weight:600}
.pos{color:var(--neg)} .neg{color:var(--dn)}
.zero{color:var(--ink-2)}
.flag{display:inline-block;font-size:11.5px;font-weight:700;padding:0 5px;border-radius:3px;background:var(--warn-bg);color:var(--warn-ink);margin-left:4px;cursor:help;font-family:var(--font-sans)}
td.out{background:var(--warn-bg)}
.cur{font-size:11.5px;color:var(--ink-3);margin-left:4px}
.foot{font-size:14px;color:var(--ink-3);margin-top:10px;display:grid;gap:3px}
.warnline{color:var(--warn-ink)}

.conclusion{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 14px;border-radius:0 8px 8px 0;margin-bottom:14px;font-size:15px}
.im td input:not([type=checkbox]){width:76px;text-align:right;border:1px solid var(--line);background:var(--panel-2);border-radius:5px;padding:4px 6px;font-family:var(--font-sans)}

.valuation-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.valuation-heading h2{margin:0;font-size:19.5px}
.valuation-help>summary{list-style:none;cursor:pointer;width:28px;height:28px;text-align:center;border:1px solid var(--line);border-radius:50%;color:var(--ink-2)}
.valuation-help>summary::-webkit-details-marker{display:none}
.valuation-help[open]{flex-basis:100%}
.valuation-help>div{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);font-size:14px}
.valuation-formula{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:20.7px;line-height:1.7;margin:14px 0 8px;overflow-wrap:anywhere}
.valuation-formula small{font-size:14px;color:var(--ink-2)}
.valuation-reference{margin:6px 0;font-size:17px;color:var(--ink-2)}
.valuation-alert{font-size:15px;color:var(--warn-ink);line-height:1.7;overflow-wrap:anywhere}
.valuation-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.valuation-bases p{margin:0}
.valuation-bases>.btn{justify-self:start}
.valuation-actions a{color:var(--accent);font-size:14px}
.valuation-status{color:var(--ink-2);font-size:13px}
.valuation-detail .name{white-space:normal;min-width:150px;max-width:300px}
.comparison-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:12px}
.comps-checks{display:block;border-top:1px solid var(--line);padding-top:8px}
.comps-checks>summary{cursor:pointer;padding:8px 0;color:var(--ink-2)}
.comps-check-body{padding:8px 0}
.comps-check-body ul{padding-left:20px;margin:6px 0 14px}
.comps-check-body li{margin:5px 0;overflow-wrap:anywhere}
.kpis.five{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:900px){.kpis.five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.kpis.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpis.seven{grid-template-columns:repeat(7,minmax(0,1fr))}
@media (max-width:1300px){.kpis.seven{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:700px){.kpis.seven{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Comps: 배수 카드가 곧 선택 버튼 — 고른 배수의 카드·표 열을 같은 색으로 */
a.kpi{display:block;color:inherit;text-decoration:none}
a.kpi:hover{border-color:var(--ink-3)}
.comps-kpis .kpi.sel{border-color:var(--accent);background:var(--accent-soft)}
.comps-kpis .kpi.sel .k,.comps-kpis .kpi.sel .v{color:var(--accent)}
.m-per .c-per,.m-pbr .c-pbr,.m-psr .c-psr,.m-ev_ebitda .c-ev_ebitda,.m-ev_ebit .c-ev_ebit,.m-per_norm .c-per_norm{background:var(--accent-soft);font-weight:600}
.m-per th.c-per,.m-pbr th.c-pbr,.m-psr th.c-psr,.m-ev_ebitda th.c-ev_ebitda,.m-ev_ebit th.c-ev_ebit,.m-per_norm th.c-per_norm{color:var(--accent)}
.comps-table td.out{background:var(--warn-bg)}  /* 이상치 노랑이 선택 열 색보다 앞선다 */
.m-only{display:none}
/* 폰 Comps — 표를 Peer 카드로: 1줄 사명·Tier, 고른 배수를 맨 앞에 크게, 배수 → 종가·주식가치·EV. 순차입금·재무 금액은 넓은 화면에서 */
@media (max-width:600px){
  .m-only{display:block}
  .comps-wrap{border:0;overflow:visible}
  .comps-table,.comps-table tbody,.comps-table caption{display:block}
  .comps-table thead,.comps-table td.c-nd,.comps-table td.c-amt,.comps-table td.pad,.comps-table tr.agg td:empty{display:none}
  .comps-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;padding:10px 12px;margin-bottom:8px;border:1px solid var(--line-2);border-radius:8px;background:var(--panel)}
  .comps-table tr.agg{background:var(--panel-2)}
  .comps-table tr.agg:not(:has(td:not(:empty))){display:none}
  .comps-table tr.off{opacity:.75}
  .comps-table th,.comps-table td,.comps-table tr.agg td{display:block;position:static;padding:0;border:0;background:none;white-space:normal;text-align:left;min-width:0;font-variant-numeric:tabular-nums}
  .comps-table th.name{grid-column:1/3;grid-row:1;font-size:15px;font-weight:600;color:var(--ink);background:none}
  .comps-table tr.agg th.name{grid-column:1/-1}
  .comps-table tr.agg.first th{border:0}
  .comps-table td.c-tier{grid-column:3;grid-row:1;justify-self:end}
  .comps-table td[data-label]::before{content:attr(data-label);display:block;font-size:11.5px;font-weight:400;color:var(--ink-3)}
  .comps-table td.c-px,.comps-table td.c-eq,.comps-table td.c-ev{order:1;font-size:14px}
  .comps-table td.out{background:var(--warn-bg);border-radius:6px;padding:0 4px}
  .m-per td.c-per,.m-pbr td.c-pbr,.m-psr td.c-psr,.m-ev_ebitda td.c-ev_ebitda,.m-ev_ebit td.c-ev_ebit,.m-per_norm td.c-per_norm{order:-1;padding:2px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:18px;font-weight:700}
  .comps-table td small{display:block;font-weight:400}
}
@media (max-width:600px){
  .valuation-input-grid{grid-template-columns:1fr}
  .valuation-formula{font-size:18.4px}
}
.basis{display:grid;grid-template-columns:1fr 100px;gap:6px}
.h3{font-size:14px;color:var(--ink-3);font-weight:500;margin:16px 0 6px}
.caveat{font-size:14px;color:var(--warn-ink);background:var(--warn-bg);padding:8px 12px;border-radius:6px;margin-top:12px}

.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;margin-top:8px;color:var(--ink-2)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.htmx-request .tbl-wrap{opacity:.6;transition:opacity .2s}

/* ---------- 대시보드 ---------- */
.wrap.wide{max-width:var(--page-width)}
@media (max-width:900px){
  .peer-panel .peers{grid-template-columns:1fr}
  .pane{padding:12px}
  .dcard{padding:12px}
  .ff-row{grid-template-columns:96px minmax(0,1fr) 96px;gap:6px}
  .ff-plot{left:calc(96px + 6px);right:calc(96px + 6px)}
  .barcol{min-width:150px} .ibar{width:80px}
}
.dash .toolbar{gap:8px}
.project-heading{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 16px;padding:16px 24px 0;max-width:var(--page-width);margin:auto;align-items:start}
.project-heading h1{font-size:23px;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere;margin:0}
.project-heading .sample-line{grid-column:1/-1;gap:4px 12px}
.project-heading .sample-line>span{flex-basis:auto}
.review-count{color:var(--warn-ink);font-weight:500}
.project-tools{font-size:15px;color:var(--ink-2)}
.project-tools>summary{cursor:pointer;padding:5px 8px;border:1px solid var(--line);border-radius:6px;white-space:nowrap}
.project-tools[open]{grid-column:1/-1}
.project-tool-body{display:grid;gap:14px;padding:12px;margin-top:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.project-tool-body .meta-form{flex-basis:auto}
.project-tool-body .meta-form input{border-color:var(--line);background:var(--panel-2)}
.project-tool-body .meta-actions{flex-wrap:wrap}
.project-tool-body .meta-form .pname,.project-tool-body .meta-form .ptarget{flex:1 1 260px}
.basis-note{font-size:17px;line-height:1.7;margin:12px 0;color:var(--ink-2)}
.dashboard-figure,.benchmark-section{margin:0 0 24px;min-width:0}
.dashboard-figure>h3,.benchmark-section>h3,.comparison-detail>h3{margin:0 0 12px;font-size:17px}
.detail-link{color:var(--accent);font-size:15px}
.strip .st-values{font-size:15px;line-height:1.7;color:var(--ink-2);white-space:normal;margin:14px 0 0}
.compact-bench .name{white-space:normal;max-width:300px;overflow-wrap:anywhere}
.compact-bench .tier,.compact-bench .chip{display:inline-block}
.compact-bench tr.agg th{background:var(--panel-2)}
.compact-bench tr.tgt th{background:var(--accent-soft)}
.compact-bench .position-cell{min-width:180px;width:22%;white-space:normal}
.compact-bench th.position-cell{text-align:center}
.position-cell .pos{position:relative;height:16px;margin:6px 8px}
.position-cell .pos::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}
.pos-iqr{position:absolute;top:2px;height:12px;background:var(--ink-3);opacity:.16}
.pos-med{position:absolute;top:0;height:16px;border-left:1px solid var(--ink-2)}
.pos-dot,.pos-tgt{position:absolute;top:50%;width:9px;height:9px;transform:translate(-50%,-50%);border-radius:50%;background:var(--c);border:1px solid var(--panel)}
.pos-dot.off{background:var(--panel);border:2px solid var(--c)}
.pos-tgt{background:var(--accent);border-radius:1px;transform:translate(-50%,-50%) rotate(45deg)}
.pos-axis{position:relative;height:22px;margin:0 8px;font-size:12.5px;color:var(--ink-2)}
.pos-axis span{position:absolute;white-space:nowrap;transform:translateX(-50%)}
.pos-axis span:first-child{transform:none}
.pos-axis span:last-child{transform:translateX(-100%)}
.position-axis-label{font-size:12.5px;font-weight:400;color:var(--ink-2);text-align:right;white-space:normal}
.position-legend{margin:8px 0}
.viz .leader{stroke:var(--ink-3);stroke-width:1}
.excluded-peers,.additional-checks,.data-memos,.target-editor{margin:12px 0;font-size:15px}
.excluded-peers>summary,.additional-checks>summary,.data-memos>summary,.target-editor>summary{padding:8px 0;cursor:pointer;color:var(--ink-2)}
.additional-checks li,.data-memos li{margin:8px 0;line-height:1.7;overflow-wrap:anywhere}
.target-editor{border-top:1px solid var(--line);padding-top:8px}
.target-editor .tform{padding:8px 0}
.target-editor .trow{grid-template-columns:minmax(0,420px)}
.target-editor .btn{justify-self:start}
.audit-load{display:grid;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.audit-src,.audit-msg{margin:0;font-size:14px;color:var(--ink-2);overflow-wrap:anywhere}
.audit-confirm{display:grid;gap:8px}
.audit-diff td,.audit-diff th{padding:4px 10px}
.dashboard-disclaimer{font-size:14px;line-height:1.7;color:var(--ink-2);margin:16px 0 0}
.dashboard-disclaimer a{color:var(--accent)}
.comparison-detail{margin-top:24px}
.analysis-context{font-size:15px}
.ws>.workspace-controls>.analysis-context{max-width:1280px;margin:0 auto 16px;padding:0 24px}
.ws .report-panel{max-width:1232px;margin:0 auto 24px}
@media (max-width:900px){
  .project-heading{padding:12px 16px 0;gap:6px 10px}
  .project-heading h1{font-size:20.5px}
  .project-heading .sample-line{font-size:14px}
  .dash .toolbar .seg{max-width:100%;flex-wrap:wrap}
  .dash .seg a{padding:6px 10px}
  .ws>.workspace-controls>.analysis-context{padding:0 16px}
  .ws .report-panel{margin:0 16px 20px}
}
@media (max-width:600px){
  .compact-bench,.compact-bench tbody,.compact-bench caption{display:block}
  .compact-bench thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .compact-bench tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line);padding:10px 6px;gap:6px 12px}
  .compact-bench th.name{position:static;grid-column:1/-1;max-width:none;padding:4px;font-size:16px}
  .compact-bench th,.compact-bench td{border:0}
  .compact-bench td.n{display:flex;align-items:baseline;justify-content:space-between;gap:4px;padding:2px 4px;white-space:normal;font-size:15px;flex-wrap:wrap}
  .compact-bench td::before{content:attr(data-label);font-family:var(--font-sans);font-size:14px;color:var(--ink-2);font-weight:400}
  .compact-bench tr.tgt,.compact-bench tr.agg{background:var(--panel-2)}
  .compact-bench td.position-cell{grid-column:1/-1;order:2;width:auto;min-width:0;padding:4px}
  .compact-bench td.position-cell:empty{display:none}
  .compact-bench tfoot{display:block}
  .compact-bench .position-axis-row{display:block;border-bottom:0}
  .compact-bench .position-axis-row .position-cell{display:block}
  .compact-bench .position-axis-label{display:block;text-align:left;padding:4px}
  .compact-bench .position-padding{display:none}
}
.dhead{display:flex;justify-content:space-between;gap:16px;margin:4px 0 12px}
.dname{font-size:23px;font-weight:700;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ddesc{color:var(--ink-2);font-size:15px;margin-top:2px}
.chip{font-size:12.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}
.kpi.hi{border-color:var(--ink-3)}
.kpi .v.sm{font-size:20.5px;line-height:1.6}
.kpi .d b{font-weight:600}
.dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dcard{border:1px solid var(--line-2);border-radius:10px;padding:14px 16px;min-width:0;background:var(--panel)}
.dcard.span2{grid-column:1/-1}
@media (max-width:1100px){.dgrid{grid-template-columns:1fr}}
.dcard h3{font-size:15px;font-weight:600;margin:0 0 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dcard h3 .sub{font-weight:400;color:var(--ink-3);font-size:14px}
.dcard .muted{margin:8px 0 0}
.seg.mini{margin-left:auto;font-weight:400}
.seg.mini a{padding:3px 10px;font-size:14px}

.insights{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ins{display:grid;grid-template-columns:22px 1fr;gap:6px;font-size:15px;line-height:1.55;color:var(--ink)}
.ins .ico{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;margin-top:2px}
.ins.risk .ico{background:var(--panel-2);color:var(--neg);border:1px solid var(--neg)}
.ins.warn .ico{background:var(--warn-bg);color:var(--warn-ink)}
.ins.info .ico{background:var(--line-2);color:var(--info-ink)}

/* 공통 범례 기호 */
.vlegend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:var(--ink-2);margin-bottom:10px;align-items:center}
.vlegend span{display:inline-flex;align-items:center;gap:5px}
.vlegend i{display:inline-block}
.lg-bar{width:18px;height:8px;border-radius:4px;background:var(--s1);opacity:.55}
.lg-iqr{width:18px;height:8px;border-radius:4px;background:var(--accent-soft);border:1px solid var(--line)}
.lg-mid{width:2px;height:12px;background:var(--ink)}
.lg-im{width:9px;height:9px;border-radius:50%;border:2px solid var(--ink-2)}
.lg-ref{width:2px;height:12px;background:var(--s2)}
.lg-dot{width:9px;height:9px;border-radius:50%;background:var(--s1)}
.lg-dot.off{background:var(--panel);border:1.5px solid var(--ink-3)}
.lg-tgt{width:9px;height:9px;background:var(--ink);transform:rotate(45deg)}

/* 풋볼필드 */
.ff-body{position:relative}
.ff-plot{position:absolute;left:calc(clamp(110px,28%,230px) + 8px);right:calc(118px + 8px);top:0;bottom:22px;pointer-events:none}
.ff-row{display:grid;grid-template-columns:clamp(110px,28%,230px) minmax(0,1fr) 118px;gap:8px;align-items:center;min-height:42px}
.ff-label{font-size:14px;color:var(--ink);line-height:1.3}
.ff-label small{display:block;color:var(--ink-3);font-size:12.5px}
.ff-track{position:relative;height:30px;border-bottom:1px solid var(--line-2)}
.ff-bar{position:absolute;top:9px;height:12px;border-radius:4px;background:color-mix(in srgb,var(--s1) 55%,transparent)}
.ff-mid{position:absolute;top:7px;width:2px;height:16px;margin-left:-1px;background:var(--ink);border-radius:1px}
.ff-row.sel{background:var(--accent-soft);box-shadow:-6px 0 0 var(--accent-soft),6px 0 0 var(--accent-soft)}
.ff-row.sel .ff-label{font-weight:600;color:var(--accent)}
.ff-row.sel .ff-bar{background:var(--accent)}
.ff-im{position:absolute;top:10px;width:10px;height:10px;margin-left:-5px;border-radius:50%;border:2px solid var(--ink-2);background:var(--panel)}
.ff-val{position:absolute;top:-10px;transform:translateX(-50%);font-size:12.5px;font-family:var(--font-sans);color:var(--ink-2);white-space:nowrap}
.ff-range{font-size:12.5px;color:var(--ink-3);text-align:right;line-height:1.3}
.ff-ref{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--s2)}
.ff-ref span{position:absolute;top:0;left:5px;font-size:12.5px;color:var(--ink-2);white-space:nowrap;background:var(--panel);padding:0 2px}
.ff-body{padding-top:16px}
.ff-axisrow{min-height:22px}
.ff-axis{position:relative;height:18px}
.ff-axis span{position:absolute;transform:translateX(-50%);font-size:12.5px;color:var(--ink-3);font-family:var(--font-sans);white-space:nowrap}

/* 배수 위치 */
.strip{display:grid;gap:4px}
.st-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:4px 10px;align-items:center;padding:6px 6px 2px;border-radius:8px}
.st-row.sel{background:var(--panel-2)}
.st-label{font-size:14px;color:var(--ink-2);display:grid}
.st-label b{font-size:17px;color:var(--ink);font-weight:500}
.st-track{position:relative;height:34px;border-bottom:1px solid var(--line)}
.st-iqr{position:absolute;top:10px;height:14px;background:var(--accent-soft);border-radius:4px}
.st-med{position:absolute;top:5px;width:2px;height:24px;margin-left:-1px;background:var(--ink)}
.st-im{position:absolute;top:12px;width:10px;height:10px;margin-left:-5px;border:2px solid var(--ink-2);border-radius:50%;background:var(--panel)}
.st-dot{position:absolute;top:12px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--panel);cursor:help}
.st-dot::after{content:"";position:absolute;inset:-7px}
.st-dot.off{background:var(--panel);box-shadow:inset 0 0 0 1.5px var(--ink-3)}
.st-tgt{position:absolute;top:11px;width:11px;height:11px;margin-left:-5.5px;background:var(--ink);transform:rotate(45deg);box-shadow:0 0 0 2px var(--panel);z-index:2;cursor:help}
.st-tlab{position:absolute;top:-8px;transform:translateX(-50%);font-size:12.5px;font-weight:600;font-family:var(--font-sans)}
.st-0,.st-max{position:absolute;top:36px;font-size:11.5px;color:var(--ink-3);font-family:var(--font-sans)}
.st-0{left:0}.st-max{right:0}
.st-ext{grid-column:2;font-size:12.5px;color:var(--ink-3);text-align:center;margin-top:2px}

/* SVG (산점도·주가) */
.viz{width:100%;height:auto;display:block;overflow:visible}
.viz .grid{stroke:var(--line-2);stroke-width:1}
.viz .axis{stroke:var(--line);stroke-width:1}
.viz .ref{stroke:var(--ink-3);stroke-width:1}
.viz .tick{fill:var(--ink-3);font-size:12.5px;font-family:var(--font-sans)}
.viz .axlab{fill:var(--ink-2);font-size:14px}
.viz .hit{fill:transparent}
.viz .dot{fill:var(--c);stroke:var(--panel);stroke-width:2}
.viz .dot.off{fill:var(--panel);stroke:var(--ink-3);stroke-width:1.5}
.viz .tgt{fill:var(--ink);stroke:var(--panel);stroke-width:2}
.viz .plab{fill:var(--ink-2);font-size:14px}
.viz .tgtlab{fill:var(--ink);font-weight:700}
.viz .offlab{fill:var(--ink-3)}
.viz .line{fill:none;stroke:var(--c);stroke-width:1.6;stroke-linejoin:round}
.viz .tline{stroke-width:2.8}
.viz .pt:hover .dot{stroke:var(--ink)}
.legend i.tg{height:4px;width:16px;border-radius:2px;vertical-align:3px}

/* 표 */
table.cmp td,table.cmp th{padding:6px 8px}
table.cmp tr.sel td{background:var(--panel-2);font-weight:600}
table.cmp small{color:var(--ink-3);font-size:11.5px}
.bench .sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:0}
.bench tr.tgt td{background:var(--accent-soft)}
.bench tr.tgt td.name{background:var(--accent-soft)}
.bench .chip{margin-left:4px}
.bench .tier{margin-left:4px}
.barcol{min-width:180px}
.barcol .num{font-size:14px;margin-left:8px}
.ibar{position:relative;display:inline-block;width:110px;height:10px;vertical-align:middle;background:var(--line-2);border-radius:3px}
.ibar i{position:absolute;left:0;top:0;bottom:0;background:var(--c);border-radius:3px;opacity:.8}
.ibar s{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink)}
.bench tr.off .ibar i{opacity:.25}

/* 대상 입력 */
.dcard details summary{list-style:none;cursor:pointer}
.dcard details summary::-webkit-details-marker{display:none}
.dcard details summary h3::before{content:"▸";color:var(--ink-3);font-size:12.5px}
.dcard details[open] summary h3::before{content:"▾"}
.tform{display:grid;gap:10px}
.trow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:700px){.trow{grid-template-columns:1fr}}
.trow label{display:grid;gap:4px;font-size:14px;color:var(--ink-3)}
.tform input{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:7px 9px;min-width:0;color:var(--ink)}
.tform input:disabled{opacity:.45}
.tfin input{width:96px;text-align:right;font-family:var(--font-sans);padding:4px 6px}
@media (max-width:600px){  /* SVG 글자는 viewBox 따라 줄어든다 — 폰에서 키움 */
  .viz .tick{font-size:19.5px} .viz .plab,.viz .axlab{font-size:20.5px}
}

/* ---------- Peer 찾기 ---------- */
.find-workbench{padding:16px}
.find-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.find-heading h3{margin-bottom:0}
.find-ranker{margin:6px 0;font-size:12.5px;color:var(--ink-3);overflow-wrap:anywhere}
.find details>summary{list-style:disclosure-closed inside;cursor:pointer}
.find details[open]>summary{list-style-type:disclosure-open}
.find details>summary::-webkit-details-marker{display:revert}
.find .find-help>summary{list-style:none;border:1px solid var(--line);border-radius:50%;width:28px;height:28px;text-align:center;color:var(--ink-2)}
.find-help[open]{flex-basis:100%}
.find-help>div{margin:10px 0;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;font-size:14px;color:var(--ink-2)}
.find-help p{margin:0 0 8px}
.find-help a,.find-source a,.find-evidence a{color:var(--accent)}
.find-profile{margin:8px 0 12px;font-size:14px;color:var(--ink-2)}
.find-profile>p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.find-source{margin-top:4px}
.find-source p{white-space:pre-wrap;overflow-wrap:anywhere}
.find-review-table{margin-top:12px;table-layout:fixed}
.find-review-table th,.find-review-table td{padding:10px 8px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.find-review-table thead th:nth-child(1){width:17%}
.find-review-table thead th:nth-child(2){width:27%}
.find-review-table thead th:nth-child(3){width:19%}
.find-review-table thead th:nth-child(4){width:31%}
.find-review-table thead th:nth-child(5){width:6%;text-align:center}
.find-company strong{font-size:15px}
.find-company small{margin-top:4px}
.find-facts{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:14px;line-height:1.6}
.find-facts>span+span::before{content:"· ";color:var(--ink-3)}
.find-evidence{margin-top:6px;font-size:12.5px;color:var(--ink-2)}
.find-evidence p{margin:6px 0;font-size:14px}
.find-caution{font-size:14px;color:var(--warn-ink)}
.find-caution p{margin:0 0 4px}
.find .judge-compact{display:block;margin:0;padding:0;border:0;background:none}
.find .judge-compact .judge-options{gap:0}
.judge-compact .judge-options .btn{padding:5px 7px;min-height:34px;font-size:14px;border-radius:0;margin-right:-1px}
.judge-compact .judge-options .btn:first-child{border-radius:5px 0 0 5px}
.judge-compact .judge-options .btn:nth-child(4){border-radius:0 5px 5px 0}
.judge-compact .judge-options .judge-clear{margin-left:6px;border-radius:5px;border-color:transparent;background:none;color:var(--ink-3)}
.find-inclusion{text-align:center}
.find-inclusion form{margin:0}
.include-check{display:inline-grid;place-items:center;min-width:36px;min-height:36px;border:0;background:none;padding:6px;cursor:pointer}
.include-check>span{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--ink-3);border-radius:4px;font-size:14px;line-height:1}
.include-check[aria-checked="true"]>span{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
.find-search>summary,.find-memo>summary{font-size:15px;font-weight:600}
.find-search>summary .muted{font-weight:400;margin-left:8px}
.find-query{margin:14px 0;font-size:14px;color:var(--ink-2)}
.find-query .findq{margin-top:10px}
.find-query-preview{font-size:14px;color:var(--ink-2);overflow-wrap:anywhere}
.find-memo-body{margin-top:16px}
@media (max-width:1100px){
  .find-review-table,.find-review-table tbody{display:block}
  .find-review-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .find-review-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--line);border-radius:8px;margin:0 0 10px;padding:10px}
  .find-review-table th,.find-review-table td{display:block;border:0;padding:4px 0;background:none;min-width:0}
  .find-review-table .find-company{grid-column:1;grid-row:1}
  .find-review-table .find-inclusion{grid-column:2;grid-row:1}
  .find-inclusion::before{content:"포함";display:block;font-size:12.5px;color:var(--ink-3)}
  .find-reason,.find-caution,.find-decision{grid-column:1/-1}
  .find-review-table td[data-label]::before{content:attr(data-label);display:block;font-size:12.5px;color:var(--ink-3);margin-bottom:4px}
  .find-review-table td.find-reason::before{display:none}
  .find-review-table .find-caution.is-empty{display:none}
}
@media (max-width:600px){
  .find-workbench{padding:12px}
  .find-workbench>.dcard{padding:12px}
  .find-profile>p{white-space:normal}
  .judge-compact .judge-options .btn{min-height:38px}
}
.findq{display:grid;gap:8px}
.findq textarea{width:100%;border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:9px 11px;font:inherit;font-size:15px;resize:vertical}
.findq .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn.mini{padding:3px 10px;font-size:14px}
table.hits td,table.memo-t td{vertical-align:top}
table.hits .tk,table.memo-t .tk{display:block;font-size:12.5px;color:var(--ink-3);font-weight:400}
table.hits td.desc{white-space:normal;min-width:260px;max-width:460px;color:var(--ink-2);font-size:14px;line-height:1.5}
table.hits .ind{display:block;color:var(--ink-3);font-size:12.5px}
table.hits .ind.same{color:var(--accent);font-weight:600}
table.hits td.sim{min-width:120px}
table.hits td.sim .ibar{width:90px;display:inline-block}
table.hits td.kw{white-space:normal;font-size:14px;color:var(--ink-2);max-width:200px}
table.hits tr.have td{background:var(--panel-2)}
table.hits form,table.memo-t form{margin:0}
.memo .lede{margin:0 0 8px;font-size:15px;line-height:1.6;color:var(--ink)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.tag{font-size:12.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2)}
.tag.em{border-style:dashed}
.warnchip{background:var(--warn-bg);color:var(--warn-ink)}
.negchip{background:transparent;color:var(--neg);border:1px solid var(--neg)}
.home .login{grid-column:1/-1;max-width:420px;width:100%;margin:40px auto 0}
table.memo-t td.why{white-space:normal;min-width:320px;max-width:620px;font-size:14px;line-height:1.55;color:var(--ink)}
table.memo-t .ev{color:var(--ink-3);margin-top:3px}
table.memo-t .ev a{color:var(--accent)}
.miss{color:var(--warn-ink);font-weight:600}
.pname .auto{white-space:nowrap;margin-left:6px;font-size:11.5px;font-weight:600;padding:0 6px;border-radius:999px;border:1px dashed var(--accent);color:var(--accent);vertical-align:1px}
.autonote{margin:0 16px 8px;font-size:14px;color:var(--ink-2);line-height:1.5}
.autonote a{color:var(--accent)}
.autoform{padding:0 16px 16px}
.autoform .btn{width:100%}

/* 검토 기준과 보고 */
.analysis-context{max-width:1480px;margin:16px auto 0;padding:0 24px}
.sample-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;font-size:15px}
.sample-line b{font-size:18.5px}
.sample-line a{color:var(--accent)}
.state-list{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;padding:0;margin:10px 0;font-size:14px;color:var(--ink-2)}
.state-list li{flex:1 1 260px}
.state-label{margin:0 5px;border:1px solid var(--line);border-radius:4px;padding:1px 4px}
.next-action{padding:10px 12px;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:4px}
.data-details>summary,.report-panel summary,.candidate-review>summary,.peer-review>summary{cursor:pointer;color:var(--ink-2)}
.date-list{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:14px}
.date-list dt{font-weight:600}.date-list dd{margin:4px 0 0}
.coverage-list{display:grid;gap:8px;padding-left:18px;font-size:14px}
.coverage-list span{display:block;color:var(--ink-2)}
.summary-card{margin-bottom:16px;background:var(--panel-2)}
.summary-group+.summary-group{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.summary-group h3{margin-bottom:6px}
.summary-group p{margin:0}
.sample-detail{display:block;line-height:1.6;overflow-wrap:anywhere}
.amount small{display:block;font-family:inherit;font-size:12.5px;font-weight:400;color:var(--ink-2);letter-spacing:normal}
.kpi .v.amount{font-size:22px;line-height:1.6;overflow-wrap:anywhere}
.range-separator{display:block;font-size:14px}
.range-caption{font-size:15px;color:var(--ink);line-height:1.6}
.chart-scroll{overflow-x:auto;padding:16px 12px 20px;max-width:100%}
.chart-scroll>.ff{min-width:720px}
.chart-scroll>.strip{min-width:620px}
@media (max-width:600px){.chart-scroll>.viz{min-width:640px}}  /* 넓은 화면은 칸에 맞춰 줄인다 — 2열 안에서 잘리지 않게 */
.ff-range{white-space:nowrap;color:var(--ink-2)}
.ff-label{overflow-wrap:anywhere}
.report-panel{max-width:1432px;margin:0 24px 24px;padding:14px 16px;font-size:15px}
.report-panel form{margin:12px 0}
.report-list{list-style:none;padding:0;display:grid;gap:10px}
.report-list li{display:flex;flex-wrap:wrap;gap:6px 14px}
.report-list a,.evidence a,.candidate-review>a{color:var(--accent)}
.peer-state,.hold-reason,.peer-review{grid-column:1/-1;font-size:14px;min-width:0}
.peer-state{color:var(--ink-2);padding-top:6px}
.hold-reason{margin:4px 0;padding:6px;background:var(--warn-bg);color:var(--warn-ink)}
.peer-review{border-top:1px solid var(--line-2);padding-top:6px}
.peer .reason-form,.peer .review-form{display:grid;gap:6px;margin:8px 0}
.reason-form label{display:grid;gap:4px}
.reason-form textarea{width:100%;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:6px;resize:vertical}
.evidence p{margin:5px 0;color:var(--ink-2);overflow-wrap:anywhere}
.peer.off .why,.peer.off .pname{opacity:1}
.peer.off{background:var(--panel-2)}
.peer .rm{grid-column:4;grid-row:1}
.candidate-review{border-top:1px solid var(--line);padding:10px 0;font-size:15px}
.business-judge,.peer .business-judge{display:grid;gap:8px;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);min-width:0}
.judge-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:15px}
.judge-current{color:var(--ink-2);font-size:14px}
.judge-options{display:flex;flex-wrap:wrap;gap:6px}
.judge-options .btn[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}
.judge-help{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2);white-space:normal}
.judge-retry,.business-state a{color:var(--accent);font-size:14px}
tr.off td.business-state{color:var(--ink-2);text-decoration:none}
.candidate-identity{flex-basis:100%}
.discount-fields{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.discount-fields label{display:grid;gap:4px;font-size:14px;color:var(--ink-2)}
.discount-fields p{margin:0}
.im>.btn{margin-top:12px}
caption{caption-side:top;text-align:left;padding:10px 12px;background:var(--panel-2);font-size:14px;color:var(--ink-2);white-space:normal;line-height:1.6}
td small,th small{display:block;font-size:12.5px;font-weight:400;color:var(--ink-2)}
tbody th{color:var(--ink);background:var(--panel);font-size:15px;text-align:left}
.band-table th:first-child,.band-table td:not(.n){white-space:normal;min-width:160px;max-width:280px}
.foot [id]{scroll-margin-top:20px}
.foot [id]:target,.peer-review:target,.business-judge:target{outline:2px solid var(--accent);outline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.viz .pt-off .dot{fill:var(--panel);stroke:var(--ink-3)}
.viz .pt-tgt .tgt{fill:var(--ink)}
@media (max-width:900px){
  .analysis-context{padding:0 16px}
  .sample-line{gap:4px 8px}
  .sample-line>span{flex-basis:100%}
  .state-list{display:grid;gap:6px}
  .report-panel{margin:0 16px 20px}
  .chart-scroll{padding-left:4px;padding-right:4px}
}
@media (max-width:480px){
  .dash>.kpis{grid-template-columns:1fr}
  .kpi .v.amount{font-size:23px}
  .meta-actions{width:100%}
}

/* 웹 리서치 */
.web .web-form{margin-bottom:16px}
.web .web-ask{display:grid;gap:4px;font-size:14px;color:var(--ink-3);margin-bottom:8px}
.web textarea,.web select{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:8px 10px;color:var(--ink);font-size:16px;min-width:0;width:100%;font-family:inherit}
.web .toolbar label{flex:0 1 auto;min-width:0;max-width:100%}
.web select{width:auto;max-width:100%;min-width:0;flex:1 1 auto}
.web-policy{margin:4px 0 0}
.web-status{margin:0 0 12px}
.web-job{margin-bottom:16px}
.web-job h4{font-size:14px;margin:14px 0 6px}
.web-md{line-height:1.65;max-width:90ch;overflow-wrap:anywhere}
.web-md>:first-child{margin-top:0}
.web-md h1{font-size:18px;margin:14px 0 8px}.web-md h2{font-size:16px;margin:18px 0 6px}.web-md h3,.web-md h4{font-size:15px;margin:14px 0 4px}
.web-md ul,.web-md ol{padding-left:1.3em}
.web-md table{display:block;overflow-x:auto;border-collapse:collapse;font-size:14px;margin:8px 0}
.web-md th,.web-md td{border:1px solid var(--line);padding:4px 8px;vertical-align:top}
.web-md blockquote{margin:8px 0;padding-left:12px;border-left:3px solid var(--line);color:var(--ink-2)}
.web-md hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.web-md a{font-size:.85em}
.web-q{margin:0 0 8px}
.web-facts{display:flex;flex-wrap:wrap;gap:4px 18px;margin:8px 0;font-size:14px}
.web-facts div{display:flex;gap:6px}.web-facts dt{color:var(--ink-3)}.web-facts dd{margin:0}
.web-t{margin-top:10px}
.web-t .name .tk{display:block;color:var(--ink-3);font-size:13px;font-weight:400}
.web-t .chk-conflict td{background:var(--warn-bg);color:var(--warn-ink)}
.web-t .chk-match td:nth-child(5){color:var(--good)}
.web-events{padding-left:18px;margin:0}.web-events li{margin-bottom:4px}
.web-report{margin-top:12px}.web-report summary{cursor:pointer;color:var(--ink-2)}
.web-job details>summary::before{content:"▸ ";color:var(--ink-3)}
.web-job details[open]>summary::before{content:"▾ "}
.web-retry{margin-top:10px;gap:8px}.web-retry form{margin:0}
.web-cites{margin-top:10px;font-size:14px}.web-cites ol{margin:6px 0;padding-left:22px;overflow-wrap:anywhere}
.web-src{font-size:13px;white-space:nowrap}

/* 밸류에이션 워크벤치 — 왼쪽 결과·계산, 오른쪽 가정 */
.valuation-workbench{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto 1fr;grid-template-areas:"main editor" "details editor";gap:0 28px;align-items:start}
.val-main{grid-area:main;min-width:0}
.val-details{grid-area:details;min-width:0;margin-top:8px}
.valuation-editor{grid-area:editor;position:sticky;top:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:14px 16px}
.valuation-editor h3{margin:0 0 10px;font-size:14px;letter-spacing:.02em;color:var(--ink-2);text-transform:uppercase}
.valuation-editor .form{display:grid;gap:10px;padding:0}
.valuation-editor label{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 6px;font-size:12.5px;color:var(--ink-2)}
.valuation-editor label>input,.valuation-editor label>select{flex-basis:100%;min-width:0}
.valuation-editor label small,.valuation-editor .hint small{color:var(--ink-3);font-size:12px}
.valuation-editor input,.valuation-editor select{height:32px;padding:4px 8px;font-size:14px;background:var(--panel);font-variant-numeric:tabular-nums}
.valuation-editor .hint{margin:-4px 0 0;font-size:12px;color:var(--ink-3);overflow-wrap:anywhere}
.valuation-editor .basis{grid-template-columns:minmax(0,1fr) 96px}
.valuation-editor .discount-fields{gap:10px;padding-top:10px}
.valuation-editor .discount-fields label{font-size:12.5px}
.valuation-bases{display:grid;gap:6px}
.valuation-bases .hint{margin:0;font-size:12.5px;color:var(--ink-2)}
.btn.sm{padding:3px 10px;font-size:13px;justify-self:start}
.valuation-actions{display:flex;gap:8px}
.valuation-actions .btn{flex:1}
.valuation-inline{margin:0;font-size:12.5px;color:var(--ink-3)}
.val-edit-link{font-size:12.5px;color:var(--accent)}
.valuation-status{font-size:12px;color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.valuation-status.preview{color:var(--warn-ink);border-color:var(--warn-ink);background:var(--warn-bg)}
.val-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0}
.val-kpi{border:1px solid var(--line-2);border-radius:8px;padding:10px 14px;background:var(--panel);min-width:0}
.val-kpi .k{font-size:12.5px;color:var(--ink-3)}
.val-kpi .v{font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.3}
/* 상승여력·IRR은 잉크색 — 빨강·파랑은 주가 방향, 빨강·주황은 경고에만 */
.val-kpi .d,.val-kpi .valuation-range{font-size:12.5px;color:var(--ink-3);margin:2px 0 0;line-height:1.5}
.val-kpi.main{border-color:var(--accent);background:var(--accent-soft)}
.val-kpi.main .v{color:var(--accent)}
.val-kpi .how{margin-left:4px;padding:0 5px;border-radius:4px;background:var(--panel);color:var(--ink-3);font-size:11.5px}
.val-kpi.valuation-scenario{border-style:dashed}
.val-bridge{width:100%;max-width:560px;border-collapse:collapse;font-variant-numeric:tabular-nums;margin:4px 0 6px}
.val-bridge th,.val-bridge td{padding:7px 0;border-bottom:1px solid var(--line-2);font-size:15px;font-weight:400;text-align:left}
.val-bridge td.n{text-align:right}
.val-bridge th small{color:var(--ink-3);font-size:12.5px;margin-left:6px}
.val-bridge tr.sub th,.val-bridge tr.sub td{font-weight:600;border-bottom-color:var(--line)}
.val-bridge tr.total th,.val-bridge tr.total td{font-weight:700;font-size:16px;border-top:2px solid var(--ink-2);border-bottom:0}
.valuation-context,.valuation-range{font-size:12.5px;color:var(--ink-3);margin:6px 0}
.valuation-formula:not(.sr-only){font-size:17px;margin:14px 0 4px}
.val-details .valuation-detail{border-top:1px solid var(--line);min-width:0}
.val-details .valuation-detail>summary,.valuation-values>summary{padding:11px 0;cursor:pointer;font-size:14px;color:var(--ink-2)}
@media (max-width:1100px){
  .valuation-workbench{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"main" "details" "editor"}  /* 좁은 화면: 결과·패널 먼저, 가정 폼은 아래 */
  .valuation-editor{position:static}
}

/* 주가 탭 — TradingView Lightweight Charts (static/pxchart.js) */
.px-legend{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:12px 0 6px;padding:0;font-size:13px;color:var(--ink-2)}
.px-legend li{display:flex;align-items:center;gap:6px}
.px-legend li.tgt{font-weight:700;color:var(--ink)}
.px-legend i{width:12px;height:3px;border-radius:2px;display:inline-block}
.px-legend li.tgt i{height:4px}
.px-legend b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.px-chart{position:relative;height:420px;margin-bottom:16px}
.px-chart[data-done]{overflow:hidden}
.px-chart:not([data-done]){height:auto;overflow-x:auto}
@media (max-width:600px){.px-chart{height:300px}}

/* 프로젝트 제목 줄 — 단계·담당·마감 */
.project-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.project-title h1{margin:0}
.stage{font-size:12.5px;font-weight:600;padding:2px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
.stage-review{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.stage-ic{background:var(--warn-bg);color:var(--warn-ink);border-color:transparent}
.stage-done{color:var(--good);border-color:var(--good)}
.stage-hold{color:var(--ink-3)}
.pmeta{font-size:13px;color:var(--ink-3)}
.pm-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pm-row label{display:grid;gap:3px;font-size:12.5px;color:var(--ink-2)}
@media (max-width:600px){.pm-row{grid-template-columns:1fr}}

/* 대시보드 = 종합 보고서: 세 줄 요약 → 번호 섹션 */
.summary3{margin:4px 0 22px;padding:16px 20px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;background:var(--panel)}
.summary3 .sec-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:8px}
.summary3 h2{margin:0;font-size:14px;font-weight:700;color:var(--ink-2);letter-spacing:.02em}
.summary3 .src{font-size:12px;color:var(--ink-3)}
.summary3 .warnchip{margin-left:auto;text-decoration:none}
.summary3 ol{margin:0;padding-left:1.4em;display:grid;gap:6px}
.summary3 li{font-size:16.5px;line-height:1.6;word-break:keep-all;font-variant-numeric:tabular-nums}
.summary3 li::marker{color:var(--ink-3);font-size:14px}
.summary3 .topic{display:inline-block;min-width:2.6em;margin-right:8px;color:var(--ink-3);font-size:13.5px;font-weight:600}
.summary3>.btn{margin-top:12px}
.report{display:grid;gap:0}
.rsec{padding:18px 0;border-top:1px solid var(--line);min-width:0}
.rsec h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}
.rsec h3 .no{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--panel);font-size:12px;font-weight:700}
.rsec h4{margin:12px 0 6px;font-size:13px;color:var(--ink-2)}
.rsec .val-kpis{max-width:760px;margin-top:0}
.report-facts{margin:10px 0 0;padding-left:1.2em;font-size:14px;color:var(--ink-2);line-height:1.7}
.flags{margin:12px 0}#report-flags .flags{margin:0}#report-flags .flags-head h4{display:none}
.flags-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.flags-head h4{margin:0;font-size:14px}
.flag-sum{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.flag-chip{font-size:12.5px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2)}
.flag-chip.red{color:var(--neg);border-color:var(--neg)}.flag-chip.amber{background:var(--warn-bg);color:var(--warn-ink);border-color:transparent}
.flag-list{list-style:none;margin:0;padding:0;font-size:14px;line-height:1.6}
.rflag{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;padding:6px 0;border-top:1px solid var(--line)}
.flag-lv{font-size:12.5px;font-weight:700;text-align:center;border-radius:4px;padding:1px 0;align-self:start}
.rflag.red .flag-lv{background:var(--neg);color:var(--panel)}.rflag.amber .flag-lv{background:var(--warn-bg);color:var(--warn-ink)}
.rflag.na .flag-lv,.rflag.ok .flag-lv{border:1px solid var(--line);color:var(--ink-3)}
.flag-src summary,.flag-ok summary{cursor:pointer;color:var(--ink-2);font-size:13px}
.flag-src ul,.flag-ok ul{margin:4px 0;padding-left:1.2em;font-size:13px;overflow-wrap:anywhere}
.flag-note{font-size:13px;margin:8px 0 0}
.data-checks ul{margin:0;padding-left:1.2em;font-size:14px;color:var(--warn-ink);line-height:1.7}
.note-block .md{font-size:15px;line-height:1.75;max-width:80ch;overflow-wrap:anywhere}
.note-block .md>:first-child{margin-top:0}
.note-block .md ul,.note-block .md ol{padding-left:1.3em}
.note-block .md table{border-collapse:collapse}
.note-block .md th,.note-block .md td{border:1px solid var(--line);padding:4px 8px}
.empty-note{margin:0;color:var(--ink-3)}
.note-edit>summary{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--accent);cursor:pointer;list-style:none}
.note-edit>summary::-webkit-details-marker{display:none}
.note-edit[open]>summary{color:var(--ink-3)}
.note-edit form{display:grid;gap:8px;margin-top:8px;max-width:80ch}
.note-edit textarea{width:100%;min-height:120px;font:inherit;font-size:14px;line-height:1.6;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.note-actions{display:flex;align-items:center;gap:10px;font-size:12px}
.summary3 .note-block{margin-top:4px}
.stage-group{display:flex;align-items:center;gap:6px;margin:14px 0 4px;font-size:13px}
.stage-group .sub{color:var(--ink-3);font-weight:400}

/* 보고서 오른쪽 뉴스 */
.report-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 28px;align-items:start}
.report-main{min-width:0}
.news-panel{position:sticky;top:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:14px 16px;max-height:calc(100vh - 24px);overflow:auto}
.news-head{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.news-head h3{margin:0;font-size:14px;color:var(--ink-2)}
.news-head .sub{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere}
.news-list{list-style:none;margin:0;padding:0;display:grid}
.news-list li{padding:9px 0;border-top:1px solid var(--line-2);display:grid;gap:3px}
.news-list li:first-child{border-top:0;padding-top:0}
.news-list a{color:var(--ink);text-decoration:none;font-size:14px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.news-list a:hover{color:var(--accent);text-decoration:underline}
.news-list span{font-size:12px;color:var(--ink-3)}
.news-err{font-size:12.5px}
@media (max-width:1100px){.report-grid{grid-template-columns:minmax(0,1fr)}.news-panel{position:static;max-height:none;margin-top:16px}}

/* 교차 검증 — 적정 PBR · DCF */
.cross-checks section{margin:10px 0 18px}
.cross-checks h4{margin:14px 0 6px;font-size:14px}
.cross-facts{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 8px;font-size:13.5px;color:var(--ink-2)}
.cross-facts b{color:var(--ink);font-variant-numeric:tabular-nums}
.cross-table tr.peer-r th,.cross-table tr.peer-r td{background:var(--accent-soft)}
.cross-table td.near{font-weight:700;color:var(--accent)}
.cross-peers{margin-top:8px;font-size:13.5px}

/* 거래 사례 — DART 양수결정 */
.deals-table td.date{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.deals-table td.biz{min-width:14em;max-width:24em;white-space:normal;font-size:13px;color:var(--ink-2)}
.deals-table th.name{min-width:8em;max-width:12em;white-space:normal}

/* 그림 읽는 법을 글자로 — 풋볼필드 한 줄 결론, 배수 위치 범례·중앙값 대비 */
.chart-read{margin:4px 0 12px;padding:10px 12px;border-left:3px solid var(--s2);background:var(--panel-2,var(--accent-soft));color:var(--ink);font-size:14.5px;line-height:1.5}
.ff-label small span{color:var(--ink-3)}
.ff-range b{display:block;color:var(--ink);font-weight:600}
.ff-range small{display:block}
.pos-legend{margin:2px 0 8px}
.lg-band{width:18px;height:10px;background:var(--ink-3);opacity:.3}
td.n small.why{display:block;font-size:12px;color:var(--ink-3)}

/* 수익률 — 밸류에이션 탭 맨 위 */
.returns-head b{color:var(--ink)}.returns-head .muted{font-size:13px;margin-left:6px}
.returns .saved{color:var(--good)}
.returns-kpis{margin:12px 0}
.returns-grid td small{display:block;color:var(--ink-3);font-size:12px;font-weight:400}
.returns-grid td.low{color:var(--ink-3)}
.returns-grid td.floor{text-decoration:underline;text-underline-offset:3px}
.returns-grid td.hl{outline:2px solid var(--accent);outline-offset:-2px;font-weight:700}
.returns-grid tr.base th,.returns-grid th.base{font-weight:700}
.returns-form,.capm-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 12px;margin:12px 0}
.returns-form label,.capm-form label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--ink-2);min-width:0}
.returns-form label small,.capm-form label small{color:var(--ink-3);font-size:12px}
.returns-form label.check{flex-direction:row;align-items:center;gap:6px;align-self:end;min-height:32px}
.returns-form input:not([type=checkbox]),.capm-form input{height:32px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--ink);font-size:16px;min-width:0}
.returns-note{font-size:13px;margin:8px 0 0}
.comps-table td small.eq-note{display:block;color:var(--ink-3);font-size:12px;font-weight:400}
.position-table td.side-up,.position-table td.side-down{font-weight:600}
.position .note{font-size:13px;margin:8px 0 0}
.dil-table tr.itm td,.dil-table tr.itm th{font-weight:700}.dil-table td small,.dil-table th small{display:block;color:var(--ink-3);font-size:12px;font-weight:400}
.dilution summary b.down{color:var(--warn-ink2)}
.returns-bridge{margin:4px 0 14px}
.returns-bridge h4{margin:0 0 6px;font-size:15px}.returns-bridge h4 .muted{font-weight:400;font-size:13px;margin-left:6px}
.returns-bridge ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.returns-bridge li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(60px,1fr) auto;gap:10px;align-items:center}
.returns-bridge .bl{font-size:14px;min-width:0}.returns-bridge small{display:block;color:var(--ink-3);font-size:12px}
.returns-bridge .bar{height:10px;background:var(--panel-2);border-radius:5px;overflow:hidden}
.returns-bridge .bar i{display:block;height:100%;background:var(--accent)}.returns-bridge li.down .bar i{background:var(--ink-3)}
.returns-bridge .bv{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.returns-bridge .note{font-size:13px;margin:6px 0 0}
@media (max-width:600px){.returns-bridge li{grid-template-columns:minmax(0,1fr) auto}.returns-bridge .bar{grid-column:1/-1;grid-row:2}}
/* 폰 IRR 표 — 기준 칸 ±1칸만 (성장률 ±5%p, 보유 ±1년). 칸 글자도 줄여 390 폭에 가로 스크롤 없이 */
@media (max-width:600px){
  .returns-grid .far{display:none}
  .returns-grid th,.returns-grid td{padding:6px 6px;font-size:14px}
  .returns-grid th.name{white-space:normal;min-width:0;width:34%}
  .returns-grid th.name small{display:block}
  .returns-grid caption .m-only{display:block;margin-top:2px}
}
.ipo-ref summary{cursor:pointer;color:var(--ink-2);font-size:14px}

/* 결론 띠 — 대시보드 맨 위, 저장된 평가 가정 기준 */
.concl-band{margin:0 0 16px}
.concl-tiles{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}
.ct{padding:12px 16px;min-width:0;border-left:1px solid var(--line-2)}
.ct:first-child{border-left:0}
.ct .k{font-size:12.5px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
.ct .k span{color:var(--ink-2)}
.ct .v{font-size:26px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.3;color:var(--ink)}
.ct .v small{font-size:17px;font-weight:600;color:var(--ink-2);margin-left:4px}
.ct .d{font-size:13px;color:var(--ink-2);line-height:1.45;font-variant-numeric:tabular-nums}
.ct.main{background:var(--accent-soft)}.ct.main .v{color:var(--accent)}
.ct .v.rng{font-size:22px;letter-spacing:-.03em}  /* 신호가 엇갈려 범위로 보일 때 — 한 줄에 들어가게 */
.ct .d .why{display:block;color:var(--warn-ink)}
.concl-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.concl-chips:empty{display:none}
.cchip{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border-radius:999px;font-size:13px;text-decoration:none;border:1px solid var(--line);color:var(--ink-2);background:var(--panel)}
.cchip.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:transparent}
.cchip.red{color:var(--neg);border-color:var(--neg)}
.cchip:hover{text-decoration:underline}
@media (max-width:900px){.concl-tiles{grid-template-columns:1fr 1fr}.ct:nth-child(3){border-left:0}.ct:nth-child(n+3){border-top:1px solid var(--line-2)}}
@media (max-width:600px){.ct{padding:10px 12px}.ct .v{font-size:21px}.ct .v small{font-size:14px}}

/* Comps — 사명 열 고정, 판정은 사명 아래 작은 줄 */
.comps-table th.name{position:sticky;left:0;z-index:1}
tr.agg.first th{border-top:1px solid var(--line)}
.comps-table th.name small{display:block;font-weight:400;font-size:12px;color:var(--ink-3)}
.comps-table th.name small a{color:var(--ink-2)}
.comps-table .flag{font-size:11.5px;margin-left:6px}
.im-cmp thead th{white-space:normal;min-width:4.5em}
.im-cmp td.n input{width:5.5em}
/* 넓은 표는 스크롤바를 늘 보이게 — macOS 겹침 스크롤바는 숨어서 잘린 줄 모른다 */
.tbl-wrap::-webkit-scrollbar{height:10px}
.tbl-wrap::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px;border:2px solid var(--panel)}
.tbl-wrap::-webkit-scrollbar-track{background:var(--panel-2)}
.im-cmp tr.agg td{white-space:normal;min-width:7em}
.val-details .valuation-detail>summary b{color:var(--ink);font-variant-numeric:tabular-nums}
.val-details .valuation-detail>summary .warnline{font-weight:600}

/* 대시보드 ② 보기 배수 — 결론 띠와 무관한 보기 조절이라 섹션 머리에 */
.rsec h3 .view-m{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:400}
.rsec h3 .view-m small{color:var(--ink-3);font-size:12px}
@media (max-width:700px){.rsec h3{flex-wrap:wrap}.rsec h3 .view-m{margin-left:0;width:100%;flex-wrap:wrap}}
/* 비어 있는 메모 섹션은 한 줄로 */
.rsec.empty{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;padding:12px 0}
.rsec.empty h3{margin:0;font-size:15px;color:var(--ink-2)}
.rsec.empty .note-block{display:contents}
.rsec.empty .empty-note{margin:0;color:var(--ink-3)}
.rsec.empty .note-edit{flex-basis:auto}
.rsec.empty .note-edit[open]{flex-basis:100%}
.head-xlsx{white-space:nowrap;align-self:start}
.sample-line .asof{color:var(--ink-3);font-size:14px;font-variant-numeric:tabular-nums}
@media (max-width:600px){.head-xlsx{display:none}}
/* 풋볼필드 — 휴대폰은 이름·범위 한 줄, 막대는 그 아래 전폭 (가로 스크롤 없이 모든 방법이 보이게) */
@media (max-width:600px){
  .chart-scroll>.ff{min-width:0}
  .ff-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label range" "track track";gap:2px 8px;padding-top:4px}
  .ff-row>.ff-label{grid-area:label}.ff-row>.ff-track{grid-area:track}.ff-row>.ff-range{grid-area:range}
  .ff-row>.ff-label,.ff-row>.ff-range{position:relative;z-index:1;background:var(--panel)}  /* 현재가 세로선이 글자를 가로지르지 않게 */
  .ff-row.sel>.ff-label,.ff-row.sel>.ff-range{background:var(--accent-soft)}
  .ff-axis span:first-child{transform:none}
  .ff-axisrow{grid-template-areas:"track track"}.ff-axisrow>div:first-child,.ff-axisrow>div:last-child{display:none}.ff-axisrow>.ff-axis{grid-area:track}
  .ff-plot{left:0;right:0}
  .ff-ref span{top:auto;bottom:-2px}
}
.position-table tbody.quality tr.group th{font-size:12.5px;color:var(--ink-3);font-weight:600;padding-top:12px;background:var(--panel-2)}
.position-table th.name small{display:block;font-weight:400;font-size:12px;color:var(--ink-3)}
.cross-dcf details.capm{margin:6px 0 10px;font-size:13.5px}
.cross-dcf details.capm>summary{cursor:pointer;color:var(--ink-2)}
.cross-dcf details.capm>summary b{color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:600px){.val-kpis:not(.returns-kpis){grid-template-columns:1fr 1fr}.val-kpis:not(.returns-kpis) .val-kpi.main{grid-column:1/-1}
  .val-kpis:not(.returns-kpis) .val-kpi:not(.main) .v{font-size:21px}}
.capm-form{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-width:640px}
.capm-form button[name=reset]{align-self:end;height:32px}
.im-tie-line{margin:8px 0 0;padding-left:18px;line-height:1.7}
.im-tie-line small{color:var(--ink-2)}
.im-tie-off{margin-top:6px}
table.im-tie{margin-top:18px}
.plan{margin-top:26px;border-top:1px solid var(--line);padding-top:16px}
.plan h3{margin:0 0 6px;font-size:16px}
.plan-form .plan-base{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);margin:6px 0 8px}
.plan-form .plan-base input{width:72px;height:30px;padding:2px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--ink);font-size:15px}
.plan-table input{width:84px;height:30px;padding:2px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--ink);font-size:15px;text-align:right}
.plan-table th.plan-y{color:var(--accent)}
.plan-table tr.sub td,.plan-table tr.sub th{color:var(--ink-2);font-size:12.5px}
.growth-rows{margin:12px 0 6px;padding-left:18px;line-height:1.75;font-size:14px}
.growth-rows .g-assumed{font-weight:600}
.growth-check{margin:10px 0;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--panel-2);font-size:13.5px}
.growth-check .growth-line{margin:0;line-height:1.7}
.growth-check .note{margin:6px 0 0}

/* 키워드 검색 */
.top-link{align-self:center;flex-shrink:0;margin-left:auto;font-size:14px;color:var(--ink-2)}
.top-link + .header-search{margin-left:0}
.home-new.home-keyword{margin-top:-20px}
.kw-entry{margin:12px 0 0;font-size:15px}
.kw{display:block;max-width:960px}
.kw-head{padding:24px 28px}
.kw-head h1{font-size:26px;letter-spacing:-.03em;margin:0 0 12px}
.kw-head .search-row input{font-size:18px;padding:11px 13px}
.kw-examples{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;font-size:15px}
.kw-note{margin:10px 0 0}
.kw-summary{margin:20px 0 4px;font-size:15px;color:var(--ink-2)}
.kw-group{margin-top:16px}
.kw-group > h2{font-size:17px;margin:0 0 8px;font-weight:600}
.kw-group > h2 .sub,.kw-group > summary .sub{color:var(--ink-3);font-weight:400;font-size:14px}
.kw-group > summary{cursor:pointer;font-size:17px;font-weight:600;padding:6px 0}
.kw-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.kw-card{padding:14px 16px}
.kw-top{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.kw-name{font-size:17px;font-weight:700}
.kw-cap{margin-left:auto;font-size:14px;color:var(--ink-2);white-space:nowrap}
.kw-tag{font-size:12.5px;padding:1px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink-2)}
.kw-biz{margin:2px 0 0;font-size:14px;color:var(--ink-2)}
.kw-quotes{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:15px}
.kw-quotes li{padding-left:10px;border-left:2px solid var(--line);overflow-wrap:anywhere}
.kw-quotes mark{background:var(--warn-bg);color:inherit;font-weight:600;padding:0 1px}
.kw-sec{display:block;font-size:12.5px;color:var(--ink-3)}
.kw-src{margin:8px 0 0;font-size:13.5px}
.kw-more{margin:8px 0 0}
