@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@400;500;600;700&display=swap');
:root { --ink:#17231d; --paper:#f3f0e8; --line:#c9c5ba; --green:#1d6047; --lime:#d9ef80; --red:#b44135; --amber:#a66d12; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'IBM Plex Sans KR',sans-serif; }
.topbar { height:72px; padding:0 max(24px,5vw); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; color:inherit; text-decoration:none; font-weight:700; }
.brand span { display:inline-grid; place-items:center; width:54px; height:34px; background:var(--ink); color:var(--lime); border-radius:5px; font-size:15px; letter-spacing:.06em; }
.brand small { font-size:14px; letter-spacing:-.02em; }
.source,.report-meta { color:#657068; font-size:13px; }
main { width:min(1160px,90vw); margin:auto; }
.hero { padding:46px 0 42px; border-bottom:1px solid var(--line); }
.eyebrow { color:var(--green); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
h1 { margin:8px 0 12px; max-width:760px; font-size:clamp(28px,4vw,42px); line-height:1.25; letter-spacing:-.045em; }
.lead { max-width:760px; margin:0; color:#536057; font-size:16px; line-height:1.7; }
.search-box { position:relative; margin-top:28px; max-width:760px; }
.search-box label { display:block; margin-bottom:9px; font-size:13px; font-weight:600; }
.search-row { display:flex; padding:7px; background:#fff; border:1px solid var(--ink); box-shadow:6px 6px 0 var(--ink); }
.search-box.is-loading .search-row { border-color:var(--green); box-shadow:6px 6px 0 var(--green); cursor:progress; }
.search-box.is-loading input { cursor:progress; }
input { flex:1; min-width:0; padding:15px; border:0; outline:0; font:inherit; font-size:17px; }
button { padding:0 24px; border:0; background:var(--ink); color:#fff; font:inherit; font-weight:700; cursor:pointer; }
button:hover { background:var(--green); }
button:disabled { opacity:.55; cursor:wait; }
#search-submit { min-width:128px; display:inline-flex; align-items:center; justify-content:center; gap:9px; }
.button-spinner { display:none; width:16px; height:16px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; }
.search-box.is-loading .button-spinner { display:inline-block; animation:search-spin .75s linear infinite; }
@keyframes search-spin { to { transform:rotate(360deg); } }
.suggestions { position:absolute; z-index:2; top:100%; width:100%; margin-top:10px; background:#fff; border:1px solid var(--ink); }
.suggestions button { width:100%; padding:14px 18px; display:flex; justify-content:space-between; background:#fff; color:var(--ink); border-bottom:1px solid var(--line); text-align:left; }
.principles { display:flex; flex-wrap:wrap; gap:8px; margin-top:26px; }
.principles span { padding:7px 12px; border:1px solid var(--line); border-radius:99px; font-size:12px; }
.state { padding:60px 0; color:#657068; }
.daily-radar { padding:58px 0; border-bottom:1px solid var(--line); }
.bridge-status { margin-left:auto; padding:7px 10px; border:1px solid #b8c7bd; border-radius:999px; color:#315c43; background:#edf5ef; font-size:11px; white-space:nowrap; }
.bridge-status[data-mode="fallback"] { color:#86591f; border-color:#d8bd91; background:#fff5e5; }
.bridge-status[data-mode="checking"] { color:#68726b; background:#f3f1eb; }
.daily-head h2 { margin:5px 0 8px; font-size:34px; }.daily-head p { margin:0; color:#68726b; }
.daily-stats { display:flex; gap:10px; margin:26px 0 16px; flex-wrap:wrap; }.daily-stats span { padding:10px 14px; background:#e5e1d6; font-size:12px; }.daily-stats strong { margin-left:5px; font-size:16px; }
.ranking-list { max-height:760px; overflow:auto; padding-right:4px; }
.ranking-item b { color:#1f3b31; }
.ranking-comparison { margin:9px 0; padding:9px 10px; background:rgba(229,225,214,.48); border-left:2px solid var(--green); }.ranking-comparison h5 { margin:0 0 7px; font-size:11px; color:#3f5147; }.ranking-comparison ul { margin:0; padding:0; list-style:none; }.ranking-comparison li { display:grid; grid-template-columns:1fr auto; gap:2px 8px; padding:5px 0; border-top:1px solid rgba(31,59,49,.1); font-size:11px; }.ranking-comparison li:first-child { border-top:0; }.ranking-comparison li span { font-weight:700; }.ranking-comparison li small { grid-column:1/-1; color:#7b847d; }
.ranking-company-meta { display:flex; flex-direction:column; align-items:flex-end; }.special-listing { margin-top:3px; color:#8a5a00; font-size:10px; font-style:normal; font-weight:700; }.ranking-weakness { margin:7px 0; color:#8b3d32; }.ranking-weakness summary { display:flex; align-items:center; gap:5px; width:max-content; cursor:pointer; color:#8b3d32; font-size:11px; font-weight:700; list-style:none; }.ranking-weakness summary::-webkit-details-marker { display:none; }.ranking-weakness summary span { display:inline-block; font-size:17px; line-height:1; transition:transform .18s ease; }.ranking-weakness[open] summary span { transform:rotate(90deg); }.ranking-weakness p { margin:7px 0 0; padding:7px 8px; border-left:2px solid rgba(139,61,50,.45); background:rgba(139,61,50,.06); color:#8b3d32 !important; font-size:11px; }
.ranking-history { padding:7px 8px; background:#f2e5bd; color:#6f5420 !important; }.ranking-history small { color:#8a7752; }
.daily-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.daily-column { min-width:0; padding:20px; background:rgba(255,255,255,.45); border:1px solid var(--line); }.daily-column h3 { margin:0 0 5px; }.daily-column>p { margin:0 0 18px; color:#758078; font-size:12px; }
.daily-list { max-height:500px; overflow:auto; }.daily-item { display:block; padding:13px 4px; color:inherit; border-top:1px solid var(--line); }.daily-item:hover { background:rgba(255,255,255,.6); }.daily-item>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:8px; }.daily-item small { color:#788078; }.daily-item .event-level { display:inline-block; margin-top:7px; font-size:11px; }.daily-item p { margin:5px 0 8px; color:#5d675f; font-size:12px; line-height:1.55; }.daily-notice { margin:18px 0 0; color:#727b74; font-size:12px; }
.daily-item .disclosure-meta { display:flex; flex-direction:column; align-items:flex-end; gap:2px; white-space:nowrap; font-size:11px; }.daily-item .disclosure-meta time { color:#929991; }
.result { padding:56px 0 90px; }
.company-head { display:flex; align-items:end; justify-content:space-between; gap:20px; }
h2 { margin:6px 0 0; font-size:44px; letter-spacing:-.05em; }
.company-head a { color:var(--green); font-weight:700; }
h3 { margin:50px 0 18px; font-size:20px; }
.monitor-panel { margin-top:42px; padding:26px; border:1px solid var(--ink); background:#ece9df; }
.monitor-panel h3 { margin:4px 0 18px; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.ghost-button { height:40px; padding:0 16px; border:1px solid var(--ink); background:transparent; color:var(--ink); }
.market-state { display:grid; grid-template-columns:150px 170px 1fr auto; align-items:center; gap:16px; padding:20px; background:#fff; border-left:6px solid var(--green); }
.market-state[data-level="위험"] { border-color:var(--red); }
.market-state[data-level="판단 보류"] { border-color:#777; }
.market-state span { font-size:12px; color:#667069; }.market-state strong { font-size:20px; }.market-state p { margin:0; font-size:13px; }
.market-state a { color:var(--green); font-size:12px; font-weight:700; white-space:nowrap; }
.checked-at { color:#737b75; font-size:12px; text-align:right; }
.event-note { margin:-8px 0 12px; color:#727b74; font-size:12px; }
.event-list { border-top:2px solid var(--ink); }
.event { display:grid; grid-template-columns:100px 110px 1fr auto; gap:14px; align-items:center; padding:14px 8px; color:inherit; border-bottom:1px solid var(--line); font-size:13px; }
.event:hover { background:rgba(255,255,255,.55); }.event time { color:#727b74; }.event-level { font-weight:700; color:var(--amber); }.event-level[data-level="위험"] { color:var(--red); }
.event-level[data-level="경고"] { color:#b4532d; }.event-level[data-level="양호"] { color:var(--green); }
.event-links,.source-links { display:flex; gap:10px; flex-wrap:wrap; }.event-links a,.source-links a { color:var(--green); font-size:11px; font-weight:700; white-space:nowrap; }
.empty-event { padding:20px 8px; color:#727b74; }
.signal-grid,.metric-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.signal,.metric { min-height:145px; padding:20px; border:1px solid var(--line); background:rgba(255,255,255,.45); }
.signal strong { display:inline-block; padding:4px 8px; border-radius:4px; font-size:12px; }
.signal[data-level="양호"] strong { color:var(--green); background:#dcebd7; }
.signal[data-level="주의"] strong { color:var(--amber); background:#f2e5bd; }
.signal[data-level="위험"] strong { color:var(--red); background:#f1d5cf; }
.signal[data-level="판단 보류"] strong { color:#59605c; background:#e2e2df; }
.signal h4,.metric h4 { margin:18px 0 8px; font-size:17px; }
.signal p,.metric p { margin:0; color:#59645d; font-size:13px; line-height:1.6; }
.metric .period { margin-top:14px; color:var(--green); font-weight:600; }
.metric .amount { margin-top:16px; color:var(--ink); font-size:22px; font-weight:700; }
.metric .up { color:var(--green); } .metric .down { color:var(--red); }
.risk-cause-panel { margin-top:42px; padding:26px; border:1px solid var(--ink); background:#e7e3d8; }
.risk-cause-panel h3 { margin:4px 0 0; }.risk-score { padding:9px 13px; background:var(--ink); color:#fff; }
.cause-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:20px; background:var(--line); border:1px solid var(--line); }
.cause-summary article { min-height:110px; padding:16px; background:#fff; }.cause-summary span { display:block; color:#6b746e; font-size:11px; }.cause-summary strong { display:block; margin-top:12px; font-size:14px; line-height:1.5; }
.cause-details { display:grid; grid-template-columns:2fr 1fr; gap:24px; margin-top:24px; }.cause-details h4 { margin:0 0 12px; }.cause-details ul { margin:0; padding-left:20px; color:#59645d; font-size:13px; line-height:1.8; }
.cause-item { padding:13px 0; border-top:1px solid var(--line); }.cause-item span { color:var(--green); font-size:11px; }.cause-item strong { display:block; margin-top:5px; }.cause-item p { margin:5px 0 0; color:#59645d; font-size:12px; }
.evidence-title { margin-top:24px !important; }.evidence-sources { padding-left:18px; }.evidence-sources a { color:var(--green); font-size:12px; font-weight:600; }
.table-wrap { overflow:auto; border-top:2px solid var(--ink); }
table { width:100%; border-collapse:collapse; white-space:nowrap; }
th,td { padding:16px 12px; border-bottom:1px solid var(--line); text-align:right; font-size:14px; }
th:first-child,td:first-child { text-align:left; }
.disclaimer { margin-top:30px; padding:18px; background:#e8e4d9; font-size:13px; }
.credit-margin-panel { margin:64px 0 80px; padding:28px; border:1px solid var(--ink); background:#ece9df; }.credit-margin-panel h2 { font-size:34px; }.credit-margin-panel .section-head p:last-child { margin:8px 0 0; color:#68726b; font-size:12px; }.credit-margin-controls { display:grid; grid-template-columns:1fr 2fr 1fr auto; gap:10px; align-items:end; margin:24px 0 16px; }.credit-margin-controls label span { display:block; margin-bottom:7px; color:#59645d; font-size:11px; font-weight:700; }.credit-margin-controls input,.credit-margin-controls select { width:100%; box-sizing:border-box; height:44px; padding:0 12px; border:1px solid var(--line); background:#fff; color:var(--ink); }.credit-margin-controls button { height:44px; padding:0 22px; border:0; background:var(--ink); color:#fff; font-weight:700; cursor:pointer; }.credit-margin-summary { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 14px; }.credit-margin-summary span { padding:7px 10px; background:#e1ddd1; font-size:11px; }.credit-margin-table { max-height:560px; overflow:auto; }.credit-margin-table table { min-width:760px; }.credit-margin-table td:nth-child(3) { font-weight:700; }.credit-unavailable { color:#a33b30; font-weight:700; }.credit-pending { color:#826622; font-weight:700; }.credit-margin-more { display:block; margin:16px auto 0; }
.export-button { display:flex; flex-direction:column; align-items:center; justify-content:center; width:54px; height:54px; border:1px solid var(--ink); border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }.export-button span { font-size:22px; line-height:16px; }.export-button small { margin-top:5px; font-size:9px; font-weight:700; }.export-button:hover,.export-button:focus-visible { background:var(--ink); color:#fff; }
.broker-margin-cell { display:flex; flex-direction:column; gap:4px; align-items:flex-end; }.broker-margin-cell b { font-size:13px; }.broker-margin-cell small { font-size:11px; white-space:nowrap; }.broker-margin-cell.missing { color:#929892; font-size:11px; }
.credit-margin-table table { min-width:1040px; }
footer { padding:28px 5vw; border-top:1px solid var(--line); color:#737b75; font-size:12px; }
@media (max-width:760px) { .source{display:none}.bridge-status{max-width:48vw;overflow:hidden;text-overflow:ellipsis}.brand small{display:none}.hero{padding-top:36px}.search-row{display:block}.search-row button{width:100%;height:48px}.signal-grid,.metric-grid,.daily-columns,.cause-summary,.cause-details{grid-template-columns:1fr}.section-head,.company-head{align-items:start;flex-direction:column}h2{font-size:36px}.monitor-panel,.risk-cause-panel,.credit-margin-panel{padding:16px}.credit-margin-controls{grid-template-columns:1fr}.market-state{grid-template-columns:1fr}.event{grid-template-columns:90px 1fr}.event strong{grid-column:1/-1}.event>a{display:none} }
