/* ===================================================================
   에스원 MI 플랫폼 — Design System v2
   브랜드바 + 수평탭 + 서브탭 3단 고정 레이아웃
   =================================================================== */

:root {
  /* ── poc_v3.html 팔레트 정확 반영 (PANTONE 286C 계열) ── */
  --brand:#0033A0; --brand-dark:#001B4D; --brand-2:#0071CE;
  --s1-soft:#EAF1FB; --s1-line:#D7E2F4;
  --bg:#F4F7FC; --surface:#FFFFFF;
  --border:#E6EAF1; --line:#EFF2F7;                 /* poc --line / --line-soft */
  --ink:#14213D; --ink-2:#39435A; --ink-3:#7A8598; --ink-4:#9AA4B4;
  --success:#127A45; --success-bg:#E4F3EA;
  --warning:#8A5A00; --warning-bg:#FBF0D9;
  --error:#E4002B;   --error-bg:#FDEBEE;
  --info:#0033A0;    --info-bg:#EAF1FB;
  --neutral:#7A8598; --neutral-bg:#EFF2F7;
  --violet:#5B46B0;  --violet-soft:#EEEAFA;
  --r:6px;
  --sh:0 1px 2px rgba(16,34,74,.045);
  --sh-h:0 2px 7px rgba(16,34,74,.08);
  --font:'Pretendard','Malgun Gothic','맑은 고딕','Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;
  /* 별칭 — app.js/index.html 인라인 스타일 참조명을 위 팔레트에 매핑 */
  --muted:var(--ink-3); --muted2:var(--ink-4); --text:var(--ink-2);
  --panel:var(--surface); --line-soft:var(--line); --s1:var(--brand); --s1-deep:var(--brand-dark); --s1-2:var(--brand-2);
  --blue:var(--brand-2); --red:var(--error); --red-soft:var(--error-bg);
  --green:var(--success); --green-soft:var(--success-bg); --amber:var(--warning); --amber-soft:var(--warning-bg);
  --danger:var(--error); --danger-soft:var(--error-bg);
  --surface2:var(--line); --shadow:var(--sh); --shadow-h:var(--sh-h);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.company-link{color:var(--blue);font-weight:700;cursor:pointer}
.company-link:hover{text-decoration:underline}
svg{display:block}
.hide{display:none!important}

/* ===== 로그인 화면 ===== */
.login-screen{
  position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--brand) 0%,var(--brand-dark) 100%);padding:20px;
}
.login-card{
  width:100%;max-width:360px;background:var(--surface);border-radius:14px;
  box-shadow:0 20px 50px rgba(0,20,60,.35);padding:32px 30px;display:flex;flex-direction:column;
}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.login-mark{
  flex:none;width:38px;height:38px;border-radius:9px;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;
}
.login-title{font-weight:800;font-size:16px;color:var(--ink)}
.login-sub{font-size:12px;color:var(--ink-3);margin-top:2px}
.login-label{font-size:12px;font-weight:700;color:var(--ink-2);margin:14px 0 6px}
.login-input{
  border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--ink);
}
.login-input:focus{outline:none;border-color:var(--brand)}
.login-error{font-size:12px;color:var(--error);margin-top:12px}
.login-success{font-size:12px;color:var(--success);margin-top:12px}
.login-link{margin-top:14px;font-size:12px;color:var(--ink-3);text-align:center;cursor:pointer}
.login-link b{color:var(--brand)}
.login-link:hover{color:var(--brand)}
.login-submit{
  margin-top:20px;background:var(--brand);color:#fff;border:none;border-radius:8px;
  padding:12px;font-weight:800;font-size:14px;
}
.login-submit:hover{background:var(--brand-dark)}
.login-footer{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);text-align:center;font-size:11.5px;color:var(--ink-4)}

/* ===== 상단 바 (poc_v3 .top 반영) ===== */
.top{
  height:60px;background:var(--surface);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:16px;padding:0 22px;
  position:sticky;top:0;z-index:40;box-shadow:0 1px 0 rgba(16,34,74,.02);
}
.brand{display:flex;align-items:baseline;gap:9px}
.brand .mark{font-weight:800;font-size:20px;letter-spacing:-.5px;color:var(--brand)}
.brand .mark em{font-style:normal;color:var(--error)}
.brand .pipe{width:1px;height:18px;background:var(--border);align-self:center}
.brand .name{font-size:14px;font-weight:700;color:var(--ink)}
.brand .slogan{font-size:11.5px;color:var(--ink-4)}
.top .grow{flex:1}
.nav-toggle{display:none;width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:8px;flex-direction:column;justify-content:center;gap:4px}
.nav-toggle span{display:block;width:16px;height:2px;border-radius:2px;background:var(--ink-2)}
.waffle{display:none} /* poc_v3 참고 반영 후 미사용 */
.bname{display:none}
.bsearch{
  max-width:320px;
  background:var(--bg);border:1px solid var(--border);
  border-radius:20px;height:34px;display:flex;align-items:center;gap:8px;padding:0 13px;
}
.bsearch input{border:0;background:none;outline:none;color:var(--ink);font-family:inherit;font-size:12.5px;width:100%}
.bsearch input::placeholder{color:var(--ink-4)}
.bsearch svg{color:var(--ink-4);flex-shrink:0}
.bright{display:contents}
.icbtn{position:relative;color:var(--ink-3);cursor:pointer;display:flex;opacity:.95}
.icbtn em{
  position:absolute;top:-5px;right:-6px;
  background:var(--error);color:#fff;font-style:normal;
  font-size:9px;font-weight:800;border-radius:999px;padding:1px 4px;line-height:1.3;
}
.brand-user{display:flex;align-items:center;gap:10px}
.brand-av{
  width:31px;height:31px;border-radius:50%;
  background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;
}
.brand-info{display:flex;flex-direction:column;line-height:1.2}
.brand-info .b-name{font-size:12.5px;font-weight:800;color:var(--ink)}
.brand-info .b-role{font-size:10.5px;color:var(--ink-4);font-weight:700}
.brand-logout,.logout{
  border:1px solid var(--border);background:var(--surface);
  color:var(--ink-3);border-radius:8px;padding:6px 11px;
  font-size:12px;font-weight:700;white-space:nowrap;font-family:inherit;cursor:pointer;
}
.brand-logout:hover,.logout:hover{border-color:var(--brand);color:var(--brand);background:var(--info-bg)}

/* 사용자 화면 미리보기 토글 버튼 (헤더) */
.preview-toggle-btn{display:flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--surface);color:var(--ink-3);border-radius:8px;padding:6px 11px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.preview-toggle-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--info-bg)}

/* 미리보기 모드 배너 */
.preview-exit-banner{position:fixed;bottom:22px;right:22px;z-index:500;background:var(--brand);color:#fff;border-radius:99px;padding:8px 16px;font-size:12.5px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 4px 18px rgba(0,51,160,.45);animation:pveIn .2s ease}
@keyframes pveIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.preview-exit-x{opacity:.75;font-weight:600}
.preview-exit-banner:hover .preview-exit-x{opacity:1}

/* ===== MI 업무영역 내비게이션 ===== */
.wrap{display:flex;align-items:flex-start;min-height:calc(100vh - 60px)}
aside{
  width:244px;flex-shrink:0;background:var(--surface);color:var(--ink-2);
  border-right:1px solid var(--s1-line);padding:18px 12px 14px;
  position:sticky;top:60px;height:calc(100vh - 60px);overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  transition:width .18s ease,padding .18s ease;
}
.content-outer{flex:1;min-width:0;width:0}
.sidebar-upper,.sidebar-lower{min-width:0}
.sidebar-intro{padding:2px 10px 17px;border-bottom:1px solid var(--border);margin-bottom:14px}
.sidebar-intro strong{display:block;color:var(--brand);font-size:10px;font-weight:850;letter-spacing:.11em}
.sidebar-section-label{padding:0 10px 7px;color:var(--ink-4);font-size:10px;font-weight:800;letter-spacing:.04em}
.sidebar-nav{display:flex;flex-direction:column;gap:3px}
.sidebar-nav-group{min-width:0}
.mi{
  display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:7px 10px;border:0;border-radius:4px;
  background:transparent;cursor:pointer;color:var(--ink-2);font:inherit;font-size:13px;font-weight:650;text-align:left;
  transition:background .12s,color .12s;position:relative;
}
.mi:hover{background:#f4f7fc;color:var(--brand)}
.mi:focus-visible{outline:2px solid rgba(0,51,160,.32);outline-offset:1px}
.mi.on{background:#edf3fb;color:var(--brand);font-weight:800}
.mi.on::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:var(--brand)}
.mi-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--ink-3);flex:none}
.mi-icon svg{width:16px;height:16px}
.mi:hover .mi-icon,.mi.on .mi-icon{color:var(--brand)}
.mi-label{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi .cnt{margin-left:auto;min-width:23px;padding:2px 6px;border-radius:10px;background:#d92743;color:#fff;font-size:10px;font-weight:800;text-align:center}
.sidebar-group-trigger{padding-right:8px}
.sidebar-group-arrow{margin-left:auto;color:var(--ink-4);font-size:16px;line-height:1;transition:transform .15s}
.sidebar-nav-group.open .sidebar-group-arrow{transform:rotate(90deg);color:var(--brand)}
.sidebar-child-list{display:none;flex-direction:column;gap:1px;margin:2px 0 7px 20px;padding:3px 0 3px 12px;border-left:1px solid var(--s1-line)}
.sidebar-nav-group.open .sidebar-child-list{display:flex}
.mi.sidebar-child{min-height:31px;padding:5px 8px;border-radius:3px;color:var(--ink-3);font-size:12px;font-weight:600}
/* 최신 수집분이 있는 메뉴 표식. 건수 대신 한 글자만 둬 메뉴 폭을 늘리지 않는다. */
.sidebar-new{flex:none;margin-left:auto;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--brand);color:#fff;font-size:9.5px;font-weight:800;line-height:15px;text-align:center;letter-spacing:.02em}
.sidebar-collapsed .sidebar-new{display:none}
.mi.sidebar-child:hover{background:#f4f7fc;color:var(--brand)}
.mi.sidebar-child.on{background:transparent;color:var(--brand);font-weight:800}
.mi.sidebar-child.on::before{left:-13px;top:7px;bottom:7px;width:2px;background:var(--brand)}
.mi.sidebar-child .cnt{margin-left:auto;min-width:21px;padding:1px 5px;font-size:9px}
.sidebar-lower{padding-top:16px;border-top:1px solid var(--border)}
.sidebar-collapse{
  display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:8px 10px;border:0;border-radius:4px;
  background:transparent;color:var(--ink-4);font-size:11.5px;font-weight:650;text-align:left;
}
.sidebar-collapse:hover{background:#f4f7fc;color:var(--brand)}
.sidebar-collapse svg{width:16px;height:16px;flex:none}
body.sidebar-collapsed aside{width:72px;padding-left:10px;padding-right:10px}
body.sidebar-collapsed .sidebar-intro,
body.sidebar-collapsed .sidebar-section-label,
body.sidebar-collapsed .mi-label,
body.sidebar-collapsed .sidebar-group-arrow,
body.sidebar-collapsed .sidebar-collapse span{display:none}
body.sidebar-collapsed .mi,body.sidebar-collapsed .sidebar-collapse{justify-content:center;padding-left:8px;padding-right:8px}
body.sidebar-collapsed .sidebar-child-list{display:none!important}
body.sidebar-collapsed .mi .cnt{position:absolute;right:1px;top:2px;min-width:17px;padding:1px 4px;font-size:8px}
body.sidebar-collapsed .mi.on::before{left:-2px}

/* ===== 콘텐츠 영역 ===== */
.main{width:100%;padding:26px 28px 40px;max-width:1240px;margin:0 auto}

.analysis-integrated-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.analysis-integrated-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.analysis-integrated-head>div>span{display:block;color:var(--brand);font-size:9.5px;font-weight:850;letter-spacing:.13em}
.analysis-integrated-head h2{margin:4px 0 0;color:var(--ink);font-size:18px;letter-spacing:-.2px}
.analysis-integrated-head p{margin-top:4px;color:var(--ink-3);font-size:12.5px;line-height:1.5}

/* 모바일: 정보 탐색은 유지하고, 좌측 메뉴는 필요할 때만 연다. */
@media (max-width: 860px){
  .top{height:56px;padding:0 14px;gap:10px}
  .nav-toggle{display:flex}
  .brand .slogan,.brand-info,.logout{display:none}
  .brand{gap:7px}
  .brand .mark{font-size:18px}
  .bsearch{max-width:none;flex:1}
  .wrap{min-height:calc(100vh - 56px)}
  aside{position:fixed;z-index:60;top:56px;left:0;height:calc(100vh - 56px);width:min(290px,86vw);transform:translateX(-105%);transition:transform .18s ease;box-shadow:var(--sh-h)}
  body.sidebar-collapsed aside{width:min(290px,86vw);padding:18px 12px 14px}
  body.sidebar-collapsed .sidebar-intro{display:block}
  body.sidebar-collapsed .sidebar-section-label{display:block}
  body.sidebar-collapsed .mi-label,body.sidebar-collapsed .sidebar-collapse span{display:block}
  body.sidebar-collapsed .sidebar-group-arrow{display:block}
  body.sidebar-collapsed .mi,body.sidebar-collapsed .sidebar-collapse{justify-content:flex-start;padding-left:10px;padding-right:10px}
  body.sidebar-collapsed .mi .cnt{position:static;min-width:23px;padding:2px 6px;font-size:10px}
  body.sidebar-collapsed .sidebar-nav-group.open .sidebar-child-list{display:flex!important}
  body.sidebar-open aside{transform:translateX(0)}
  body.sidebar-open::after{content:"";position:fixed;inset:56px 0 0;background:rgba(20,33,61,.28);z-index:50}
  .content-outer{width:100%}
  .main{padding:20px 16px 32px}
  .analysis-integrated-head{flex-direction:column}
  .page-head{margin-bottom:16px;padding-bottom:14px}
  .page-head h1{font-size:20px}
  .strip{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(odd){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width: 520px){
  .brand .pipe,.brand .name{display:none}
  .bsearch{height:32px}
  .icbtn{display:none}
  .strip{grid-template-columns:1fr}
  .stat{border-left:0;border-top:1px solid var(--line)}
  .stat:first-child{border-top:0}
}

/* ===== 페이지 헤더 ===== */
.crumb{
  display:flex;align-items:center;gap:7px;
  color:var(--ink-4);font-weight:700;font-size:12px;margin-bottom:14px;
}
.page-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:22px;
  border-bottom:1px solid var(--border);padding-bottom:18px;flex-wrap:wrap;
}
.page-head .eb{font-size:12px;color:var(--brand);font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.page-head h1{font-size:22px;font-weight:800;letter-spacing:-.3px;color:var(--ink);margin-top:5px}
.page-head .meta{font-size:13px;color:var(--ink-3);margin-top:5px;line-height:1.5}
.actions{display:flex;gap:9px;flex-wrap:wrap}
h1{margin:0}

/* ===== 버튼 ===== */
.btn{
  border:1px solid var(--border);background:var(--surface);color:var(--ink-2);
  font-family:inherit;font-size:12.5px;font-weight:600;
  padding:8px 14px;border-radius:9px;
  display:inline-flex;align-items:center;gap:7px;transition:.12s;
}
.btn:hover{border-color:var(--brand);color:var(--brand);background:var(--s1-soft)}
.btn.primary,.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover,.btn.pri:hover{background:var(--brand-dark);color:#fff}
.btn.danger{color:var(--error);border-color:var(--error-bg);background:var(--surface)}
.btn.danger:hover{background:var(--error-bg);border-color:var(--error)}
.btn.ghost{background:transparent}
.btn.sm{padding:5px 11px;font-size:11.5px;border-radius:8px}
.mini-btn{
  border:1px solid var(--border);background:var(--surface);
  border-radius:7px;padding:6px 9px;font-weight:700;font-size:13px;color:var(--ink-2);
}
.mini-btn.blue{background:var(--brand);border-color:var(--brand);color:#fff}
.mini-btn.red{background:var(--error);border-color:var(--error);color:#fff}

/* ===== KPI Strip ===== */
.strip{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;
  margin-bottom:20px;
}
.stat{padding:16px 20px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat .sl{
  font-size:11px;color:var(--ink-3);font-weight:700;letter-spacing:.3px;
  text-transform:uppercase;display:flex;align-items:center;gap:7px;
}
.stat .sl .ld{width:7px;height:7px;border-radius:2px}
.stat .sn{font-size:28px;font-weight:800;letter-spacing:-.3px;margin-top:8px}
.stat .sn small{font-size:13px;font-weight:700;color:var(--ink-3);margin-left:2px}
.stat .sd{font-size:11.5px;font-weight:700;margin-top:1px}
.up{color:var(--success)}.down{color:var(--error)}.mut{color:var(--ink-3)}

/* ===== 그리드 & 패널 ===== */
.grid{display:grid;gap:18px;align-items:start}
.grid.two,.grid-two{grid-template-columns:1.9fr 1fr}
.grid.three{grid-template-columns:repeat(3,1fr)}
.grid.four{grid-template-columns:repeat(4,1fr)}
.col{display:flex;flex-direction:column;gap:18px;min-width:0}
.panel,.card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;
}
.panel-h,.card>header{
  display:flex;align-items:center;gap:10px;
  padding:15px 18px;border-bottom:1px solid var(--line);
}
.panel-h h2,.panel-h h3,.card>header h2{margin:0;font-size:16.5px;font-weight:800;flex:1;letter-spacing:0}
.card>header .link{font-size:12.5px;color:var(--brand);font-weight:700;cursor:pointer}
.panel-b,.card .body{padding:16px 18px}
.card .flush{padding:0}
.secttl{
  font-size:12px;font-weight:800;color:var(--ink-3);
  letter-spacing:.4px;text-transform:uppercase;margin:0 2px 11px;
}

/* ===== 파이프라인 ===== */
.pipe{display:flex}
.pipe .step{flex:1;text-align:center;padding:16px 6px;position:relative}
.pipe .step .pn{font-size:23px;font-weight:800;letter-spacing:-.2px}
.pipe .step .pl{font-size:11px;color:var(--ink-3);font-weight:700;margin-top:3px}
.pipe .step:not(:last-child)::after{
  content:"";position:absolute;right:0;top:24%;height:52%;width:1px;background:var(--line);
}
.pipe .s1 .pn{color:var(--ink-2)}
.pipe .s2 .pn{color:var(--warning)}
.pipe .s3 .pn{color:var(--brand)}
.pipe .s4 .pn{color:var(--success)}

/* ===== 일반사용자 사이드바 완화 ===== */
body.role-user .mi.sub{font-size:12px}

/* ===== Pills (배지) ===== */
.pill{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;white-space:nowrap;
}
.pill .gi{font-size:9px;line-height:1}
.pill.success,.badge-하{background:var(--success-bg);color:var(--success)}
.pill.warning,.badge-중{background:var(--warning-bg);color:var(--warning)}
.pill.error,.badge-상{background:var(--error-bg);color:var(--error)}
.pill.info{background:var(--info-bg);color:var(--info)}
.pill.neutral,.badge-중립,.arch{background:var(--neutral-bg);color:var(--neutral)}
/* 방향 pill */
.pill.dir-up{background:#e7f4ee;color:#137a4b}
.pill.dir-dn{background:#fae6e9;color:#c5283d}
.pill.dir-nt{background:#eef0f3;color:#6c7384}
.pill.violet,.violet{background:var(--violet-soft);color:var(--violet)}
/* 배지 기본형 — 이전엔 배경색만 있고 모양(padding/radius)이 없어 텍스트에 색만 칠한 듯 어설퍼 보였음.
   깔끔한 알약형 칩으로 통일 */
.badge{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;line-height:1.5;padding:3px 10px;border-radius:20px;
  white-space:nowrap;letter-spacing:.1px;
}
.badge,.badge-기회{background:var(--info-bg);color:var(--info)}
.badge.high,.badge-상{background:var(--error-bg);color:var(--error)}
.badge.mid,.badge-중{background:var(--warning-bg);color:var(--warning)}
.badge.low,.badge-하{background:var(--success-bg);color:var(--success)}
.badge.new{background:var(--info-bg);color:var(--info)}
.badge.arch{background:var(--neutral-bg);color:var(--neutral)}
.badge-리스크{background:var(--error-bg);color:var(--error)}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block}

/* ===== 태그 (poc_v3 .tag/.t-* 반영 — 목록 셀용) ===== */
.tag,.ui-tag{display:inline-flex;align-items:center;font-size:10.5px;line-height:1.2;border-radius:999px;padding:3px 8px;margin-right:5px;font-weight:800;letter-spacing:.1px;vertical-align:middle;white-space:nowrap}
.t-high{background:var(--error-bg);color:var(--error)}
.t-mid{background:var(--warning-bg);color:var(--warning)}
.t-low{background:var(--bg);color:var(--ink-3)}
.t-pub{background:var(--success-bg);color:var(--success)}
.t-draft{background:var(--warning-bg);color:var(--warning)}
.t-arch{background:var(--bg);color:var(--ink-3)}
.t-cat{background:var(--s1-soft);color:var(--brand)}
.t-dup{background:var(--violet-soft);color:var(--violet)}
.t-del{background:var(--error-bg);color:var(--error);text-decoration:line-through}
.t-ai-summary{background:#E8F4FF;color:#0065B3}
.t-forecast{background:#F0EBFF;color:#6425C9;font-weight:800}
.ui-tag-core{background:var(--error-bg);color:var(--error)}
.ui-tag-main{background:var(--warning-bg);color:var(--warning)}
.ui-tag-reference,.ui-tag-neutral{background:var(--bg);color:var(--ink-3)}
.ui-tag-opportunity,.ui-tag-verified{background:#e8f7ef;color:#08784c}
.ui-tag-risk{background:#fdebed;color:#c32840}
.ui-tag-evidence{background:#eef2f7;color:#526274}
.ui-tag-caution{background:#fff1e7;color:#a9530b}
.ui-tag-reviewed,.ui-tag-ai{background:#e9f1ff;color:var(--brand)}
.ui-tag-context{background:var(--s1-soft);color:var(--brand)}
.ttl-link{cursor:pointer;color:var(--ink);font-weight:700}
.ttl-link:hover{color:var(--brand)}
.ttl-sub{display:block;font-size:11.5px;color:var(--ink-3);font-weight:500;margin-top:3px}
.card.flush{padding:6px 4px}

/* 중요도 배지(상/중/하) — 진한 원색 대신 파스텔 톤 배경 + 톤온톤 텍스트,
   옅은 테두리와 이중 box-shadow(바깥 그림자+안쪽 하이라이트)로 살짝 입체감을 준다. */
.badge.grade-badge{
  min-width:32px;font-weight:800;border:1px solid transparent;
  box-shadow:0 1px 2px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.65);
}
.badge.badge-상{background:var(--error-bg);color:var(--error);border-color:#f4c9d0}
.badge.badge-중{background:var(--warning-bg);color:var(--warning);border-color:#f1ddac}
.badge.badge-하{background:var(--success-bg);color:var(--success);border-color:#bee1cd}
.badge.badge-삭제{background:var(--neutral-bg);color:var(--neutral);border-color:#d8dce3;text-decoration:line-through;box-shadow:none}

/* ===== 우선순위 배너 ===== */
.priority{
  background:var(--surface);border:1px solid var(--border);
  border-left:4px solid var(--error);border-radius:var(--r);
  box-shadow:var(--sh);padding:18px 22px;margin-bottom:20px;
}
.priority .pk{
  font-size:11px;font-weight:800;color:var(--error);
  letter-spacing:.5px;text-transform:uppercase;
  display:flex;align-items:center;gap:8px;
}
.priority .pk .ts{color:var(--ink-4);font-weight:600;letter-spacing:0;text-transform:none}
.priority h2{font-size:18px;font-weight:800;letter-spacing:-.4px;margin:9px 0 7px;line-height:1.35}
.priority p{font-size:13px;color:var(--ink-2);max-width:880px}
.priority .pm{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}

/* ===== 인사이트 카드 행 ===== */
.ins{padding:15px 18px;border-top:1px solid var(--line)}
.ins:first-child{border-top:0}
.ins .top{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.ins .ti{font-size:15px;font-weight:700;line-height:1.4;letter-spacing:-.2px}
.ins .sm{font-size:13.5px;color:var(--ink-2);margin-top:5px}
.ins .sm b{color:var(--ink);font-weight:700}
.ins .meta{font-size:11px;color:var(--ink-3);margin-top:8px;display:flex;gap:14px;flex-wrap:wrap}

/* ===== 리포트 목록 행 ===== */
.rep{
  display:flex;align-items:center;gap:12px;padding:13px 18px;
  border-top:1px solid var(--line);cursor:pointer;
}
.rep:first-child{border-top:0}.rep:hover{background:#fafbfd}
.rep .rt{
  width:34px;height:34px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:#fff;flex:0 0 auto;
}
.rep .rn{font-size:12.5px;font-weight:700}
.rep .rd{font-size:11px;color:var(--ink-3)}
.rep .rb{flex:1;min-width:0}

/* ===== 원자재 시세 행 ===== */
.com{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;border-top:1px solid var(--line);
}
.com:first-child{border-top:0}
.com .nm{font-weight:700;font-size:12.5px}
.com .nm s{display:block;font-size:10.5px;color:var(--ink-3);text-decoration:none;font-weight:500}
.com .px{font-weight:800;font-size:14px;text-align:right}
.com .ch{font-size:11px;font-weight:700;text-align:right}

/* ===== 소스 테이블 소스명 셀 ===== */
.src{display:flex;align-items:center;gap:9px;font-weight:700}
.src .sq{
  width:22px;height:22px;border-radius:5px;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;color:#fff;
}

/* ===== 일반 테이블 (poc_v3 반영) ===== */
table{width:100%;border-collapse:collapse;font-size:13px}
th{
  font-size:11.5px;color:var(--ink-3);font-weight:700;text-align:left;
  padding:11px 12px;background:var(--surface);
  border-bottom:1px solid var(--border);
  text-transform:none;white-space:nowrap;
}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--brand)}
.sort-ind{font-size:10px;color:var(--brand)}
td{font-size:13px;padding:12px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--bg)}
td.r,th.r{text-align:right}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:#fafbfd}

/* 동향 관리 / 회사 타임라인 표 — 제목이 길어도 다른 컬럼은 고정폭 유지(줄바꿈 방지)
   주의: 체크박스 컬럼이 관리자 전용(admin-only)이라 컬럼 순서가 역할에 따라 달라지므로
   nth-child가 아닌 명시적 클래스(.col-title/.col-grade/.col-chk/.col-status)로 지정한다.
   .col-chk(체크박스)·.col-status(상태 배지)는 내용이 셀보다 커지면 말줄임표(...)가 생기므로
   반드시 제외하고, 폭도 배지가 여유 있게 들어가도록 넉넉히 확보한다. */
#feed-table,#company-table{table-layout:fixed}
#feed-table th,#feed-table td,#company-table th,#company-table td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#feed-table .feed-band td{padding:10px 14px;background:#f4f7fc;color:var(--brand);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;border-top:1px solid #d9e4f4;border-bottom:1px solid #d9e4f4}
#feed-table .feed-band-all td{background:var(--bg);color:var(--ink-4);border-color:var(--border)}
#feed-table tr.feed-priority-row td{background:#fbfdff}
#feed-table tr.feed-priority-row:hover td{background:#f3f7fd}
#feed-table .col-title,#company-table .col-title{
  white-space:normal;overflow-wrap:break-word;word-break:keep-all;overflow:visible;text-overflow:clip;
}
#feed-table .col-grade,#company-table .col-grade,
#feed-table .col-chk,#company-table .col-chk,
#feed-table .col-status,#company-table .col-status{overflow:visible;text-overflow:clip;white-space:nowrap}
#feed-table .col-chk,#company-table .col-chk{padding:12px 6px;text-align:center}
/* 날짜는 YYYY-MM-DD 전체를 항상 보여 준다. 기존 86px 폭은 좌우 여백을 제외하면 말줄임이 발생했다. */
#feed-table .col-date{width:118px;min-width:118px;color:var(--ink-3);font-weight:600;font-size:12px;overflow:visible;text-overflow:clip;white-space:nowrap}
.ai-paragraphs{display:grid;gap:10px;color:var(--ink-2);line-height:1.72}
.ai-paragraphs p{margin:0}
.ai-summary-source{margin-left:auto;font-size:11px;font-weight:600;color:var(--ink-3)}

/* ===== 행 (일반 목록) ===== */
.row{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row-main{flex:1;min-width:0}
.row-title{font-weight:700;color:var(--ink);line-height:1.42;font-size:14.5px}
.row-sub{margin-top:4px;color:var(--ink-3);font-size:14px;font-weight:600}
.row-actions{display:flex;gap:7px;align-items:center;flex-shrink:0}
.dupchip{
  display:inline-block;margin-left:8px;font-size:10.5px;font-weight:800;
  color:var(--ink-3);background:var(--bg);border:1px solid var(--border);
  border-radius:5px;padding:1px 6px;vertical-align:middle;
}

/* ===== 피드 탭/툴바 ===== */
.mtabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:4px 0 0}
.mtab{
  border:0;background:none;padding:10px 16px;font-size:13.5px;
  font-weight:600;color:var(--ink-3);
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:.12s;
}
.mtab:hover{color:var(--brand)}
.mtab.on{color:var(--brand);font-weight:700;border-bottom-color:var(--brand)}
.mtab .c{color:var(--ink-4);font-weight:800;font-size:11px;margin-left:5px}
.sector-company-tabs{margin:0 0 14px;padding:13px 16px;border:1px solid #dbe6f5;border-radius:10px;background:#f8fbff}
.sector-company-tabs-head{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}
.sector-company-tabs-label{font-size:13px;font-weight:800;color:var(--ink-2)}
.sector-company-tabs-meta{font-size:12px;color:var(--ink-4);font-weight:600}
.sector-company-tabs-list{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.sector-company-tab{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:6px 12px;color:var(--ink-3);font-size:12.5px;font-weight:700;transition:.12s}
.sector-company-tab:hover{border-color:var(--brand);color:var(--brand)}
.sector-company-tab.on{border-color:var(--brand);background:var(--brand);color:#fff}
.sector-company-tabs-loading{padding:6px 0;color:var(--ink-4);font-size:12px}
.feed-view-switch{display:flex;align-items:stretch;gap:8px;margin:0 0 14px;padding:5px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}
.feed-view-tab{flex:1;min-width:0;border:1px solid transparent;border-radius:8px;background:transparent;padding:10px 13px;text-align:left;color:var(--ink-3);font-size:13px;font-weight:800;transition:.12s}
.feed-view-tab span{display:block;margin-top:2px;color:var(--ink-4);font-size:11px;font-weight:600}
.feed-view-tab:hover{background:var(--surface);color:var(--ink)}
.feed-view-tab.on{border-color:#cddcf2;background:var(--surface);box-shadow:0 1px 2px rgba(15,23,42,.06);color:var(--brand)}
.feed-view-tab.on span{color:var(--brand)}
.feed-view-delete{flex:0 0 145px}
.feed-view-delete.on{border-color:#f1c7ce;color:var(--error)}
.feed-view-delete.on span{color:var(--error)}
.topic-filter-bar{display:flex;flex-direction:column;gap:9px;margin:0 0 14px;padding:12px 14px;border:1px solid #dbe6f5;border-radius:12px;background:#f8fbff}
.topic-filter-head{display:flex;align-items:center;gap:9px;color:var(--brand);font-size:12px}
.topic-filter-head span{color:var(--ink-4);font-weight:600}
.topic-filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.topic-filter-label{min-width:58px;color:var(--ink-3);font-size:11px;font-weight:900}
.topic-chip{border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:6px 10px;color:var(--ink-3);font-size:11.5px;font-weight:800;cursor:pointer;transition:.12s}
.topic-chip:hover{border-color:var(--brand);color:var(--brand)}
.topic-chip.on{border-color:var(--brand);background:var(--brand);color:#fff}
.topic-chip.stage-chip.on{border-color:#7b61ff;background:#7b61ff}
.topic-cell-label{display:block;margin-top:4px;color:var(--ink-4);font-size:10.5px;font-weight:700;line-height:1.25}
.feed-list-kicker{margin:2px 0 -2px;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--ink-4)}
.priority-feed{display:flex;flex-direction:column;gap:12px}
.priority-intro{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border:1px solid #dbe6f5;border-radius:10px;background:#f8fbff}
.priority-intro strong{display:block;color:var(--brand);font-size:13px}
.priority-intro span{display:block;margin-top:3px;color:var(--ink-3);font-size:12px;font-weight:600}
.priority-group{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.priority-group-상{border-left:4px solid var(--error)}
.priority-group-중{border-left:4px solid var(--warning)}
.priority-group-하{border-left:4px solid var(--success)}
.priority-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:15px 17px 12px;border-bottom:1px solid var(--line)}
.priority-group-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:900;color:var(--ink)}
.priority-group-title b{font-size:12px;color:var(--ink-3)}
.priority-group-head p{margin:5px 0 0;color:var(--ink-3);font-size:12px;font-weight:600;line-height:1.5}
.priority-grade{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;border-radius:999px;font-size:11px;font-weight:900}
.priority-grade-상{background:var(--error-bg);color:var(--error)}
.priority-grade-중{background:var(--warning-bg);color:var(--warning)}
.priority-grade-하{background:var(--success-bg);color:var(--success)}
.priority-group-actions{display:flex;align-items:center;gap:9px;white-space:nowrap;color:var(--ink-4);font-size:11px;font-weight:700}
.priority-items{display:flex;flex-direction:column}
.priority-item{display:flex;align-items:flex-start;gap:11px;width:100%;border:0;border-top:1px solid var(--line);background:var(--surface);padding:13px 17px;text-align:left;color:var(--ink);cursor:pointer;transition:background .12s}
.priority-item:first-child{border-top:0}
.priority-item:hover{background:#fafbfd}
.priority-item-grade{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:6px;background:var(--neutral-bg);color:var(--ink-3);font-size:11px;font-weight:900}
.priority-item-상 .priority-item-grade{background:var(--error-bg);color:var(--error)}
.priority-item-중 .priority-item-grade{background:var(--warning-bg);color:var(--warning)}
.priority-item-하 .priority-item-grade{background:var(--success-bg);color:var(--success)}
.priority-item-body{display:block;flex:1;min-width:0}
.priority-item-title{display:block;font-size:14px;font-weight:800;line-height:1.45}
.priority-item-insight{display:block;margin-top:4px;color:var(--ink-2);font-size:12.5px;font-weight:600;line-height:1.5}
.priority-item-meta{display:block;margin-top:5px;color:var(--ink-4);font-size:11px;font-weight:600;line-height:1.4}
.priority-item-arrow{padding-top:2px;color:var(--ink-4);font-size:20px;line-height:1}
.priority-empty{padding:22px 17px;color:var(--ink-4);font-size:12px;font-weight:700}
.priority-group summary{display:flex;align-items:center;gap:7px;cursor:pointer;padding:13px 17px;color:var(--ink-2);font-size:13px;font-weight:900;list-style:none}
.priority-group summary::-webkit-details-marker{display:none}
.priority-group summary::before{content:'▸';color:var(--success);font-size:12px}
.priority-group[open] summary::before{content:'▾'}
.priority-group summary b{font-size:11px;color:var(--ink-3)}
.priority-group summary span{margin-left:auto;color:var(--ink-4);font-size:11px;font-weight:700}
.toolbar2{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 0}
.toolbar2 .tsearch{
  flex:1;min-width:220px;max-width:320px;
  display:flex;align-items:center;gap:8px;
  border:1px solid var(--border);border-radius:8px;padding:9px 12px;
  color:var(--ink-3);background:var(--surface);
}
.toolbar2 .tsearch input{border:0;outline:0;width:100%;color:var(--ink)}
.toolbar2 select{
  border:1px solid var(--border);border-radius:8px;
  padding:9px 11px;background:var(--surface);color:var(--ink-2);font-weight:700;
}
.retention{margin-left:auto;color:var(--ink-4);font-weight:700;font-size:12px}
.bulkbar{
  display:none;align-items:center;gap:10px;
  background:var(--info-bg);border:1px solid #d9e6fa;
  border-radius:8px;padding:9px 13px;margin-bottom:12px;
  font-weight:700;color:var(--brand);
}
.bulkbar.show{display:flex}.bulkbar .sp{flex:1}
.rowchk{width:15px;height:15px;accent-color:var(--brand)}

/* AI 검토 큐 — 결정 중심 작업 화면 */
.review-command-panel{margin:-4px 0 0;padding:0;border:0;background:transparent;overflow:visible}
.review-helper{margin:5px 0 0;color:var(--ink-3);font-size:12px;line-height:1.5}
.review-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 12px}
.review-kpi{padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 2px 8px rgba(31,55,88,.04)}
.review-kpi span,.review-kpi small{display:block;color:var(--ink-3);font-size:11px;font-weight:700}.review-kpi strong{display:block;margin:4px 0 2px;font-size:22px;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.review-kpi-publish{border-top:3px solid #26855b}.review-kpi-delete{border-top:3px solid #d13b50}.review-kpi-needs{border-top:3px solid #d18b19}.review-kpi-pending{border-top:3px solid var(--brand)}
.review-kpi{width:100%;appearance:none;text-align:left;font:inherit;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}.review-kpi:hover{border-color:#aebfdb;box-shadow:0 4px 12px rgba(31,55,88,.10);transform:translateY(-1px)}.review-kpi.on{border-color:var(--brand);box-shadow:0 0 0 2px rgba(0,51,160,.12),0 4px 12px rgba(31,55,88,.10)}.review-kpi.on span{color:var(--brand)}.review-kpi.on small{color:var(--brand)}
.review-area-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}
.review-area-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 13px;border:1px solid #d9e3f2;border-radius:9px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;text-align:left}.review-area-btn:hover{border-color:#9db8de;color:var(--brand);background:#f8fbff}.review-area-btn.on{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 3px 8px rgba(0,51,160,.18)}.review-area-btn b{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;padding:0 6px;border-radius:99px;background:#edf2f9;color:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.review-area-btn.on b{background:rgba(255,255,255,.2);color:#fff}
.review-group-tabs{display:flex;align-items:center;gap:6px;min-height:40px;margin:0 0 10px;padding:7px 9px;overflow-x:auto;border:1px solid #dfe7f2;border-radius:9px;background:#f8faff;scrollbar-width:thin}.review-group-label{flex:none;margin:0 3px 0 1px;color:var(--ink-4);font-size:11px;font-weight:800}.review-group-btn{display:inline-flex;align-items:center;gap:5px;flex:none;border:1px solid transparent;border-radius:99px;padding:6px 9px;background:transparent;color:var(--ink-3);font:inherit;font-size:11.5px;font-weight:750;cursor:pointer;white-space:nowrap}.review-group-btn:hover{border-color:#b9cbe5;background:#fff;color:var(--brand)}.review-group-btn.on{border-color:#b5cbed;background:#e9f1ff;color:var(--brand)}.review-group-btn b{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:99px;background:#e6ebf3;color:var(--ink-3);font-size:10px;font-variant-numeric:tabular-nums}.review-group-btn.on b{background:var(--brand);color:#fff}
.review-selection-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:8px 10px;border:1px solid #cbdcf5;border-radius:9px;background:#f3f8ff}.review-selection-actions>span{margin-right:2px;color:var(--brand);font-size:11.5px;font-weight:850}.review-selection-actions .mini-btn{min-width:76px}
.review-date-range{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:9px 10px;border:1px solid #dfe7f2;border-radius:9px;background:var(--surface);color:var(--ink-3);font-size:12px;font-weight:700}
.review-date-range label{display:flex;align-items:center;gap:6px;color:var(--ink-2)}
.review-date-range select,.review-date-range input{height:30px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink-2);font:inherit;font-size:12px;padding:0 8px}
.review-date-range input{font-variant-numeric:tabular-nums}
.review-modebar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:4px;background:#f4f7fb;border:1px solid #dfe7f2;border-radius:10px}
.review-mode-btn{border:0;border-radius:7px;padding:8px 12px;background:transparent;color:var(--ink-3);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.review-mode-btn:hover{background:#e9f0fb;color:var(--brand)}.review-mode-btn.on{background:var(--surface);color:var(--brand);box-shadow:0 1px 4px rgba(30,64,110,.14)}.review-mode-btn b{margin-left:4px;font-size:11px;color:var(--ink-4)}.review-mode-btn.on b{color:var(--brand)}
.review-recommended-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0 0;padding:9px 10px;border:1px solid #dfe7f2;border-radius:9px;background:var(--surface)}
.review-recommended-actions>span{margin-right:2px;font-size:11.5px;font-weight:800;color:var(--ink-3)}
.review-queue-card{overflow:hidden}.review-area-current{display:inline-flex;align-items:center;margin-left:6px;padding:3px 8px;border-radius:99px;background:#e9f1ff;color:var(--brand);font-size:11px;font-weight:800;vertical-align:middle}.review-queue-meta{margin-left:5px;color:var(--ink-3);font-size:11px;font-weight:700}.review-queue-caption{margin:4px 0 0;color:var(--ink-3);font-size:12px}.review-select-all{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:12px;font-weight:700;white-space:nowrap}.review-select-all input{accent-color:var(--brand)}
.review-bulkbar{display:none;align-items:center;gap:8px;margin:0 14px 10px;padding:9px 12px;border:1px solid #cbdcf5;border-radius:8px;background:#f3f8ff;color:var(--brand);font-size:12px}.review-bulkbar.show{display:flex}.review-bulkbar .sp{flex:1}
.review-queue-list{max-height:700px;overflow:auto;border-top:1px solid var(--line)}
.review-row{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--surface);transition:background .12s}.review-row:last-child{border-bottom:0}.review-row:hover{background:#fbfdff}.review-row>input{width:16px;height:16px;margin-top:3px;flex:none;accent-color:var(--brand)}
.review-row-main{flex:1;min-width:0;cursor:pointer}.review-row-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:5px}.review-action-label,.review-grade,.review-topic,.review-stage{display:inline-flex;align-items:center;padding:3px 7px;border-radius:4px;font-size:10.5px;font-weight:800;white-space:nowrap}.review-action-publish{background:#e8f7ef;color:#08784c}.review-action-delete{background:#fdebed;color:#c32840}.review-action-needs{background:#fff4dd;color:#986500}.review-grade-상{background:#e7efff;color:#155fbc}.review-grade-중{background:#eef2f7;color:#526274}.review-grade-하{background:#f2f3f5;color:#7b8490}.review-grade-삭제{background:#fdebed;color:#c32840}.review-grade-none{background:#f1f3f6;color:#7b8490}.review-topic,.review-stage{border:1px solid var(--line);background:#fff;color:var(--ink-3);font-weight:600}.review-row-title{font-size:14px;font-weight:750;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}.review-row-meta{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--ink-4);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-source-link{color:var(--brand);text-decoration:none;flex:none}.review-source-link:hover{text-decoration:underline}.review-row-why{margin-top:6px;color:var(--ink-3);font-size:11.5px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-row-actions{display:flex;gap:5px;align-items:center;flex:none;margin-top:21px}.review-action-btn{border:1px solid var(--border);border-radius:6px;padding:6px 9px;background:#fff;color:var(--ink-2);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.review-action-btn:hover{border-color:var(--brand);color:var(--brand);background:#f8fbff}.review-publish-btn{border-color:#b7dcc9;color:#08784c}.review-delete-btn{border-color:#edc3ca;color:#c32840}.review-delete-btn:hover{border-color:#c32840;color:#fff;background:#c32840}.review-empty{display:flex;align-items:center;flex-direction:column;gap:6px;padding:48px 20px;color:var(--ink-3);font-size:12px;text-align:center}.review-empty strong{color:var(--ink-2);font-size:14px}.review-empty-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin-bottom:3px;border-radius:50%;background:#e8f7ef;color:#08784c;font-size:18px;font-weight:800}
@media(max-width:680px){.review-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.review-area-tabs{grid-template-columns:1fr}.review-date-range{align-items:flex-start}.review-date-range input{max-width:136px}.review-row{gap:8px;padding:12px}.review-row-actions{flex-direction:column;margin-top:19px}.review-action-btn{width:52px;padding:6px 4px}.review-select-all{font-size:11px}.review-helper{max-width:280px}}

/* ===== 페이지네이션 ===== */
.pager{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 2px;color:var(--ink-3);font-weight:700;font-size:12.5px;
}
.pager .pg{display:flex;gap:4px}
.pager .pg button{
  border:1px solid var(--border);background:var(--surface);
  border-radius:6px;min-width:30px;height:30px;font-weight:700;color:var(--ink-2);
}
.pager .pg button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pager .pg button:disabled{color:var(--ink-4)}

/* ===== 일일 동향 히어로 ===== */
.hero-exec{
  background:linear-gradient(100deg,var(--brand-dark),var(--brand) 92%);
  color:#fff;border-radius:12px;padding:28px 30px;margin-bottom:18px;
  border-left:3px solid var(--brand-2);
}
.hero-exec .eyebrow{color:#bfd3f2;font-size:12.5px;font-weight:600;letter-spacing:.3px;opacity:.85}
.hero-exec h2{margin:7px 0 5px;font-size:23px;font-weight:800;line-height:1.25;letter-spacing:-.4px}
.daily-hero-note{margin:6px 0 0;color:#d6e2f5;font-size:12.5px;line-height:1.55}
.daily-stat-badge.monitoring{background:rgba(190,125,0,.7)}
.daily-stat-badge.opportunity{background:rgba(25,145,93,.72)}
.daily-stat-badge.risk{background:rgba(207,55,73,.78)}

/* 사용자 첫 화면: 전체 인사이트보다 우선순위 3건을 먼저 읽는 요약 보드 */
.daily-focus-board{margin:14px 0;border:1px solid #cbdcf5;border-radius:14px;background:var(--surface);box-shadow:0 8px 24px rgba(26,54,95,.06);overflow:hidden}
.daily-focus-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,#f5f8fe 0%,#fff 68%)}
.daily-focus-eyebrow{display:block;margin-bottom:4px;color:var(--brand);font-size:10.5px;font-weight:900;letter-spacing:.09em}
.daily-focus-head h2{margin:0;color:var(--ink);font-size:18px;letter-spacing:-.2px}
.daily-focus-head p{margin:5px 0 0;color:var(--ink-3);font-size:12px;line-height:1.5}
.daily-focus-mix{display:flex;align-items:center;gap:6px;flex:none}
.daily-focus-mix span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 9px;color:var(--ink-3);font-size:11px;font-weight:750}
.daily-focus-mix b{color:var(--ink);font-size:12px}
.daily-focus-mix .is-opportunity{border-color:#bce1ce;background:#f1faf5;color:#08784c}
.daily-focus-mix .is-opportunity b{color:#08784c}
.daily-focus-mix .is-risk{border-color:#efc7ce;background:#fff5f6;color:#c32840}
.daily-focus-mix .is-risk b{color:#c32840}
.daily-focus-list{display:flex;flex-direction:column}
.daily-focus-card{display:grid;grid-template-columns:32px minmax(0,1fr) 22px;align-items:start;gap:13px;padding:16px 20px;border-bottom:1px solid var(--line);background:#fff;cursor:pointer;transition:background .12s,transform .12s,box-shadow .12s}
.daily-focus-card:last-child{border-bottom:0}
.daily-focus-card:hover,.daily-focus-card:focus-visible{position:relative;z-index:1;background:#fbfdff;box-shadow:inset 4px 0 0 var(--brand);outline:0}
.daily-focus-card:active{transform:translateY(1px)}
.daily-focus-rank{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:#edf3fd;color:var(--brand);font-size:14px;font-weight:900;font-variant-numeric:tabular-nums}
.daily-focus-opportunity .daily-focus-rank{background:#e8f7ef;color:#08784c}
.daily-focus-risk .daily-focus-rank{background:#fdebed;color:#c32840}
.daily-focus-copy{min-width:0}
.daily-focus-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.daily-focus-tags .ui-tag{margin-right:0}
.daily-focus-copy h3{margin:0;color:var(--ink);font-size:15px;line-height:1.45;letter-spacing:-.1px}
.daily-focus-copy p{margin:7px 0 0;color:var(--ink-2);font-size:12.5px;font-weight:650;line-height:1.55}
.daily-focus-copy small{display:block;margin-top:7px;color:var(--ink-4);font-size:10.5px}
.daily-focus-arrow{align-self:center;color:var(--ink-4);font-size:24px;line-height:1}
.daily-focus-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 20px;border-top:1px solid var(--line);background:#fbfcfe}
.daily-focus-foot>span{color:var(--ink-4);font-size:11px;font-weight:700}
.daily-focus-empty{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px}
.daily-focus-empty div{display:flex;flex-direction:column;gap:3px}
.daily-focus-empty span{color:var(--brand);font-size:10.5px;font-weight:900;letter-spacing:.08em}
.daily-focus-empty strong{color:var(--ink);font-size:15px}
.daily-focus-empty p{margin:0;color:var(--ink-3);font-size:12px}

/* 검증 가능한 사실을 먼저 보여주는 일일 브리핑 */
.daily-trust-group,.daily-trust-details{margin:14px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.daily-trust-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--line);background:#fbfcfe}
.daily-trust-head h2{margin:0;color:var(--ink);font-size:15px}
.daily-trust-head p{margin:4px 0 0;color:var(--ink-3);font-size:11.5px}
.daily-trust-head>span{flex:none;border-radius:99px;background:var(--info-bg);padding:3px 9px;color:var(--brand);font-size:11px;font-weight:800}
.daily-trust-verified{border-color:#cbdcf5}
.daily-trust-verified>.daily-trust-head{border-left:4px solid var(--brand);background:#f6f9ff}
.daily-trust-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:0}
.daily-trust-card{min-width:0;padding:16px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s,box-shadow .12s}
.daily-trust-card:hover{position:relative;background:#fbfdff;box-shadow:inset 3px 0 0 var(--brand)}
.daily-trust-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.daily-trust-card-top .ui-tag{margin-right:0}
.daily-trust-card h3{margin:0;color:var(--ink);font-size:15px;line-height:1.5}
.daily-source-title{color:inherit;text-decoration:none}.daily-source-title:hover{color:var(--brand);text-decoration:underline}.daily-source-title span{margin-left:4px;color:var(--brand);font-size:.85em}
.daily-fact-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;color:var(--ink-4);font-size:11px}
.daily-fact-meta span+span::before{content:'·';margin-right:7px;color:var(--line)}
.daily-card-summary{margin:11px 0 0;color:var(--ink-2);font-size:12.5px;line-height:1.55}
.daily-ai-summary-stack{display:flex;flex-direction:column;margin-top:12px;border-top:1px solid var(--line)}
.daily-ai-summary-stack .ai-summary-block{padding:9px 0;border-bottom:1px solid var(--line)}
.daily-ai-summary-stack .ai-summary-block:last-child{border-bottom:0;padding-bottom:0}
.daily-ai-summary-stack h3{margin:0 0 4px;color:var(--ink-4);font-size:10.5px;font-weight:800}
.daily-ai-summary-stack .ai-bullets{margin:0}
.daily-ai-summary-stack .ai-bullets li{color:var(--ink-2);font-size:12px;line-height:1.5}
.daily-trust-details>summary{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;list-style:none}
.daily-trust-details>summary::-webkit-details-marker{display:none}
/* 기본 마커를 지웠으면 대체 표식이 있어야 접힘 여부를 알 수 있다 */
.daily-trust-toggle{flex:none;width:9px;height:9px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(-45deg);transition:transform .15s}
.daily-trust-details[open]>summary .daily-trust-toggle{transform:rotate(45deg)}
.daily-trust-summary-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.daily-trust-details>summary strong{font-size:13.5px;color:var(--ink)}
.daily-trust-details>summary small{font-size:11.5px;color:var(--ink-3)}
.daily-trust-details>summary b{flex:none;color:var(--ink-3);font-size:11px}
.daily-trust-details[open]>summary{border-bottom:1px solid var(--line);background:#fbfcfe}
/* 참고 자료는 훑는 목록이다. 카드가 아니라 한 줄로 둬 한 화면에 담는다. */
.daily-trust-rows{display:flex;flex-direction:column}
.daily-trust-row{display:flex;align-items:baseline;gap:10px;width:100%;padding:9px 18px;border:0;border-top:1px solid var(--line);background:none;font:inherit;text-align:left;cursor:pointer;transition:background .12s}
.daily-trust-rows>.daily-trust-row:first-child{border-top:0}
.daily-trust-row:hover{background:#fbfdff;box-shadow:inset 3px 0 0 var(--brand)}
.daily-trust-row-cat{flex:none;min-width:58px;color:var(--ink-4);font-size:11px}
.daily-trust-row-title{flex:1;min-width:0;color:var(--ink);font-size:13px;line-height:1.5}
.daily-trust-row:hover .daily-trust-row-title{color:var(--brand)}
.daily-trust-row-src{flex:none;color:var(--ink-4);font-size:11px;white-space:nowrap}
@media(max-width:760px){
  .daily-trust-row{flex-wrap:wrap;gap:4px 8px;padding:10px 16px}
  .daily-trust-row-title{flex:1 0 100%;order:1}
  .daily-trust-row-cat,.daily-trust-row-src{order:2}
}
.daily-trust-empty,.daily-empty-state{padding:28px 20px;color:var(--ink-3);font-size:12.5px;text-align:center}
.daily-empty-state{display:flex;flex-direction:column;gap:7px;margin-top:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.daily-empty-state strong{color:var(--ink);font-size:15px}
.daily-empty-state span{line-height:1.6}
@media(max-width:760px){
  .daily-focus-head{flex-direction:column;padding:16px}
  .daily-focus-mix{width:100%;overflow-x:auto;padding-bottom:2px}
  .daily-focus-card{grid-template-columns:28px minmax(0,1fr) 16px;gap:10px;padding:15px 16px}
  .daily-focus-rank{width:27px;height:27px;border-radius:8px;font-size:12px}
  .daily-focus-copy h3{font-size:14px}
  .daily-focus-copy p{font-size:12px}
  .daily-focus-foot{align-items:flex-start;flex-direction:column;padding:12px 16px}
  .daily-focus-foot .btn{width:100%;justify-content:center}
  .daily-focus-empty{align-items:flex-start;flex-direction:column;padding:17px}
}
.search-result-label{padding:9px 12px;border-bottom:1px solid var(--line);background:var(--bg);color:var(--ink-3);font-size:11px;font-weight:900;letter-spacing:.04em}
.search-report-row{background:#fbfdff}

/* ===== 인디케이터 ===== */
.indicator-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.indicator{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 15px}
.indicator .ind-label{font-size:12px;color:var(--ink-3);font-weight:800}
.indicator .ind-val{font-size:20px;font-weight:900;margin:4px 0 2px}
.indicator .ind-chg{font-size:12px;font-weight:750}
.ind-up{color:var(--error)}.ind-down{color:var(--brand)}

/* ===== 일일 브리프 섹션 ===== */
.daily-stats{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.daily-stat-badge{background:rgba(255,255,255,.18);border-radius:4px;padding:3px 10px;font-size:12px;font-weight:800;color:#fff}
.daily-stat-badge.urgent{background:rgba(210,50,50,.75)}
.daily-stat-badge.notable{background:rgba(180,110,0,.7)}

.daily-section{margin-bottom:14px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);overflow:hidden}
.daily-section.urgent>.daily-section-hd{background:#fff8f8;border-bottom:2px solid var(--error)}
.daily-section.notable>.daily-section-hd{background:#fffbf0;border-bottom:2px solid var(--warning)}
.daily-section.ref>.daily-section-hd{border-bottom:1px solid var(--border)}
.daily-section-hd{display:flex;align-items:center;gap:10px;padding:10px 18px}
.daily-section-title{font-size:13px;font-weight:900;color:var(--ink)}
.daily-section.urgent>.daily-section-hd>.daily-section-title{color:var(--error)}
.daily-section.notable>.daily-section-hd>.daily-section-title{color:var(--warning)}
.daily-section-cnt{font-size:12px;color:var(--ink-4);margin-left:auto;font-weight:700}

.daily-item{padding:12px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s}
.daily-item:last-child{border-bottom:none}
.daily-item:hover{background:var(--bg)}
.daily-item-hd{display:flex;gap:7px;align-items:flex-start;flex-wrap:wrap;margin-bottom:5px}
.daily-cat{font-size:11px;font-weight:900;color:var(--ink-3);background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:2px 7px;white-space:nowrap;flex-shrink:0}
.daily-item-title{font-size:15px;font-weight:800;color:var(--ink);line-height:1.4;flex:1;min-width:180px}
.daily-item-src{font-size:12.5px;color:var(--ink-4);white-space:nowrap;margin-left:auto;flex-shrink:0}
.daily-item-body{font-size:14px;color:var(--ink-2);line-height:1.7;margin-bottom:3px}
.daily-bullet{padding-left:2px}
.daily-item-impl{margin-top:7px;background:rgba(0,51,160,.04);border-radius:7px;padding:8px 11px}
.d-impl-tag{display:inline-block;font-size:11px;font-weight:900;color:var(--brand);margin-bottom:5px}
.ai-bullets.d-sum li{font-size:14px}
.ai-bullets.d-impl li{font-size:13.5px;color:var(--ink)}
.ai-bullets.d-impl li::before{background:var(--brand)}

.daily-cat-group{padding:9px 18px;border-bottom:1px solid var(--line)}
.daily-cat-group:last-child{border-bottom:none}
.daily-cat-label{font-size:11.5px;font-weight:900;color:var(--brand);margin-bottom:5px}
.daily-ref-item{display:flex;gap:10px;align-items:baseline;padding:2px 0;cursor:pointer}
.daily-ref-item:hover .daily-ref-title{color:var(--brand)}
.daily-ref-title{font-size:13px;color:var(--ink);font-weight:700;flex:1}
.daily-ref-src{font-size:11px;color:var(--ink-4);white-space:nowrap}
.daily-ref-more{font-size:12px;color:var(--ink-3);padding:4px 0;font-weight:700}

/* ===== 일일 이슈 섹션 패널 (섹션별 그룹 레이아웃) ===== */
.dsp{margin-bottom:10px;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.dsp-hd{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--border);border-left:4px solid var(--dsp-color,var(--ink-4));background:var(--bg)}
/* 섹션별 헤더 배경 색상 */
.dsp-sec-competitor .dsp-hd{background:#fff6f6}
.dsp-sec-benchmark  .dsp-hd{background:#f4f6ff}
.dsp-sec-policy     .dsp-hd{background:#f4fbf7}
.dsp-sec-economy    .dsp-hd{background:#fffbf2}
.dsp-sec-tech       .dsp-hd{background:#faf5ff}
.dsp-sec-law        .dsp-hd{background:#f6f7f9}
.dsp-sec-raw_materials .dsp-hd{background:#fdf8f0}
.dsp-name{font-weight:800;font-size:13.5px;color:var(--dsp-color,var(--ink))}
.dsp-cnt{font-size:12px;color:var(--ink-4);font-weight:600;margin-left:2px}
.dsp-pills{margin-left:auto;display:flex;gap:5px}
.dsp-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}
.dsp-pill-u{background:var(--error-bg);color:var(--error)}
.dsp-pill-n{background:var(--warning-bg);color:var(--warning)}
/* 기사 행 */
.dsp-row{display:flex;flex-direction:column;padding:10px 18px 10px 16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s;border-left:3px solid transparent}
.dsp-row:last-child{border-bottom:none}
.dsp-row:hover{background:var(--bg)}
.dsp-row-u{border-left-color:var(--error)}
.dsp-row-n{border-left-color:var(--warning)}
.dsp-row-r{border-left-color:var(--line)}
.dsp-row-hd{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}
/* 등급 배지 */
.dsp-grade{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:99px;white-space:nowrap;flex-shrink:0;margin-top:2px}
.dsp-grade-u{background:var(--error-bg);color:var(--error)}
.dsp-grade-n{background:var(--warning-bg);color:var(--warning)}
.dsp-grade-r{background:var(--bg);color:var(--ink-4)}
.dsp-grade-x{background:var(--error-bg);color:var(--error);text-decoration:line-through;opacity:.85}
/* 방향 배지 (기회/리스크/중립) */
.dsp-dir{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap;flex-shrink:0;margin-top:2px}
.dsp-dir-op{background:#e7f6ee;color:#0a7d4d}
.dsp-dir-rk{background:#fdecec;color:#c5283d}
.dsp-dir-nt{background:#f0f2f7;color:var(--ink-4)}
/* 제목·출처 */
.dsp-title{font-size:14.5px;font-weight:700;color:var(--ink);flex:1;min-width:180px;line-height:1.4}
.dsp-src{font-size:12px;color:var(--ink-4);white-space:nowrap;flex-shrink:0;margin-left:auto;margin-top:2px}
.dsp-row-body{margin-top:6px;font-size:13.5px;color:var(--ink-2);line-height:1.65}
.dsp-row-impl{margin-top:6px;background:rgba(0,51,160,.04);border-radius:7px;padding:8px 11px}

/* 경쟁사 API 정보 카드 */
.competitor-intel-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.intel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.intel-actions select{height:30px;border:1px solid var(--border);border-radius:6px;background:var(--surface);padding:0 8px;color:var(--ink);font-size:12px}
.intel-list{border-top:1px solid var(--line)}
.intel-row{padding:11px 18px;border-bottom:1px solid var(--line)}
.intel-row:last-child{border-bottom:0}
.intel-row-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--ink-3);font-size:12px}
.intel-row-head time{margin-left:auto;color:var(--ink-4);font-size:11px}
.intel-source{font-weight:800;padding:2px 7px;border-radius:99px;background:#eef2ff;color:#3349a5}
.intel-source.g2b{background:#eaf7ef;color:#0a7c4a}
.intel-source.kipris{background:#fff3df;color:#9a5b00}
.intel-title{margin-top:6px;font-weight:750;font-size:14px;line-height:1.45}
.intel-title a{color:inherit;text-decoration:none}.intel-title a:hover{text-decoration:underline;color:var(--brand)}
.intel-meta{margin-top:4px;color:var(--ink-4);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== 상세 뷰 ===== */
.detail-wrap{display:grid;grid-template-columns:1fr 330px;gap:20px}
.article h2{font-size:22px;line-height:1.35;margin:8px 0 12px}
.ai-box{
  background:var(--info-bg);border:1px solid #d9e6fa;
  border-radius:8px;padding:16px 18px;margin:16px 0;
}
.ai-box h3{margin:0 0 9px;color:var(--brand);font-size:13px}
.reason{
  border:1px solid var(--border);border-left:3px solid var(--error);
  border-radius:8px;padding:14px 16px;margin:16px 0;background:var(--surface);
}
.side-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:15px 16px;margin-bottom:13px}
.side-card h3{margin:0 0 11px;font-size:12px;color:var(--ink-3)}

/* ===== 상세 헤더 / AI 분석 카드 (재설계) ===== */
.detail-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.detail-path{font-size:12px;color:var(--ink-4);font-weight:600}
.detail-title{font-size:25px;line-height:1.35;font-weight:800;margin:2px 0 6px}
.detail-orig{color:var(--ink-4);font-size:14px;margin:0 0 8px}
.grade-pill{display:inline-flex;align-items:center;font-size:12.5px;font-weight:900;
  border-radius:999px;padding:4px 12px;letter-spacing:.2px}
.grade-pill.badge-상{background:var(--error-bg);color:var(--error)}
.grade-pill.badge-중{background:var(--warning-bg);color:var(--warning)}
.grade-pill.badge-하{background:var(--neutral-bg);color:var(--neutral)}
.badge-삭제,.grade-pill.badge-삭제{background:var(--error-bg);color:var(--error);text-decoration:line-through}
.rel-chip{font-size:11px;font-weight:800;border-radius:999px;padding:3px 10px;border:1px solid transparent}
.rel-chip.rel-core{background:var(--info-bg);color:var(--info)}
.rel-chip.rel-rel{background:var(--bg);color:var(--ink-3);border-color:var(--border)}
.rel-chip.rel-no{background:var(--error-bg);color:var(--error)}
.edited-chip{font-size:11px;font-weight:800;border-radius:999px;padding:3px 10px;background:var(--violet-soft);color:var(--violet)}

.ai-card{background:linear-gradient(180deg,#fbfcff,#f6f8fd);border:1px solid #dfe7f6;
  border-radius:12px;padding:4px 0 0;margin:16px 0;overflow:hidden}
.ai-card-hd{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:900;color:var(--brand);
  padding:13px 18px 11px;border-bottom:1px solid #e3ebf8}
.ai-card-hd-ico{font-size:15px}
.ai-card-empty{padding:16px 18px;color:var(--ink-2);font-size:13.5px}
.ai-grid{display:flex;flex-direction:column}
.ai-sec{padding:13px 18px;border-bottom:1px solid #eaf0fa}
.ai-sec:last-child{border-bottom:none}
.ai-sec-hd{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:900;
  text-transform:none;letter-spacing:.3px;margin-bottom:8px}
.ai-sec-ico{font-size:13px}
.ai-sec-sum .ai-sec-hd{color:var(--ink-2)}
.ai-sec-impl{background:rgba(0,51,160,.035)}
.ai-sec-impl .ai-sec-hd{color:var(--brand)}
.ai-sec-why .ai-sec-hd{color:var(--ink-3)}
.ai-bullets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ai-bullets li{position:relative;padding-left:16px;font-size:14.5px;line-height:1.65;color:var(--ink-2)}
.ai-bullets li::before{content:"";position:absolute;left:3px;top:9px;width:5px;height:5px;
  border-radius:50%;background:var(--ink-4)}
.ai-sec-impl .ai-bullets li{color:var(--ink)}
.ai-sec-impl .ai-bullets li::before{background:var(--brand)}
.ai-empty{color:var(--ink-4);font-size:13px}

.ai-noise{border:1px solid #f2c9d1;border-left:3px solid var(--error);background:var(--error-bg);
  border-radius:10px;padding:13px 16px;margin:14px 0}
.ai-noise-hd{font-weight:900;color:var(--error);font-size:13px;margin-bottom:5px}
.ai-noise-body{color:var(--ink-2);font-size:13.5px;line-height:1.6}
.ai-noise-note{margin-top:8px;font-size:12px;color:var(--ink-4)}
.detail-foot{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:12px}
.detail-src{font-size:13px;color:var(--ink-4)}

/* ===== 관리자 보완·수정 폼 ===== */
.edit-help{font-size:11.5px;color:var(--ink-4);line-height:1.5;margin:-4px 0 11px}
.edit-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-bottom:10px}
.edit-row3 label,.edit-fld{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;color:var(--ink-3)}
.edit-fld{margin-bottom:10px}
.edit-row3 select,.edit-fld input,.edit-fld textarea{
  border:1px solid var(--border);border-radius:7px;padding:7px 9px;font-size:12.5px;
  background:var(--surface);color:var(--ink);outline:0;font-weight:500;width:100%}
.edit-row3 select:focus,.edit-fld input:focus,.edit-fld textarea:focus{border-color:var(--brand)}
.edit-fld textarea{resize:vertical;line-height:1.5}
.edit-msg{font-size:12px;font-weight:700;margin-top:9px;min-height:16px}
.edit-msg.ok{color:var(--success)}
.edit-msg.err{color:var(--error)}

/* ===== 시범운영 일지 ===== */
.pilot-start{align-self:flex-start;padding:7px 11px;border:1px solid var(--s1-line);border-radius:999px;background:var(--s1-soft);color:var(--brand);font-size:12px;font-weight:800}
.pilot-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-6px 0 16px}
.pilot-summary>div{padding:13px 15px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--sh)}
.pilot-summary span{display:block;color:var(--ink-3);font-size:11px;font-weight:700;margin-bottom:3px}
.pilot-summary strong{color:var(--ink);font-size:16px}
.pilot-card header,.pilot-editor-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-meta{color:var(--ink-4);font-size:11.5px;font-weight:600}
.pilot-entry{display:grid;grid-template-columns:74px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.pilot-entry:first-child{padding-top:0}.pilot-entry:last-child{padding-bottom:0;border-bottom:0}
.pilot-entry-date{display:flex;flex-direction:column;padding-top:2px;color:var(--ink-4);font-size:10.5px;font-weight:700}
.pilot-entry-date strong{color:var(--brand);font-size:19px;letter-spacing:-.5px;line-height:1.15}.pilot-entry-date span{margin-top:3px}
.pilot-entry-main{min-width:0}.pilot-entry-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.pilot-area{padding:2px 7px;border-radius:999px;background:var(--neutral-bg);color:var(--ink-3);font-size:10.5px;font-weight:700}
.pilot-edit-btn{margin-left:auto}.pilot-entry h3{color:var(--ink);font-size:15px;margin:0 0 4px}.pilot-entry p{color:var(--ink-3);font-size:12.5px;line-height:1.55;margin:0}
.pilot-entry ul{display:grid;gap:3px;margin:9px 0 0 17px;color:var(--ink-2);font-size:12.5px;line-height:1.5}.pilot-entry-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px;color:var(--ink-4);font-size:10.5px}
.pilot-evidence{color:var(--violet);font-weight:700}.pilot-editor-card{margin-top:16px}.pilot-editor-grid{display:grid;grid-template-columns:180px 180px minmax(220px,1fr);gap:10px}.pilot-editor-wide{grid-column:1/-1}.pilot-editor-foot{display:flex;align-items:center;gap:10px;margin-top:4px}
@media(max-width:760px){.pilot-summary{grid-template-columns:1fr}.pilot-entry{grid-template-columns:1fr;gap:7px}.pilot-entry-date{flex-direction:row;align-items:baseline;gap:7px}.pilot-edit-btn{margin-left:0}.pilot-editor-grid{grid-template-columns:1fr}.pilot-start{width:100%}}

/* ===== MCP 안내 박스 ===== */
.mcp{
  margin:0 18px 16px;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;padding:13px 15px;font-size:12px;color:var(--ink-2);line-height:1.8;
}
.mcp b{color:var(--brand)}

/* ===== 보고서 스텝 ===== */
.steps{display:grid;gap:12px}
.step{display:flex;gap:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:14px 15px}
.step-no{
  width:28px;height:28px;border-radius:50%;
  background:var(--brand);color:#fff;
  display:grid;place-items:center;font-weight:900;flex-shrink:0;font-size:13px;
}
.step h3{margin:0 0 4px;font-size:14px}
.step p{margin:0;color:var(--ink-3);font-size:12.5px;font-weight:600}

/* ===== 검색 ===== */
.search-box{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(110px,.55fr)) minmax(76px,.36fr);gap:10px;margin-bottom:14px}
.search-box input,.search-box select{
  width:100%;min-width:0;border:1px solid var(--border);border-radius:8px;
  padding:10px 11px;background:var(--surface);color:var(--ink);outline:0;
}
@media(max-width:1200px){
  .search-box{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(110px,.55fr))}
  .search-box>.btn{grid-column:1/-1;justify-content:center}
}

/* ===== 로딩/빈 행 ===== */
.spinner{
  display:inline-block;width:20px;height:20px;
  border:2px solid var(--border);border-top-color:var(--brand);
  border-radius:50%;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-row{text-align:center;padding:32px;color:var(--ink-3)}
.empty-row{text-align:center;padding:32px;color:var(--ink-3);font-weight:700}

/* ===== 소스 관제 ===== */
#src-table th{padding:10px 12px}
#src-table td{padding:9px 12px}

/* ===== 바닥 노트 ===== */
.foot{font-size:11px;color:var(--ink-3);margin-top:20px}
.side-note{display:none} /* 사이드바 제거 후 불필요 */

/* ===== admin-only / user-only ===== */
.admin-only{}
body.role-user .admin-only{display:none!important}
body.role-admin .user-only{display:none!important}

/* ===== 반응형 ===== */
@media(max-width:980px){
  .grid.two,.grid-two{grid-template-columns:1fr}
  .grid.three,.grid.four,.detail-wrap{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr 1fr}
  .stat:nth-child(3),.stat:nth-child(4){border-top:1px solid var(--line)}
  .stat:nth-child(odd){border-left:0}
  .bsearch{display:none}
  .top{padding:0 12px}
  aside{width:210px}
}
@media(max-width:760px){
  .wrap{flex-direction:column}
  aside{width:100%;height:auto;position:static;border-right:0;border-bottom:1px solid var(--border)}
  .brand .slogan{display:none}
  .feed-view-switch{flex-wrap:wrap}
  .feed-view-tab{flex:1 1 42%}
  .feed-view-delete{flex:1 1 100%}
  .priority-intro,.priority-group-head{align-items:flex-start;flex-direction:column}
  .priority-group-actions{width:100%;justify-content:space-between}
}
/* ===== 원자재·공급망 대시보드 ===== */
.cmd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:16px;margin-top:4px}
.cmd-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.cmd-card-head{padding:11px 16px;font-size:13px;font-weight:700;border-bottom:1px solid var(--line);background:var(--bg)}
.cmd-table{width:100%;border-collapse:collapse;font-size:13.5px}
.cmd-table th{padding:7px 12px;text-align:left;font-weight:600;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--bg);font-size:11.5px;white-space:nowrap}
.cmd-table td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.cmd-table tbody tr:last-child td{border-bottom:0}
.cmd-table tbody tr:hover{background:#fafbfd}
.cmd-name{font-weight:600;color:var(--ink);min-width:140px}
.cmd-note{display:block;font-size:11px;color:var(--ink-3);font-weight:400;margin-top:1px}
.cmd-val{font-weight:700;color:var(--ink);white-space:nowrap;min-width:120px}
.cmd-unit{font-size:11px;color:var(--ink-3);font-weight:400;margin-left:2px}
.cmd-chg{font-weight:700;white-space:nowrap;min-width:80px}
.cmd-abs{white-space:nowrap;min-width:80px}
.cmd-src{color:var(--ink-4);font-size:11px;white-space:nowrap}
.chg-up{color:#137a4b}
.chg-dn{color:#c5283d}
.chg-nt{color:var(--ink-3)}
:root{--up:#c5283d;--dn:#1570ef}

/* 행 클릭(추세) */
.cmd-row{cursor:pointer;transition:background .12s}
.cmd-chevron{color:var(--ink-4);font-weight:700;margin-left:4px}
.cmd-row:hover .cmd-chevron{color:var(--blue)}

/* AI 종합 요약 박스 */
.cmd-ai-box{border:1px solid var(--border);border-radius:var(--r);background:linear-gradient(180deg,#f6f9ff,var(--surface));margin:6px 0 16px;overflow:hidden}
.cmd-ai-head{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line)}
.cmd-ai-title{font-weight:700;font-size:15px}
.cmd-ai-meta{font-size:12.5px;color:var(--ink-3);margin-right:auto}
.cmd-ai-body{padding:14px 16px}
.cmd-ai-empty{color:var(--ink-3);font-size:12.5px;line-height:1.6}

/* AI 요약 카드 그리드 */
.cmd-ai-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.cmd-c{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink-4);border-radius:9px;transition:box-shadow .12s}
.cmd-c:hover{box-shadow:0 3px 12px rgba(20,28,45,.08)}
.cmd-c-up{border-left-color:#c5283d}
.cmd-c-dn{border-left-color:#1570ef}
.cmd-c-flat{border-left-color:var(--ink-4)}
.cmd-c-ico{flex:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;font-size:11px;font-weight:700;margin-top:1px}
.cmd-c-up .cmd-c-ico{background:#fdecec;color:#c5283d}
.cmd-c-dn .cmd-c-ico{background:#e9f1fe;color:#1570ef}
.cmd-c-flat .cmd-c-ico{background:var(--bg);color:var(--ink-3)}
.cmd-c-txt{min-width:0}
.cmd-c-head{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.45}
.cmd-c-pct{color:inherit;font-weight:700}
.cmd-c-up .cmd-c-pct{color:#c5283d}
.cmd-c-dn .cmd-c-pct{color:#1570ef}
.cmd-c-tail{margin-top:5px;font-size:13px;color:var(--ink-3);line-height:1.55;padding-top:5px;border-top:1px dashed var(--line)}

/* progress bar */
.cmd-progress{margin:6px 0 14px}
.cmd-progress-label{font-size:12px;color:var(--ink-3);margin-bottom:6px}
.cmd-progress-track{height:6px;background:var(--line);border-radius:99px;overflow:hidden}
.cmd-progress-fill{height:100%;width:8%;background:linear-gradient(90deg,var(--blue),#6ea8ff);border-radius:99px;transition:width .3s ease}

/* 추세 팝업(모달) */
.cmd-modal{position:fixed;inset:0;z-index:200;background:rgba(20,28,45,.46);display:flex;align-items:center;justify-content:center;padding:24px;animation:cmdFade .14s ease}
@keyframes cmdFade{from{opacity:0}to{opacity:1}}
.cmd-modal-box{background:var(--surface);border-radius:12px;box-shadow:0 18px 56px rgba(20,28,45,.32);width:min(720px,100%);max-height:86vh;overflow:auto;animation:cmdPop .16s ease}
@keyframes cmdPop{from{transform:translateY(10px) scale(.985);opacity:.6}to{transform:none;opacity:1}}
.cmd-trend-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;position:sticky;top:0;background:var(--surface)}
.cmd-trend-close{border:0;background:transparent;cursor:pointer;font-size:17px;color:var(--ink-3);line-height:1}
.cmd-trend-close:hover{color:var(--ink)}
.cmd-trend-body{padding:22px}
.user-article-modal-box{width:min(780px,100%)}
.user-article-detail{color:var(--ink)}
.user-article-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.user-article-tags .ui-tag{margin-right:0}
.user-article-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;font-size:11px;color:var(--ink-3)}
.user-article-meta span+span{padding-left:7px;border-left:1px solid var(--line)}
.user-article-detail h2{margin:0 0 8px;font-size:20px;line-height:1.45;letter-spacing:-.02em}
.user-article-original{margin:0 0 18px;color:var(--ink-3);font-size:12px;line-height:1.55}
.user-article-detail section{padding:15px 0;border-top:1px solid var(--line)}
.user-article-detail section h3{margin:0 0 9px;font-size:12px;font-weight:750;color:var(--ink-2)}
.user-article-detail .ai-bullets{margin:0}
.user-article-detail .ai-paragraphs{margin:0}
.ai-summary-stack{display:flex;flex-direction:column;margin:16px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ai-summary-stack .ai-summary-block{padding:14px 16px;border-bottom:1px solid var(--line)}
.ai-summary-stack .ai-summary-block:last-child{border-bottom:0}
.ai-summary-stack h3{margin:0 0 7px!important;color:var(--brand)!important;font-size:12px!important}
.ai-summary-stack .ai-bullets{margin:0}
.ai-summary-stack .ai-bullets li{color:var(--ink-2);font-size:13px;line-height:1.6}
.user-article-actions{display:flex;justify-content:flex-end;margin-top:18px}
.indicator-detail-modal-box{width:min(780px,100%)}
.ind-detail-trigger{cursor:pointer}
.ind-detail-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ind-kpi.ind-detail-trigger:hover{box-shadow:inset 0 0 0 1px #9cbbe9;background:#f8fbff}
.ind-row.ind-detail-trigger:hover{background:#f6f9fd}
.indicator-detail-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px;font-size:11px;color:var(--ink-3)}
.indicator-detail-meta span+span{padding-left:7px;border-left:1px solid var(--line)}
.indicator-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.indicator-detail-summary>div{padding:13px 15px;border-right:1px solid var(--line)}
.indicator-detail-summary>div:last-child{border-right:0}
.indicator-detail-summary span,.indicator-detail-summary small{display:block;color:var(--ink-3);font-size:11px}
.indicator-detail-summary strong{display:block;margin:5px 0 4px;font-size:18px;font-variant-numeric:tabular-nums}
.indicator-detail section{padding:16px 0;border-top:1px solid var(--line)}
.indicator-detail section h3{margin:0 0 10px;font-size:12px;color:var(--ink-2)}
.indicator-detail-chart{display:block;width:100%;height:auto;color:var(--blue);overflow:visible}
.ind-detail-grid{stroke:#dce5f2;stroke-width:1}
.ind-detail-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ind-detail-dot{fill:currentColor;stroke:#fff;stroke-width:1.5}
.ind-detail-x,.ind-detail-y{fill:var(--ink-3);font-size:10px}
.indicator-detail-table-wrap{max-height:242px;overflow:auto;border:1px solid var(--line);border-radius:8px}
.indicator-detail-table{width:100%;border-collapse:collapse;font-size:12px}
.indicator-detail-table th,.indicator-detail-table td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums}
.indicator-detail-table th{position:sticky;top:0;background:#f7f9fc;color:var(--ink-3);font-size:11px}
.indicator-detail-table tr:last-child td{border-bottom:0}
.indicator-detail-source{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;font-size:11px;color:var(--ink-3)}
@media(max-width:560px){.indicator-detail-summary{grid-template-columns:1fr}.indicator-detail-summary>div{border-right:0;border-bottom:1px solid var(--line)}.indicator-detail-summary>div:last-child{border-bottom:0}.indicator-detail-source{align-items:flex-start;flex-direction:column}}
.cmd-spark-summary{display:flex;gap:20px;font-size:12.5px;color:var(--ink-2);margin-bottom:10px}
.cmd-spark-summary b{color:var(--ink)}
.cmd-spark{width:100%;max-width:680px;height:auto}
.cmd-spark-lbl{font-size:10px;fill:var(--ink-3)}
.cmd-spark-val{font-size:10px;fill:var(--ink-2);font-weight:600}

/* ===== 섹터별 경쟁사 재무 비교 ===== */
.fin-intro{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:-2px 0 16px;padding:10px 13px;border:1px solid #dce7f8;border-radius:9px;background:#f7faff;color:var(--ink-2);font-size:12.5px}
.fin-intro-title{font-weight:750;color:var(--blue)}
.fin-compare-shell{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.fin-sector-tabs{display:flex;gap:4px;overflow-x:auto;padding:12px 14px 0;background:var(--bg);border-bottom:1px solid var(--line)}
.fin-sector-tab{appearance:none;border:0;border-radius:8px 8px 0 0;padding:9px 14px;background:transparent;color:var(--ink-3);font:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer}
.fin-sector-tab:hover{background:#edf3fc;color:var(--ink)}
.fin-sector-tab.on{background:var(--surface);box-shadow:0 -1px 0 var(--border),1px 0 0 var(--border),-1px 0 0 var(--border);color:var(--blue)}
.fin-sector-tab span{margin-left:6px;font-size:10px;color:var(--ink-4)}
.fin-controls{display:flex;align-items:flex-end;gap:20px;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.fin-control-label,.fin-year-select span{display:block;margin-bottom:7px;font-size:11px;font-weight:700;color:var(--ink-3)}
.fin-metric-tabs{display:flex;gap:5px;flex-wrap:wrap}
.fin-metric-tab{border:1px solid var(--border);border-radius:999px;padding:6px 10px;background:var(--surface);font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
.fin-metric-tab:hover{border-color:#a9c5ef;color:var(--blue)}
.fin-metric-tab.on{border-color:var(--blue);background:var(--blue);color:#fff;font-weight:700}
.fin-year-select{margin-left:auto}
.fin-year-select select{width:102px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font:inherit;font-size:12px;color:var(--ink)}
.fin-anchor-toggle{padding:7px 9px;border:1px solid #d8e3f4;border-radius:7px;background:#f7faff;color:var(--ink-2);font-size:12px;white-space:nowrap}
.fin-anchor-toggle input{vertical-align:-2px;accent-color:var(--blue)}
.fin-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}
.fin-summary-grid>div{min-height:82px;padding:14px 18px;border-right:1px solid var(--line)}
.fin-summary-grid>div:last-child{border-right:0}
.fin-summary-grid span,.fin-summary-grid small{display:block;font-size:11px;color:var(--ink-3)}
.fin-summary-grid strong{display:block;margin:5px 0 3px;font-size:16px;line-height:1.2;color:var(--ink);font-variant-numeric:tabular-nums}
.fin-table-wrap{overflow-x:auto}
.fin-compare-table{width:100%;min-width:820px;border-collapse:collapse;font-size:13px}
.fin-compare-table th{padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--line);text-align:right;color:var(--ink-3);font-size:11.5px;font-weight:700;white-space:nowrap}
.fin-compare-table th:first-child{text-align:left;min-width:170px}
.fin-compare-table th small{display:block;margin-top:2px;color:var(--ink-4);font-size:10px;font-weight:400}
.fin-compare-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;vertical-align:middle}
.fin-compare-table tbody tr:last-child td{border-bottom:0}
.fin-compare-table tbody tr:hover{background:#fafcff}
.fin-compare-table .fin-s1-row{background:#f4f8ff}
.fin-company{text-align:left;font-weight:720;color:var(--ink)}
.fin-company-tag,.fin-proxy-tag{display:inline-block;margin-left:6px;padding:2px 5px;border-radius:4px;font-size:9.5px;font-weight:700;vertical-align:1px}
.fin-company-tag{background:#e3edff;color:#165ec3}
.fin-proxy-tag{background:#fff3d8;color:#986400}
.fin-dart-name{text-align:left;margin-top:3px;color:var(--ink-4);font-size:10.5px}
.fin-metric-cell{min-width:190px}.fin-value{font-weight:750;color:var(--ink)}.fin-value.is-negative{color:#c5283d}
.fin-bar{height:5px;margin-top:7px;border-radius:99px;background:#e9eef5;overflow:hidden}.fin-bar i{display:block;height:100%;border-radius:inherit;background:var(--blue)}.fin-bar i.is-negative{background:#c5283d}
.fin-change{font-weight:700}.fin-change.is-up{color:#1570ef}.fin-change.is-down{color:#c5283d}.fin-fs-cell{color:var(--ink-3);font-size:12px}
.fin-comparison-note{padding:11px 18px;background:#fbfcfe;color:var(--ink-3);font-size:11.5px;line-height:1.55}
.fin-trend-panel{padding:20px;border-top:1px solid var(--line);background:linear-gradient(180deg,#fbfdff,#fff)}.fin-trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.fin-trend-head strong{display:block;color:var(--ink);font-size:14px}.fin-trend-head>div>span{display:block;margin-top:4px;color:var(--ink-3);font-size:11.5px}.fin-trend-mode{display:flex;padding:3px;border:1px solid #dce5f2;border-radius:8px;background:#f4f7fb;white-space:nowrap}.fin-trend-mode button{border:0;border-radius:5px;padding:5px 8px;background:transparent;color:var(--ink-3);font:inherit;font-size:11px;cursor:pointer}.fin-trend-mode button.on{background:#fff;color:var(--blue);box-shadow:0 1px 3px rgba(30,64,110,.13);font-weight:700}.fin-trend-mode button:disabled{opacity:.42;cursor:not-allowed}.fin-trend-legend{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.fin-trend-legend span{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-2);font-size:10.5px;white-space:nowrap}.fin-trend-legend span.is-s1{border-color:#b7d1f9;background:#f2f7ff;color:#165ec3;font-weight:700}.fin-trend-legend i{width:9px;height:3px;border-radius:9px}.fin-trend-chart{overflow-x:auto}.fin-trend-chart svg{display:block;width:100%;min-width:620px;height:auto}.fin-chart-grid{stroke:#e6ebf2;stroke-width:1}.fin-chart-tick,.fin-chart-year{fill:var(--ink-4);font-size:10px}.fin-chart-area{opacity:.1}.fin-chart-leader{fill:none;stroke-width:1.2;opacity:.7}.fin-chart-end{font-size:11px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.fin-trend-empty{padding:18px 0;color:var(--ink-3);font-size:12px}
.fin-cautions{margin-top:14px;padding:13px 16px;border:1px solid #f0dfb8;border-radius:10px;background:#fffbf2;color:var(--ink-2);font-size:12px;line-height:1.55}.fin-cautions strong{color:#79500a}.fin-cautions ul{margin:6px 0 0;padding-left:18px}.fin-cautions li+li{margin-top:4px}
.fin-details{margin-top:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.fin-details summary{padding:14px 16px;cursor:pointer;font-size:13px;font-weight:700;color:var(--ink)}.fin-details summary span{margin-left:8px;color:var(--ink-3);font-size:11.5px;font-weight:400}.fin-details[open] summary{border-bottom:1px solid var(--line)}
.fin-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px;padding:14px}.fin-detail-company{border:1px solid var(--line);border-radius:8px;overflow:hidden}.fin-detail-title{padding:9px 12px;background:var(--bg);font-size:12px;font-weight:700}.fin-detail-scroll{overflow-x:auto}.fin-detail-company table{width:100%;min-width:590px;border-collapse:collapse;font-size:11px}.fin-detail-company th,.fin-detail-company td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.fin-detail-company th{background:#fbfcfe;color:var(--ink-3);font-size:10px}.fin-detail-company th:first-child,.fin-detail-company td:first-child{text-align:left}.fin-detail-company tr:last-child td{border-bottom:0}.fin-fs{display:block;margin-top:2px;color:var(--ink-4);font-size:9px}.fin-no-data{padding:16px;color:var(--ink-3);font-size:12px;line-height:1.5}

/* ===== 경쟁사 분석 · 인사이트 ===== */
.analysis-intro{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-2px 0 16px;padding:11px 14px;border:1px solid #dce7f8;border-radius:9px;background:#f7faff;color:var(--ink-2);font-size:12.5px}.analysis-intro strong{color:var(--blue)}.analysis-intro.warning{border-color:#f2dfb9;background:#fffbf2}.analysis-intro.warning strong{color:#96600b}
.analysis-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.analysis-controls .fin-year-select{margin-left:0}.analysis-control-title{display:block;margin-bottom:8px;color:var(--ink-3);font-size:11px;font-weight:800}
.analysis-method-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:9px 12px;border:1px solid #dce7f8;border-radius:9px;background:#f7faff;color:var(--ink-3);font-size:11px}.analysis-method-strip>strong{color:var(--blue);margin-right:2px}.analysis-method-strip>span{padding:4px 8px;border-radius:999px;background:#fff;border:1px solid #e2e9f3}.analysis-method-strip b{color:var(--ink)}
.analysis-kpi-grid,.driver-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}
.analysis-kpi-grid>div,.driver-summary>div{padding:15px 18px;border-right:1px solid var(--line)}.analysis-kpi-grid>div:last-child,.driver-summary>div:last-child{border-right:0}.analysis-kpi-grid span,.analysis-kpi-grid small,.driver-summary span,.driver-summary small{display:block;color:var(--ink-3);font-size:11px}.analysis-kpi-grid strong,.driver-summary strong{display:block;margin:5px 0 3px;color:var(--ink);font-size:17px;line-height:1.25}
.analysis-note,.driver-method{display:flex;gap:10px;align-items:flex-start;margin:12px 0 16px;padding:11px 14px;border-radius:9px;background:#fbfcfe;color:var(--ink-3);font-size:12px;line-height:1.6}.analysis-note b,.driver-method strong{flex:none;color:var(--ink);font-size:12px}
.analysis-sector-list{display:flex;flex-direction:column;gap:16px}.analysis-sector{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}.analysis-sector-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,#f7faff,#fff)}.analysis-sector-head span{display:block;margin-bottom:3px;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.06em}.analysis-sector-head h2{margin:0;color:var(--ink);font-size:15px}.analysis-sector-head small{max-width:500px;color:var(--ink-3);font-size:11px;line-height:1.45;text-align:right}.analysis-table-wrap{overflow-x:auto}.analysis-table{width:100%;min-width:800px;border-collapse:collapse;font-size:12.5px}.analysis-table th,.analysis-table td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}.analysis-table th{background:var(--bg);color:var(--ink-3);font-size:10.5px;font-weight:750}.analysis-table th:first-child,.analysis-table td:first-child{text-align:left}.analysis-table tbody tr:last-child td{border-bottom:0}.analysis-table tbody tr:hover{background:#fafcff}.analysis-table .is-up{color:#1570ef;font-weight:750}.analysis-table .is-down{color:#c5283d;font-weight:750}.analysis-source-tag{display:block;margin-top:4px;color:var(--ink-4);font-size:9.5px;font-weight:600}.analysis-source-tag a{color:var(--ink-4);text-decoration:none}.analysis-source-tag a:hover{color:var(--blue);text-decoration:underline}.analysis-outlier{display:block;margin-top:3px;color:#9a5a04;font-size:9px;font-weight:800}.analysis-sector-note{padding:10px 14px;background:#fbfcfe;color:var(--ink-3);font-size:11.5px;line-height:1.55}.analysis-sector-note b{color:var(--ink)}.analysis-trend{padding:16px 18px;border-top:1px solid var(--line);background:linear-gradient(180deg,#fbfdff,#fff)}.analysis-trend .fin-trend-mode{display:none}.analysis-trend .fin-trend-chart svg{min-width:650px}
.driver-summary{margin-bottom:12px}.driver-summary strong{font-size:16px}.driver-list{display:flex;flex-direction:column;gap:10px}.driver-card{display:grid;grid-template-columns:145px minmax(0,1fr) 132px;gap:16px;align-items:center;padding:15px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.driver-card:hover{border-color:#bfd2ef;box-shadow:0 3px 11px rgba(30,58,100,.06)}.driver-signal{display:flex;flex-direction:column;gap:4px;padding:10px 11px;border-radius:8px;background:#fff4e8;color:#9a5a04}.driver-signal.positive{background:#eaf4ff;color:#1762bd}.driver-signal span{font-size:10px;font-weight:800;letter-spacing:.05em}.driver-signal strong{font-size:14px}.driver-main h2{margin:0;color:var(--ink);font-size:14px}.driver-main p{margin:4px 0 8px;color:var(--ink-3);font-size:11.5px;line-height:1.5}.driver-guides{display:flex;gap:5px;flex-wrap:wrap}.driver-guides span{padding:3px 7px;border-radius:999px;background:var(--bg);color:var(--ink-2);font-size:10.5px}.driver-action{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.driver-action small{color:#a26908;font-size:10.5px;font-weight:700}

@media(max-width:540px){.analysis-controls{align-items:flex-start;flex-direction:column}.analysis-kpi-grid,.driver-summary{grid-template-columns:1fr}.analysis-kpi-grid>div,.driver-summary>div{border-right:0;border-bottom:1px solid var(--line)}.analysis-kpi-grid>div:last-child,.driver-summary>div:last-child{border-bottom:0}.analysis-sector-head{display:block}.analysis-sector-head small{display:block;margin-top:7px;text-align:left}.driver-card{grid-template-columns:1fr;gap:10px}.driver-action{align-items:flex-start}}

@media(max-width:540px){
  .main{padding:18px 14px 32px}
  .page-head h1{font-size:20px}
  .bname{font-size:13px}
  .search-box{grid-template-columns:1fr}
  .page-head{display:block}
  .actions{margin-top:12px}
  .cmd-grid{grid-template-columns:1fr}
  .fin-controls{align-items:flex-start;flex-direction:column;gap:12px}.fin-year-select{margin-left:0}.fin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fin-summary-grid>div:nth-child(2){border-right:0}.fin-summary-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.fin-trend-panel{padding:14px}.fin-trend-head{display:block}.fin-trend-legend{justify-content:flex-start;margin-top:10px}.fin-detail-grid{grid-template-columns:1fr;padding:10px}.fin-details summary span{display:block;margin:4px 0 0}
}

/* ===== 섹션 브리핑 박스 ===== */
.section-brief-box{
  border:1px solid var(--border);border-radius:var(--r);
  background:linear-gradient(180deg,#f6f9ff,var(--surface));
  margin:0 0 20px;overflow:hidden;
}
.law-monitoring-table{margin:0;table-layout:fixed;}
.law-monitoring-table th,.law-monitoring-table td{padding:10px 14px;overflow:hidden;}
.law-monitoring-table tbody tr:last-child td{border-bottom:0;}
.law-monitoring-table tbody tr:hover{background:#f4f7ff;}
.law-title-cell{min-width:0;padding-top:8px;padding-bottom:8px;}
.law-title-row{display:flex;align-items:center;gap:8px;min-width:0;}
.law-title-link{cursor:pointer;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.law-title-link:hover{color:var(--brand);text-decoration:underline;}
.law-src-link{flex:none;color:var(--muted);font-size:12px;text-decoration:none;}
.law-src-link:hover{color:var(--brand);}
.law-title-sub{margin-top:2px;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.law-monitoring-table td.law-ministry-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12.5px;}

/* ── 법령·규제 전용 보드(P0~P2) ── */
#page-feed.law-only .feed-view-switch,
#page-feed.law-only #feed-topic-bar,
#page-feed.law-only #priority-feed-view,
#page-feed.law-only #feed-list-view,
#page-feed.law-only #sectionBriefBox-feed{display:none !important;}

/* ── 기술 레이더 전용 보드 ── */
#page-feed.tech-radar-only .feed-view-switch,
#page-feed.tech-radar-only #feed-topic-bar,
#page-feed.tech-radar-only #priority-feed-view,
#page-feed.tech-radar-only #feed-list-view,
#page-feed.tech-radar-only #sectionBriefBox-feed,
#page-feed.tech-radar-only #sectorCompanyTabs,
#page-feed.tech-radar-only #feed-meta{display:none !important;}
.tech-radar-board{display:flex;flex-direction:column;gap:14px}
.tech-radar-controls{display:flex;flex-direction:column;gap:10px;padding:0 0 12px;border-bottom:1px solid var(--line)}
.tech-radar-filter-block{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:start;gap:10px}
.tech-radar-filter-label{padding-top:7px;font-size:11px;font-weight:850;color:var(--ink-3)}
.tech-radar-chips{display:flex;flex-wrap:wrap;gap:7px}
.tech-radar-chip{padding:6px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink-3);font:inherit;font-size:11.5px;font-weight:750;cursor:pointer}
.tech-radar-chip:hover{border-color:var(--brand-2);color:var(--brand)}
.tech-radar-chip.on{border-color:var(--brand);background:var(--brand);color:#fff}
.tech-radar-chip b{margin-left:3px;font-size:10.5px;opacity:.78}
.tech-radar-meta{padding-left:88px;font-size:11.5px;color:var(--ink-4)}
.tech-radar-list{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface)}
.tech-signal-header,.tech-signal-row{display:grid;grid-template-columns:132px minmax(320px,1.25fr) minmax(260px,.85fr) 24px;column-gap:18px}
.tech-signal-header{align-items:center;padding:9px 16px;background:#f7f9fc;border-bottom:1px solid var(--border);color:var(--ink-4);font-size:10.5px;font-weight:800}
.tech-signal-row{position:relative;align-items:start;padding:16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.tech-signal-row:last-child{border-bottom:0}
.tech-signal-row:hover,.tech-signal-row:focus{outline:none;background:#f7faff}
.tech-signal-classification{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.tech-signal-classification time{font-size:10.5px;color:var(--ink-4)}
.tech-signal-classification strong{font-size:11.5px;color:var(--brand)}
.tech-signal-events{display:flex;flex-wrap:wrap;gap:5px;min-height:18px;margin-bottom:5px}
.tech-signal-change h3{margin:0 0 8px;font-size:14px;line-height:1.45;color:var(--ink)}
.tech-signal-change h3 a{color:inherit;text-decoration:none}
.tech-signal-change p,.tech-signal-judgement p{font-size:11.7px;line-height:1.55;color:var(--ink-2)}
.tech-signal-change p b{margin-right:7px;color:var(--ink-4);font-size:10px}
.tech-signal-judgement>b{display:block;margin-bottom:7px;color:var(--ink-3);font-size:10.5px}
.tech-signal-source{display:block;margin-top:8px;color:var(--ink-4);font-size:10.5px}
.tech-signal-arrow{align-self:center;color:var(--brand);font-size:24px;font-weight:500}
.tech-event-tag,.tech-related-tag,.tech-keyword-tag{display:inline-flex;padding:2px 6px;border-radius:5px;font-size:9.5px;font-weight:750}
.tech-event-tag{background:#eaf5ef;color:#286a43}
.tech-related-tag{background:#edf3fd;color:#375f9d}
.tech-keyword-tag{background:var(--neutral-bg);color:var(--ink-3)}
.tech-maturity{flex:none;padding:4px 7px;border-radius:6px;font-size:10px;font-weight:850;white-space:nowrap}
.tech-maturity-develop_validate{background:#edf3fd;color:#375f9d}
.tech-maturity-field_pilot{background:#f0eafd;color:#65469c}
.tech-maturity-commercial_operation{background:#e7f5ed;color:#247044}
.tech-maturity-scaling{background:#dff3f4;color:#087379}
.tech-maturity-stage_pending,.tech-maturity-pending{background:#fff3dc;color:#8b5d0d}
.tech-radar-card-tags{display:flex;flex-wrap:wrap;gap:5px;min-height:20px;margin-top:10px}
.tech-radar-empty{padding:34px 16px;text-align:center;color:var(--ink-3);font-size:13px}
@media(max-width:1200px){
  .tech-signal-header,.tech-signal-row{grid-template-columns:112px minmax(280px,1fr) minmax(220px,.8fr) 18px;column-gap:12px}
}
@media(max-width:800px){
  .tech-signal-header{display:none}
  .tech-signal-row{grid-template-columns:1fr 20px;row-gap:11px}
  .tech-signal-classification{grid-column:1/2;flex-direction:row;align-items:center;flex-wrap:wrap}
  .tech-signal-change,.tech-signal-judgement{grid-column:1/2}
  .tech-signal-arrow{grid-column:2/3;grid-row:1/4}
}
@media(max-width:620px){
  .tech-radar-filter-block{grid-template-columns:1fr}
  .tech-radar-filter-label{padding-top:0}
  .tech-radar-meta{padding-left:0}
  .tech-signal-row{padding:14px 12px}
}

.law-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 16px 4px;}
.law-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;}
.law-kpi-alert{background:var(--error-bg);border-color:#f4c9d0;}
.law-kpi-n{font-size:23px;font-weight:800;color:var(--ink);line-height:1.1;}
.law-kpi-alert .law-kpi-n{color:var(--error);}
.law-kpi-l{font-size:12px;color:var(--muted);margin-top:2px;}

.law-domain-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 4px;}
.law-chip{font-size:12px;padding:5px 12px;border-radius:999px;border:1px solid var(--border);
  background:var(--surface);color:var(--text);cursor:pointer;transition:.12s;}
.law-chip:hover{border-color:var(--brand-2);color:var(--brand);}
.law-chip.on{background:var(--info-bg);border-color:var(--brand);color:var(--brand);font-weight:700;}
.law-chip b{color:var(--muted);font-weight:600;margin-left:2px;}
.law-chip.on b{color:var(--brand);}

.law-card-list{display:flex;flex-direction:column;gap:8px;padding:8px 16px 16px;}
.law-card{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.12s;}
.law-card:hover{border-color:var(--brand-2);box-shadow:var(--sh);}
.law-card-main{min-width:0;}
.law-card-titlerow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:3px;}
.law-card-name{font-size:14.5px;font-weight:700;color:var(--ink);}
.law-card-type{font-size:11px;color:var(--muted);background:var(--neutral-bg);padding:1px 7px;border-radius:6px;}
.law-card-gist{font-size:12.5px;color:var(--text);line-height:1.5;margin-bottom:5px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.law-card-meta{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.law-card-min{font-weight:600;color:var(--ink-3);}
.law-card-dot{color:var(--muted2);}
.law-domtag{font-size:10.5px;color:var(--violet);background:var(--violet-soft);padding:1px 7px;border-radius:6px;}
.law-card-side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right;}
.law-dday{font-size:11px;font-weight:700;padding:2px 9px;border-radius:6px;white-space:nowrap;}
.law-dday-soon{background:var(--error-bg);color:var(--error);}
.law-dday-up{background:var(--warning-bg);color:var(--warning);}
.law-dday-done{background:var(--success-bg);color:var(--success);}
.law-dday-none{background:var(--neutral-bg);color:var(--neutral);}
.law-empty{padding:28px;text-align:center;color:var(--muted);font-size:13px;}

/* ── 보고서 전용 디자인 렌더러 (일일·주간 브리핑) ── */
.rpt{font-size:14px;color:var(--text);}
.rpt-h{font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.03em;margin:22px 0 8px;}
.rpt-bluf{display:flex;gap:14px;background:var(--info-bg);border-left:3px solid var(--brand);border-radius:0 8px 8px 0;padding:13px 16px;margin-bottom:4px;}
.rpt-bluf-label{flex:none;font-size:11px;font-weight:800;color:var(--brand);line-height:1.3;padding-top:2px;white-space:pre-line;}
.rpt-bluf-text{font-size:15px;line-height:1.55;color:var(--ink);}
.rpt-sigs{display:flex;flex-direction:column;gap:8px;}
.rpt-sig{display:flex;gap:12px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--neutral);border-radius:0 8px 8px 0;padding:11px 14px;}
.rpt-sig.g-high{border-left-color:var(--error);}
.rpt-sig.g-mid{border-left-color:var(--warning);}
.rpt-sig-tag{flex:none;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:40px;}
.rpt-sig-grade{font-size:11px;font-weight:800;padding:1px 8px;border-radius:4px;background:var(--neutral-bg);color:var(--neutral);}
.g-high .rpt-sig-grade{background:var(--error-bg);color:var(--error);}
.g-mid .rpt-sig-grade{background:var(--warning-bg);color:var(--warning);}
.rpt-sig-cat{font-size:10px;color:var(--muted2);}
.rpt-sig-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:2px;}
.rpt-sig-note{font-size:12.5px;color:var(--text);line-height:1.5;}
.rpt-sig-ev{margin-left:6px;color:var(--success);font-weight:600;}
.rpt-jds{display:flex;flex-direction:column;gap:11px;}
.rpt-jd{display:flex;gap:10px;}
.rpt-jd-n{flex:none;font-size:15px;font-weight:800;color:var(--brand);line-height:1.4;}
.rpt-jd-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:3px;}
/* 판단 카드 본문은 변화·영향·근거를 줄로 나눠 쓴다. pre-line이 없으면 세 항목이
   한 문단으로 붙어 사실과 해석의 경계가 사라진다(일일 가이드 §7 QA 2번). */
.rpt-jd-body{font-size:13px;color:var(--text);line-height:1.55;white-space:pre-line;}
.rpt-source-direct{display:inline-flex;align-items:center;margin-left:8px;color:var(--brand);font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.rpt-source-direct:hover{text-decoration:underline}
.rpt-summary{margin-top:12px;background:var(--info-bg);border-radius:8px;padding:11px 14px;font-size:13.5px;color:var(--ink);line-height:1.55;}
.rpt-summary-label{font-weight:800;color:var(--brand);margin-right:7px;}
.rpt-theme{margin-bottom:14px;}
.rpt-theme-title{font-size:14px;font-weight:800;color:var(--ink);margin:16px 0 7px;padding-left:9px;border-left:3px solid var(--brand);}
.rpt-ul{margin:0;padding-left:18px;font-size:13.5px;color:var(--text);line-height:1.6;}
.rpt-ul li{margin:3px 0;}
.rpt-sowhat{margin-top:7px;background:var(--s1-soft);border-radius:6px;padding:8px 12px;font-size:13px;color:var(--ink);}
.rpt-sowhat span{font-weight:800;color:var(--brand);margin-right:7px;}
.rpt-watch{display:flex;flex-direction:column;gap:7px;}
.rpt-watch-item{font-size:13.5px;color:var(--ink);}
.rpt-watch-mark{color:var(--brand);margin-right:8px;font-weight:800;}
.section-brief-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:12px 16px;border-bottom:1px solid var(--line);
}
.section-brief-title{font-weight:800;font-size:15.5px}
.section-brief-meta{font-size:13px;color:var(--ink-3);margin-right:auto}
.section-brief-actions{display:flex;gap:7px;margin-left:auto}
.section-brief-body{padding:0}
.section-brief-empty{padding:16px 18px;color:var(--ink-3);font-size:13.5px;line-height:1.6}
.edit-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 16px}
.section-brief-edit-foot{display:flex;align-items:center;gap:8px;padding:0 16px 14px;flex-wrap:wrap}

/* 브리핑 인포그래픽 — Research Brief 스타일 (Bloomberg/GS Research 벤치마킹) */
.brief-body{}
.brief-section{padding:16px 20px}
.brief-section-impl{background:rgba(0,51,160,.03);border-left:3px solid var(--brand)}
.brief-section-hd{display:flex;align-items:center;gap:7px;font-weight:700;font-size:12.5px;color:var(--ink-3);letter-spacing:.05em;margin-bottom:12px}
.brief-section-impl .brief-section-hd{color:var(--brand);font-size:13px;font-weight:800}
.brief-section-ico{font-size:14px}
.brief-count{font-size:11px;font-weight:700;color:var(--ink-4);background:var(--bg);border-radius:99px;padding:1px 8px;margin-left:4px}
/* 시사점 — 번호+태그+텍스트 리스트 */
.brief-impl-list{list-style:none;padding:0;margin:0}
.brief-impl-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.brief-impl-item:last-child{border-bottom:none}
.brief-impl-num{font-size:11px;font-weight:800;color:var(--ink-4);min-width:20px;text-align:right;flex-shrink:0;padding-top:3px;letter-spacing:.02em}
.brief-impl-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0;margin-top:1px}
.brief-tag-op{background:#e7f6ee;color:#0a7d4d}
.brief-tag-rk{background:#fdecec;color:#c5283d}
.brief-tag-nt{background:#f0f2f7;color:var(--ink-3)}
.brief-impl-body{flex:1;min-width:0}
.brief-impl-head{font-size:14px;font-weight:600;line-height:1.4;color:var(--ink)}
.brief-impl-tail{font-size:12.5px;color:var(--ink-3);margin-top:3px;line-height:1.5}
/* 요약/근거 — 2열 구분선 레이아웃 */
.brief-sub{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.brief-sub-col{padding:16px 20px}
.brief-sub-col+.brief-sub-col{border-left:1px solid var(--line)}
.brief-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.brief-list li{position:relative;padding-left:14px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.brief-list li::before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--brand)}
.brief-list-muted li{color:var(--ink-3);font-size:13px}
.brief-list-muted li::before{background:var(--ink-4)}
/* 참고 기사 출처 */
.brief-sources{display:flex;align-items:flex-start;gap:12px;padding:11px 20px;border-top:1px solid var(--line);background:var(--bg)}
.brief-sources-label{font-size:11px;font-weight:700;color:var(--ink-4);white-space:nowrap;padding-top:3px;letter-spacing:.04em;flex-shrink:0}
.brief-sources-list{display:flex;flex-wrap:wrap;gap:6px}
.brief-src-link{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;background:var(--surface);border:1px solid var(--border);border-radius:4px;text-decoration:none;color:var(--ink-2);transition:border-color .12s,color .12s;max-width:320px}
.brief-src-link:hover{border-color:var(--brand);color:var(--brand)}
.brief-src-link::before{content:"↗";font-size:10px;color:var(--ink-4);flex-shrink:0}
.brief-src-link:hover::before{color:var(--brand)}
.brief-src-title{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.brief-src-origin{font-size:11px;color:var(--ink-4);white-space:nowrap;flex-shrink:0}
@media(max-width:820px){
  .brief-sub{grid-template-columns:1fr}
  .brief-sub-col+.brief-sub-col{border-left:none;border-top:1px solid var(--line)}
  .edit-grid3{grid-template-columns:1fr}
  .brief-src-link{max-width:100%}
}

/* ── 경제 지표 페이지 (P1 KPI 밴드 + P2 스파크라인 카드) ───────────── */
.ind-good{color:var(--success)}
.ind-bad{color:var(--error)}
.ind-flat{color:var(--ink-4)}
.ind-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.ind-toggle{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface)}
.ind-toggle button{border:0;background:none;padding:6px 13px;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer;font-family:inherit}
.ind-toggle button+button{border-left:1px solid var(--border)}
.ind-toggle button.on{background:var(--brand-2,var(--blue));color:#fff}
.ind-kpi-head{font-size:12px;font-weight:800;color:var(--ink-3);margin:2px 0 9px;letter-spacing:.3px}
.ind-kpi-head span{font-weight:600;color:var(--ink-4);letter-spacing:0}
.ind-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px;margin-bottom:20px}
.indicator-workbench{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.indicator-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:14px 18px;background:#fff;border-bottom:1px solid var(--border)}
.indicator-tab{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--r);background:#fff;padding:11px 10px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.indicator-tab:hover{border-color:#8fa7ca;background:#f5f8fd;color:var(--brand)}
.indicator-tab.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 3px 8px rgba(0,51,160,.16)}
.indicator-tab-no{font-size:10px;font-weight:850;letter-spacing:.06em;color:var(--ink-4);font-variant-numeric:tabular-nums}
.indicator-tab-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.indicator-tab-copy strong{font-size:12.5px;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.indicator-tab-arrow{font-size:19px;font-weight:300;line-height:1;color:#8a9ab4}
.indicator-tab.on .indicator-tab-no,.indicator-tab.on .indicator-tab-arrow{color:#cbd9f3}
.indicator-panel{padding:18px 18px 4px}
.indicator-panel-head{display:flex;align-items:baseline;gap:9px;padding:15px 18px 0;color:var(--ink)}
.indicator-panel-head strong{font-size:15px;font-weight:800;letter-spacing:-.2px}
.indicator-panel-head span{font-size:12px;color:var(--ink-4);font-weight:600}
.ind-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px}
.ind-kpi-label{font-size:12px;color:var(--ink-3);font-weight:700;display:flex;flex-direction:column;gap:1px;margin-bottom:5px}
.ind-kpi-label span{font-size:10.5px;color:var(--ink-4);font-weight:600}
.ind-kpi-val{font-size:23px;font-weight:800;color:var(--ink);letter-spacing:-.4px;font-variant-numeric:tabular-nums;line-height:1.1}
.ind-kpi-delta{font-size:12.5px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}
.ind-kpi-spark{height:26px;margin-top:6px}
.ind-kpi .ind-spark{width:100%;height:26px;display:block}
/* KPI 카드는 의미 색상을 델타·스파크라인에 상속 */
.ind-kpi.ind-good .ind-kpi-delta,.ind-kpi.ind-good .ind-kpi-spark{color:var(--success)}
.ind-kpi.ind-bad .ind-kpi-delta,.ind-kpi.ind-bad .ind-kpi-spark{color:var(--error)}
.ind-kpi.ind-flat .ind-kpi-delta{color:var(--ink-4)}
.ind-kpi.ind-flat .ind-kpi-spark{color:var(--blue)}

.ind-card{margin-bottom:16px}
.ind-card header h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ind-src{font-size:12px;color:var(--muted)}
.ind-tag{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:20px;letter-spacing:.2px}
.ind-tag.t-cost{background:var(--error-bg);color:#8f2033}
.ind-tag.t-demand{background:var(--success-bg,#E4F3E9);color:#1f5c37}
.ind-tag.t-policy{background:var(--bg);color:var(--ink-3)}
.ind-rows{display:flex;flex-direction:column}
.ind-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto 120px;align-items:center;gap:12px;padding:9px 2px;border-top:1px solid var(--line)}
.ind-row:first-child{border-top:0}
.ind-row-label{display:flex;flex-direction:column;gap:1px;min-width:0}
.ind-row-name{font-size:12.5px;font-weight:650;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ind-row-unit{font-size:10.5px;color:var(--ink-4)}
.ind-row-val{font-size:15px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;gap:0}
.ind-row-period{font-size:10px;font-weight:600;color:var(--ink-4)}
.ind-row-delta{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;min-width:64px}
.ind-row-spark{height:30px}
.ind-row-spark .ind-spark{width:120px;height:30px;display:block}
.ind-row-spark.ind-flat{color:var(--ink-3)}
.ind-series-more{margin-top:3px;border-top:1px solid var(--line)}
.ind-series-more>summary{padding:10px 2px 3px;font-size:11.5px;font-weight:750;color:var(--ink-3);cursor:pointer;list-style:revert}
.ind-series-more[open]>summary{padding-bottom:7px}
.ind-raw{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.ind-raw summary{font-size:11.5px;font-weight:700;color:var(--ink-3);cursor:pointer;list-style:revert}
.ind-raw-scroll{max-width:100%;overflow-x:auto;margin-top:8px;padding-bottom:5px;scrollbar-gutter:stable}
.ind-raw-table{width:max-content;min-width:100%;table-layout:auto;margin:0}
.ind-raw-table th,.ind-raw-table td{white-space:nowrap;vertical-align:middle}
.ind-raw-table .ind-raw-name{position:sticky;left:0;z-index:2;width:240px;min-width:240px;max-width:240px;padding-left:12px;text-align:left;white-space:normal;word-break:keep-all;overflow-wrap:normal;font-size:12px;font-weight:650;background:var(--surface)}
.ind-raw-table thead .ind-raw-name{z-index:4}
.ind-raw-table .ind-raw-unit{position:sticky;left:240px;z-index:2;width:78px;min-width:78px;text-align:left;font-size:11px;color:var(--muted);background:var(--surface);box-shadow:8px 0 10px -10px rgba(20,35,60,.45)}
.ind-raw-table thead .ind-raw-unit{z-index:4}
.ind-raw-table .ind-raw-period,.ind-raw-table .ind-raw-value{min-width:86px;text-align:right;font-variant-numeric:tabular-nums}
.ind-raw-table .ind-raw-period{font-size:11px}
.ind-raw-table .ind-raw-value{font-size:12px}
.ind-raw-table th:last-child,.ind-raw-table td:last-child{padding-right:16px}
.ind-source-note{margin-top:7px;font-size:11px;line-height:1.5;color:var(--ink-4)}
@media(max-width:720px){
  .ind-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'label val' 'delta spark';row-gap:4px}
  .ind-row-label{grid-area:label}.ind-row-val{grid-area:val}
  .ind-row-delta{grid-area:delta;text-align:left}.ind-row-spark{grid-area:spark;justify-self:end}
}

/* P4 관점 해석 문구 */
.ind-note{margin-top:11px;padding:9px 12px;background:var(--info-bg);border-radius:9px;font-size:12px;line-height:1.55;color:var(--ink-2)}
.ind-note.warn{background:var(--error-bg);color:#7a2233}
/* P5 핵심/보조 위계 */
.ind-section-head{font-size:13px;font-weight:800;color:var(--ink);margin:6px 0 12px;letter-spacing:.2px}
.ind-section-head span{font-weight:600;color:var(--ink-4);font-size:12px;letter-spacing:0}
.ind-secondary{margin-top:4px}
.ind-secondary>summary{font-size:12.5px;font-weight:800;color:var(--ink-2);cursor:pointer;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;list-style:revert;margin-bottom:14px}
.ind-secondary>summary span{font-weight:600;color:var(--ink-4);font-size:11.5px}
.ind-secondary[open]>summary{margin-bottom:16px}
.ind-all-data{margin-top:16px}
.ind-source-empty{margin-bottom:16px}
@media(max-width:720px){
  .indicator-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px}
  .indicator-tab{padding:10px 9px}
  .indicator-tab-copy strong{font-size:12px}
  .indicator-panel{padding:14px 12px 2px}
  .indicator-panel-head{display:block;padding:13px 12px 0}
}

/* ── 경쟁사 수주 현황 페이지 ─────────────────────────── */
.aw-tabs{display:flex;gap:8px;margin-bottom:16px}
.aw-tabs button{border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:7px 15px;font-size:13px;font-weight:700;color:var(--ink-3);cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:7px}
.aw-tabs button span{font-size:11px;background:var(--bg);color:var(--ink-3);border-radius:10px;padding:1px 8px;font-weight:800}
.aw-tabs button.on{background:var(--info-bg);border-color:var(--brand-2);color:var(--brand)}
.aw-tabs button.on span{background:var(--brand-2);color:#fff}
.aw-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px;margin-bottom:16px}
.aw-kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 15px}
.aw-kpi-label{font-size:12px;color:var(--ink-3);font-weight:700;margin-bottom:6px}
.aw-kpi-val{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.5px;line-height:1.1;font-variant-numeric:tabular-nums}
.aw-kpi-val span{font-size:14px;font-weight:700;margin-left:1px}
.aw-kpi-val.aw-kpi-name{font-size:20px}
.aw-kpi-sub{font-size:11px;color:var(--ink-4);margin-top:4px}
.aw-card{margin-bottom:16px}
.aw-company-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin:2px 0 10px;scrollbar-width:thin}
.aw-company-tabs button{flex:0 0 auto;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:9px 13px;color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;text-align:left}
.aw-company-tabs button:hover{border-color:#8fa7ca;background:#f5f8fd;color:var(--brand)}
.aw-company-tabs button.on{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 3px 8px rgba(0,51,160,.16)}
.aw-month-card{margin-bottom:16px}
.aw-month-card header{align-items:baseline}
.aw-month-card header>strong{font-size:16px;color:var(--brand);font-variant-numeric:tabular-nums;white-space:nowrap}
.aw-month-scroll{overflow-x:auto;max-width:100%;scrollbar-gutter:stable}
.aw-month-table{width:max-content;min-width:100%;margin:0;border-collapse:separate;border-spacing:0}
.aw-month-table th,.aw-month-table td{min-width:88px;padding:10px 12px;text-align:right;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line)}
.aw-month-table thead th{background:var(--bg);color:var(--ink-3);font-size:11px;font-weight:800}
.aw-month-table th:first-child{position:sticky;left:0;z-index:2;min-width:142px;text-align:left;background:var(--surface);color:var(--ink-2);font-weight:800}
.aw-month-table thead th:first-child{z-index:4;background:var(--bg)}
.aw-month-table tbody th span{display:block;margin-top:2px;color:var(--ink-4);font-size:10.5px;font-weight:600}
.aw-month-table td.is-zero{color:var(--ink-4);font-weight:600}
.aw-month-table td.aw-month-total{font-weight:850;color:var(--ink)}
.aw-month-table .aw-month-self th,.aw-month-table .aw-month-self td{background:#f3f7fd;color:var(--brand);font-weight:850}
.aw-month-table tfoot th,.aw-month-table tfoot td{background:var(--bg);color:var(--ink);font-weight:850;border-bottom:0}
.aw-rank{display:flex;flex-direction:column;gap:11px}
.aw-rank-row{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:12px}
.aw-rank-name{font-size:13px;font-weight:700;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aw-rank-name span{font-weight:500;color:var(--ink-4);font-size:11.5px}
.aw-rank-bar{height:14px;background:var(--bg);border-radius:7px;overflow:hidden}
.aw-rank-bar i{display:block;height:100%;border-radius:7px;min-width:3px}
.aw-rank-val{font-size:13px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.aw-controls{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.aw-view-switch{display:flex;gap:3px;padding:3px;background:var(--bg);border:1px solid var(--border);border-radius:10px}
.aw-view-switch button{border:0;background:transparent;border-radius:7px;padding:6px 10px;color:var(--ink-3);font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.aw-view-switch button.on{background:var(--surface);box-shadow:0 1px 2px rgba(15,23,42,.12);color:var(--brand)}
.aw-controls select{border:1px solid var(--border);border-radius:9px;padding:7px 11px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--surface);font-family:inherit;cursor:pointer}
.aw-noise-btn{border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:7px 12px;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer;font-family:inherit}
.aw-noise-btn.on{background:var(--info-bg);border-color:var(--brand-2);color:var(--brand)}
.aw-summary-link{display:block;width:100%;border:0;border-top:1px solid var(--line);padding:10px 16px;background:var(--surface);color:var(--brand);font:inherit;font-size:12px;font-weight:750;text-align:left;cursor:pointer}
.aw-summary-link:hover{background:#f5f8fd;text-decoration:underline}
.aw-list-card{margin-bottom:16px}
.aw-list-card header{align-items:baseline}
.aw-filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px}
.aw-filter-chip{border:1px solid var(--border);border-radius:999px;padding:6px 11px;background:var(--surface);font:inherit;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer}
.aw-filter-chip:hover{border-color:var(--brand-2);color:var(--brand)}
.aw-filter-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.aw-pager{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:14px}
.aw-pager button{min-width:31px;border:1px solid var(--border);border-radius:7px;padding:6px 8px;background:var(--surface);font:inherit;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer}
.aw-pager button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.aw-pager button:disabled{opacity:.4;cursor:default}
/* 섹션 카드 */
.aw-sec{margin-bottom:14px;padding:0;overflow:hidden}
.aw-sec-head{display:flex;align-items:center;gap:10px;padding:11px 16px;border-left:3px solid var(--sc,var(--brand-2));flex-wrap:wrap}
.aw-sec-name{font-size:14px;font-weight:800}
.aw-sec-comp{font-size:11.5px;font-weight:600;opacity:.85}
.aw-sec-sum{margin-left:auto;font-size:13px;font-weight:800;white-space:nowrap}
.aw-sec-empty{padding:14px 16px;font-size:12.5px;color:var(--ink-4);border-top:1px solid var(--line)}
.aw-sec-note{padding:8px 16px;font-size:11.5px;color:var(--ink-4);border-top:1px solid var(--line);background:var(--bg)}
.aw-link{color:var(--brand);cursor:pointer;font-weight:700}
/* 깔끔한 2줄 행 */
.aw-sec-list{display:flex;flex-direction:column}
.aw-row{display:flex;align-items:baseline;gap:14px;padding:12px 16px;border-top:1px solid var(--line)}
.aw-row-body{flex:1;min-width:0}
.aw-row-title{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.4}
.aw-row-title a{color:var(--ink);text-decoration:none}
.aw-row-title a:hover{color:var(--brand);text-decoration:underline}
.aw-row-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:4px;font-size:11.5px;color:var(--ink-4)}
.aw-row-meta .co{font-weight:700;color:var(--ink-3)}
.aw-row-meta .inst{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.aw-row-meta .date{white-space:nowrap}
.aw-row-meta .pill{padding:1px 7px;border-radius:5px;background:var(--bg);color:var(--ink-3);font-weight:600}
.aw-row-meta .pill.method-priv{background:#FAECE7;color:#8f3b1d}
.aw-row-meta .pill.method-comp{background:var(--success-bg);color:#1f5c37}
.aw-row-meta .pill.kw-sec{background:var(--info-bg);color:var(--brand)}
.aw-row-meta .pill.kw-noise{background:var(--bg);color:var(--ink-4)}
.aw-row-amt{font-size:15.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}
.aw-row.is-noise{opacity:.5}
.aw-row.is-noise .aw-row-title{font-weight:500}
.aw-more{border-top:1px solid var(--line)}
.aw-more>summary{padding:10px 16px;font-size:12px;font-weight:700;color:var(--brand);cursor:pointer;list-style:revert}
.aw-more[open]>summary{color:var(--ink-3)}
.aw-more .aw-row:first-child{border-top:1px solid var(--line)}
.aw-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.aw-list .aw-row:first-child{border-top:0}
@media(max-width:720px){
  .aw-company-tabs{margin-left:-1px;margin-right:-1px}
  .aw-rank-row{grid-template-columns:1fr auto;grid-template-areas:'name val' 'bar bar';row-gap:5px}
  .aw-rank-name{grid-area:name}.aw-rank-val{grid-area:val}.aw-rank-bar{grid-area:bar}
  .aw-row{flex-wrap:wrap}.aw-row-amt{order:-1}
}

/* ===== 회사별 보기 — 섹터별 회사 탭 + 인라인 타임라인 ===== */
.ctab-bar{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.ctab-sec{display:flex;flex-direction:column;gap:7px}
.ctab-sec-label{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase}
.ctab-row{display:flex;flex-wrap:wrap;gap:8px}
.ctab{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;
  background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;
  transition:background .12s,color .12s,border-color .12s,box-shadow .12s,transform .12s}
.ctab:hover{border-color:#b9cdf0;color:var(--brand);background:#f2f6fd;transform:translateY(-1px)}
.ctab.on{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 3px 9px rgba(0,51,160,.24)}
.company-panel{border-top:1px solid var(--line);padding-top:14px}
.company-panel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.company-panel-head strong{font-size:15px;font-weight:850;color:var(--ink)}
.company-panel-name-sec{font-size:11.5px;font-weight:800;color:var(--brand);background:var(--info-bg);border-radius:6px;padding:2px 8px;margin-left:7px}
.company-panel-empty{color:var(--muted);font-size:13px;padding:18px 0;text-align:center}

/* ===== 경쟁사 딜 흐름 ===== */
.deal-intro{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:14px 16px;border:1px solid var(--s1-line);border-radius:10px;background:linear-gradient(105deg,#f7faff,#fff)}
.deal-intro strong{color:var(--brand);font-size:13px}.deal-intro span{color:var(--ink-3);font-size:12.5px}
.deal-company-tabs{display:flex;gap:7px;overflow-x:auto;margin:0 0 14px;padding-bottom:2px;scrollbar-width:thin}
.deal-company-tab{flex:0 0 auto;padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink-3);font-size:12.5px;font-weight:750}
.deal-company-tab:hover{border-color:var(--brand);color:var(--brand)}.deal-company-tab.on{border-color:var(--brand);background:var(--brand);color:#fff}
.deal-auto-note{margin:0 0 12px;padding:10px 13px;border-left:3px solid var(--brand-2);border-radius:4px;background:var(--info-bg);color:var(--ink-2);font-size:12px}.deal-auto-note b{margin-right:6px;color:var(--brand)}
.deal-list{display:grid;gap:16px}.deal-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--sh);overflow:hidden}
.deal-card-head{display:flex;justify-content:space-between;gap:22px;padding:18px 20px 16px;border-bottom:1px solid var(--line);background:linear-gradient(105deg,#fff,#f8fbff)}
.deal-company-chips{display:flex;gap:6px;margin-bottom:7px}.deal-company-chips span{padding:2px 7px;border-radius:5px;background:var(--neutral-bg);color:var(--ink-3);font-size:10.5px;font-weight:800}
.deal-card h2{font-size:17px;color:var(--ink);letter-spacing:-.2px}.deal-card-head p{margin-top:4px;color:var(--ink-3);font-size:12px}
.deal-current{min-width:250px;display:flex;align-items:flex-end;flex-direction:column;text-align:right;gap:5px}.deal-current strong{max-width:370px;color:var(--ink-2);font-size:12.5px;line-height:1.45}.deal-current small{color:var(--ink-4);font-size:11px}
.deal-stage{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:850;line-height:1;white-space:nowrap}.deal-stage-signal{background:var(--neutral-bg);color:var(--ink-3)}.deal-stage-launch{background:#eef4ff;color:#285bb5}.deal-stage-bid{background:#f4edff;color:#63429d}.deal-stage-preferred{background:#e6f5eb;color:#167042}.deal-stage-sign{background:#dff3f4;color:#087379}.deal-stage-closed{background:#e0f0ff;color:#0c5b9c}.deal-stage-cancel{background:var(--error-bg);color:var(--error)}
.deal-coverage{padding:9px 20px;color:var(--ink-4);font-size:11.5px;border-bottom:1px solid var(--line)}
.deal-track{padding:4px 20px 8px}.deal-event{position:relative;display:grid;grid-template-columns:92px 18px minmax(0,1fr);gap:10px;min-height:112px;padding:16px 0}.deal-event:not(:last-child):before{content:"";position:absolute;left:101px;top:35px;bottom:-5px;width:1px;background:#d9e4f3}.deal-event-date{padding-top:4px;color:var(--ink-3);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.deal-event-dot{position:relative;z-index:1;width:10px;height:10px;margin:7px 0 0 4px;border:2px solid var(--brand-2);border-radius:50%;background:#fff}.deal-event-body{min-width:0}.deal-event-top{display:flex;align-items:center;gap:7px;margin-bottom:6px}.deal-evidence{color:var(--ink-4);font-size:11px;font-weight:700}.deal-event-body strong{display:block;color:var(--ink);font-size:13.5px;line-height:1.45}.deal-event-body p{margin-top:5px;color:var(--ink-2);font-size:12.5px;line-height:1.55}.deal-event-body .deal-limit{color:var(--warning);font-size:12px}.deal-references{margin-top:10px;border:1px solid #d9e5f4;border-radius:8px;background:#f8fbff}.deal-references summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;color:var(--ink-2);font-size:11.5px;font-weight:800;cursor:pointer;list-style:none}.deal-references summary::-webkit-details-marker{display:none}.deal-references summary:before{content:"▾";margin-right:6px;color:var(--brand);font-size:11px}.deal-references:not([open]) summary:before{content:"▸"}.deal-references summary>span:first-child{display:flex;align-items:center}.deal-references summary b{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:5px;padding:0 4px;border-radius:999px;background:#e8f0ff;color:var(--brand);font-size:10px}.deal-references-hint{color:var(--ink-4);font-size:10.5px;font-weight:650}.deal-source-list{display:grid;gap:6px;padding:0 8px 8px}.deal-source-item{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:8px;padding:8px;border:1px solid #e3ebf5;border-radius:6px;background:#fff;color:var(--ink);text-decoration:none}.deal-source-item:hover{border-color:#a9c4ec;background:#fbfdff}.deal-source-publisher{padding:2px 5px;border-radius:4px;background:var(--neutral-bg);color:var(--ink-3);font-size:10px;font-weight:800;white-space:nowrap}.deal-source-item strong{overflow:hidden;color:var(--ink-2);font-size:11.5px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.deal-source-open{color:var(--blue);font-size:10.5px;font-weight:800;white-space:nowrap}.deal-empty{padding:34px 16px;border:1px dashed var(--border);border-radius:10px;color:var(--ink-3);text-align:center;font-size:13px}
@media (max-width:700px){.deal-card-head{flex-direction:column;gap:12px;padding:16px}.deal-current{min-width:0;align-items:flex-start;text-align:left}.deal-coverage{padding:9px 16px}.deal-track{padding:4px 16px 8px}.deal-event{grid-template-columns:74px 15px minmax(0,1fr);gap:8px}.deal-event:not(:last-child):before{left:81px}.deal-event-date{font-size:11px}.deal-source-item{grid-template-columns:max-content minmax(0,1fr)}.deal-source-open{display:none}.deal-source-item strong{font-size:11px}.deal-references-hint{display:none}}

/* 사업부 분기 매출은 연간 공시 구성비를 적용한 추정치임을 표에서 분명히 구분한다. */
.analysis-estimate-tag{display:inline-flex;align-items:center;margin:3px 0 0 5px;padding:2px 5px;border-radius:999px;background:#fff4e7;color:#9a5a04;font-size:9px;font-weight:800;vertical-align:middle}

/* ═══════════════ 분기 보고서 익제큐티브 대시보드 (.qrpt-*) ═══════════════ */
.qrpt{max-width:940px;margin:0 auto;color:var(--ink-2);font-size:14px}
.qrpt-cover{position:relative;overflow:hidden;border-radius:16px;padding:34px 34px 30px;background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand) 60%,var(--brand-2) 130%);color:#fff;box-shadow:0 10px 30px rgba(0,27,77,.22)}
.qrpt-cover::after{content:"";position:absolute;right:-70px;top:-70px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%)}
.qrpt-cover-mark{font-size:12px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.82);text-transform:uppercase}
.qrpt-cover-mark b{font-weight:800;color:#fff}
.qrpt-cover-title{margin:12px 0 8px;font-size:30px;font-weight:900;line-height:1.22;letter-spacing:-.02em;color:#fff}
.qrpt-cover-pub{font-size:13px;color:rgba(255,255,255,.85);font-weight:500}
.qrpt-kpis{position:relative;display:flex;flex-wrap:wrap;gap:11px;margin-top:22px}
.qrpt-kpi{flex:1 1 120px;min-width:120px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);border-radius:11px;padding:13px 15px}
.qrpt-kpi-v{font-size:23px;font-weight:900;line-height:1.05;letter-spacing:-.02em;color:#fff}
.qrpt-kpi-l{margin-top:5px;font-size:11px;font-weight:600;color:rgba(255,255,255,.82)}
.qrpt-kpi-up .qrpt-kpi-v{color:#8CF0C0}
.qrpt-kpi-accent .qrpt-kpi-v{color:#FFD98A}
.qrpt-nav{position:sticky;top:0;z-index:20;display:flex;gap:7px;flex-wrap:wrap;margin:16px 0 4px;padding:10px 4px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.qrpt-nav-btn{border:1px solid var(--border);background:var(--surface);color:var(--ink-3);font-family:inherit;font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:999px;cursor:pointer;transition:all .15s}
.qrpt-nav-btn:hover{border-color:var(--brand-2);color:var(--brand-2)}
.qrpt-nav-btn.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(0,51,160,.25)}
.qrpt-sec{scroll-margin-top:72px;padding-top:14px}
.qrpt-chapter{display:flex;align-items:center;gap:13px;margin:22px 0 16px}
.qrpt-chapter-num{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:19px;font-weight:900;box-shadow:0 4px 12px rgba(0,51,160,.22)}
.qrpt-chapter-title{font-size:21px;font-weight:850;letter-spacing:-.01em;color:var(--ink)}
.qrpt-section{margin:26px 0 12px;font-size:15.5px;font-weight:800;color:var(--brand);padding-left:12px;border-left:4px solid var(--brand)}
.qrpt-block{display:inline-block;margin:20px 0 11px;padding:5px 13px;border-radius:8px;background:var(--s1-soft);color:var(--brand-dark);font-size:12.5px;font-weight:800;letter-spacing:.01em}
.qrpt-headline{display:flex;gap:10px;align-items:flex-start;margin:14px 0 8px;padding:12px 15px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:0 10px 10px 0;font-size:14.5px;font-weight:750;line-height:1.5;color:var(--ink);box-shadow:var(--sh)}
.qrpt-headline-mark{flex:none;width:8px;height:8px;margin-top:6px;border-radius:2px;background:var(--brand)}
.qrpt-dash,.qrpt-dot{position:relative;line-height:1.62;color:var(--ink-2);font-size:13.5px}
.qrpt-dash{margin:5px 0 5px 17px;padding-left:15px}
.qrpt-dash::before{content:"";position:absolute;left:0;top:10px;width:7px;height:2px;border-radius:2px;background:var(--ink-4)}
.qrpt-dot{margin:4px 0 4px 34px;padding-left:14px}
.qrpt-dot::before{content:"";position:absolute;left:0;top:8px;width:4px;height:4px;border-radius:50%;background:var(--brand-2)}
.qrpt-note{margin:5px 0 5px 17px;font-size:11.5px;line-height:1.55;color:var(--ink-4)}
.qrpt-p{margin:6px 0;line-height:1.6;color:var(--ink-2)}
.qrpt-table-wrap{margin:12px 0 14px;overflow-x:auto;border-radius:11px;border:1px solid var(--border);box-shadow:var(--sh)}
.qrpt-table{width:100%;border-collapse:collapse;font-size:12.8px;background:var(--surface)}
.qrpt-table thead th{background:var(--s1-soft);color:var(--brand-dark);font-weight:800;text-align:center;padding:10px 12px;border-bottom:2px solid var(--s1-line);white-space:nowrap}
.qrpt-table td{padding:9px 12px;text-align:center;border-bottom:1px solid var(--line);color:var(--ink-2)}
.qrpt-table tbody tr:last-child td{border-bottom:0}
.qrpt-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--s1-soft) 34%,transparent)}
.qrpt-td-key{text-align:left!important;font-weight:750;color:var(--ink)}
.qrpt-td-num{font-variant-numeric:tabular-nums;font-weight:700}
.qrpt-td-up{color:var(--success)}
.qrpt-td-down{color:var(--error)}
.qrpt-tip{margin:14px 0 18px;padding:14px 16px 15px;border-radius:12px;border:1px solid var(--border);border-left:4px solid var(--brand);background:var(--s1-soft)}
.qrpt-tip-opp{border-left-color:var(--success);background:var(--success-bg)}
.qrpt-tip-risk{border-left-color:var(--error);background:var(--error-bg)}
.qrpt-tip-neu{border-left-color:var(--brand);background:var(--s1-soft)}
.qrpt-tip-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;margin-bottom:9px}
.qrpt-tip-opp .qrpt-tip-label{color:var(--success)}
.qrpt-tip-risk .qrpt-tip-label{color:var(--error)}
.qrpt-tip-neu .qrpt-tip-label{color:var(--brand)}
.qrpt-tip-dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.qrpt-tip-item+.qrpt-tip-item{margin-top:11px;padding-top:11px;border-top:1px dashed color-mix(in srgb,var(--ink-4) 40%,transparent)}
.qrpt-tip-head{display:flex;gap:8px;align-items:flex-start;font-size:13.8px;font-weight:750;line-height:1.5;color:var(--ink)}
.qrpt-tip-check{flex:none;width:18px;height:18px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;color:#fff;background:var(--brand)}
.qrpt-tip-opp .qrpt-tip-check{background:var(--success)}
.qrpt-tip-risk .qrpt-tip-check{background:var(--error)}
.qrpt-tip-note{margin:5px 0 0 26px;font-size:11.6px;line-height:1.55;color:var(--ink-3)}
.qrpt-co{margin:12px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden;box-shadow:var(--sh)}
.qrpt-co-head{display:flex;align-items:center;gap:10px;padding:11px 15px;background:color-mix(in srgb,var(--s1-soft) 55%,transparent);border-bottom:1px solid var(--border)}
.qrpt-co-badge{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:14px;font-weight:800}
.qrpt-co-name{font-size:14.5px;font-weight:850;color:var(--ink)}
.qrpt-co-body{padding:11px 15px 13px}
.qrpt-co-body .qrpt-dash{margin-left:2px}
.qrpt-co-body .qrpt-note{margin-left:2px}
.qrpt-co-body .qrpt-headline{margin-top:2px}
.qrpt-exec{margin:18px 0 8px;border-radius:14px;padding:20px 22px 22px;background:linear-gradient(180deg,var(--s1-soft),color-mix(in srgb,var(--s1-soft) 30%,var(--surface)));border:1px solid var(--s1-line)}
.qrpt-exec-label{font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--brand);margin-bottom:14px}
.qrpt-exec-subh{font-size:13.5px;font-weight:850;color:var(--ink);margin:14px 0 7px}
.qrpt-exec-grid>.qrpt-exec-subh:first-child{margin-top:0}
.qrpt-exec-pt{position:relative;margin:6px 0;padding-left:16px;font-size:13.3px;line-height:1.55;color:var(--ink-2);font-weight:600}
.qrpt-exec-pt::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:2px;background:var(--brand-2)}
.qrpt-exec-sub{margin:3px 0 3px 16px;font-size:12.3px;line-height:1.5;color:var(--ink-3)}
.qrpt-exec-note{margin:3px 0 3px 16px;font-size:11.2px;color:var(--ink-4)}
.qrpt-exec-tips{margin-top:16px;padding-top:15px;border-top:1px solid var(--s1-line)}
.qrpt-exec-tips-label{font-size:12px;font-weight:900;letter-spacing:.04em;color:var(--brand-dark);margin-bottom:11px}
.qrpt-exec-tip{display:flex;gap:11px;align-items:flex-start;margin:9px 0;padding:11px 13px;border-radius:10px;background:var(--surface);border:1px solid var(--s1-line);font-size:13.3px;font-weight:700;line-height:1.5;color:var(--ink)}
.qrpt-exec-tip-n{flex:none;width:23px;height:23px;border-radius:7px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:12px;font-weight:900}
.qrpt-end{margin:26px 0 6px;text-align:right;font-size:12.5px;font-weight:700;color:var(--ink-4);letter-spacing:.1em}
@media(max-width:680px){
  .qrpt-cover{padding:24px 20px}
  .qrpt-cover-title{font-size:23px}
  .qrpt-kpi{flex:1 1 100%;min-width:0}
  .qrpt-chapter-title{font-size:18px}
  .qrpt-nav{gap:5px;padding:8px 2px}
  .qrpt-nav-btn{font-size:11.5px;padding:6px 11px}
}
