:root {
    --brand: #0757a6;
    --brand-deep: #063c76;
    --brand-soft: #eaf3fb;
    --cyan: #08a8bd;
    --green: #27a67a;
    --ink: #17243a;
    --muted: #6e7f95;
    --line: #dfe7ef;
    --surface: #ffffff;
    --canvas: #f3f7fa;
    --danger: #d8484d;
    --warning: #e49b27;
    --shadow: 0 8px 24px rgba(26, 58, 92, 0.08);
    --header-height: 68px;
    --sidebar-width: 232px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--canvas);
    font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", Arial, sans-serif;
    font-size: 14px;
    letter-spacing: 0;
}
button, input, select { font: inherit; letter-spacing: 0; }
button { color: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible { outline: 3px solid rgba(8, 168, 189, 0.22); outline-offset: 2px; }
svg { width: 18px; height: 18px; stroke-width: 1.8; }
.app-shell { min-height: 100vh; }
.topbar {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 50;
    height: var(--header-height);
    display: flex;
    align-items: center;
    padding: 0 24px;
    background: rgba(255, 255, 255, 0.97);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 2px 12px rgba(28, 51, 78, 0.04);
}
.brand { width: calc(var(--sidebar-width) - 12px); display: flex; align-items: center; gap: 11px; color: inherit; }
.brand-mark { width: 40px; height: 40px; display: grid; flex: 0 0 auto; place-items: center; padding: 0; color: #fff; background: var(--brand); border: 0; border-radius: 5px; cursor: pointer; }
.brand-mark:hover { background: #06498c; }
.brand-mark svg { width: 23px; height: 23px; }
.brand-copy { min-width: 0; display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.brand-copy strong { font-size: 16px; white-space: nowrap; }
.brand-copy small { margin-top: 2px; color: #6d839a; font-size: 8px; letter-spacing: 1.1px; }
.topnav { align-self: stretch; display: flex; align-items: stretch; gap: 8px; }
.topnav-item { position: relative; min-width: 92px; padding: 0 14px; border: 0; background: transparent; color: #536579; cursor: pointer; }
.topnav-item::after { content: ""; position: absolute; height: 3px; inset: auto 16px -1px; background: var(--brand); transform: scaleX(0); transition: transform .2s ease; }
.topnav-item:hover, .topnav-item.active { color: var(--brand); font-weight: 700; }
.topnav-item.active::after { transform: scaleX(1); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.icon-btn, .plain-icon, .mobile-menu { position: relative; display: grid; place-items: center; border: 0; background: transparent; cursor: pointer; }
.icon-btn { width: 36px; height: 36px; color: #536579; border-radius: 4px; }
.icon-btn:hover { background: #eef4f8; color: var(--brand); }
.notification-dot { position: absolute; top: 7px; right: 7px; width: 6px; height: 6px; border: 2px solid #fff; border-radius: 50%; background: var(--danger); }
.profile-btn { height: 46px; display: flex; align-items: center; gap: 9px; padding: 0 4px 0 8px; border: 0; background: transparent; cursor: pointer; }
.avatar { width: 32px; height: 32px; display: grid; place-items: center; color: #fff; background: #1b789f; border-radius: 50%; font-weight: 700; }
.profile-copy { display: flex; flex-direction: column; text-align: left; }
.profile-copy strong { font-size: 13px; }
.profile-copy small { margin-top: 2px; color: #8a98a9; font-size: 11px; }
.profile-btn > svg { width: 14px; }
.profile-menu { position: absolute; top: 57px; right: 22px; width: 188px; padding: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(22, 49, 77, .16); }
.profile-menu-head { display: flex; flex-direction: column; gap: 3px; padding: 8px 10px 10px; border-bottom: 1px solid #edf1f4; }
.profile-menu-head strong { color: var(--ink); font-size: 12px; }
.profile-menu-head small { color: var(--muted); font-size: 10px; }
.profile-menu > button { width: 100%; height: 36px; display: flex; align-items: center; gap: 8px; margin-top: 5px; padding: 0 10px; color: #b13f46; background: transparent; border: 0; cursor: pointer; text-align: left; font-size: 12px; }
.profile-menu > button:hover { background: #fff1f1; }
.mobile-menu { display: none; margin-left: auto; width: 38px; height: 38px; }

.sidebar {
    position: fixed;
    top: var(--header-height);
    bottom: 0;
    left: 0;
    z-index: 40;
    width: var(--sidebar-width);
    display: flex;
    flex-direction: column;
    visibility: hidden;
    pointer-events: none;
    color: #fff;
    background: linear-gradient(155deg, rgba(4, 37, 72, .98) 0%, rgba(7, 79, 135, .95) 55%, rgba(107, 195, 232, .86) 100%);
    border-right: 1px solid rgba(255, 255, 255, .18);
    border-radius: 0 0 28px 0;
    box-shadow: 12px 12px 32px rgba(4, 39, 75, .2);
    transform: translateX(-100%);
    transition: transform .22s ease, visibility 0s linear .22s;
}
.sidebar.open { visibility: visible; pointer-events: auto; transform: translateX(0); transition-delay: 0s; }
.sidebar-scroll { flex: 1; overflow-y: auto; padding: 16px 12px 12px; }
.nav-group + .nav-group { margin-top: 17px; }
.nav-label { margin: 0 12px 7px; color: rgba(255, 255, 255, .58); font-size: 11px; font-weight: 700; }
.side-item { width: 100%; height: 40px; display: flex; align-items: center; gap: 11px; margin: 2px 0; padding: 0 11px; border: 0; border-radius: 4px; background: transparent; color: rgba(255, 255, 255, .88); cursor: pointer; text-align: left; }
.side-item svg { width: 17px; flex: 0 0 auto; }
.side-item span { flex: 1; min-width: 0; white-space: nowrap; }
.side-item b { min-width: 22px; padding: 2px 6px; color: #dffbff; background: rgba(255, 255, 255, .16); border-radius: 9px; font-size: 10px; text-align: center; }
.side-item:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.side-item.active { color: #fff; background: rgba(255, 255, 255, .18); font-weight: 700; }
.side-item.active::before { content: ""; width: 3px; height: 20px; margin-left: -11px; background: #68d9e2; border-radius: 0 2px 2px 0; }

.main-content { min-height: 100vh; padding-top: var(--header-height); padding-left: 0; }
.view { display: none; }
.view.active-view { display: block; }
.content-wrap { width: min(1420px, calc(100% - 48px)); margin: 0 auto; }

.hero-band { position: relative; height: calc(100vh - var(--header-height)); min-height: 620px; overflow: hidden; color: #fff; background: #07548e; }
.hero-photo { position: absolute; inset: 0; background: url('/assets/finance-city.jpg') center / cover no-repeat; filter: saturate(.75) contrast(.9); }
.hero-background-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,43,83,.92) 0%, rgba(3,65,114,.72) 52%, rgba(6,55,120,.68) 100%); }
.hero-grid { display: none; }
.hero-content { position: relative; z-index: 2; width: min(1420px, calc(100% - 64px)); height: 100%; margin: 0 auto; display: flex; align-items: center; gap: 32px; }
.hero-copy { width: calc(100% - min(420px, 34vw) - 80px); max-width: 720px; }
.eyebrow, .section-kicker { display: block; color: #5fc9d5; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; }
.hero-copy h1 { margin: 11px 0 12px; font-size: 34px; line-height: 1.2; }
.hero-copy p { margin: 0; color: #d7e7f2; font-size: 15px; line-height: 1.8; }
.hero-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.btn { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; border: 1px solid transparent; border-radius: 4px; cursor: pointer; font-weight: 700; text-decoration: none; }
.btn-primary { color: #fff; background: #0798b0; border-color: #0798b0; }
.btn-primary:hover { background: #087f96; }
.btn-danger { color: #fff; background: #d9484f; border-color: #d9484f; }
.btn-danger:hover { background: #bf353d; border-color: #bf353d; }
.btn-danger:disabled { opacity: .48; cursor: not-allowed; }
.btn-ghost { color: #fff; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.48); }
.btn-ghost:hover { background: rgba(255,255,255,.15); }
.btn-secondary { color: var(--brand); background: #fff; border-color: #cbd9e6; }
.btn-secondary:hover { background: #f2f7fa; }
.pipeline { position: absolute; top: 50%; right: max(32px, calc((100% - 1420px) / 2)); z-index: 3; width: min(420px, 34vw); height: auto; margin: 0; display: flex; flex-direction: column; padding: 0; background: transparent; border: 0; transform: translateY(-50%); backdrop-filter: none; }
.pipeline > button { width: 100%; height: 54px; display: grid; grid-template-columns: 54px minmax(0, 1fr) 28px; align-items: center; gap: 0; padding: 0 20px; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); background: transparent; color: #fff; cursor: pointer; text-align: left; transition: background .18s ease; }
.pipeline > button:hover, .pipeline > button:focus-visible { background: rgba(255,255,255,.11); }
.pipeline > button:first-child { background: rgba(255,255,255,.1); }
.pipeline > button:first-child { transform-origin: center; transition: transform 2s ease, background-color 2s ease, box-shadow 2s ease; }
.pipeline > button:first-child b { transition: font-weight 2s ease; }
.pipeline > button:first-child.video-active { z-index: 1; background: rgba(116,200,230,.24); box-shadow: 0 8px 20px rgba(0,35,68,.1); transform: scale(1.035); }
.pipeline > button:first-child.video-active b { font-weight: 800; }
.pipeline > button span { grid-column: 1; color: #fff; font-size: 15px; font-weight: 500; }
.pipeline > button svg { grid-column: 3; grid-row: 1; justify-self: end; width: 19px; color: rgba(255,255,255,.62); }
.pipeline > button b { grid-column: 2; grid-row: 1; overflow: hidden; font-size: 15px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.pipeline > svg { display: none; }

.dashboard-content { margin-top: -1px; padding: 20px 0 48px; }
.context-bar { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 18px; background: #fff; border: 1px solid var(--line); box-shadow: 0 4px 14px rgba(34,61,88,.04); }
.context-company, .context-controls { display: flex; align-items: center; }
.context-company { gap: 11px; }
.company-symbol { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; background: #167a9e; border-radius: 4px; font-size: 17px; font-weight: 700; }
.context-company > span:nth-child(2) { display: flex; flex-direction: column; }
.context-company small { color: #8593a4; font-size: 11px; }
.context-company strong { margin-top: 3px; font-size: 15px; }
.plain-icon { width: 28px; height: 28px; color: #7d8c9e; }
.context-controls { gap: 12px; }
.context-controls label { display: flex; align-items: center; gap: 8px; color: #718196; font-size: 12px; }
select { min-width: 112px; height: 34px; padding: 0 28px 0 10px; color: #354961; background: #fff; border: 1px solid #d4dee8; border-radius: 3px; }
.segment { height: 34px; display: flex; padding: 3px; background: #edf2f6; border-radius: 4px; }
.segment button { min-width: 50px; border: 0; background: transparent; color: #6f8092; border-radius: 3px; cursor: pointer; font-size: 12px; }
.segment button.active { color: var(--brand); background: #fff; box-shadow: 0 1px 4px rgba(40,65,91,.12); font-weight: 700; }
.notice-bar { min-height: 50px; display: flex; align-items: center; gap: 11px; margin: 14px 0; padding: 9px 14px; color: #586a7f; background: #fff9e9; border: 1px solid #f0dfac; }
.notice-bar > svg { color: #d18e1c; }
.notice-bar div { flex: 1; display: flex; gap: 10px; min-width: 0; }
.notice-bar strong { color: #7b571c; }
.notice-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notice-bar button, .text-btn { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; color: var(--brand); cursor: pointer; white-space: nowrap; font-size: 12px; }
.notice-bar button svg, .text-btn svg { width: 14px; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.metric-card { position: relative; min-height: 138px; padding: 17px 18px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-top: 3px solid #2b91b0; }
.metric-card:nth-child(2) { border-top-color: var(--green); }
.metric-card:nth-child(3) { border-top-color: #5579ae; }
.metric-card:nth-child(4) { border-top-color: var(--warning); }
.metric-head { display: flex; align-items: center; justify-content: space-between; color: #68798d; }
.metric-head svg { color: #91a5b8; }
.metric-value { min-height: 51px; display: flex; align-items: baseline; gap: 6px; margin-top: 7px; }
.metric-value strong { font-size: 28px; font-weight: 800; }
.metric-value small { color: #75869a; }
.metric-value em { margin-left: auto; padding: 3px 7px; border-radius: 3px; font-size: 10px; font-style: normal; }
.level-medium { color: #9b6615; background: #fff1d3; }
.level-high { color: #b2393d; background: #fde8e8; }
.metric-card p { display: flex; align-items: center; gap: 8px; margin: 4px 0 0; color: #8795a6; font-size: 11px; }
.trend { display: inline-flex; align-items: center; gap: 2px; padding: 2px 5px; border-radius: 3px; }
.trend svg { width: 12px; }
.trend.up { color: #148364; background: #e7f6f0; }
.trend.down { color: #2179aa; background: #e7f2f8; }
.trend.neutral { color: #9a6415; background: #fff3d8; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(340px, .85fr); gap: 14px; margin-top: 14px; }
.panel { min-width: 0; background: #fff; border: 1px solid var(--line); box-shadow: 0 3px 12px rgba(41,68,94,.035); }
.panel-heading { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 19px; border-bottom: 1px solid #edf1f4; }
.panel-heading.compact { min-height: 66px; }
.section-kicker { margin-bottom: 5px; color: #1594a7; }
.panel-heading h2, .section-title h2, .module-toolbar h2 { margin: 0; font-size: 17px; }
.panel-heading p, .section-title p, .module-toolbar p { margin: 5px 0 0; color: #8492a3; font-size: 11px; }
.legend { display: flex; gap: 14px; color: #6e7f91; font-size: 11px; }
.legend span::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 1px; }
.legend .inflow::before { background: #0e91ab; }
.legend .outflow::before { background: #9fb5c8; }
.legend .netflow::before { background: #27a67a; }
.chart-wrap { position: relative; height: 280px; padding: 14px 16px 12px; }
#cashflow-chart { width: 100%; height: 100%; display: block; }
.rating-layout { display: grid; grid-template-columns: 150px 1fr; gap: 20px; align-items: center; padding: 21px 20px 15px; }
.score-ring { width: 126px; height: 126px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#0c8ea8 0 72%, #e4edf3 72% 100%); }
.score-ring::before { content: ""; grid-area: 1/1; width: 96px; height: 96px; background: #fff; border-radius: 50%; }
.score-ring span { z-index: 1; grid-area: 1/1; display: flex; flex-direction: column; align-items: center; }
.score-ring strong { font-size: 28px; }
.score-ring small { color: #8190a1; font-size: 10px; }
.dimension-list { display: flex; flex-direction: column; gap: 12px; }
.dimension-list > div > span { display: flex; justify-content: space-between; margin-bottom: 5px; font-size: 11px; }
.dimension-list b { font-weight: 500; color: #5b6d81; }
.dimension-list em { color: #344960; font-style: normal; font-weight: 700; }
.dimension-list > div > i { height: 6px; display: block; overflow: hidden; background: #edf2f5; border-radius: 2px; }
.dimension-list u { height: 100%; display: block; background: linear-gradient(90deg, #0b789f, #2ab09f); text-decoration: none; }
.rating-note { min-height: 48px; display: flex; align-items: center; gap: 8px; margin: 0 18px 18px; padding: 9px 11px; color: #6a7889; background: #f2f7fa; font-size: 11px; line-height: 1.6; }
.rating-note svg { flex: 0 0 auto; width: 15px; color: var(--brand); }
.risk-list-panel { grid-column: 1; }
.task-panel { grid-column: 2; }
.risk-table { overflow-x: auto; }
.risk-row { width: 100%; min-width: 690px; min-height: 62px; display: grid; grid-template-columns: 1.65fr 1.25fr .75fr .42fr .58fr; align-items: center; gap: 10px; padding: 7px 18px; border: 0; border-bottom: 1px solid #edf1f4; background: #fff; text-align: left; }
button.risk-row { cursor: pointer; }
button.risk-row:hover { background: #f7fafc; }
.risk-table-head { min-height: 38px; color: #8794a4; background: #f7f9fb; font-size: 10px; }
.risk-row > span { min-width: 0; color: #65768a; font-size: 11px; }
.risk-row > span:first-child { display: grid; grid-template-columns: 34px 1fr; }
.risk-row > span:first-child > small { grid-column: 2; margin-top: 3px; color: #9aa6b3; font-size: 10px; }
.risk-row b { overflow: hidden; color: #30445b; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.risk-icon { grid-row: 1/3; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 3px; }
.risk-icon svg { width: 14px; }
.risk-icon.high { color: #c73d43; background: #fdebed; }
.risk-icon.medium { color: #b7791f; background: #fff2dc; }
.risk-icon.low { color: #23799f; background: #e7f2f7; }
.tag { display: inline-flex; padding: 3px 7px; border-radius: 3px; font-size: 10px; font-style: normal; white-space: nowrap; }
.tag.danger { color: #bd3037; background: #fde8ea; }
.tag.warning { color: #a56b16; background: #fff0d2; }
.tag.notice { color: #246f98; background: #e7f1f7; }
.tag.pending { color: #9d6411; border: 1px solid #edcf93; background: #fffbf1; }
.tag.reviewed { color: #238064; border: 1px solid #add7c8; background: #eff9f5; }
.task-count { padding: 3px 8px; color: #9a6415; background: #fff1d3; border-radius: 3px; font-size: 10px; }
.task-list { padding: 6px 16px 12px; }
.task-list button { width: 100%; min-height: 69px; display: flex; align-items: center; gap: 11px; padding: 10px 4px; border: 0; border-bottom: 1px solid #edf1f4; background: #fff; cursor: pointer; text-align: left; }
.task-list button:hover span b { color: var(--brand); }
.task-list button > svg:first-child { width: 19px; color: #2a839e; }
.task-list button > svg:last-child { width: 15px; color: #a5b0bc; }
.task-list span { flex: 1; display: flex; flex-direction: column; }
.task-list b { font-size: 12px; }
.task-list small { margin-top: 4px; color: #8d99a8; font-size: 10px; }
.task-list em { min-width: 24px; height: 22px; display: grid; place-items: center; color: var(--brand); background: #eaf3fb; border-radius: 11px; font-size: 10px; font-style: normal; }

.capability-section { margin-top: 26px; padding-top: 4px; }
.section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.capability-card { min-height: 160px; display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--line); border-top: 3px solid var(--accent, var(--brand)); background: #fff; cursor: pointer; text-align: left; transition: transform .15s ease, box-shadow .15s ease; }
.capability-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.capability-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.capability-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--accent, var(--brand)); background: color-mix(in srgb, var(--accent, var(--brand)) 10%, white); border-radius: 4px; }
.capability-no { color: #c5d0da; font-size: 20px; font-weight: 800; }
.capability-card h3 { margin: 13px 0 6px; font-size: 15px; }
.capability-card p { flex: 1; margin: 0; color: #7c8b9d; font-size: 11px; line-height: 1.7; }
.capability-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; color: #96a2b0; font-size: 10px; }
.capability-footer span { display: inline-flex; align-items: center; gap: 4px; }
.capability-footer svg { width: 13px; }

.module-hero { min-height: 190px; color: #fff; background: linear-gradient(108deg, #063e77 0%, #075c94 55%, #168fa5 100%); }
.collection-module .module-hero { min-height: 190px; }
#module-view.collection-module.active-view { min-height: calc(100vh - var(--header-height)); display: flex; flex-direction: column; }
.collection-module .module-hero { flex: 0 0 190px; }
.collection-module .module-content { flex: 1; display: flex; padding-bottom: 24px; }
.module-hero-inner { width: min(1420px, calc(100% - 64px)); margin: 0 auto; padding: 28px 0 22px; }
.summary-module .module-hero-inner { position: relative; }
.back-btn { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: transparent; color: #c7ddea; cursor: pointer; font-size: 12px; }
.back-btn svg { width: 15px; }
.module-title-row { display: flex; align-items: center; gap: 18px; margin-top: 27px; }
.module-icon { width: 58px; height: 58px; display: grid; place-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.24); border-radius: 5px; }
.module-icon svg { width: 29px; height: 29px; color: #75d5d1; }
.module-title-row h1 { margin: 7px 0 0; font-size: 27px; }
.summary-analysis-picker { position: absolute; top: 78px; right: 0; display: flex; align-items: center; gap: 12px; }
.summary-analysis-picker > span { color: #d8edf5; font-size: 12px; font-weight: 700; white-space: nowrap; }
.summary-analysis-picker select { width: 255px; height: 40px; padding: 0 38px 0 13px; color: #24435e; background: #fff; border: 1px solid rgba(255,255,255,.75); border-radius: 4px; cursor: pointer; font-size: 12px; box-shadow: 0 5px 18px rgba(3,43,78,.16); }
.module-content { padding: 24px 0 50px; }
.module-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.module-toolbar > div:last-child { display: flex; gap: 8px; }
.node-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.node-card { min-height: 150px; display: flex; flex-direction: column; padding: 19px; border: 1px solid var(--line); background: #fff; }
.node-card h3 { margin: 0 0 8px; font-size: 15px; }
.node-card > p { min-height: 57px; margin: 0; color: #78889a; font-size: 11px; line-height: 1.75; }
.node-card > button { width: 100%; height: 34px; display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: auto; color: var(--brand); background: #fff; border: 1px solid #ccdae6; border-radius: 3px; cursor: pointer; font-size: 11px; }
.node-card > button:hover { background: var(--brand-soft); }
.node-card > button svg { width: 14px; }
.summary-analysis-grid { display: block; }
.summary-analysis-panel { min-height: 370px; overflow: hidden; background: #fff; border: 1px solid var(--line); box-shadow: 0 4px 14px rgba(40,66,91,.04); }
.summary-analysis-head { min-height: 102px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 22px; border-bottom: 1px solid #e5ebf0; }
.summary-analysis-head h2 { margin: 5px 0 6px; color: #263b50; font-size: 18px; }
.summary-analysis-head p { max-width: 790px; margin: 0; color: #7b8b9c; font-size: 11px; line-height: 1.65; }
.summary-view-tabs { flex: 0 0 auto; display: inline-flex; padding: 3px; background: #edf3f7; border-radius: 4px; }
.summary-view-tabs button { height: 34px; display: inline-flex; align-items: center; gap: 6px; padding: 0 15px; color: #6e8092; background: transparent; border: 0; border-radius: 3px; cursor: pointer; font-size: 11px; }
.summary-view-tabs button svg { width: 14px; height: 14px; }
.summary-view-tabs button.active { color: var(--brand); background: #fff; box-shadow: 0 1px 5px rgba(29,59,88,.10); font-weight: 700; }
.summary-analysis-stage { min-height: 267px; display: grid; place-items: center; padding: 28px; background: linear-gradient(180deg, #fbfdfe 0%, #f7fafc 100%); }
.summary-analysis-placeholder { max-width: 520px; text-align: center; }
.summary-analysis-placeholder > span { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 14px; color: #1a89a4; background: #e7f5f7; border: 1px solid #d3ecef; border-radius: 50%; }
.summary-analysis-placeholder > span svg { width: 27px; height: 27px; }
.summary-analysis-placeholder h3 { margin: 0 0 8px; color: #314a61; font-size: 15px; }
.summary-analysis-placeholder p { margin: 0; color: #8796a5; font-size: 11px; line-height: 1.7; }
.flow-summary-stage { display: block; place-items: stretch; padding: 20px; }
.flow-summary-stage > * { width: 100%; box-sizing: border-box; }
.flow-summary-toolbar { min-height: 48px; display: flex; align-items: center; gap: 14px; margin-bottom: 16px; padding: 7px 9px; background: #f0f6f9; border: 1px solid #dce7ee; border-radius: 5px; }
.flow-summary-toolbar label { display: flex; align-items: center; gap: 8px; color: #60758a; font-size: 11px; font-weight: 700; }
.flow-summary-toolbar select { min-width: 170px; height: 34px; padding: 0 30px 0 10px; color: #24435e; background: #fff; border: 1px solid #cbd9e4; border-radius: 3px; outline: 0; }
.flow-summary-toolbar select:focus { border-color: #118eaa; box-shadow: 0 0 0 3px rgba(17,142,170,.1); }
.flow-period-switch { display: inline-flex; padding: 3px; background: #dfeaf0; border-radius: 4px; }
.flow-period-switch button { min-width: 58px; height: 29px; padding: 0 12px; color: #6c7f91; background: transparent; border: 0; border-radius: 3px; cursor: pointer; font-size: 11px; }
.flow-period-switch button.active { color: #fff; background: #087ca2; box-shadow: 0 2px 6px rgba(8,79,112,.18); font-weight: 700; }
.flow-summary-state { min-height: 300px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; color: #8495a4; text-align: center; }
.flow-summary-state > svg { width: 38px; height: 38px; margin-bottom: 5px; color: #148da8; }
.flow-summary-state strong { color: #304b62; font-size: 15px; }
.flow-summary-state span { font-size: 11px; }
.flow-summary-state button { min-height: 34px; margin-top: 8px; padding: 0 15px; color: #fff; background: #087ca2; border: 0; border-radius: 3px; cursor: pointer; }
.flow-summary-state.error > svg { color: #c84d52; }
.spin { animation: report-spin 1s linear infinite; }
.flow-metric-grid, .trend-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 14px; }
.flow-metric, .trend-metric { min-width: 0; min-height: 92px; display: flex; align-items: center; gap: 12px; padding: 14px; background: #fff; border: 1px solid #dfe8ee; border-top: 3px solid #138aaf; box-shadow: 0 3px 10px rgba(28,61,88,.04); }
.flow-metric > span, .trend-metric > span { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; color: #0c85a8; background: #e9f6f9; border-radius: 50%; }
.flow-metric > span svg, .trend-metric > span svg { width: 18px; height: 18px; }
.flow-metric > div, .trend-metric > div { min-width: 0; }
.flow-metric small, .trend-metric small { display: block; color: #718398; font-size: 10px; }
.flow-metric strong, .trend-metric strong { display: block; margin: 4px 0 3px; overflow: hidden; color: #1c3a53; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.flow-metric em, .trend-metric em { display: block; overflow: hidden; color: #8a99a7; font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.flow-metric.green, .trend-metric.green { border-top-color: #2a9e78; }
.flow-metric.orange, .trend-metric.orange { border-top-color: #df9028; }
.flow-metric.red { border-top-color: #c84d52; }
.flow-metric.cyan { border-top-color: #16a0a7; }
.trend-metric.violet { border-top-color: #7479b8; }
.flow-chart-grid, .trend-chart-grid { display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(250px, .85fr); gap: 14px; }
.flow-chart-card, .flow-structure-card, .trend-chart-card, .trend-change-summary, .trend-list-card, .trend-change-table-card { min-width: 0; background: #fff; border: 1px solid #dfe8ee; box-shadow: 0 3px 10px rgba(28,61,88,.035); }
.flow-card-head, .trend-table-head { min-height: 61px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; border-bottom: 1px solid #e8edf1; }
.flow-card-head h3, .trend-table-head h3 { margin: 0 0 4px; color: #29445b; font-size: 13px; }
.flow-card-head p, .trend-table-head p { margin: 0; color: #8797a6; font-size: 9px; }
.flow-chart-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; color: #708295; font-size: 9px; }
.flow-chart-legend span::before { content: ""; width: 8px; height: 8px; display: inline-block; margin-right: 4px; border-radius: 2px; background: #118cac; }
.flow-chart-legend .out::before { background: #b5c5d1; }
.flow-chart-legend .net::before, .flow-chart-legend .yoy::before { height: 2px; background: #e18a28; border-radius: 0; vertical-align: 3px; }
.flow-trend-wrap { width: 100%; overflow-x: auto; padding: 5px 8px 2px; }
.flow-trend-chart { width: 100%; min-width: 610px; height: 286px; display: block; }
.flow-grid-lines line { stroke: #e7edf1; stroke-width: 1; }
.flow-grid-lines text, .flow-axis-label, .trend-rate-label { fill: #8796a5; font: 9px "Microsoft YaHei", sans-serif; }
.flow-zero-line { stroke: #a9bac6; stroke-width: 1; }
.flow-bar-in, .trend-bar-in { fill: #168dac; }
.flow-bar-out, .trend-bar-out { fill: #b9c7d2; }
.flow-net-line, .trend-yoy-line { fill: none; stroke: #e1892c; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.flow-trend-chart circle, .trend-yoy-dot { fill: #fff; stroke: #e1892c; stroke-width: 2; }
.flow-structure-card { padding-bottom: 13px; }
.flow-donut { width: 132px; height: 132px; display: grid; place-items: center; margin: 18px auto; border-radius: 50%; }
.flow-donut::before { content: ""; grid-area: 1/1; width: 92px; height: 92px; background: #fff; border-radius: 50%; }
.flow-donut span { z-index: 1; grid-area: 1/1; text-align: center; }
.flow-donut strong, .flow-donut small { display: block; }
.flow-donut strong { color: #244159; font-size: 20px; }
.flow-donut small { margin-top: 3px; color: #8293a3; font-size: 9px; }
.flow-structure-list { display: grid; gap: 7px; padding: 0 16px; }
.flow-structure-list > div { display: flex; align-items: center; justify-content: space-between; color: #60758a; font-size: 10px; }
.flow-structure-list span { display: flex; align-items: center; gap: 6px; }
.flow-structure-list span i { width: 7px; height: 7px; background: #0b8fae; border-radius: 2px; }
.flow-structure-list .investing span i { background: #36a779; }
.flow-structure-list .financing span i { background: #e89a32; }
.flow-structure-list strong { color: #30495f; font-size: 10px; }
.flow-structure-list em { margin-left: 6px; color: #8a99a8; font-size: 9px; font-style: normal; }
.flow-summary-note { display: flex; align-items: flex-start; gap: 6px; margin: 13px 0 0; color: #7a8c9d; font-size: 9px; line-height: 1.6; }
.flow-summary-note svg { width: 13px; height: 13px; flex: 0 0 auto; color: #168aa6; }
.flow-table-summary { display: flex; flex-wrap: wrap; gap: 9px 22px; margin-bottom: 10px; padding: 9px 12px; color: #718397; background: #edf5f8; border-left: 3px solid #168ba8; font-size: 10px; }
.flow-table-summary strong { color: #087ca2; }
.flow-summary-table-wrap { width: 100%; overflow-x: auto; }
.flow-summary-table, .trend-period-table, .trend-change-table { width: 100%; min-width: 1080px; border-collapse: collapse; color: #435a6f; font-size: 10px; }
.flow-summary-table th, .flow-summary-table td, .trend-period-table th, .trend-period-table td, .trend-change-table th, .trend-change-table td { padding: 9px 10px; border: 1px solid #e1e9ef; text-align: left; white-space: nowrap; }
.flow-summary-table th, .trend-period-table th, .trend-change-table th { color: #587085; background: #edf7fa; text-align: center; font-weight: 700; }
.flow-summary-table td.number, .trend-period-table td.number, .trend-change-table td.number { text-align: right; font-variant-numeric: tabular-nums; }
.flow-summary-table td small, .trend-change-table td small { display: block; margin-top: 3px; color: #91a0ad; font-size: 8px; }
.flow-rate { display: inline-flex; min-width: 58px; justify-content: center; padding: 3px 6px; border-radius: 12px; font-size: 9px; font-weight: 700; }
.flow-rate.positive { color: #14805f; background: #e8f7f1; }
.flow-rate.negative { color: #bd484c; background: #fdebec; }
.flow-rate.muted { color: #8394a3; background: #f0f3f5; }
.number.positive { color: #14805f; }
.number.negative { color: #bd484c; }
.income { color: #158160; }
.expense { color: #bd4b4f; }
.trend-toolbar .trend-compare-period { margin-left: auto; }
.trend-toolbar .trend-compare-period select { min-width: 138px; }
.trend-svg { height: 292px; }
.trend-change-summary { padding-bottom: 15px; }
.trend-change-visual { display: grid; gap: 15px; padding: 20px 17px 15px; }
.trend-change-visual > div > span { display: flex; align-items: center; gap: 7px; color: #63778a; font-size: 10px; }
.trend-change-visual > div > span > i { width: 8px; height: 8px; background: #279d78; border-radius: 2px; }
.trend-change-visual > div > span strong { margin-left: auto; color: #29445b; font-size: 12px; }
.trend-change-visual > div > b { height: 5px; display: block; margin-top: 6px; overflow: hidden; background: #edf2f5; border-radius: 4px; }
.trend-change-visual > div > b i { height: 100%; display: block; background: #279d78; border-radius: inherit; }
.trend-change-visual .disappeared > span > i, .trend-change-visual .disappeared > b i { background: #df8e29; }
.trend-change-visual .increased > span > i, .trend-change-visual .increased > b i { background: #188eae; }
.trend-change-visual .decreased > span > i, .trend-change-visual .decreased > b i { background: #c95b61; }
.trend-formula { display: flex; align-items: flex-start; gap: 6px; margin: 2px 16px 0; padding: 9px 10px; color: #778a9b; background: #f3f7f9; font-size: 9px; line-height: 1.55; }
.trend-formula svg { width: 13px; height: 13px; flex: 0 0 auto; color: #168aa6; }
.trend-change-table-card { margin-top: 14px; }
.trend-table-head > span { color: #778a9d; font-size: 9px; }
.trend-change-table { min-width: 800px; }
.trend-change-table td:first-child strong, .trend-change-table td:first-child small { display: block; }
.trend-change-table td:first-child strong { max-width: 300px; overflow: hidden; color: #2d465d; text-overflow: ellipsis; }
.trend-type-filter { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.trend-type-filter select { height: 25px; padding: 0 24px 0 8px; color: #4d667b; background: #fff; border: 1px solid #cfdde6; border-radius: 3px; cursor: pointer; font: inherit; }
.trend-type-filter select:focus { border-color: #168ca5; outline: 2px solid rgba(22, 140, 165, .14); }
.trend-status { display: inline-flex; min-width: 57px; justify-content: center; padding: 4px 7px; border-radius: 12px; font-size: 9px; font-weight: 700; }
.trend-status.new { color: #137c5d; background: #e7f7f0; }
.trend-status.disappeared { color: #a36512; background: #fff2dc; }
.trend-status.increased { color: #087b9b; background: #e5f5f8; }
.trend-status.decreased { color: #ba464c; background: #fdebed; }
.trend-status.unchanged { color: #6f8090; background: #edf1f4; }
.trend-list-card { margin-top: 12px; }
.trend-period-table { min-width: 1120px; }
.flow-summary-stage { min-height: 470px; display: block; padding: 18px 22px 24px; }
.flow-summary-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.flow-summary-toolbar label { display: flex; align-items: center; gap: 9px; color: #728497; font-size: 11px; }
.flow-summary-toolbar select { min-width: 230px; height: 34px; padding: 0 30px 0 10px; color: #304960; background: #fff; border: 1px solid #d5e1e9; border-radius: 3px; font-size: 11px; }
.flow-period-switch { display: inline-flex; padding: 3px; background: #edf3f7; border-radius: 4px; }
.flow-period-switch button { min-width: 58px; height: 30px; padding: 0 12px; color: #718295; background: transparent; border: 0; border-radius: 3px; cursor: pointer; font-size: 11px; }
.flow-period-switch button.active { color: #076da6; background: #fff; box-shadow: 0 1px 5px rgba(29,59,88,.10); font-weight: 700; }
.flow-period-controls { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.flow-period-picker select { min-width: 132px; }
.flow-summary-state { min-height: 350px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; color: #8796a5; text-align: center; }
.flow-summary-state > svg { width: 30px; height: 30px; margin-bottom: 4px; color: #1a91a8; }
.flow-summary-state strong { color: #334d64; font-size: 14px; }
.flow-summary-state span { font-size: 11px; }
.flow-summary-state button { height: 32px; margin-top: 6px; padding: 0 14px; color: #fff; background: var(--brand); border: 0; border-radius: 3px; cursor: pointer; font-size: 11px; }
.flow-summary-state.error > svg { color: var(--danger); }
.flow-summary-state .spin { animation: flow-spin 1s linear infinite; }
@keyframes flow-spin { to { transform: rotate(360deg); } }
.flow-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 13px; }
.flow-metric { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 15px; background: #fff; border: 1px solid #e0e8ee; border-radius: 4px; }
.flow-metric > span { width: 38px; height: 38px; display: grid; flex: 0 0 auto; place-items: center; color: #197daa; background: #eaf4fa; border-radius: 4px; }
.flow-metric > span svg { width: 18px; }
.flow-metric > div { min-width: 0; }
.flow-metric small, .flow-metric strong, .flow-metric em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flow-metric small { color: #7c8c9c; font-size: 10px; }
.flow-metric strong { margin-top: 5px; color: #21394f; font-size: 19px; font-variant-numeric: tabular-nums; }
.flow-metric em { margin-top: 4px; color: #96a3af; font-size: 9px; font-style: normal; }
.flow-metric.green > span { color: #1d936d; background: #e8f6f0; }
.flow-metric.orange > span { color: #c67a21; background: #fff3e3; }
.flow-metric.cyan > span { color: #168fa4; background: #e7f5f7; }
.flow-metric.red > span { color: #c94d53; background: #fff0f0; }
.flow-chart-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, .78fr); gap: 13px; }
.flow-chart-card, .flow-structure-card { min-width: 0; padding: 15px 16px; background: #fff; border: 1px solid #e0e8ee; border-radius: 4px; }
.flow-card-head { min-height: 34px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.flow-card-head h3 { margin: 0; color: #30485f; font-size: 12px; }
.flow-card-head p { margin: 5px 0 0; color: #94a0ac; font-size: 9px; }
.flow-chart-legend { display: flex; gap: 12px; color: #748598; font-size: 9px; }
.flow-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.flow-chart-legend span::before { width: 8px; height: 8px; content: ""; border-radius: 2px; }
.flow-chart-legend .in::before { background: #0d93ae; }
.flow-chart-legend .out::before { background: #f0a54c; }
.flow-chart-legend .net::before { height: 2px; background: #3b71b7; }
.flow-trend-wrap { width: 100%; overflow-x: auto; }
.flow-trend-chart { width: 100%; min-width: 620px; height: 260px; overflow: visible; }
.flow-grid-lines line { stroke: #e9eff3; stroke-width: 1; }
.flow-grid-lines text, .flow-axis-label { fill: #8d9dac; font-size: 9px; }
.flow-zero-line { stroke: #c7d4df; stroke-width: 1; }
.flow-bar-in { fill: #0d93ae; opacity: .88; }
.flow-bar-out { fill: #f0a54c; opacity: .88; }
.flow-net-line { fill: none; stroke: #3b71b7; stroke-width: 2.3; stroke-linejoin: round; stroke-linecap: round; }
.flow-trend-chart circle { fill: #fff; stroke: #3b71b7; stroke-width: 2; }
.flow-donut { position: relative; width: 132px; height: 132px; display: grid; place-items: center; margin: 15px auto 17px; border-radius: 50%; }
.flow-donut::before { position: absolute; width: 88px; height: 88px; content: ""; background: #fff; border-radius: 50%; }
.flow-donut span { position: relative; display: flex; align-items: center; flex-direction: column; }
.flow-donut strong { color: #263f56; font-size: 19px; }
.flow-donut small { margin-top: 3px; color: #8997a5; font-size: 9px; }
.flow-structure-list { display: grid; gap: 8px; }
.flow-structure-list > div { display: flex; align-items: center; justify-content: space-between; gap: 9px; color: #617487; font-size: 10px; }
.flow-structure-list span { display: inline-flex; align-items: center; gap: 6px; }
.flow-structure-list span i { width: 8px; height: 8px; background: #0b8fae; border-radius: 2px; }
.flow-structure-list .investing span i { background: #36a779; }
.flow-structure-list .financing span i { background: #e89a32; }
.flow-structure-list strong { color: #344d63; font-size: 10px; font-variant-numeric: tabular-nums; }
.flow-structure-list em { margin-left: 7px; color: #8a98a6; font-style: normal; font-weight: 400; }
.flow-summary-note { display: flex; align-items: flex-start; gap: 6px; margin: 13px 0 0; color: #8898a7; font-size: 9px; line-height: 1.6; }
.flow-summary-note svg { width: 13px; height: 13px; flex: 0 0 auto; margin-top: 1px; color: #168ca5; }
.flow-table-summary { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 10px; color: #7c8d9d; font-size: 10px; }
.flow-table-summary strong { color: var(--brand); }
.flow-summary-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #dce6ed; background: #fff; }
.flow-summary-table { width: 100%; min-width: 1540px; border-collapse: collapse; color: #405368; font-size: 9px; }
.flow-summary-table th { height: 34px; padding: 5px 8px; color: #536c81; background: #edf7fb; border: 1px solid #dce6ed; text-align: center; white-space: nowrap; }
.flow-summary-table td { min-height: 43px; padding: 8px; border: 1px solid #e2e9ee; text-align: center; white-space: nowrap; }
.flow-summary-table tbody tr:hover td { background: #f8fbfd; }
.flow-summary-table td:first-child { text-align: left; }
.flow-summary-table td strong, .flow-summary-table td small { display: block; }
.flow-summary-table td strong { color: #31495f; }
.flow-summary-table td small { margin-top: 3px; color: #8b99a7; }
.flow-summary-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.flow-summary-table .income { color: #16805f; }
.flow-summary-table .expense, .flow-summary-table .negative { color: #bc5457; }
.flow-summary-fit { overflow-x: hidden; }
.flow-summary-fit .flow-summary-table { min-width: 0; table-layout: fixed; }
.flow-summary-fit .flow-summary-table th { padding-right: 4px; padding-left: 4px; }
.flow-summary-fit .flow-summary-table td { overflow: hidden; padding-right: 4px; padding-left: 4px; text-overflow: ellipsis; }
.flow-summary-fit .flow-col-period { width: 6.5%; }
.flow-summary-fit .flow-col-money { width: 10%; }
.flow-summary-fit .flow-col-rate { width: 5.5%; }
.flow-summary-fit .flow-col-net { width: 9.5%; }
.flow-summary-fit .flow-col-structure { width: 7%; }

.counterparty-ranking-stage { min-height: 520px; display: block; padding: 18px 22px 24px; }
.ranking-toolbar { width: 100%; display: flex; align-items: flex-end; gap: 15px; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 15px; border-bottom: 1px solid #e7edf2; }
.ranking-toolbar label, .ranking-filter-group { display: flex; flex-direction: column; gap: 7px; color: #728497; font-size: 10px; }
.ranking-toolbar select { height: 34px; padding: 0 30px 0 10px; color: #304960; background: #fff; border: 1px solid #d5e1e9; border-radius: 3px; font-size: 11px; }
.ranking-enterprise-picker select { min-width: 218px; }
.ranking-period-picker select { min-width: 122px; }
.ranking-segment { height: 34px; display: inline-flex; padding: 2px; background: #edf3f7; border-radius: 3px; }
.ranking-segment button { min-width: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 0 11px; color: #6c8092; background: transparent; border: 0; border-radius: 2px; cursor: pointer; font-size: 10px; }
.ranking-segment button svg { width: 13px; height: 13px; }
.ranking-segment button.active { color: #087fa0; background: #fff; box-shadow: 0 1px 4px rgba(25,64,94,.12); font-weight: 700; }
.ranking-side-filter { margin-left: auto; }
.ranking-state { min-height: 350px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; color: #8796a5; text-align: center; }
.ranking-state > svg { width: 30px; height: 30px; margin-bottom: 4px; color: #1a91a8; }
.ranking-state strong { color: #334d64; font-size: 14px; }
.ranking-state span { font-size: 11px; }
.ranking-state button { height: 32px; margin-top: 6px; padding: 0 14px; color: #fff; background: var(--brand); border: 0; border-radius: 3px; cursor: pointer; font-size: 11px; }
.ranking-state.error > svg { color: var(--danger); }
.ranking-state .spin { animation: flow-spin 1s linear infinite; }
.ranking-chart-view { width: 100%; display: grid; gap: 14px; }
.ranking-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ranking-metrics article { min-height: 91px; padding: 15px 17px; background: #fff; border: 1px solid #dce7ed; border-top: 3px solid #1597ab; }
.ranking-metrics article:nth-child(2) { border-top-color: #2aa277; }
.ranking-metrics article:nth-child(3) { border-top-color: #397daf; }
.ranking-metrics span, .ranking-metrics small { display: block; color: #7d8e9e; font-size: 9px; }
.ranking-metrics strong { display: block; margin: 6px 0 4px; color: #263f55; font-size: 20px; line-height: 1; }
.ranking-chart-card { padding: 17px 18px 13px; background: #fff; border: 1px solid #dce7ed; }
.ranking-chart-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.ranking-chart-heading h3 { margin: 0 0 5px; color: #30485e; font-size: 13px; }
.ranking-chart-heading p { margin: 0; color: #8b99a6; font-size: 9px; }
.ranking-chart-heading > span { display: inline-flex; align-items: center; gap: 5px; color: #738799; font-size: 9px; white-space: nowrap; }
.ranking-chart-heading > span svg { width: 13px; height: 13px; color: #1592a8; }
.ranking-bars { display: grid; gap: 6px; }
.ranking-bar-row { min-height: 48px; display: grid; grid-template-columns: 28px minmax(240px, 1fr) 315px; align-items: center; gap: 11px; padding: 5px 8px; border-bottom: 1px solid #edf1f4; }
.ranking-bar-row:last-child { border-bottom: 0; }
.ranking-position, .table-rank { width: 23px; height: 23px; display: inline-grid; place-items: center; color: #607487; background: #edf2f5; border-radius: 50%; font-size: 10px; font-weight: 700; }
.ranking-position.top-1, .table-rank.top-1 { color: #fff; background: #1595aa; }
.ranking-position.top-2, .table-rank.top-2 { color: #fff; background: #5ca9b7; }
.ranking-position.top-3, .table-rank.top-3 { color: #fff; background: #87bdc5; }
.ranking-bar-label { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 6px; }
.ranking-bar-label strong { max-width: 58%; overflow: hidden; color: #354e64; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.ranking-bar-label span { color: #718698; font-size: 9px; font-variant-numeric: tabular-nums; }
.ranking-bar-track { height: 7px; overflow: hidden; background: #edf3f6; border-radius: 4px; }
.ranking-bar-track i { height: 100%; display: block; background: linear-gradient(90deg, #087daf, #19a4ac); border-radius: inherit; }
.ranking-bar-changes { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 9px; font-size: 9px; font-variant-numeric: tabular-nums; }
.ranking-bar-changes span { white-space: nowrap; }
.trend-up { color: #16845f !important; }
.trend-down { color: #c3595d !important; }
.trend-flat { color: #8595a3 !important; }
.ranking-insight { display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; color: #526a7e; background: #edf8f7; border-left: 3px solid #239c8e; font-size: 10px; line-height: 1.65; }
.ranking-insight svg { width: 15px; height: 15px; flex: 0 0 auto; margin-top: 1px; color: #238f82; }
.ranking-insight p { margin: 0; }
.ranking-list-view { width: 100%; background: #fff; }
.ranking-list-summary { min-height: 42px; display: flex; align-items: center; gap: 25px; padding: 0 13px; color: #718496; background: #f5f9fb; border: 1px solid #dce6ed; border-bottom: 0; font-size: 10px; }
.ranking-list-summary span { display: inline-flex; align-items: center; gap: 5px; }
.ranking-list-summary svg { width: 13px; height: 13px; color: #168ca5; }
.ranking-list-summary strong { color: #304a60; }
.ranking-table-scroll { width: 100%; overflow-x: auto; border: 1px solid #dce6ed; }
.ranking-table { width: 100%; min-width: 1040px; border-collapse: collapse; color: #405368; font-size: 9px; }
.ranking-table th { height: 38px; padding: 0 10px; color: #536c81; background: #edf7fb; border-bottom: 1px solid #dce6ed; text-align: left; white-space: nowrap; }
.ranking-table td { height: 43px; padding: 7px 10px; border-bottom: 1px solid #e6edf1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ranking-table tbody tr:last-child td { border-bottom: 0; }
.ranking-table tbody tr:hover td { background: #f8fbfd; }
.ranking-table td:nth-child(n+3), .ranking-table th:nth-child(n+3) { text-align: right; }
.ranking-table td:nth-child(6), .ranking-table th:nth-child(6) { text-align: center; }
.rank-new, .rank-up, .rank-down, .rank-flat { font-style: normal; font-weight: 700; }
.rank-new { color: #168ca5; }
.rank-up { color: #16845f; }
.rank-down { color: #c3595d; }
.rank-flat { color: #8a99a7; }
.ranking-formula { display: flex; align-items: flex-start; gap: 6px; margin: 12px 0 0; color: #8797a6; font-size: 9px; line-height: 1.6; }
.ranking-formula svg { width: 13px; height: 13px; flex: 0 0 auto; margin-top: 1px; color: #168ca5; }
.flow-rate { display: inline-flex; justify-content: center; min-width: 52px; padding: 3px 5px; border-radius: 3px; font-variant-numeric: tabular-nums; }
.flow-rate.positive { color: #167e60; background: #eaf7f1; }
.flow-rate.negative { color: #b95054; background: #fff0f0; }
.flow-rate.muted { color: #8b99a7; background: #f2f5f7; }
.collection-node-grid { width: 100%; flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.collection-node-grid .node-card { min-height: 235px; padding: 25px; }
.collection-node-grid .node-card h3 { margin: 0 0 15px; font-size: 22px; }
.collection-node-grid .node-card > p { min-height: 48px; max-width: 560px; font-size: 12px; line-height: 1.75; }
.collection-node-grid .node-card > button { height: 44px; font-size: 14px; font-weight: 700; }
.collection-preview { margin: 0 0 20px; }
.collection-preview-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.collection-preview-stats > div { min-width: 0; padding: 14px; background: #eef7fc; border: 1px solid #dcecf5; border-radius: 4px; }
.collection-preview-stats strong { display: block; overflow: hidden; color: #526b82; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.collection-preview-stats span { display: block; margin-top: 7px; color: #0757a6; font-size: 23px; font-weight: 700; line-height: 1; }
.collection-preview-stats span b { font: inherit; }
.collection-preview-stats small { color: #647b90; font-size: 12px; font-weight: 500; }
.collection-preview-table { margin-top: 16px; overflow: hidden; border: 1px solid #e2e9ef; border-radius: 4px; }
.collection-preview-table h4 { height: 42px; display: flex; align-items: center; margin: 0; padding: 0 14px; color: #344c63; background: #f8fafc; border-bottom: 1px solid #e5ebf0; font-size: 14px; }
.collection-preview-table table { width: 100%; table-layout: fixed; border-collapse: collapse; color: #405970; font-size: 12px; }
.collection-preview-table th, .collection-preview-table td { height: 40px; overflow: hidden; padding: 0 12px; border-bottom: 1px solid #edf1f4; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.collection-preview-table th { height: 42px; color: #173b56; background: #eef4f8; font-size: 13px; font-weight: 700; }
.collection-preview-table tbody tr:last-child td { border-bottom: 0; }
.collection-enterprise-row { cursor: pointer; transition: background-color .15s ease, box-shadow .15s ease; }
.collection-enterprise-row:hover td, .collection-enterprise-row:focus td { background: #eef8fc; }
.collection-enterprise-row:focus { outline: none; }
.collection-enterprise-row.active td { color: #075a8d; background: #e8f6fb; font-weight: 700; }
.collection-enterprise-row.active td:first-child { box-shadow: inset 3px 0 #1597ad; }
.collection-preview-table .collection-preview-empty { color: #8a99a8; text-align: center; }
.collection-preview-table th:first-child, .collection-preview-table td:first-child { width: 37%; }
.collection-preview-table th:last-child, .collection-preview-table td:last-child { width: 22%; }
.collection-node-grid .node-card:nth-child(2) .collection-preview-table th:first-child,
.collection-node-grid .node-card:nth-child(2) .collection-preview-table td:first-child { width: 31%; }
.collection-node-grid .node-card:nth-child(2) .collection-preview-table th:nth-child(2),
.collection-node-grid .node-card:nth-child(2) .collection-preview-table td:nth-child(2) { width: 30%; }
.collection-node-grid .node-card:nth-child(2) .collection-preview-table th:nth-child(3),
.collection-node-grid .node-card:nth-child(2) .collection-preview-table td:nth-child(3) { width: 22%; }
.collection-node-grid .node-card:nth-child(2) .collection-preview-table th:last-child,
.collection-node-grid .node-card:nth-child(2) .collection-preview-table td:last-child { width: 17%; }
.preview-status { display: inline-flex; padding: 3px 7px; border-radius: 3px; font-size: 11px; font-style: normal; }
.preview-status.success { color: #13785f; background: #e9f6f1; }
.preview-status.pending { color: #956318; background: #fff4dc; }
.module-bottom-grid { display: grid; grid-template-columns: 1.4fr .8fr; gap: 14px; margin-top: 18px; }
.process-flow { min-height: 145px; display: grid; grid-template-columns: repeat(7, auto); align-items: center; justify-content: space-around; gap: 8px; padding: 20px; }
.process-step { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 78px; color: #5e7185; font-size: 11px; text-align: center; }
.process-step i { width: 40px; height: 40px; display: grid; place-items: center; color: #167e9b; background: #e8f3f7; border-radius: 50%; font-style: normal; }
.process-step i svg { width: 18px; }
.process-arrow { color: #a9bac8; }
.process-arrow svg { width: 15px; }
.scope-panel ul { display: grid; gap: 12px; margin: 0; padding: 18px 22px 22px; list-style: none; }
.scope-panel li { position: relative; padding-left: 18px; color: #68798c; font-size: 11px; line-height: 1.65; }
.scope-panel li::before { content: ""; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; background: #1a91a4; border-radius: 50%; }

.enterprise-content { display: grid; gap: 15px; padding: 18px 0 54px; }
.enterprise-page-toolbar { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 14px; border: 1px solid var(--line); background: #fff; }
.enterprise-page-toolbar .back-btn { color: #49657e; }
.enterprise-page-toolbar .back-btn:hover { color: var(--brand); }
.enterprise-page-controls, .enterprise-header-actions { display: flex; align-items: center; gap: 9px; }
.enterprise-page-switcher { height: 38px; display: flex; align-items: center; gap: 9px; padding: 0 10px; color: #718298; border: 1px solid #d5dfe8; background: #f8fafc; font-size: 11px; }
.enterprise-page-switcher select { width: 230px; border: 0; outline: 0; color: #203b53; background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; }
.enterprise-profile-panel { overflow: hidden; }
.enterprise-profile-head { min-height: 105px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 20px 22px; border-bottom: 1px solid #e6edf2; }
.enterprise-identity { min-width: 0; display: flex; align-items: center; gap: 17px; }
.enterprise-logo { width: 58px; height: 58px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: #107b9c; border-radius: 4px; font-size: 22px; font-weight: 800; }
.enterprise-name-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.enterprise-name-row h2 { margin: 0; color: #172c42; font-size: 22px; }
.company-status, .demo-badge { padding: 3px 7px; border-radius: 3px; font-size: 10px; }
.company-status { color: #087a58; border: 1px solid #89d3b8; background: #f3fbf8; }
.demo-badge { color: #906018; background: #fff2d8; }
.enterprise-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.enterprise-tags span { padding: 4px 8px; color: #17739b; background: #eaf5fb; border-radius: 3px; font-size: 10px; }
.archive-source { min-width: 142px; display: flex; flex-direction: column; align-items: flex-end; padding-left: 24px; border-left: 1px solid #e4ebf0; }
.archive-source span { display: inline-flex; align-items: center; gap: 5px; color: #8391a1; font-size: 10px; }
.archive-source svg { width: 13px; }
.archive-source strong { margin-top: 5px; color: #365069; font-size: 13px; }
.archive-source small { margin-top: 3px; color: #aa761f; font-size: 10px; }
.enterprise-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 7px 22px 14px; }
.enterprise-facts > div { min-height: 59px; display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 11px; padding: 9px 16px 9px 0; border-bottom: 1px solid #edf1f4; }
.enterprise-facts > div:not(:nth-child(3n + 1)) { padding-left: 20px; border-left: 1px solid #edf1f4; }
.enterprise-facts dt { color: #7b8a9b; font-size: 11px; }
.enterprise-facts dd { min-width: 0; margin: 0; color: #263d54; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
.enterprise-summary { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 11px; margin: 0 22px 20px; padding: 13px 0; background: #f6f9fb; }
.enterprise-summary > span { padding-left: 14px; color: #7b8a9b; font-size: 11px; }
.enterprise-summary p { margin: 0; padding-right: 16px; color: #4d6277; font-size: 11px; line-height: 1.8; }
.enterprise-related-empty { min-height: 126px; display: flex; align-items: center; gap: 18px; padding: 24px; }
.enterprise-related-empty[hidden] { display: none; }
.enterprise-related-empty > svg { width: 34px; height: 34px; padding: 8px; color: #67829a; background: #eef4f7; border-radius: 50%; }
.enterprise-related-empty > div { flex: 1; }
.enterprise-related-empty h2 { margin: 0; color: #29445c; font-size: 16px; }
.enterprise-related-empty p { margin: 7px 0 0; color: #7d8c9c; font-size: 11px; }
.archive-table-panel { overflow: hidden; }
.archive-section-head { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 19px; border-bottom: 1px solid #e6edf2; }
.archive-section-head h2 { margin: 0; color: #20374e; font-size: 17px; }
.section-count { margin-left: 3px; color: #0877c9; font-size: 12px; font-style: normal; font-weight: 700; }
.archive-section-head p { margin: 5px 0 0; color: #8996a5; font-size: 10px; }
.archive-table-tools { display: flex; align-items: center; gap: 8px; }
.archive-table-tools select { min-width: 116px; }
.archive-search { width: 146px; height: 34px; display: flex; align-items: center; gap: 6px; padding: 0 9px; border: 1px solid #d4dee8; background: #fff; }
.archive-search svg { width: 14px; color: #8b9aaa; }
.archive-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: #405368; font-size: 11px; }
.archive-tabs { height: 34px; display: flex; align-items: stretch; gap: 2px; border-bottom: 1px solid #d5e0e8; }
.archive-tabs button { padding: 0 8px; color: #8a98a8; background: transparent; border: 0; border-bottom: 2px solid transparent; cursor: pointer; font-size: 11px; white-space: nowrap; }
.archive-tabs button.active { color: #0877c9; border-bottom-color: #0877c9; font-weight: 700; }
.archive-export { min-height: 34px; padding: 0 12px; }
.archive-table-wrap { width: 100%; overflow-x: auto; }
.archive-table { width: 100%; border-collapse: collapse; color: #405368; font-size: 11px; }
.archive-table th { height: 40px; padding: 0 12px; color: #5f7185; background: #edf7fb; border: 1px solid #dce8ef; font-weight: 700; white-space: nowrap; }
.archive-table td { min-height: 58px; padding: 10px 12px; border: 1px solid #e1e9ef; background: #fff; line-height: 1.65; text-align: center; }
.archive-table tbody tr:hover td { background: #f8fbfd; }
.archive-table td:nth-child(2), .archive-table td:nth-child(3), .archive-table td:last-child { text-align: left; }
.archive-table td strong, .archive-table td small { display: block; }
.archive-table td strong { color: #31465c; font-weight: 500; }
.archive-table td small { margin-top: 3px; color: #8392a3; }
.archive-table td button { padding: 0; border: 0; color: #0877c9; background: transparent; cursor: pointer; }
.personnel-table { min-width: 1040px; }
.holding-table { min-width: 1100px; }
.person-cell, .holding-name { display: flex; align-items: center; gap: 9px; color: #0b77c5; }
.person-cell i { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: #d3a769; border-radius: 3px; font-size: 16px; font-style: normal; }
.person-cell.purple i { background: #8e89d8; }
.person-cell.green i { background: #71aa7b; }
.person-cell.blue i { background: #70a8ca; }
.person-cell.gold i { background: #c89b58; }
.person-cell b, .holding-name b { color: #0877c9; font-weight: 500; }
.holding-name i { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: #d0a362; border-radius: 3px; font-size: 9px; font-style: normal; line-height: 1.1; }
.holding-name.rose i { background: #cc8f96; }
.holding-name.cyan i { background: #62abb2; }
.holding-name.green i { background: #79ab78; }
.holding-name.blue i { background: #609bc2; }

body.dialog-open { overflow: hidden; }
.dialog-backdrop { position: fixed; inset: 0; z-index: 120; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(17, 37, 57, .54); }
.dialog-backdrop.open { display: flex; }
.dialog-backdrop:target { display: flex; }
.enterprise-dialog-card { width: min(820px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; background: #fff; border: 1px solid #d4e0e8; box-shadow: 0 22px 56px rgba(9, 31, 50, .24); }
.enterprise-delete-dialog-card { width: min(560px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; background: #fff; border: 1px solid #e1c5c7; border-top: 4px solid #d9484f; box-shadow: 0 22px 56px rgba(55, 13, 17, .28); }
.enterprise-delete-head .section-kicker { color: #c6353d; }
.enterprise-delete-body { padding: 20px 22px 22px; }
.enterprise-delete-warning { display: flex; align-items: flex-start; gap: 12px; padding: 14px; color: #7f3035; background: #fff4f4; border: 1px solid #efc7ca; }
.enterprise-delete-warning > svg { width: 21px; height: 21px; flex: 0 0 auto; color: #d9484f; }
.enterprise-delete-warning strong { display: block; margin-bottom: 5px; font-size: 13px; }
.enterprise-delete-warning p { margin: 0; color: #76555a; font-size: 11px; line-height: 1.75; }
.enterprise-delete-target { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; margin-top: 17px; padding: 12px 13px; background: #f6f8fa; border: 1px solid #dce4ea; }
.enterprise-delete-target span { color: #7a8998; font-size: 11px; }
.enterprise-delete-target strong { color: #273d53; overflow-wrap: anywhere; font-size: 12px; }
.enterprise-delete-confirm-label { display: block; margin: 16px 0 7px; color: #53677b; font-size: 11px; font-weight: 700; }
.enterprise-delete-confirmation { width: 100%; min-height: 40px; padding: 9px 11px; color: #2e4359; background: #fff; border: 1px solid #cfdae4; border-radius: 3px; outline: 0; }
.enterprise-delete-confirmation:focus { border-color: #d9484f; box-shadow: 0 0 0 3px rgba(217, 72, 79, .1); }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px 22px 17px; border-bottom: 1px solid #e5ebf0; }
.dialog-head h2 { margin: 0; color: #21384e; font-size: 20px; }
.dialog-head p { margin: 5px 0 0; color: #8391a1; font-size: 11px; }
.dialog-close { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: #6c7c8e; background: #f2f6f8; border: 0; border-radius: 3px; cursor: pointer; }
.dialog-close { text-decoration: none; }
.dialog-close:hover { color: var(--brand); }
#enterprise-form { padding: 20px 22px 22px; }
.qcc-query-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.qcc-query-row label, .enterprise-form-grid label { display: flex; flex-direction: column; gap: 7px; color: #607185; font-size: 11px; }
.qcc-query-row label span em { color: #cf3d43; font-style: normal; }
.qcc-query-row input, .enterprise-form-grid input, .enterprise-form-grid textarea { width: 100%; min-height: 38px; padding: 8px 11px; color: #2e4359; background: #fff; border: 1px solid #cfdae4; border-radius: 3px; outline: 0; }
.enterprise-form-grid textarea { resize: vertical; min-height: 76px; font-family: inherit; }
.qcc-query-row input:focus, .enterprise-form-grid input:focus, .enterprise-form-grid textarea:focus { border-color: #2787ac; box-shadow: 0 0 0 3px rgba(39,135,172,.1); }
.qcc-query-row .btn { min-width: 132px; }
.qcc-state { min-height: 40px; display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 9px 11px; color: #6d7e90; background: #f3f7f9; border: 1px solid #dce7ed; font-size: 11px; }
.qcc-state svg { width: 15px; color: #34829e; }
.qcc-state.ready { color: #30745f; background: #eff9f5; border-color: #bee2d5; }
.qcc-state.ready svg { color: #238064; }
.qcc-state.warning { color: #925f17; background: #fff8e8; border-color: #ecd6a8; }
.qcc-state.warning svg { color: #b57b21; }
.enterprise-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin-top: 18px; }
.form-span-2 { grid-column: 1 / -1; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; padding-top: 16px; border-top: 1px solid #e5ebf0; }

.catalog-header { padding: 42px 0 36px; color: #fff; background: linear-gradient(105deg, #063f78, #0a6c9c 70%, #1b9aa5); }
.catalog-header .bank-import-back { margin-bottom: 18px; color: #d8edf5; }
.catalog-header .bank-import-back:hover { color: #fff; }
.catalog-header h1 { margin: 8px 0 9px; font-size: 28px; }
.catalog-header p { margin: 0; color: #d1e5ec; }
.catalog-content { padding: 20px 0 50px; }
#bank-import-view .content-wrap { width: calc(100% - 32px); max-width: none; }
.bank-file-list { margin: 9px 0 12px; overflow: hidden; border: 2px solid #eea12b; border-left-width: 5px; border-radius: 5px; background: #fffaf0; box-shadow: 0 5px 14px rgba(190, 117, 7, .12); }
.pending-import-heading { min-height: 48px; display: flex; align-items: center; gap: 9px; padding: 6px 10px; background: linear-gradient(90deg, #fff1cf, #fffaf0); }
.pending-import-heading > div { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.pending-import-heading > div > strong { color: #7b4300; font-size: 14px; }
.pending-import-heading > div > small { color: #76572c; font-size: 11px; }
.pending-import-icon { width: 32px; height: 32px; display: grid; flex: 0 0 auto; place-items: center; color: #fff; background: #df8100; border-radius: 50%; box-shadow: 0 3px 8px rgba(190, 105, 0, .2); }
.pending-import-icon svg { width: 18px; height: 18px; stroke-width: 2.2; }
.pending-import-badge { flex: 0 0 auto; padding: 3px 9px; color: #fff; background: #d97300; border-radius: 20px; font-size: 11px; font-weight: 800; }
.pending-import-files { max-height: 108px; display: grid; gap: 3px; overflow-y: auto; padding: 5px 10px; border-top: 1px solid #f2d8a7; background: rgba(255,255,255,.68); }
.bank-file-item { min-height: 32px; display: flex; align-items: center; gap: 8px; padding: 3px 7px; color: #c66c00; background: #fff; border: 1px solid #f0d6a8; border-radius: 4px; }
.bank-file-item > svg { width: 18px; height: 18px; flex: 0 0 auto; }
.bank-file-item > span { min-width: 0; flex: 1; display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 12px; }
.bank-file-item > span strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.bank-file-item small { flex: 0 0 auto; color: #a15b00; font-size: 10px; font-weight: 700; }
.bank-file-item .plain-icon:hover { color: var(--danger); background: #fff1f1; }
.pending-import-cta { min-width: 132px; min-height: 32px; padding: 0 12px; color: #fff; background: #dc7900; border-color: #dc7900; box-shadow: 0 3px 9px rgba(190, 105, 0, .2); font-size: 12px; }
.pending-import-cta:hover { background: #bd6500; border-color: #bd6500; }
.pending-import-cta:disabled, .import-actions #bank-import-btn:disabled { opacity: .58; cursor: wait; box-shadow: none; }
.empty-file-list { color: var(--muted); font-size: 12px; }
.catalog-filter { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.search-box { width: min(430px, 100%); height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 12px; background: #fff; border: 1px solid #d6e0e8; }
.search-box svg { width: 16px; color: #8796a6; }
.search-box input { width: 100%; border: 0; outline: 0; color: #35485e; }
.filter-chips { display: flex; gap: 7px; }
.filter-chips button { height: 34px; padding: 0 13px; color: #6a7c8f; background: #fff; border: 1px solid #d5dfe8; border-radius: 3px; cursor: pointer; }
.filter-chips button.active { color: #fff; background: var(--brand); border-color: var(--brand); }
.catalog-list { display: grid; gap: 13px; }
.catalog-item { display: grid; grid-template-columns: 52px 230px minmax(0, 1fr) 18px; align-items: center; gap: 16px; min-height: 88px; padding: 14px 18px; background: #fff; border: 1px solid var(--line); text-align: left; cursor: pointer; }
.catalog-item:hover { border-color: #a8c5dc; box-shadow: 0 4px 14px rgba(40,66,91,.06); }
.catalog-item .capability-icon { width: 42px; height: 42px; }
.catalog-item h3 { margin: 0 0 5px; font-size: 14px; }
.catalog-item small { color: #8a99aa; }
.catalog-copy { min-width: 0; display: block; text-align: left; }
.catalog-copy h3, .catalog-copy small { display: block; text-align: left; }
.catalog-nodes { min-width: 0; display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 6px; text-align: left; }
.catalog-nodes span { padding: 5px 8px; color: #65788c; background: #f1f5f8; border-radius: 3px; font-size: 10px; }
.catalog-item > svg { justify-self: end; color: #9bacbb; }

.toast { position: fixed; z-index: 100; right: 24px; bottom: 24px; max-width: 380px; min-height: 44px; display: flex; align-items: center; gap: 9px; padding: 10px 14px; color: #fff; background: #173d5f; border-radius: 4px; box-shadow: 0 9px 28px rgba(14,42,67,.22); opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }
.import-panel { padding: 14px 20px 20px; }
.import-toolbar { justify-content: flex-end; min-height: 44px; margin-bottom: 8px; }
.import-toolbar .import-actions { margin-left: auto; }
#bank-import-view .catalog-header { padding: 17px 0 15px; }
#bank-import-view .catalog-header .bank-import-back { margin-bottom: 8px; }
#bank-import-view .catalog-header h1 { margin: 5px 0 0; font-size: 25px; }
#bank-import-view .catalog-content { padding: 12px 0 30px; }
.import-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.import-actions input[type="file"] { display: none; }
.import-actions #bank-import-btn.import-ready { background: #dc7900; border-color: #dc7900; box-shadow: 0 0 0 4px rgba(220, 121, 0, .16), 0 5px 14px rgba(173, 91, 0, .2); }
.import-actions #bank-import-btn.import-ready:hover { background: #bd6500; border-color: #bd6500; }
.enterprise-picker { display: inline-flex; align-items: center; gap: 8px; color: #29445c; font-size: 12px; font-weight: 700; }
.enterprise-picker select { height: 38px; max-width: 220px; padding: 0 28px 0 10px; border: 1px solid #cbd9e6; border-radius: 4px; color: var(--brand); background: #fff; }
.import-panel #bank-import-status { position: fixed; top: 82px; right: 22px; z-index: 115; width: min(560px, calc(100vw - 44px)); min-height: 62px; height: auto; margin: 0; box-shadow: 0 15px 38px rgba(9, 43, 69, .22); }
.import-panel #bank-import-status div { display: flex; align-items: flex-start; flex-direction: column; gap: 4px; overflow: visible; }
.import-panel #bank-import-status strong { line-height: 1.35; white-space: nowrap; }
.import-panel #bank-import-status span { overflow: visible; text-overflow: clip; white-space: normal; line-height: 1.55; }
.import-panel #bank-import-status button { align-self: center; flex: 0 0 auto; }
.import-metrics { margin: 18px 0; }
.import-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.import-metrics .metric-card { min-height: 116px; padding: 15px 17px; }
.import-metrics .metric-value { min-width: 0; min-height: 44px; margin-top: 5px; white-space: nowrap; }
.import-metrics .metric-value strong { font-size: 25px; white-space: nowrap; }
.import-metrics .metric-card:nth-child(2) .metric-value strong { font-size: 21px; letter-spacing: 0; }
.import-metrics .metric-card:nth-child(3) .metric-value strong { font-size: 23px; white-space: nowrap; }
.import-report-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); max-width: none; gap: 14px; margin-bottom: 14px; }
.import-report-grid .panel { min-height: 130px; padding: 0 16px 12px; }
.import-report-grid ul { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 10px 0 0; color: #5d7185; font-size: 12px; line-height: 1.9; list-style: none; }
.import-report-grid li { white-space: nowrap; }
.import-history { margin-top: 0; border: 1px solid var(--line); background: #fff; }
.import-history .panel-heading { min-height: 48px; padding: 8px 16px; }
.import-history .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.import-history .text-btn { padding: 7px 10px; }
.import-preview-panel { margin-top: 16px; }
.import-preview-panel .panel-heading { min-height: 58px; padding: 10px 16px; }
.preview-heading-actions { display: flex; align-items: center; gap: 14px; }
.preview-limit-actions { display: flex; align-items: center; gap: 9px; }
.preview-limit-actions[hidden] { display: none; }
.preview-limit-actions span { color: #718196; font-size: 12px; line-height: 1; white-space: nowrap; }
.preview-limit-actions button { min-height: 30px; padding: 0 12px; border: 1px solid #1684ad; border-radius: 4px; color: #08749e; background: #fff; cursor: pointer; font-size: 12px; font-weight: 600; line-height: 1; white-space: nowrap; }
.preview-limit-actions button:hover { color: #fff; background: #1684ad; }
.preview-limit-actions button:disabled { opacity: .6; cursor: wait; }
.preview-total { display: flex; align-items: baseline; gap: 3px; padding-right: 14px; border-right: 1px solid #dce6ed; color: #718196; font-size: 12px; line-height: 1; white-space: nowrap; }
.preview-total strong { color: var(--brand); font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.2px; }
.import-history tr.is-selected td { background: #eef8fc; }
.import-history tr.is-selected td:first-child { box-shadow: inset 3px 0 0 var(--brand); }
.history-actions { display: inline-flex; align-items: center; gap: 10px; }
.history-view-btn { border: 0; background: transparent; color: var(--brand); cursor: pointer; font-weight: 700; }
.history-delete-btn { padding: 0; border: 0; background: transparent; color: #c43f45; cursor: pointer; font: inherit; font-weight: 700; }
.history-delete-btn:hover, .history-delete-btn:focus-visible { color: #a52d33; text-decoration: underline; }
#import-alert-dialog { align-items: flex-start; justify-content: flex-end; padding: 82px 22px 22px; background: rgba(17, 37, 57, .10); }
.import-alert-card { width: min(430px, 100%); padding: 22px 24px 20px; border-top: 5px solid #d8484d; background: #fff; box-shadow: 0 22px 58px rgba(9, 31, 50, .30); text-align: left; }
.import-alert-card.warning { border-top-color: #e49b27; }
.import-alert-icon { width: 44px; height: 44px; display: grid; place-items: center; margin: 0 0 13px; border-radius: 50%; color: #c43f45; background: #fff0f0; }
.import-alert-card.warning .import-alert-icon { color: #b56d11; background: #fff6e8; }
.import-alert-icon svg { width: 24px; height: 24px; }
.import-alert-card h2 { margin: 0; color: #1c3147; font-size: 19px; }
.import-alert-card p { margin: 9px 0 18px; color: #52697e; font-size: 13px; line-height: 1.7; white-space: pre-line; }
.import-alert-card .btn { min-width: 132px; }
.basic-report-backdrop { z-index: 130; padding: 18px; background: rgba(12, 31, 50, .66); }
.basic-report-card { width: min(1120px, 100%); max-height: calc(100vh - 36px); display: flex; flex-direction: column; overflow: hidden; background: #f5f8fa; border: 1px solid #cfdce6; box-shadow: 0 26px 70px rgba(5, 28, 48, .34); }
.basic-report-head { min-height: 78px; display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; gap: 20px; padding: 14px 20px; color: #fff; background: linear-gradient(105deg, #063f78, #08769d 72%, #1698a4); }
.basic-report-title-row, .basic-report-actions { display: flex; align-items: center; gap: 12px; }
.basic-report-title-row { min-width: 0; }
.basic-report-mark { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; color: #05628c; background: #fff; border-radius: 4px; }
.basic-report-mark svg { width: 25px; height: 25px; }
.basic-report-head .section-kicker { color: #83e0e5; }
.basic-report-head h2 { margin: 3px 0 0; font-size: 20px; }
.basic-report-head p { margin: 4px 0 0; overflow: hidden; color: #d8edf4; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.basic-report-actions .btn { min-height: 34px; padding: 0 12px; color: #fff; background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.5); font-size: 12px; }
.basic-report-actions .btn:hover { background: rgba(255,255,255,.2); }
.basic-report-actions .dialog-close { color: #fff; background: rgba(255,255,255,.12); }
.basic-report-body { flex: 1; overflow-y: auto; padding: 18px 20px 12px; }
.basic-report-loading { min-height: 360px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 9px; color: #7890a4; }
.basic-report-loading svg { width: 34px; height: 34px; margin-bottom: 6px; color: #0789a5; animation: report-spin 1s linear infinite; }
.basic-report-loading strong { color: #2d475e; font-size: 16px; }
.basic-report-loading span { font-size: 12px; }
@keyframes report-spin { to { transform: rotate(360deg); } }
.report-section { margin-bottom: 14px; padding: 17px 18px 18px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 3px 12px rgba(28, 61, 88, .04); }
.report-section-title { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.report-section-title > span { width: 29px; height: 29px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: #087a9e; border-radius: 3px; font-weight: 800; }
.report-section-title h3 { margin: 0; color: #20384e; font-size: 16px; }
.report-section-title p { margin: 3px 0 0; color: #8797a7; font-size: 10px; }
.report-subsection-title { display: flex; align-items: baseline; gap: 6px; margin: 3px 0 12px; color: #21394f; }
.report-subsection-title > span { flex: 0 0 auto; font-size: 15px; font-weight: 800; }
.report-subsection-title h4 { margin: 0; font-size: 15px; }
.report-subsection-title p { margin: 3px 0 0; color: #8797a7; font-size: 10px; font-weight: 400; }
.report-subsection-title-standalone { margin-top: 0; }
.report-check-detail { margin-top: 18px; padding: 14px 15px; background: #fbfdfe; border: 1px solid #dce6ed; border-left: 3px solid #168ca8; }
.report-check-detail.has-warning { background: #fffdf9; border-left-color: #df8f25; }
.report-detail-title { display: flex; align-items: baseline; gap: 7px; color: #20384e; }
.report-detail-title span, .report-detail-title h5 { font-size: 13px; font-weight: 800; }
.report-detail-title h5 { margin: 0; }
.report-check-detail > p:not(.report-detail-note) { margin: 7px 0 11px 27px; color: #4d6275; font-size: 11px; line-height: 1.7; }
.report-check-detail .report-table-wrap { overflow-x: visible; }
.report-table.report-detail-table { min-width: 0 !important; margin-top: 3px; table-layout: fixed; }
.report-table.report-detail-table th,
.report-table.report-detail-table td { padding: 8px 7px; overflow-wrap: anywhere; word-break: break-word; }
.report-detail-note { margin: 7px 0 0; color: #8393a1; font-size: 9px; line-height: 1.6; }
.report-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid #dce6ed; border-left: 1px solid #dce6ed; }
.report-info-grid > div { min-width: 0; min-height: 83px; display: grid; grid-template-columns: 92px minmax(0, 1fr); align-content: center; gap: 3px 8px; padding: 11px 13px; border-right: 1px solid #dce6ed; border-bottom: 1px solid #dce6ed; }
.report-info-grid dt { grid-row: 1 / 3; align-self: center; color: #5e7185; font-size: 11px; font-weight: 700; }
.report-info-grid dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #21394f; font-size: 13px; font-weight: 700; }
.report-info-grid small { color: #91a0ae; font-size: 9px; }
.report-basic-table { min-width: 680px; table-layout: fixed; font-size: 11px; }
.report-basic-table th, .report-basic-table td { padding: 8px 12px; text-align: center; }
.report-basic-table th:first-child, .report-basic-table td:first-child { width: 18%; font-weight: 700; }
.report-basic-table th:nth-child(2), .report-basic-table td:nth-child(2) { width: 42%; }
.report-basic-table th:nth-child(3), .report-basic-table td:nth-child(3) { width: 40%; }
.report-basic-table td:nth-child(2) { color: #21394f; font-weight: 600; }
.report-source-files { display: flex; align-items: flex-start; gap: 7px; margin: 10px 0 0; color: #708396; font-size: 10px; line-height: 1.6; }
.report-source-files svg { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; color: #168ca8; }
.report-table-wrap { width: 100%; overflow-x: auto; }
.report-table { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; color: #3e5367; font-size: 11px; }
.report-table.wide { min-width: 1030px; }
.report-table th, .report-table td { padding: 9px 10px; border: 1px solid #dce6ed; line-height: 1.55; text-align: left; overflow-wrap: anywhere; }
.report-table th { color: #526b81; background: #edf7fb; font-weight: 700; }
.report-table tbody tr:hover td { background: #f9fbfc; }
.report-check-table th:nth-child(1), .report-check-table td:nth-child(1) { width: 14%; }
.report-check-table th:nth-child(2), .report-check-table td:nth-child(2) { width: 13%; }
.report-check-table th:nth-child(3), .report-check-table td:nth-child(3) { width: 43%; }
.report-number { text-align: right !important; font-variant-numeric: tabular-nums; }
.report-number.negative { color: #bd444b; }
.report-status { display: inline-flex; min-width: 62px; justify-content: center; padding: 3px 7px; border-radius: 12px; font-weight: 700; white-space: nowrap; }
.report-status.is-good { color: #157454; background: #e8f7f1; }
.report-status.is-bad { color: #b53e45; background: #fdebec; }
.report-status.is-neutral { color: #9a6516; background: #fff3dc; }
.report-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.report-stat-grid article { min-height: 112px; padding: 14px 15px; background: linear-gradient(150deg, #f7fbfd, #fff); border: 1px solid #dce7ee; border-top: 3px solid #178dac; }
.report-stat-grid article:nth-child(3n + 2) { border-top-color: #2b9d79; }
.report-stat-grid article:nth-child(3n) { border-top-color: #547cad; }
.report-stat-grid small { display: block; margin-bottom: 8px; color: #718397; font-size: 11px; }
.report-stat-grid strong { color: #18374f; font-size: 23px; font-variant-numeric: tabular-nums; }
.report-stat-grid em { margin-left: 5px; color: #718397; font-size: 10px; font-style: normal; }
.report-stat-grid p { margin: 6px 0 0; color: #8c9aa8; font-size: 9px; }
.report-stat-table { min-width: 720px; table-layout: fixed; }
.report-stat-table th, .report-stat-table td { padding: 8px 11px; }
.report-stat-table th:first-child, .report-stat-table td:first-child { width: 22%; font-weight: 700; }
.report-stat-table th:nth-child(2), .report-stat-table td:nth-child(2) { width: 30%; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.report-stat-table th:nth-child(3), .report-stat-table td:nth-child(3) { width: 48%; }
.report-method-note { display: flex; align-items: flex-start; gap: 7px; margin-top: 10px; padding: 9px 11px; color: #65798c; background: #f2f7fa; border-left: 3px solid #4aa2b7; font-size: 10px; line-height: 1.6; }
.report-method-note svg { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; color: #228ba4; }
.report-attention { border-left: 4px solid #df8f25; }
.report-no-row { padding: 22px !important; color: #91a0af; text-align: center !important; }
.report-empty { min-height: 280px; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 30px; background: #fff; border: 1px solid #dce6ed; text-align: center; }
.report-empty > svg { width: 42px; height: 42px; color: #82a4b7; }
.report-empty h3 { margin: 13px 0 5px; color: #2d475e; }
.report-empty p { margin: 0 0 16px; color: #7c8ea0; font-size: 12px; }
.report-error > svg { color: var(--danger); }
.report-footer { display: flex; justify-content: space-between; gap: 15px; padding: 2px 3px 6px; color: #91a0ad; font-size: 9px; }
.table-scroll { overflow-x: auto; }
.table-scroll table { width: 100%; min-width: 860px; border-collapse: collapse; color: #405368; font-size: 11px; }
.table-scroll th, .table-scroll td { padding: 10px 12px; border: 1px solid #e1e9ef; white-space: nowrap; }
.table-scroll th { color: #5f7185; background: #edf7fb; }
.table-scroll td { background: #fff; }
.import-history-table { min-width: 980px !important; table-layout: fixed; }
.import-history-table .history-file-col { width: 27%; }
.import-history-table .history-time-col { width: 13%; }
.import-history-table .history-count-col { width: 8%; }
.import-history-table .history-range-col { width: 15%; }
.import-history-table .history-validation-col { width: 25%; }
.import-history-table .history-action-col { width: 12%; }
.import-history-table .history-file-name { max-width: 0; overflow: hidden; }
.import-history-table .history-file-name > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.import-history-table th { position: relative; }
.import-history-table .column-resizer { position: absolute; top: 0; right: -5px; z-index: 3; width: 10px; height: 100%; cursor: col-resize; touch-action: none; }
.import-history-table .column-resizer::after { position: absolute; top: 18%; bottom: 18%; left: 4px; width: 2px; background: transparent; content: ""; transition: background .15s ease; }
.import-history-table .column-resizer:hover::after, .import-history-table .column-resizer.is-active::after { background: #1099b5; }
.import-history-table.is-column-resizing, .import-history-table.is-column-resizing * { cursor: col-resize !important; user-select: none !important; }
.import-history-table .history-validation { padding-top: 7px; padding-bottom: 7px; white-space: normal; line-height: 1.55; }
.import-history-table .history-validation.passed { color: #087a58; }
.import-history-table .history-validation.needs-attention { color: #a35d0b; font-weight: 700; }
.transaction-preview-table { min-width: 1260px !important; table-layout: fixed; }
.transaction-preview-table .transaction-date-col { width: 8%; }
.transaction-preview-table .direction-col { width: 6%; }
.transaction-preview-table .amount-col { width: 7%; }
.transaction-preview-table .counterparty-col { width: 25%; }
.transaction-preview-table .account-col { width: 20%; }
.transaction-preview-table .purpose-col { width: 27%; }
.transaction-preview-table .source-row-col { width: 8%; }
.transaction-preview-table .issue-col { width: 13%; }
.transaction-preview-table th,
.transaction-preview-table td { overflow: hidden; text-overflow: ellipsis; }
.transaction-preview-table .transaction-issue-row td { background: #fff7f5; }
.transaction-preview-table .transaction-issue-row td:first-child { box-shadow: inset 3px 0 0 #d8484d; }
.transaction-issue { display: inline-flex; padding: 3px 6px; color: #b13f46; background: #ffe9e6; border-radius: 3px; font-size: 10px; font-weight: 700; white-space: normal; }
.transaction-ok { color: #2c8b68; font-size: 10px; }
.validation-issue-btn { display: block; margin-top: 4px; padding: 0; color: #b54e24; background: transparent; border: 0; cursor: pointer; font-size: 10px; font-weight: 700; text-decoration: underline; }
.validation-issue-btn:hover { color: #8f2e18; }

body.login-mode { min-height: 100vh; overflow: hidden; background: #081f38; }
body.login-mode .app-shell { display: none; }
.login-screen { position: fixed; inset: 0; z-index: 200; display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 470px); align-items: center; overflow: hidden; color: #fff; background: #082848; }
.login-city { position: absolute; inset: -3%; background: url('/assets/finance-city.jpg') center / cover no-repeat; filter: saturate(.82) contrast(1.03); animation: login-city-drift 18s ease-in-out infinite alternate; }
.login-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4, 38, 73, .8) 0%, rgba(4, 44, 81, .48) 46%, rgba(3, 18, 38, .82) 100%); }
.login-brand { position: absolute; z-index: 2; top: 34px; left: 42px; display: flex; align-items: center; gap: 11px; }
.login-brand .brand-mark { width: 42px; height: 42px; }
.login-brand > span:last-child { display: flex; flex-direction: column; }
.login-brand strong { font-size: 17px; }
.login-brand small { margin-top: 3px; color: #a8c7de; font-size: 8px; letter-spacing: 1.2px; }
.login-visual-copy { position: absolute; z-index: 2; left: 8vw; bottom: 12vh; display: flex; flex-direction: column; gap: 10px; text-shadow: 0 2px 12px rgba(0, 20, 44, .35); }
.login-visual-copy span { font-size: clamp(24px, 3vw, 42px); font-weight: 700; letter-spacing: 2px; }
.login-visual-copy small { color: #c8deec; font-size: 13px; letter-spacing: 1px; }
.login-panel { position: relative; z-index: 2; width: min(420px, calc(100% - 44px)); margin: 0 7vw 0 auto; padding: 38px 40px 31px; color: var(--ink); background: rgba(255, 255, 255, .97); border: 1px solid rgba(255,255,255,.7); box-shadow: 0 24px 70px rgba(0, 18, 41, .3); }
.login-panel-head .eyebrow { color: #168da5; }
.login-panel h1 { margin: 10px 0 8px; font-size: 28px; }
.login-panel-head p { margin: 0 0 26px; color: #728196; font-size: 12px; }
#login-form { display: grid; gap: 16px; }
#login-form > label { display: grid; gap: 7px; color: #52677c; font-size: 12px; font-weight: 700; }
#login-form input[type="text"], #login-form input[type="password"] { width: 100%; height: 44px; padding: 0 12px; color: var(--ink); background: #fff; border: 1px solid #cfdae4; outline: 0; }
#login-form input[type="text"]:focus, #login-form input[type="password"]:focus { border-color: #0c95ad; box-shadow: 0 0 0 3px rgba(12,149,173,.13); }
.login-options { display: flex; align-items: center; justify-content: space-between; margin-top: -3px; color: #77879a; font-size: 11px; }
.remember { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
.remember input { accent-color: #087da6; }
.login-options a { color: #0877ad; text-decoration: none; }
.login-options a:hover { text-decoration: underline; }
.login-submit { width: 100%; height: 44px; margin-top: 3px; font-size: 14px; }
.login-hint { margin: 21px 0 0; padding-top: 15px; color: #93a0ad; border-top: 1px solid #edf1f4; font-size: 10px; text-align: center; }
@keyframes login-city-drift { from { transform: scale(1.02) translate3d(0, 0, 0); } to { transform: scale(1.08) translate3d(-1.5%, -1%, 0); } }
.direction { display: inline-flex; padding: 2px 7px; border-radius: 3px; font-size: 10px; }
.direction.income { color: #087a58; background: #edf9f4; }
.direction.expense { color: #b14d48; background: #fff1ef; }
.empty-cell { padding: 28px !important; color: #97a5b3; text-align: center; }
.empty-cell.enterprise-required { color: var(--danger); }
.toast.show { opacity: 1; transform: translateY(0); }
.toast svg { flex: 0 0 auto; color: #60cfca; }

/* Cash flow quality report */
.cashflow-quality-grid { display: block; }
.cashflow-quality-module .module-content { padding-top: 22px; }
.cash-quality-report { color: #344b60; }
.cq-report-head { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 20px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 4px 14px rgba(40,66,91,.04); }
.cq-report-head h2 { margin: 4px 0 5px; color: #203b52; font-size: 19px; }
.cq-report-controls { display: flex; align-items: flex-end; gap: 10px; }
.cq-report-controls label { display: grid; gap: 5px; color: #738598; font-size: 9px; font-weight: 700; }
.cq-report-controls select { height: 34px; min-width: 160px; padding: 0 30px 0 10px; color: #29465e; background: #f9fbfc; border: 1px solid #d1dee7; border-radius: 3px; font-size: 10px; outline: 0; }
.cq-report-controls label:nth-child(2) select { min-width: 125px; }
.cq-period-switch { height: 34px; display: inline-flex; align-items: center; padding: 3px; background: #e9f0f4; border-radius: 3px; }
.cq-period-switch button { height: 28px; min-width: 48px; padding: 0 9px; color: #708295; background: transparent; border: 0; border-radius: 2px; cursor: pointer; font-size: 9px; }
.cq-period-switch button.active { color: #fff; background: #1286a2; box-shadow: 0 2px 5px rgba(11,104,137,.18); font-weight: 700; }
.cq-state { min-height: 330px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; margin-top: 14px; color: #8495a4; background: #fff; border: 1px solid #dce6ed; text-align: center; }
.cq-state > svg { width: 34px; height: 34px; margin-bottom: 4px; color: #148da8; }
.cq-state strong { color: #304b62; font-size: 14px; }
.cq-state span { font-size: 10px; }
.cq-state button { min-height: 33px; margin-top: 7px; padding: 0 14px; color: #fff; background: #087ca2; border: 0; border-radius: 3px; cursor: pointer; }
.cq-state.error > svg { color: #c84d52; }
.cq-data-scope { min-height: 38px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 23px; margin-top: 12px; padding: 8px 12px; color: #76899b; background: #edf5f8; border-left: 3px solid #168ba8; font-size: 9px; }
.cq-data-scope strong { color: #087ca2; }
.cq-section { margin-top: 14px; padding: 18px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 3px 11px rgba(40,66,91,.035); }
.cq-section-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.cq-section-head > div { display: flex; align-items: center; gap: 9px; }
.cq-section-head > div > span { width: 25px; height: 25px; display: grid; place-items: center; color: #fff; background: #128aa5; border-radius: 3px; font-size: 9px; font-weight: 700; }
.cq-section-head h3 { margin: 0; color: #29435a; font-size: 14px; }
.cq-section-head > p { margin: 0; color: #8999a8; font-size: 9px; }
.cq-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cq-kpi { min-width: 0; min-height: 90px; display: flex; align-items: center; gap: 11px; padding: 13px; background: #fbfdfe; border: 1px solid #e0e8ee; border-top: 3px solid #1b9b79; }
.cq-kpi > span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: #168664; background: #eaf7f2; border-radius: 50%; }
.cq-kpi > span svg { width: 17px; height: 17px; }
.cq-kpi > div { min-width: 0; }
.cq-kpi small, .cq-kpi em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cq-kpi small { color: #738599; font-size: 9px; }
.cq-kpi strong { display: block; margin: 5px 0 3px; color: #214057; font-size: 16px; font-variant-numeric: tabular-nums; }
.cq-kpi em { color: #8a9aa8; font-size: 8px; font-style: normal; }
.cq-kpi.expense { border-top-color: #d36d70; }
.cq-kpi.expense > span { color: #bd5559; background: #fff0f0; }
.cq-kpi.net { border-top-color: #168eac; }
.cq-kpi.net > span { color: #087e9e; background: #eaf6f9; }
.cq-kpi.balance { border-top-color: #d79632; }
.cq-kpi.balance > span { color: #b67417; background: #fff5e5; }
.cq-quality-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 10px; margin-top: 10px; }
.cq-card { padding: 14px 15px; background: #fbfdfe; border: 1px solid #e0e8ee; }
.cq-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }
.cq-card-head h4 { margin: 0; color: #304a60; font-size: 11px; }
.cq-card-head p { margin: 3px 0 0; color: #8a99a7; font-size: 8px; }
.cq-card-head > svg { width: 17px; height: 17px; color: #168ca5; }
.cq-ratio-list { display: grid; gap: 13px; }
.cq-ratio-list > div > span { display: flex; justify-content: space-between; gap: 10px; color: #64798d; font-size: 9px; }
.cq-ratio-list > div > span b { font-weight: 600; }
.cq-ratio-list > div > span em { color: #16805f; font-style: normal; font-weight: 700; }
.cq-ratio-list > div > i { height: 6px; display: block; margin: 6px 0 4px; overflow: hidden; background: #e8eef2; border-radius: 4px; }
.cq-ratio-list > div > i u { height: 100%; display: block; background: linear-gradient(90deg, #168daa, #2aa27d); border-radius: inherit; }
.cq-ratio-list small { color: #97a3ad; font-size: 8px; }
.cq-structure-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cq-structure-list > div { min-height: 55px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; background: #fff; border: 1px solid #e4ebf0; border-left: 3px solid #62a9ba; }
.cq-structure-list span { color: #526a7e; font-size: 9px; font-weight: 700; }
.cq-structure-list small { display: block; margin-top: 4px; color: #96a2ad; font-size: 7px; font-weight: 400; }
.cq-structure-list strong { color: #197d67; font-size: 15px; font-variant-numeric: tabular-nums; }
.cq-structure-list strong.danger { color: #bf5559; }
.cq-structure-list .match { border-left-color: #2a9a79; background: #f5fbf8; }
.cq-period-summary { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 10px; background: #f2f7f9; border: 1px solid #dce6ed; }
.cq-period-summary span { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; color: #7d8d9d; border-right: 1px solid #dce6ed; font-size: 9px; }
.cq-period-summary span:last-child { border-right: 0; }
.cq-period-summary strong { color: #294b62; font-size: 10px; font-variant-numeric: tabular-nums; }
.cq-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #dce6ed; }
.cq-table { width: 100%; border-collapse: collapse; color: #4b6073; font-size: 9px; }
.cq-table th { height: 34px; padding: 6px 9px; color: #5a7083; background: #edf7fa; border-bottom: 1px solid #dce6ed; text-align: left; white-space: nowrap; }
.cq-table td { height: 38px; padding: 6px 9px; background: #fff; border-bottom: 1px solid #e7edf1; font-variant-numeric: tabular-nums; }
.cq-table tbody tr:last-child td { border-bottom: 0; }
.cq-table tbody tr:hover td { background: #f9fbfc; }
.cq-operation-table-wrap { width: 100%; max-width: none; margin: 0; }
.cq-operation-table { table-layout: fixed; font-size: 11px; }
.cq-operation-table th, .cq-operation-table td { height: 40px; padding: 8px 14px; border-right: 1px solid #dce6ed; text-align: center; }
.cq-operation-table th:last-child, .cq-operation-table td:last-child { border-right: 0; }
.cq-operation-table th:first-child { width: 29%; }
.cq-operation-table th:nth-child(2) { width: 22%; }
.cq-operation-table th:last-child { width: 49%; }
.cq-operation-table td:first-child { color: #304b61; font-weight: 700; }
.cq-operation-table td:nth-child(2) { color: #173e59; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cq-structure-block { padding: 11px 12px 10px; background: #f6fafc; border: 1px solid #d9e5ec; }
.cq-subsection-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 10px; }
.cq-subsection-head > div { display: flex; align-items: center; gap: 9px; }
.cq-subsection-head span { padding: 3px 7px; color: #08758d; background: #e6f5f8; border-radius: 3px; font-size: 8px; font-weight: 800; }
.cq-subsection-head strong { color: #153b56; font-size: 12px; font-weight: 800; letter-spacing: .01em; }
.cq-subsection-head p { margin: 0; color: #8293a1; font-size: 8px; }
.cq-structure-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-bottom: 9px; }
.cq-structure-summary article { min-width: 0; min-height: 77px; padding: 11px 12px; background: #f9fbfc; border: 1px solid #dfe8ee; border-top: 3px solid #168daa; }
.cq-structure-summary article:nth-child(2) { border-top-color: #31a27b; }
.cq-structure-summary article:nth-child(3) { border-top-color: #db932e; }
.cq-structure-summary article.repayment { border-top-color: #6d7fb1; }
.cq-structure-summary span { display: block; color: #6b8093; font-size: 9px; }
.cq-structure-summary strong { display: block; margin: 5px 0 7px; color: #27465d; font-size: 16px; }
.cq-structure-summary article > i { height: 5px; display: block; overflow: hidden; background: #e5edf1; border-radius: 4px; }
.cq-structure-summary article > i u { height: 100%; display: block; background: #168daa; border-radius: inherit; }
.cq-structure-summary article:nth-child(2) > i u { background: #31a27b; }
.cq-structure-summary article:nth-child(3) > i u { background: #db932e; }
.cq-structure-summary small { display: block; overflow: hidden; color: #8999a7; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.cq-alert-tag { display: inline-flex; padding: 2px 5px; color: #b64e53; background: #fff0f0; border-radius: 3px; }
.cq-structure-foot { min-height: 34px; display: flex; align-items: center; gap: 25px; padding: 6px 10px; color: #7c8e9f; background: #eef5f8; border: 1px solid #dfe8ee; font-size: 9px; }
.cq-structure-foot strong { color: #16805f; }
.cq-trend-block { margin-top: 18px; padding-top: 13px; border-top: 2px solid #d4e3ea; }
.cq-trend-visual { margin: 0 0 9px; padding: 10px 12px 4px; overflow-x: auto; background: #fff; border: 1px solid #dfe8ee; }
.cq-trend-visual svg { width: 100%; min-width: 760px; height: 230px; display: block; }
.cq-trend-legend { display: flex; align-items: center; gap: 15px; color: #718598; font-size: 8px; }
.cq-trend-legend span::before { content: ""; width: 8px; height: 8px; display: inline-block; margin-right: 5px; background: #2a9c79; border-radius: 2px; }
.cq-trend-legend .cumulative::before { height: 2px; background: #de8e2b; border-radius: 0; vertical-align: 3px; }
.cq-trend-legend em { margin-left: auto; color: #91a0ad; font-style: normal; }
.cq-trend-visual .grid line { stroke: #e5edf1; stroke-width: 1; }
.cq-trend-visual .grid text, .cq-trend-visual .labels text { fill: #8495a4; font: 8px "Microsoft YaHei", sans-serif; }
.cq-trend-visual .zero { stroke: #748b9c; stroke-width: 1.4; }
.cq-trend-visual .zero-label { fill: #536d7f; font: 700 9px "Microsoft YaHei", sans-serif; }
.cq-trend-visual .bars .positive { fill: #2a9c79; }
.cq-trend-visual .bars .negative { fill: #d36a6e; }
.cq-trend-visual .cumulative-line { fill: none; stroke: #de8e2b; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; }
.cq-trend-visual .dots circle { fill: #fff; stroke: #de8e2b; stroke-width: 2; }
.cq-overview-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 18px 0 10px; padding: 13px 2px 0; border-top: 2px solid #c8dbe5; }
.cq-overview-head > div { display: flex; align-items: center; gap: 9px; }
.cq-overview-head span { padding: 3px 7px; color: #08758d; background: #e6f5f8; border-radius: 3px; font-size: 8px; font-weight: 800; }
.cq-overview-head h4 { margin: 0; color: #153b56; font-size: 12px; font-weight: 800; letter-spacing: .01em; }
.cq-overview-head p { margin: 0; color: #8293a1; font-size: 8px; }
.cq-overview-primary { margin-top: 0; padding-top: 0; border-top: 0; }
.cq-trend-scroll { max-height: none; overflow-x: auto; overflow-y: visible; border: 1px solid #bfd1dc; border-radius: 2px; box-shadow: 0 3px 12px rgba(37, 67, 87, .06); }
.cq-trend-table { min-width: 760px; table-layout: fixed; font-size: 10px; }
.cq-trend-table th { height: 39px; color: #38576d; background: #eaf3f7; border-right: 1px solid #c9d9e2; border-bottom: 2px solid #b9ccd7; text-align: center; font-weight: 700; }
.cq-trend-table th:nth-child(2), .cq-trend-table th:nth-child(3) { color: #147457; background: #e8f7f0; border-top: 3px solid #269b73; }
.cq-trend-table th:nth-child(4), .cq-trend-table th:nth-child(5) { color: #a55356; background: #fceded; border-top: 3px solid #d36a6e; }
.cq-trend-table th:nth-child(6) { color: #315f80; background: #e9f3f9; border-top: 3px solid #4388b5; }
.cq-trend-table th:last-child, .cq-trend-table td:last-child { border-right: 0; }
.cq-trend-table td { height: 42px; color: #385267; background: #fff; border-right: 1px solid #d9e4ea; border-bottom: 1px solid #d4e0e7; text-align: center; }
.cq-trend-table tbody tr:nth-child(even) td { background: #f8fbfc; }
.cq-trend-table td:first-child { color: #23465e; background: #f5f9fb; font-weight: 700; }
.cq-trend-table td:nth-child(2), .cq-trend-table td:nth-child(3) { background: #f8fdfb; }
.cq-trend-table td:nth-child(4), .cq-trend-table td:nth-child(5) { background: #fffafa; }
.cq-trend-table td:nth-child(6) { background: #f8fbfd; }
.cq-trend-table tbody tr:nth-child(even) td:nth-child(2), .cq-trend-table tbody tr:nth-child(even) td:nth-child(3) { background: #f1faf6; }
.cq-trend-table tbody tr:nth-child(even) td:nth-child(4), .cq-trend-table tbody tr:nth-child(even) td:nth-child(5) { background: #fdf5f5; }
.cq-trend-table tbody tr:hover td { background: #eef7fa; }
.cq-trend-table td.cq-money { padding-right: 16px; text-align: right; font-size: 10px; font-weight: 700; }
.cq-trend-table td.cq-income { color: #16835f; }
.cq-trend-table td.cq-expense { color: #c4565a; }
.cq-trend-table tr.is-selected td { background: #eaf7fa !important; border-top: 1px solid #7bc0cf; border-bottom: 1px solid #7bc0cf; }
.cq-trend-table tr.is-selected td:first-child { box-shadow: inset 4px 0 #1293ad; }
.cq-current-period { display: inline-flex; margin-left: 7px; padding: 2px 5px; color: #087f99; background: #e2f4f7; border-radius: 3px; font-size: 7px; font-weight: 700; vertical-align: 1px; }
.cq-count { color: #405b70; font-weight: 600; }
.cq-balance { color: #385267; font-weight: 700; }
.cq-stability-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-bottom: 13px; }
.cq-stability-grid article { min-height: 82px; padding: 12px; background: #f9fbfc; border: 1px solid #dfe8ee; border-left: 3px solid #168daa; }
.cq-stability-grid article:nth-child(2) { border-left-color: #5c82b4; }
.cq-stability-grid article:nth-child(3) { border-left-color: #2a9c79; }
.cq-stability-grid article:nth-child(4) { border-left-color: #da902e; }
.cq-stability-grid span, .cq-stability-grid small { display: block; color: #718598; font-size: 9px; }
.cq-stability-grid strong { display: block; margin: 6px 0 5px; color: #25445c; font-size: 18px; }
.cq-stability-grid small { color: #92a0ac; font-size: 8px; }
.cq-table-title { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 2px 0 8px; }
.cq-table-title h4 { margin: 0; color: #304a60; font-size: 11px; }
.cq-table-title p { margin: 3px 0 0; color: #8a99a7; font-size: 8px; }
.cq-table-title > span { color: #728697; font-size: 9px; }
.cq-large-table th:nth-child(3), .cq-large-table td:nth-child(3) { text-align: right; }
.cq-large-table td:nth-child(4), .cq-large-table td:nth-child(5) { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cq-direction { display: inline-flex; min-width: 38px; justify-content: center; padding: 3px 6px; border-radius: 3px; font-size: 8px; font-weight: 700; }
.cq-direction.in { color: #16805f; background: #e9f7f1; }
.cq-direction.out { color: #b95054; background: #fff0f0; }
.cq-basis-note { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; color: #8494a3; font-size: 8px; line-height: 1.6; }
.cq-basis-note svg { width: 12px; height: 12px; flex: 0 0 auto; color: #168ca5; }
.cq-table .cq-money { position: relative; text-align: right; }
.cq-income { color: #167e60; }
.cq-expense { color: #b95256; }

/* Solvency analysis */
.solvency-analysis-grid { display: block; }
.solvency-module .module-content { padding-top: 22px; }
.solvency-report { color: #344b60; }
.sv-report-head { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 20px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 4px 14px rgba(40,66,91,.04); }
.sv-report-head h2 { margin: 4px 0 3px; color: #203b52; font-size: 19px; }
.sv-report-head p { margin: 0; color: #8192a2; font-size: 9px; }
.sv-controls { display: flex; align-items: flex-end; gap: 10px; }
.sv-controls label { display: grid; gap: 5px; color: #738598; font-size: 9px; font-weight: 700; }
.sv-controls select { height: 34px; min-width: 160px; padding: 0 30px 0 10px; color: #29465e; background: #f9fbfc; border: 1px solid #d1dee7; border-radius: 3px; font-size: 10px; outline: 0; }
.sv-controls label:last-child select { min-width: 125px; }
.sv-period-switch { height: 34px; display: inline-flex; align-items: center; padding: 3px; background: #e9f0f4; border-radius: 3px; }
.sv-period-switch button { height: 28px; min-width: 48px; padding: 0 9px; color: #708295; background: transparent; border: 0; border-radius: 2px; cursor: pointer; font-size: 9px; }
.sv-period-switch button.active { color: #fff; background: #3679a9; box-shadow: 0 2px 5px rgba(31,90,135,.2); font-weight: 700; }
.sv-state { min-height: 340px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; margin-top: 14px; color: #8495a4; background: #fff; border: 1px solid #dce6ed; text-align: center; }
.sv-state > svg { width: 35px; height: 35px; margin-bottom: 4px; color: #3679a9; }
.sv-state strong { color: #304b62; font-size: 14px; }
.sv-state span { font-size: 10px; }
.sv-state button { min-height: 33px; margin-top: 7px; padding: 0 14px; color: #fff; background: #3679a9; border: 0; border-radius: 3px; cursor: pointer; }
.sv-state.error > svg { color: #c84d52; }
.sv-data-scope { min-height: 40px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 23px; margin-top: 12px; padding: 8px 12px; color: #76899b; background: #eef5f9; border-left: 3px solid #397ca9; font-size: 9px; }
.sv-data-scope strong { color: #286c9a; }
.sv-section { margin-top: 14px; padding: 18px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 3px 11px rgba(40,66,91,.035); }
.sv-section-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.sv-section-head > div { display: flex; align-items: center; gap: 9px; }
.sv-section-head > div > span { width: 25px; height: 25px; display: grid; place-items: center; color: #fff; background: #397ca9; border-radius: 3px; font-size: 9px; font-weight: 800; }
.sv-section-head h3 { margin: 0; color: #29435a; font-size: 14px; }
.sv-section-head > p { margin: 0; color: #8999a8; font-size: 9px; }
.sv-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sv-kpi-grid article { min-width: 0; min-height: 92px; padding: 12px 13px; background: #f9fbfc; border: 1px solid #dce6ed; border-top: 3px solid #397ca9; }
.sv-kpi-grid article.green, .sv-kpi-grid article.good { border-top-color: #289b73; }
.sv-kpi-grid article.orange, .sv-kpi-grid article.danger { border-top-color: #d88a27; }
.sv-kpi-grid article.purple { border-top-color: #7479b5; }
.sv-kpi-grid article.muted { border-top-color: #9baab5; background: #f5f7f8; }
.sv-kpi-grid span, .sv-kpi-grid small { display: block; overflow: hidden; color: #718497; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.sv-kpi-grid strong { display: block; margin: 7px 0 5px; color: #183d58; font-size: 20px; font-variant-numeric: tabular-nums; }
.sv-kpi-grid article.danger strong { color: #bd5358; }
.sv-kpi-grid article.good strong, .sv-kpi-grid article.green strong { color: #177e5e; }
.sv-kpi-grid article.muted strong { color: #84939f; }
.sv-kpi-grid small { color: #8d9ba8; font-size: 8px; }
.sv-fact-strip { min-height: 42px; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 10px; background: #eef5f8; border: 1px solid #d9e5ec; }
.sv-fact-strip span { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 7px 10px; color: #778999; border-right: 1px solid #d5e1e8; font-size: 9px; }
.sv-fact-strip span:last-child { border-right: 0; }
.sv-fact-strip strong { color: #294b62; font-variant-numeric: tabular-nums; }
.sv-fact-strip strong.negative { color: #bc5358; }
.sv-chart-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(220px, .45fr); gap: 12px; margin-top: 16px; }
.sv-subhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.sv-subhead h4 { margin: 0; color: #28465d; font-size: 12px; }
.sv-subhead p { margin: 0; color: #8999a7; font-size: 8px; }
.sv-chart { padding: 10px 12px 4px; overflow-x: auto; background: #fbfdfe; border: 1px solid #dce6ed; }
.sv-chart svg { width: 100%; min-width: 650px; height: 225px; display: block; }
.sv-chart-legend { display: flex; align-items: center; gap: 15px; color: #718598; font-size: 8px; }
.sv-chart-legend span::before { content: ""; width: 14px; height: 3px; display: inline-block; margin-right: 5px; background: #317aad; vertical-align: 2px; }
.sv-chart-legend .coverage::before { background: #22956f; }
.sv-chart-legend .reserve-days::before { width: 9px; height: 9px; background: #447fb0; vertical-align: -1px; }
.sv-chart-legend em { margin-left: auto; color: #91a0ad; font-style: normal; }
.sv-chart .grid line { stroke: #e2eaf0; stroke-width: 1; }
.sv-chart .grid text, .sv-chart .labels text { fill: #8294a3; font: 8px "Microsoft YaHei", sans-serif; }
.sv-chart .zero { stroke: #96a9b6; stroke-width: 1.2; }
.sv-chart .series polyline { fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.sv-chart .series circle { fill: #fff; stroke-width: 2; }
.sv-chart .series .currentRatio polyline, .sv-chart .series .currentRatio circle { stroke: #317aad; }
.sv-chart .series .coverage polyline, .sv-chart .series .coverage circle { stroke: #22956f; }
.sv-chart.reserve { margin-bottom: 14px; }
.sv-chart.reserve svg { height: 215px; }
.sv-chart.reserve .bars rect { fill: #447fb0; opacity: .9; }
.sv-chart-empty { min-height: 220px; display: grid; place-items: center; color: #91a0ad; background: #fbfdfe; border: 1px solid #dce6ed; font-size: 10px; }
.sv-formula-card { padding: 13px 14px; background: #f5f9fb; border: 1px solid #dce6ed; border-top: 3px solid #397ca9; }
.sv-formula-card h4 { margin: 0 0 7px; color: #28465d; font-size: 11px; }
.sv-formula-card > div { padding: 9px 0; border-bottom: 1px solid #dfe8ed; }
.sv-formula-card > div:last-child { border-bottom: 0; }
.sv-formula-card span { color: #3d5a70; font-size: 9px; font-weight: 700; }
.sv-formula-card p { margin: 4px 0 0; color: #8293a1; font-size: 8px; line-height: 1.5; }
.sv-table-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin: 17px 0 8px; }
.sv-table-head h4 { margin: 0; color: #28465d; font-size: 12px; }
.sv-table-head p { margin: 3px 0 0; color: #8999a7; font-size: 8px; }
.sv-table-head > span { color: #60788b; font-size: 9px; font-weight: 700; }
.sv-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #c9d9e2; }
.sv-table { width: 100%; min-width: 830px; border-collapse: collapse; color: #435a6e; font-size: 9px; }
.sv-table th { height: 36px; padding: 7px 9px; color: #466176; background: #eaf4f8; border-right: 1px solid #cfdee6; border-bottom: 2px solid #c2d4de; text-align: left; white-space: nowrap; }
.sv-table td { height: 39px; padding: 7px 9px; background: #fff; border-right: 1px solid #dbe5ea; border-bottom: 1px solid #e0e8ed; }
.sv-table th:last-child, .sv-table td:last-child { border-right: 0; }
.sv-table tbody tr:nth-child(even) td { background: #f8fbfc; }
.sv-table tbody tr.is-selected td { background: #edf7fa; }
.sv-table tbody tr.is-selected td:first-child { box-shadow: inset 3px 0 #397ca9; }
.sv-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.sv-table.repayment th:nth-child(2), .sv-table.repayment td:nth-child(2) { text-align: right; }
.sv-balance-volatility .sv-table-head { margin-top: 0; }
.sv-table.balance-volatility { min-width: 600px; table-layout: fixed; font-size: 10px; }
.sv-table.balance-volatility th { height: 38px; color: #37556b; background: #eaf4f8; text-align: center; }
.sv-table.balance-volatility td { height: 38px; text-align: center; }
.sv-table.balance-volatility td.number { text-align: center; font-weight: 700; }
.sv-table.balance-volatility td.positive { color: #16815f; background: #f0faf6; }
.sv-table.balance-volatility td.negative { color: #c85358; background: #fff4f4; }
.sv-table.balance-volatility td.flat { color: #60788b; }
.sv-status { display: inline-flex; padding: 3px 6px; border-radius: 3px; font-size: 8px; font-weight: 700; }
.sv-status.pending { color: #9b671c; background: #fff4df; }
.sv-notices { display: grid; gap: 5px; margin-top: 10px; }
.sv-notices p { display: flex; align-items: flex-start; gap: 6px; margin: 0; padding: 7px 9px; color: #788b9b; background: #f4f8fa; border-left: 3px solid #6ea0bf; font-size: 8px; line-height: 1.5; }
.sv-notices svg { width: 12px; height: 12px; flex: 0 0 auto; color: #397ca9; }

/* Business stability and transaction authenticity */
.operation-analysis-grid { display: block; }
.operation-module .module-content { padding-top: 22px; }
.operation-report { color: #344b60; }
.op-report-head { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 20px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 4px 14px rgba(40,66,91,.04); }
.op-report-head h2 { margin: 4px 0 3px; color: #203b52; font-size: 19px; }
.op-report-head p { margin: 0; color: #8192a2; font-size: 9px; }
.op-controls { display: flex; align-items: flex-end; gap: 10px; }
.op-controls label { display: grid; gap: 5px; color: #738598; font-size: 9px; font-weight: 700; }
.op-controls select { height: 34px; min-width: 160px; padding: 0 30px 0 10px; color: #29465e; background: #f9fbfc; border: 1px solid #d1dee7; border-radius: 3px; font-size: 10px; outline: 0; }
.op-controls label:last-child select { min-width: 125px; }
.op-period-switch { height: 34px; display: inline-flex; align-items: center; padding: 3px; background: #e9f0f4; border-radius: 3px; }
.op-period-switch button { height: 28px; min-width: 48px; padding: 0 9px; color: #708295; background: transparent; border: 0; border-radius: 2px; cursor: pointer; font-size: 9px; }
.op-period-switch button.active { color: #fff; background: #26876d; box-shadow: 0 2px 5px rgba(24,113,86,.2); font-weight: 700; }
.op-state { min-height: 340px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; margin-top: 14px; color: #8495a4; background: #fff; border: 1px solid #dce6ed; text-align: center; }
.op-state > svg { width: 35px; height: 35px; margin-bottom: 4px; color: #26876d; }
.op-state strong { color: #304b62; font-size: 14px; }
.op-state span { font-size: 10px; }
.op-state button { min-height: 33px; margin-top: 7px; padding: 0 14px; color: #fff; background: #26876d; border: 0; border-radius: 3px; cursor: pointer; }
.op-state.error > svg { color: #c84d52; }
.op-data-scope { min-height: 40px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 23px; margin-top: 12px; padding: 8px 12px; color: #76899b; background: #edf6f3; border-left: 3px solid #26876d; font-size: 9px; }
.op-data-scope strong { color: #19755d; }
.op-section { margin-top: 14px; padding: 18px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 3px 11px rgba(40,66,91,.035); }
.op-section-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.op-section-head > div { display: flex; align-items: center; gap: 9px; }
.op-section-head > div > span { width: 25px; height: 25px; display: grid; place-items: center; color: #fff; background: #26876d; border-radius: 3px; font-size: 9px; font-weight: 800; }
.op-section-head h3 { margin: 0; color: #29435a; font-size: 14px; }
.op-section-head > p { margin: 0; color: #8999a8; font-size: 9px; }
.op-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.op-kpi-grid article { min-width: 0; min-height: 92px; padding: 12px 13px; background: #f9fbfc; border: 1px solid #dce6ed; border-top: 3px solid #3382ab; }
.op-kpi-grid article.green { border-top-color: #289b73; }
.op-kpi-grid article.orange, .op-kpi-grid article.danger { border-top-color: #d88a27; }
.op-kpi-grid article.purple { border-top-color: #7479b5; }
.op-kpi-grid article.muted { border-top-color: #a0adb7; background: #f5f7f8; }
.op-kpi-grid span, .op-kpi-grid small { display: block; overflow: hidden; color: #718497; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.op-kpi-grid strong { display: block; margin: 7px 0 5px; color: #183d58; font-size: 20px; font-variant-numeric: tabular-nums; }
.op-kpi-grid article.green strong { color: #177e5e; }
.op-kpi-grid article.danger strong { color: #bd5358; }
.op-kpi-grid article.muted strong { color: #84939f; }
.op-kpi-grid small { color: #8d9ba8; font-size: 8px; }
.op-two-column, .op-industry-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(230px, .45fr); gap: 12px; margin-top: 16px; }
.op-subhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.op-subhead h4 { margin: 0; color: #28465d; font-size: 12px; }
.op-subhead p { margin: 0; color: #8999a7; font-size: 8px; }
.op-core-chart { min-height: 214px; display: grid; align-content: center; gap: 13px; padding: 15px 18px; background: #fbfdfe; border: 1px solid #dce6ed; }
.op-core-bar { display: grid; grid-template-columns: minmax(145px, .75fr) minmax(160px, 1fr) minmax(125px, .65fr); align-items: center; gap: 12px; }
.op-core-bar > span { min-width: 0; display: flex; align-items: center; gap: 7px; }
.op-core-bar b { width: 20px; height: 20px; display: grid; flex: 0 0 auto; place-items: center; color: #fff; background: #3186a6; border-radius: 3px; font-size: 8px; }
.op-core-bar strong { overflow: hidden; color: #334f64; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.op-core-bar > div { height: 8px; overflow: hidden; background: #e7eef2; border-radius: 5px; }
.op-core-bar i { height: 100%; display: block; background: linear-gradient(90deg, #269779, #35a8a0); border-radius: inherit; }
.op-core-bar em { color: #536d81; font-size: 8px; font-style: normal; text-align: right; white-space: nowrap; }
.op-formula { padding: 13px 14px; background: #f4f9f7; border: 1px solid #d9e7e2; border-top: 3px solid #26876d; }
.op-formula h4 { margin: 0 0 8px; color: #28465d; font-size: 11px; }
.op-formula p { margin: 0; padding: 8px 0; color: #7b8e9c; border-bottom: 1px solid #dfe9e5; font-size: 8px; line-height: 1.5; }
.op-formula p:last-child { border-bottom: 0; }
.op-formula b { display: block; color: #3d5a70; font-size: 9px; }
.op-table-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin: 17px 0 8px; }
.op-table-head h4 { margin: 0; color: #28465d; font-size: 12px; }
.op-table-head p { margin: 3px 0 0; color: #8999a7; font-size: 8px; }
.op-table-head > span { color: #60788b; font-size: 9px; font-weight: 700; }
.op-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #c9d9e2; }
.op-table { width: 100%; min-width: 980px; border-collapse: collapse; color: #435a6e; font-size: 9px; }
.op-table th { height: 36px; padding: 7px 9px; color: #466176; background: #eaf4f8; border-right: 1px solid #cfdee6; border-bottom: 2px solid #c2d4de; text-align: left; white-space: nowrap; }
.op-table td { height: 40px; padding: 7px 9px; background: #fff; border-right: 1px solid #dbe5ea; border-bottom: 1px solid #e0e8ed; }
.op-table th:last-child, .op-table td:last-child { border-right: 0; }
.op-table tbody tr:nth-child(even) td { background: #f8fbfc; }
.op-table tbody tr.is-selected td { background: #edf7f4; }
.op-table tbody tr.is-selected td:first-child { box-shadow: inset 3px 0 #26876d; }
.op-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.op-table td small { display: block; margin-top: 2px; color: #93a1ac; font-size: 7px; }
.op-status { display: inline-flex; padding: 3px 6px; color: #23775f; background: #e9f7f1; border-radius: 3px; font-size: 8px; font-weight: 700; white-space: nowrap; }
.op-status.warning { color: #ae6c16; background: #fff2dd; }
.op-status.pending { color: #69798a; background: #eef2f5; }
.op-note { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; padding: 7px 9px; color: #7d8f9e; background: #f4f8fa; border-left: 3px solid #5b96b4; font-size: 8px; line-height: 1.5; }
.op-note svg { width: 12px; height: 12px; flex: 0 0 auto; color: #3186a6; }
.op-chart { padding: 10px 12px 4px; overflow-x: auto; background: #fbfdfe; border: 1px solid #dce6ed; }
.op-chart svg { width: 100%; min-width: 680px; height: 225px; display: block; }
.op-chart-legend { display: flex; align-items: center; gap: 15px; color: #718598; font-size: 8px; }
.op-chart-legend span::before { content: ""; width: 10px; height: 8px; display: inline-block; margin-right: 5px; background: var(--legend, #268f75); vertical-align: -1px; }
.op-chart-legend em { margin-left: auto; color: #91a0ad; font-style: normal; }
.op-chart .grid line { stroke: #e2eaf0; stroke-width: 1; }
.op-chart .grid text, .op-chart .labels text { fill: #8294a3; font: 8px "Microsoft YaHei", sans-serif; }
.op-inflow-chart .bars rect { fill: #298e75; opacity: .88; }
.op-private-strip { min-height: 48px; display: grid; grid-template-columns: 1fr 1fr 1.4fr; align-items: stretch; margin-top: 10px; background: #f4f8fa; border: 1px solid #dce6ed; }
.op-private-strip span { display: flex; align-items: center; gap: 8px; padding: 8px 12px; color: #728596; border-right: 1px solid #d7e3e9; font-size: 8px; }
.op-private-strip strong { color: #26495f; font-size: 11px; }
.op-private-strip em { margin-left: auto; color: #8395a3; font-style: normal; }
.op-private-strip p { display: flex; align-items: center; margin: 0; padding: 8px 12px; color: #8999a6; font-size: 8px; }
.op-empty-chart { min-height: 214px; display: grid; place-items: center; color: #91a0ad; background: #fbfdfe; border: 1px solid #dce6ed; font-size: 10px; }

/* Related transactions and fund lending */
.related-analysis-grid { display: block; }
.related-module .module-content { padding-top: 22px; }
.related-report { color: #344b60; }
.rp-report-head { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 20px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 4px 14px rgba(40,66,91,.04); }
.rp-report-head h2 { margin: 4px 0 3px; color: #203b52; font-size: 19px; }
.rp-report-head p { margin: 0; color: #8192a2; font-size: 9px; }
.rp-controls { display: flex; align-items: flex-end; gap: 10px; }
.rp-controls label { display: grid; gap: 5px; color: #738598; font-size: 9px; font-weight: 700; }
.rp-controls select { height: 34px; min-width: 160px; padding: 0 30px 0 10px; color: #29465e; background: #f9fbfc; border: 1px solid #d1dee7; border-radius: 3px; font-size: 10px; outline: 0; }
.rp-controls label:last-child select { min-width: 125px; }
.rp-period-switch { height: 34px; display: inline-flex; align-items: center; padding: 3px; background: #e9f0f4; border-radius: 3px; }
.rp-period-switch button { height: 28px; min-width: 48px; padding: 0 9px; color: #708295; background: transparent; border: 0; border-radius: 2px; cursor: pointer; font-size: 9px; }
.rp-period-switch button.active { color: #fff; background: #6071aa; box-shadow: 0 2px 5px rgba(71,83,145,.2); font-weight: 700; }
.rp-state { min-height: 340px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; margin-top: 14px; color: #8495a4; background: #fff; border: 1px solid #dce6ed; text-align: center; }
.rp-state > svg { width: 35px; height: 35px; margin-bottom: 4px; color: #6071aa; }
.rp-state strong { color: #304b62; font-size: 14px; }
.rp-state span { font-size: 10px; }
.rp-state button { min-height: 33px; margin-top: 7px; padding: 0 14px; color: #fff; background: #6071aa; border: 0; border-radius: 3px; cursor: pointer; }
.rp-state.error > svg { color: #c84d52; }
.rp-data-scope { min-height: 40px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 23px; margin-top: 12px; padding: 8px 12px; color: #76899b; background: #f0f2f8; border-left: 3px solid #6071aa; font-size: 9px; }
.rp-data-scope strong { color: #56679f; }
.rp-section { margin-top: 14px; padding: 18px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 3px 11px rgba(40,66,91,.035); }
.rp-section-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.rp-section-head > div { display: flex; align-items: center; gap: 9px; }
.rp-section-head > div > span { width: 25px; height: 25px; display: grid; place-items: center; color: #fff; background: #6071aa; border-radius: 3px; font-size: 9px; font-weight: 800; }
.rp-section-head h3 { margin: 0; color: #29435a; font-size: 14px; }
.rp-section-head > p { margin: 0; color: #8999a8; font-size: 9px; }
.rp-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.rp-kpi-grid article { min-width: 0; min-height: 92px; padding: 12px 13px; background: #f9fbfc; border: 1px solid #dce6ed; border-top: 3px solid #367fa9; }
.rp-kpi-grid article.green { border-top-color: #289b73; }
.rp-kpi-grid article.orange { border-top-color: #d88a27; }
.rp-kpi-grid article.purple { border-top-color: #7479b5; }
.rp-kpi-grid span, .rp-kpi-grid small { display: block; overflow: hidden; color: #718497; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.rp-kpi-grid strong { display: block; margin: 7px 0 5px; color: #183d58; font-size: 20px; font-variant-numeric: tabular-nums; }
.rp-kpi-grid article.green strong { color: #177e5e; }
.rp-kpi-grid small { color: #8d9ba8; font-size: 8px; }
.rp-graph-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(235px, .45fr); gap: 12px; margin-top: 16px; }
.rp-subhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin: 16px 0 8px; }
.rp-graph-layout .rp-subhead { margin-top: 0; }
.rp-subhead h4 { margin: 0; color: #28465d; font-size: 12px; }
.rp-subhead p { margin: 0; color: #8999a7; font-size: 8px; }
.rp-graph { padding: 10px 12px 4px; overflow-x: auto; background: #fbfdfe; border: 1px solid #dce6ed; }
.rp-graph svg { width: 100%; min-width: 680px; height: 320px; display: block; }
.rp-graph-legend { display: flex; align-items: center; gap: 15px; color: #718598; font-size: 8px; }
.rp-graph-legend span::before { content: ""; width: 9px; height: 9px; display: inline-block; margin-right: 5px; background: #7c8c99; border-radius: 50%; vertical-align: -1px; }
.rp-graph-legend .confirmed::before { background: #27896d; }
.rp-graph-legend .clue::before { background: #d49130; }
.rp-graph-legend .borrow::before { background: #397ead; }
.rp-graph-legend .guarantee::before { background: #bc5e65; }
.rp-graph .edges line { stroke: #c8d4dc; stroke-width: 1.4; stroke-dasharray: 4 3; }
.rp-graph .edges line.confirmed { stroke: #67a992; stroke-width: 2; stroke-dasharray: none; }
.rp-graph .center circle { fill: #183f64; stroke: #dbe7ef; stroke-width: 7; }
.rp-graph .center text { fill: #fff; font: 700 11px "Microsoft YaHei", sans-serif; }
.rp-graph .center .company-label { font-size: 8px; font-weight: 400; }
.rp-graph .node > text { fill: #fff; font: 700 8px "Microsoft YaHei", sans-serif; }
.rp-graph .node .node-label { fill: #4c6578; font-size: 8px; font-weight: 600; }
.rp-graph .empty-label { fill: #8b9aa7; font: 9px "Microsoft YaHei", sans-serif; }
.rp-formula { padding: 13px 14px; background: #f5f6fa; border: 1px solid #dfe3ee; border-top: 3px solid #6071aa; }
.rp-formula h4 { margin: 0 0 8px; color: #28465d; font-size: 11px; }
.rp-formula p { margin: 0; padding: 9px 0; color: #7b8e9c; border-bottom: 1px solid #e0e4ec; font-size: 8px; line-height: 1.5; }
.rp-formula p:last-child { border-bottom: 0; }
.rp-formula b { display: block; color: #3d5a70; font-size: 9px; }
.rp-table-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin: 17px 0 8px; }
.rp-table-head h4 { margin: 0; color: #28465d; font-size: 12px; }
.rp-table-head p { margin: 3px 0 0; color: #8999a7; font-size: 8px; }
.rp-table-head > span { color: #60788b; font-size: 9px; font-weight: 700; }
.rp-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #c9d9e2; }
.rp-table { width: 100%; min-width: 980px; border-collapse: collapse; color: #435a6e; font-size: 9px; }
.rp-table th { height: 36px; padding: 7px 9px; color: #466176; background: #edf2f8; border-right: 1px solid #cfdae4; border-bottom: 2px solid #c2d1dd; text-align: left; white-space: nowrap; }
.rp-table td { height: 40px; padding: 7px 9px; background: #fff; border-right: 1px solid #dbe5ea; border-bottom: 1px solid #e0e8ed; }
.rp-table th:last-child, .rp-table td:last-child { border-right: 0; }
.rp-table tbody tr:nth-child(even) td { background: #f8fbfc; }
.rp-table tbody tr.is-selected td { background: #f0f3fa; }
.rp-table tbody tr.is-selected td:first-child { box-shadow: inset 3px 0 #6071aa; }
.rp-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.rp-table .income { color: #177e5e; }
.rp-table .expense { color: #bd5358; }
.rp-table td small { display: block; margin-top: 2px; color: #93a1ac; font-size: 7px; }
.rp-status { display: inline-flex; padding: 3px 6px; color: #6a7885; background: #eef2f5; border-radius: 3px; font-size: 8px; font-weight: 700; white-space: nowrap; }
.rp-status.normal { color: #18775b; background: #e9f7f1; }
.rp-status.warning { color: #ae6c16; background: #fff2dd; }
.rp-status.danger { color: #b54f55; background: #fff0f0; }
.rp-direction { display: inline-flex; min-width: 36px; justify-content: center; padding: 3px 6px; border-radius: 3px; font-size: 8px; font-weight: 700; }
.rp-direction.in { color: #167e60; background: #e9f7f1; }
.rp-direction.out { color: #b95256; background: #fff0f0; }
.rp-note, .rp-notes p { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; padding: 7px 9px; color: #7d8f9e; background: #f4f8fa; border-left: 3px solid #6071aa; font-size: 8px; line-height: 1.5; }
.rp-note svg, .rp-notes svg { width: 12px; height: 12px; flex: 0 0 auto; color: #6071aa; }
.rp-notes { display: grid; gap: 5px; margin-top: 10px; }
.rp-notes p { margin: 0; }
.rp-guarantee-strip { min-height: 48px; display: grid; grid-template-columns: 1fr 1fr 1.5fr; align-items: stretch; margin-top: 10px; background: #f5f7fa; border: 1px solid #dce3e9; }
.rp-guarantee-strip span { display: flex; align-items: center; gap: 8px; padding: 8px 12px; color: #728596; border-right: 1px solid #d7e0e7; font-size: 8px; }
.rp-guarantee-strip strong { color: #26495f; font-size: 11px; }
.rp-guarantee-strip em { margin-left: auto; color: #8395a3; font-style: normal; }
.rp-guarantee-strip p { display: flex; align-items: center; margin: 0; padding: 8px 12px; color: #8999a6; font-size: 8px; }
.rp-guarantee-strip p.danger { color: #b54f55; background: #fff4f4; font-weight: 700; }
.rp-trend-chart { padding: 10px 12px 4px; overflow-x: auto; background: #fbfdfe; border: 1px solid #dce6ed; }
.rp-trend-chart svg { width: 100%; min-width: 680px; height: 230px; display: block; }
.rp-chart-legend { display: flex; align-items: center; gap: 15px; color: #718598; font-size: 8px; }
.rp-chart-legend span::before { content: ""; width: 10px; height: 8px; display: inline-block; margin-right: 5px; background: #397ead; vertical-align: -1px; }
.rp-chart-legend .guarantee::before { background: #bc5e65; }
.rp-chart-legend .ratio::before { height: 3px; background: #726fa9; vertical-align: 2px; }
.rp-trend-chart .grid line { stroke: #e2eaf0; stroke-width: 1; }
.rp-trend-chart .grid text, .rp-trend-chart .labels text { fill: #8294a3; font: 8px "Microsoft YaHei", sans-serif; }
.rp-trend-chart .bars rect.borrow { fill: #397ead; opacity: .88; }
.rp-trend-chart .bars rect.guarantee { fill: #bc5e65; opacity: .88; }
.rp-trend-chart .ratio-line polyline { fill: none; stroke: #726fa9; stroke-width: 2.2; stroke-linejoin: round; }
.rp-trend-chart .ratio-line circle { fill: #fff; stroke: #726fa9; stroke-width: 2; }
.rp-empty-chart { min-height: 220px; display: grid; place-items: center; color: #91a0ad; background: #fbfdfe; border: 1px solid #dce6ed; font-size: 10px; }
.cq-cell-bar { position: absolute; z-index: 0; left: 0; bottom: 0; height: 2px; max-width: 100%; background: #35a482; opacity: .55; }
.cq-expense .cq-cell-bar { background: #d36f72; }
.cq-month-table th:nth-child(2), .cq-month-table th:nth-child(4), .cq-month-table td:nth-child(2), .cq-month-table td:nth-child(4) { text-align: center; }
.cq-month-table th:nth-child(n+3), .cq-month-table td:nth-child(n+3) { text-align: right; }
.cq-concentration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.cq-customer-card { min-width: 0; overflow: hidden; border: 1px solid #dce6ed; }
.cq-customer-head { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; background: #f6fafc; border-bottom: 1px solid #dce6ed; }
.cq-customer-head > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.cq-customer-head > div > span { width: 31px; height: 31px; display: grid; place-items: center; flex: 0 0 auto; color: #1184a1; background: #e3f3f6; border-radius: 50%; }
.cq-customer-head svg { width: 15px; height: 15px; }
.cq-customer-head h4 { margin: 0; color: #2d485e; font-size: 11px; }
.cq-customer-head p { margin: 4px 0 0; overflow: hidden; color: #8393a2; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.cq-customer-head > strong { color: #16815f; font-size: 16px; }
.cq-customer-card.personal .cq-customer-head > div > span { color: #b67821; background: #fff1dc; }
.cq-customer-card.personal .cq-customer-head > strong { color: #b67821; }
.cq-customer-table { table-layout: fixed; }
.cq-customer-table th:first-child { width: 38%; }
.cq-customer-table th:nth-child(2), .cq-customer-table th:nth-child(4) { width: 20%; text-align: right; }
.cq-customer-table th:nth-child(3), .cq-customer-table th:nth-child(5) { width: 11%; text-align: center; }
.cq-customer-table td:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cq-customer-table td:nth-child(n+2) { text-align: right; }
.cq-customer-table td:nth-child(3), .cq-customer-table td:nth-child(5) { text-align: center; }
.cq-rank { width: 18px; height: 18px; display: inline-grid; place-items: center; margin-right: 7px; color: #607487; background: #edf2f5; border-radius: 50%; font-size: 8px; font-weight: 700; }
.cq-customer-table tr:nth-child(-n+3) .cq-rank { color: #fff; background: #168ea6; }
.cq-composition-table th:nth-child(n+2), .cq-composition-table td:nth-child(n+2) { text-align: right; }
.cq-composition-table th:nth-child(6), .cq-composition-table td:nth-child(6) { width: 24%; }
.cq-type { display: inline-flex; min-width: 62px; justify-content: center; padding: 4px 8px; color: #137e61; background: #e8f7f1; border-radius: 10px; font-weight: 700; }
.cq-type.out { color: #b95054; background: #fff0f0; }
.cq-composition-bar { height: 6px; overflow: hidden; background: #edf2f5; border-radius: 4px; }
.cq-composition-bar i { height: 100%; display: block; background: linear-gradient(90deg, #168daa, #2ca17d); border-radius: inherit; }
.cq-composition-bar.out i { background: linear-gradient(90deg, #dda15a, #ca6467); }

@media (max-width: 1180px) {
    :root { --sidebar-width: 210px; }
    .brand-copy small { display: none; }
    .topnav-item { min-width: 80px; padding: 0 8px; }
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .capability-grid, .node-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .catalog-item { grid-template-columns: 46px 190px 1fr auto; }
    .flow-chart-grid, .trend-chart-grid { grid-template-columns: minmax(0, 1.7fr) minmax(230px, .8fr); }
    .flow-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .flow-chart-grid { grid-template-columns: 1fr; }
    .flow-structure-card { display: grid; grid-template-columns: 1fr 150px minmax(220px, 1fr); align-items: center; }
    .flow-structure-card .flow-card-head { align-self: start; }
    .ranking-side-filter { margin-left: 0; }
    .ranking-bar-row { grid-template-columns: 28px minmax(210px, 1fr) 255px; }
    .ranking-bar-changes { gap: 5px; }
}

@media (max-width: 720px) {
    .preview-heading-actions { width: 100%; justify-content: flex-end; }
}

@media (max-width: 900px) {
    :root { --sidebar-width: 232px; }
    .topbar { padding: 0 15px; }
    .brand { width: auto; }
    .topnav, .topbar-actions { display: none; }
    .hero-band { height: calc(100vh - var(--header-height)); min-height: 620px; }
    .hero-content { height: 100%; min-height: 0; padding: 30px 0; }
    .hero-copy { width: calc(100% - min(360px, 38vw) - 48px); }
    .pipeline { width: min(360px, 38vw); padding: 0; }
    .pipeline > button { grid-template-columns: 46px minmax(0, 1fr) 25px; justify-items: stretch; padding: 0 14px; text-align: left; }
    .pipeline > button span { display: block; }
    .pipeline > button svg { align-self: auto; }
    .pipeline > button b { align-self: auto; font-size: 15px; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .risk-list-panel, .task-panel { grid-column: 1; }
    .module-bottom-grid { grid-template-columns: 1fr; }
    .summary-analysis-picker { right: 0; }
    .enterprise-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .enterprise-facts > div:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
    .enterprise-facts > div:nth-child(even) { padding-left: 18px; border-left: 1px solid #edf1f4; }
    .catalog-item { grid-template-columns: 46px 1fr auto; }
    .catalog-nodes { grid-column: 2/4; }
    .flow-metric-grid, .trend-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .flow-chart-grid, .trend-chart-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .content-wrap { width: calc(100% - 24px); }
    .hero-content, .module-hero-inner { width: calc(100% - 28px); }
    .hero-content { align-items: flex-start; flex-direction: column; justify-content: center; gap: 20px; }
    .hero-copy { width: 100%; max-width: none; transform: translateY(-180px); }
    .hero-copy h1 { font-size: 26px; }
    .hero-copy p { font-size: 13px; }
    .pipeline { top: auto; right: 14px; bottom: 30px; left: 14px; width: auto; overflow: visible; transform: none; }
    .pipeline > button { height: 52px; grid-template-columns: 42px minmax(0, 1fr) 24px; }
    .pipeline > button span, .pipeline > button b { font-size: 14px; }
    .context-bar { align-items: flex-start; flex-direction: column; }
    .context-controls { width: 100%; flex-wrap: wrap; }
    .notice-bar div { flex-direction: column; gap: 3px; }
    .notice-bar span { white-space: normal; line-height: 1.5; }
    .notice-bar button { display: none; }
    .metric-grid, .capability-grid, .node-grid { grid-template-columns: 1fr; }
    .collection-node-grid { grid-template-columns: 1fr; }
    #module-view.collection-module.active-view { min-height: auto; display: block; }
    .collection-module .module-hero { min-height: 190px; }
    .collection-module .module-content { display: block; padding-bottom: 50px; }
    .collection-node-grid .node-card { min-height: 230px; padding: 20px; }
    .metric-card { min-height: 125px; }
    .panel-heading { align-items: flex-start; flex-direction: column; }
    .legend { margin-top: -4px; }
    .chart-wrap { height: 240px; }
    .rating-layout { grid-template-columns: 112px 1fr; gap: 12px; padding: 18px 13px; }
    .score-ring { width: 100px; height: 100px; }
    .score-ring::before { width: 76px; height: 76px; }
    .section-title, .module-toolbar { align-items: flex-start; flex-direction: column; }
    .section-title .btn { width: 100%; }
    .module-title-row { align-items: flex-start; }
    .module-icon { width: 48px; height: 48px; flex: 0 0 auto; }
    .module-title-row h1 { font-size: 22px; }
    .summary-module .module-hero { min-height: 248px; }
    .summary-analysis-picker { position: static; align-items: flex-start; flex-direction: column; gap: 7px; margin-top: 21px; }
    .summary-analysis-picker select { width: 100%; }
    .summary-analysis-head { align-items: flex-start; flex-direction: column; }
    .summary-view-tabs { width: 100%; }
    .summary-view-tabs button { flex: 1; justify-content: center; }
    .flow-summary-stage { padding: 14px; }
    .flow-summary-toolbar { align-items: stretch; flex-direction: column; }
    .flow-summary-toolbar label { align-items: flex-start; flex-direction: column; }
    .flow-summary-toolbar select { width: 100%; }
    .flow-period-controls { width: 100%; align-items: stretch; flex-direction: column; margin-left: 0; }
    .flow-period-picker { width: 100%; }
    .flow-period-switch { width: 100%; }
    .flow-period-switch button { flex: 1; }
    .flow-metric-grid, .trend-metric-grid { grid-template-columns: 1fr; }
    .flow-structure-card { display: block; }
    .counterparty-ranking-stage { padding: 14px; }
    .ranking-toolbar { align-items: stretch; flex-direction: column; }
    .ranking-toolbar select { width: 100%; }
    .ranking-segment { width: 100%; }
    .ranking-segment button { flex: 1; }
    .ranking-metrics { grid-template-columns: 1fr; }
    .ranking-chart-card { overflow-x: auto; }
    .ranking-chart-heading, .ranking-bars { min-width: 670px; }
    .ranking-list-summary { align-items: flex-start; flex-direction: column; gap: 5px; padding: 10px 12px; }
    .trend-toolbar .trend-compare-period { margin-left: 0; }
    .flow-card-head, .trend-table-head { align-items: flex-start; flex-direction: column; }
    .flow-chart-legend { justify-content: flex-start; }
    .module-toolbar > div:last-child { width: 100%; }
    .module-toolbar .btn { flex: 1; padding: 0 8px; }
    .enterprise-page-toolbar { align-items: flex-start; flex-direction: column; }
    .enterprise-page-controls { width: 100%; flex-wrap: wrap; }
    .enterprise-page-switcher { flex: 1; }
    .enterprise-page-switcher select { width: 100%; }
    .enterprise-header-actions { margin-left: auto; }
    .enterprise-header-actions .btn { padding: 0 8px; font-size: 11px; }
    .enterprise-profile-head, .archive-section-head { align-items: flex-start; flex-direction: column; }
    .enterprise-name-row h2 { font-size: 18px; }
    .archive-source { width: 100%; align-items: flex-start; padding: 12px 0 0; border-top: 1px solid #e4ebf0; border-left: 0; }
    .enterprise-facts { grid-template-columns: 1fr; }
    .enterprise-facts > div, .enterprise-facts > div:nth-child(even) { grid-template-columns: 105px minmax(0, 1fr); padding-left: 0; border-left: 0; }
    .enterprise-summary { grid-template-columns: 1fr; }
    .archive-table-tools { width: 100%; overflow-x: auto; }
    .qcc-query-row, .enterprise-form-grid { grid-template-columns: 1fr; }
    .qcc-query-row .btn { width: 100%; }
    .form-span-2 { grid-column: auto; }
    .dialog-backdrop { padding: 12px; }
    .basic-report-backdrop { padding: 0; }
    .basic-report-card { width: 100%; max-height: 100vh; height: 100vh; border: 0; }
    .basic-report-head { min-height: 70px; padding: 11px 12px; }
    .basic-report-mark { width: 38px; height: 38px; }
    .basic-report-head h2 { font-size: 16px; }
    .basic-report-head .section-kicker, .basic-report-head p, .basic-report-actions .btn { display: none; }
    .basic-report-body { padding: 11px; }
    .report-section { padding: 14px 12px; }
    .report-info-grid, .report-stat-grid { grid-template-columns: 1fr; }
    .report-info-grid > div { min-height: 68px; }
    .report-footer { flex-direction: column; gap: 3px; }
    .enterprise-dialog-card { max-height: calc(100vh - 24px); }
    .dialog-head, #enterprise-form { padding-right: 16px; padding-left: 16px; }
    .process-flow { grid-template-columns: 1fr; }
    .process-arrow { transform: rotate(90deg); }
    .catalog-filter { align-items: stretch; flex-direction: column; }
    .filter-chips { overflow-x: auto; }
    .catalog-item { grid-template-columns: 42px 1fr auto; gap: 10px; padding: 13px; }
    .catalog-nodes { grid-column: 1/4; }
    .toast { right: 12px; bottom: 12px; left: 12px; }
    .import-panel { padding: 16px; }
    .import-actions { width: 100%; }
    .import-actions .btn { flex: 1; padding: 0 8px; }
    .pending-import-heading { align-items: center; flex-wrap: wrap; }
    .pending-import-heading > div { flex-basis: calc(100% - 56px); }
    .pending-import-badge { margin-left: 41px; }
    .pending-import-cta { width: 100%; }
    .bank-file-item > span { align-items: flex-start; flex-direction: column; gap: 1px; }
    .import-report-grid { grid-template-columns: 1fr; }
    .login-screen { grid-template-columns: 1fr; justify-items: center; }
    .login-shade { background: linear-gradient(180deg, rgba(4, 38, 73, .55), rgba(3, 18, 38, .88)); }
    .login-brand { top: 22px; left: 22px; }
    .login-visual-copy { left: 24px; bottom: 5vh; }
    .login-visual-copy span { font-size: 23px; }
    .login-visual-copy small { font-size: 11px; }
    .login-panel { margin: 50px 0 0; }
}

@media (max-width: 1180px) {
    .cashflow-quality-grid { display: block; }
    .cq-report-head { align-items: flex-start; flex-direction: column; }
    .cq-report-controls { width: 100%; flex-wrap: wrap; }
    .cq-report-controls label:first-child { flex: 1; }
    .cq-report-controls label:first-child select { width: 100%; }
    .cq-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cq-quality-layout, .cq-concentration-grid { grid-template-columns: 1fr; }
    .cq-structure-summary, .cq-stability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sv-report-head { align-items: flex-start; flex-direction: column; }
    .sv-controls { width: 100%; flex-wrap: wrap; }
    .sv-controls label:first-child { flex: 1; }
    .sv-controls label:first-child select { width: 100%; }
    .sv-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sv-chart-layout { grid-template-columns: 1fr; }
    .op-report-head { align-items: flex-start; flex-direction: column; }
    .op-controls { width: 100%; flex-wrap: wrap; }
    .op-controls label:first-child { flex: 1; }
    .op-controls label:first-child select { width: 100%; }
    .op-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .op-two-column, .op-industry-layout { grid-template-columns: 1fr; }
    .rp-report-head { align-items: flex-start; flex-direction: column; }
    .rp-controls { width: 100%; flex-wrap: wrap; }
    .rp-controls label:first-child { flex: 1; }
    .rp-controls label:first-child select { width: 100%; }
    .rp-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rp-graph-layout { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .cq-report-head, .cq-section { padding: 14px; }
    .cq-report-controls { align-items: stretch; flex-direction: column; }
    .cq-report-controls label, .cq-report-controls select, .cq-report-controls label:nth-child(2) select { width: 100%; }
    .cq-period-switch { width: 100%; }
    .cq-period-switch button { flex: 1; }
    .cq-section-head { align-items: flex-start; flex-direction: column; gap: 6px; }
    .cq-subsection-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .cq-overview-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .cq-kpi-grid { grid-template-columns: 1fr; }
    .cq-structure-summary, .cq-stability-grid { grid-template-columns: 1fr; }
    .cq-structure-foot { align-items: flex-start; flex-direction: column; gap: 4px; }
    .cq-structure-list, .cq-period-summary { grid-template-columns: 1fr; }
    .cq-period-summary span { justify-content: space-between; padding: 0 10px; border-right: 0; border-bottom: 1px solid #dce6ed; }
    .cq-period-summary span:last-child { border-bottom: 0; }
    .cq-month-table { min-width: 720px; }
    .cq-customer-table { min-width: 620px; }
    .cq-composition-table { min-width: 680px; }
    .sv-report-head, .sv-section { padding: 14px; }
    .sv-controls { align-items: stretch; flex-direction: column; }
    .sv-controls label, .sv-controls select { width: 100%; }
    .sv-period-switch { width: 100%; }
    .sv-period-switch button { flex: 1; }
    .sv-section-head, .sv-subhead, .sv-table-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .sv-kpi-grid, .sv-fact-strip { grid-template-columns: 1fr; }
    .sv-fact-strip span { justify-content: space-between; border-right: 0; border-bottom: 1px solid #d5e1e8; }
    .sv-fact-strip span:last-child { border-bottom: 0; }
    .op-report-head, .op-section { padding: 14px; }
    .op-controls { align-items: stretch; flex-direction: column; }
    .op-controls label, .op-controls select { width: 100%; }
    .op-period-switch { width: 100%; }
    .op-period-switch button { flex: 1; }
    .op-section-head, .op-subhead, .op-table-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .op-kpi-grid { grid-template-columns: 1fr; }
    .op-core-bar { grid-template-columns: minmax(120px, .8fr) 1fr; }
    .op-core-bar em { grid-column: 2; }
    .op-private-strip { grid-template-columns: 1fr; }
    .op-private-strip span { border-right: 0; border-bottom: 1px solid #d7e3e9; }
    .rp-report-head, .rp-section { padding: 14px; }
    .rp-controls { align-items: stretch; flex-direction: column; }
    .rp-controls label, .rp-controls select { width: 100%; }
    .rp-period-switch { width: 100%; }
    .rp-period-switch button { flex: 1; }
    .rp-section-head, .rp-subhead, .rp-table-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .rp-kpi-grid { grid-template-columns: 1fr; }
    .rp-guarantee-strip { grid-template-columns: 1fr; }
    .rp-guarantee-strip span { border-right: 0; border-bottom: 1px solid #d7e0e7; }
}

@media print {
    @page { size: A4 portrait; margin: 12mm; }
    body { background: #fff; }
    body > *:not(#basic-data-report-dialog) { display: none !important; }
    #basic-data-report-dialog { position: static; display: block !important; padding: 0; background: #fff; }
    .basic-report-card { width: 100%; max-height: none; display: block; overflow: visible; border: 0; box-shadow: none; }
    .basic-report-head { min-height: auto; padding: 0 0 12px; color: #15344e; background: #fff; border-bottom: 2px solid #197d9b; }
    .basic-report-head .section-kicker { color: #197d9b; }
    .basic-report-head p { color: #667b8e; }
    .basic-report-mark, .basic-report-actions { display: none; }
    .basic-report-body { overflow: visible; padding: 14px 0 0; }
    .report-section { break-inside: avoid; box-shadow: none; }
    .report-core-checks { break-inside: auto; }
    .report-check-detail { break-inside: avoid; }
    .report-table-wrap { overflow: visible; }
    .report-table, .report-table.wide { min-width: 0; font-size: 8px; }
    .report-stat-grid article { min-height: 88px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Module 03 · suspicion rule engine */
.anomaly-analysis-grid { display: block; }
.anomaly-report { color: #294259; font-size: 11px; }
.ar-report-head { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 20px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 4px 14px rgba(40,66,91,.04); }
.ar-report-head h2 { margin: 4px 0 3px; color: #203b52; font-size: 19px; }
.ar-report-head p { margin: 0; color: #8192a2; font-size: 9px; }
.ar-controls { display: flex; align-items: flex-end; gap: 10px; }
.ar-controls label { display: grid; gap: 5px; color: #72869a; font-size: 9px; }
.ar-controls select { height: 34px; min-width: 170px; padding: 0 30px 0 11px; color: #183c58; background: #fff; border: 1px solid #cbdbe6; border-radius: 3px; font-weight: 700; }
.ar-controls label:last-child select { min-width: 128px; }
.ar-period-switch { display: flex; height: 34px; padding: 2px; background: #eef4f7; border-radius: 3px; }
.ar-period-switch button { min-width: 48px; padding: 0 11px; color: #6e8295; background: transparent; border: 0; border-radius: 2px; font-size: 10px; }
.ar-period-switch button.active { color: #fff; background: #c07c20; box-shadow: 0 2px 6px rgba(166,103,20,.2); font-weight: 800; }
.ar-data-scope { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; min-height: 38px; margin-top: 12px; padding: 7px 12px; color: #7890a2; background: #edf5f8; border-left: 3px solid #c38728; }
.ar-data-scope strong { color: #9c641b; }
.ar-section { margin-top: 14px; padding: 18px; background: #fff; border: 1px solid #dce6ed; box-shadow: 0 3px 11px rgba(40,66,91,.035); }
.ar-section-head, .ar-table-head, .ar-subhead { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ar-section-head { margin-bottom: 14px; }
.ar-section-head > div { display: flex; align-items: center; gap: 9px; }
.ar-section-head > div > span { width: 25px; height: 25px; display: grid; place-items: center; color: #fff; background: #b87924; border-radius: 3px; font-size: 9px; font-weight: 800; }
.ar-section-head h3, .ar-subhead h4, .ar-table-head h4 { margin: 0; color: #263f56; font-weight: 800; }
.ar-section-head h3 { font-size: 14px; }
.ar-section-head p, .ar-subhead p, .ar-table-head p { margin: 0; color: #8798a7; font-size: 9px; }
.ar-kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.ar-kpi-grid article { min-height: 86px; padding: 13px 14px; background: #fbfdfe; border: 1px solid #d9e4eb; border-top: 2px solid #2f86b7; }
.ar-kpi-grid article.orange { border-top-color: #d48a20; }.ar-kpi-grid article.red { border-top-color: #cf5d64; }.ar-kpi-grid article.green { border-top-color: #2b9c7b; }.ar-kpi-grid article.purple { border-top-color: #6f73ad; }
.ar-kpi-grid span { display: block; color: #73889a; font-size: 9px; }.ar-kpi-grid strong { display: block; margin: 5px 0 2px; color: #133c5a; font-size: 21px; }.ar-kpi-grid small { color: #92a1ae; font-size: 8px; }
.ar-table-head { margin: 15px 0 7px; }.ar-table-head > div { display: grid; gap: 2px; }.ar-table-head > span { color: #71889a; font-size: 9px; }
.ar-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #d5e2ea; }
.ar-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.ar-table th { height: 34px; padding: 7px 9px; color: #466277; background: #eaf4f7; border-right: 1px solid #d3e2e9; font-size: 9px; text-align: left; }
.ar-table td { min-height: 36px; padding: 8px 9px; color: #385269; border-top: 1px solid #dce6ec; border-right: 1px solid #e1e9ee; vertical-align: middle; }
.ar-table th:last-child,.ar-table td:last-child { border-right: 0; }.ar-table td.number,.ar-table th.number { text-align: right; }.ar-table td strong { display:block;color:#1f435f; }.ar-table td small { display:block;margin-top:2px;color:#8a9ba9;font-size:8px; }
.ar-table tr.is-selected td { background: #eef8fa; }.ar-table tr.is-selected td:first-child { box-shadow: inset 3px 0 #b87924; }
.ar-table.rules th:nth-child(1){width:52px}.ar-table.rules th:nth-child(2){width:18%}.ar-table.rules th:nth-child(3){width:13%}.ar-table.rules th:nth-child(4){width:80px}.ar-table.rules th:nth-child(6){width:13%}
.ar-table.hits { min-width: 1060px; }.ar-table.hits th:nth-child(1){width:95px}.ar-table.hits th:nth-child(2){width:15%}.ar-table.hits th:nth-child(3){width:125px}.ar-table.hits th:nth-child(4){width:16%}.ar-table.hits th:nth-child(5){width:70px}.ar-table.hits th:nth-child(7){width:120px}
.ar-rule-toggle { position: relative; display:inline-block; width:30px;height:17px; }.ar-rule-toggle input{opacity:0;width:0;height:0}.ar-rule-toggle span{position:absolute;inset:0;background:#b7c6d0;border-radius:12px;cursor:pointer;transition:.2s}.ar-rule-toggle span::after{content:"";position:absolute;width:13px;height:13px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s}.ar-rule-toggle input:checked+span{background:#ba7922}.ar-rule-toggle input:checked+span::after{transform:translateX(13px)}
.ar-level { display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:3px 7px;border-radius:10px;font-size:9px;font-weight:800 }.ar-level.level-1{color:#397b67;background:#e6f5ef}.ar-level.level-2{color:#51749a;background:#eaf2fa}.ar-level.level-3{color:#9a7318;background:#fff5d9}.ar-level.level-4{color:#a95d22;background:#fff0df}.ar-level.level-5{color:#b54750;background:#fde9eb}
.ar-analysis-grid { display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);gap:12px;margin-top:14px }.ar-analysis-grid>div,.ar-flow-layout>div,.ar-flow-layout>aside{border:1px solid #d8e4eb;padding:12px;background:#fbfdfe}.ar-subhead{margin-bottom:8px}.ar-subhead>div{display:grid;gap:2px}
.ar-trend svg{display:block;width:100%;height:250px}.ar-trend .grid line{stroke:#dbe5eb;stroke-width:1}.ar-trend .grid text,.ar-trend .labels text{fill:#7e91a1;font-size:9px}.ar-trend .bars rect{fill:#d69a43}.ar-trend .line polyline{fill:none;stroke:#c94f59;stroke-width:2}.ar-trend .line circle{fill:#fff;stroke:#c94f59;stroke-width:2}
.ar-chart-legend{display:flex;justify-content:flex-end;gap:16px;color:#72889a;font-size:9px}.ar-chart-legend span::before{content:"";display:inline-block;width:9px;height:3px;margin-right:5px;vertical-align:middle;background:#d69a43}.ar-chart-legend .ratio::before,.ar-chart-legend .expense::before{background:#c94f59}.ar-chart-legend .income::before{background:#279b7d}
.ar-category-bars{display:grid;gap:13px;padding:10px 4px}.ar-category-row{display:grid;grid-template-columns:105px minmax(80px,1fr) 28px;align-items:center;gap:8px}.ar-category-row span{color:#3d586d}.ar-category-row div{height:8px;background:#e5edf2;border-radius:5px;overflow:hidden}.ar-category-row i{display:block;height:100%;background:linear-gradient(90deg,#d39942,#c55b62);border-radius:5px}.ar-category-row strong{text-align:right;color:#9a641c}
.ar-review{display:flex;gap:4px}.ar-review button{padding:4px 7px;color:#718597;background:#fff;border:1px solid #ccd9e2;border-radius:2px;font-size:9px}.ar-review button.active.yes{color:#14795f;background:#e6f5ef;border-color:#6fc1a9}.ar-review button.active.no{color:#a44950;background:#fdecee;border-color:#e6a4aa}
.ar-level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.ar-level-card{padding:11px 13px;border:1px solid #dbe5eb;border-top:3px solid #3c9a7f;background:#fcfefe}.ar-level-card.l2{border-top-color:#508ab7}.ar-level-card.l3{border-top-color:#d0a03a}.ar-level-card.l4{border-top-color:#d47c3d}.ar-level-card.l5{border-top-color:#c6535d}.ar-level-card span,.ar-level-card small{display:block;color:#7b8f9f;font-size:9px}.ar-level-card strong{display:block;margin:4px 0;color:#183f5d;font-size:20px}
.ar-flow-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:12px;margin-top:12px}.ar-flow-layout aside ol{margin:10px 0 0;padding-left:18px;color:#61788b;line-height:1.75}.ar-flow-layout aside b{color:#294b63}.ar-flow-graph svg{display:block;width:100%;height:330px}.ar-flow-graph line{stroke-width:2;stroke:#279b7d;opacity:.7;marker-end:url(#ar-arrow)}.ar-flow-graph line.out{stroke:#cc5b63}.ar-flow-graph .company circle{fill:#175f8d}.ar-flow-graph .company text{fill:#fff;font-size:11px;font-weight:800}.ar-flow-graph .counterparty circle{fill:#eef5f8;stroke:#7c9caf;stroke-width:1.5}.ar-flow-graph .counterparty text{fill:#35566d;font-size:8px;font-weight:700}.ar-flow-graph text.hits{font-size:7px;font-weight:400;opacity:.8}.ar-flow-graph .empty-label{fill:#8a9aa7;font-size:10px}
.ar-notes{display:grid;gap:5px;margin-top:10px}.ar-notes p{display:flex;align-items:center;gap:6px;margin:0;padding:7px 9px;color:#718798;background:#f3f7f9;font-size:9px}.ar-notes svg{width:12px;color:#b77822}.ar-empty,.ar-state{min-height:220px;display:grid;place-items:center;align-content:center;gap:7px;color:#8294a3}.ar-state svg{width:26px;height:26px;color:#b77822}.ar-state strong{color:#29495f;font-size:14px}.ar-state button{padding:7px 14px;color:#fff;background:#b77822;border:0;border-radius:3px}.ar-state.error svg{color:#ce555e}.ar-table .empty-cell{text-align:center;color:#8699a8;height:60px}
@media(max-width:1180px){.ar-report-head{align-items:flex-start;flex-direction:column}.ar-controls{width:100%;flex-wrap:wrap}.ar-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-analysis-grid,.ar-flow-layout{grid-template-columns:1fr}}
@media(max-width:720px){.ar-report-head,.ar-section{padding:14px}.ar-controls{align-items:stretch;flex-direction:column}.ar-controls label,.ar-controls select{width:100%}.ar-period-switch button{flex:1}.ar-kpi-grid,.ar-level-grid{grid-template-columns:1fr}.ar-section-head,.ar-table-head,.ar-subhead{align-items:flex-start;flex-direction:column}.ar-table.rules{min-width:760px}.ar-table.metrics{min-width:800px}}

/* Module 08 · composite rating and report */
.rating-analysis-grid{display:block}.rating-report{color:#294259;font-size:11px}.rt-report-head{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 20px;background:#fff;border:1px solid #dce6ed;box-shadow:0 4px 14px rgba(40,66,91,.04)}.rt-report-head h2{margin:4px 0 3px;color:#203b52;font-size:19px}.rt-report-head p{margin:0;color:#8192a2;font-size:9px}.rt-controls{display:flex;align-items:flex-end;gap:10px}.rt-controls label{display:grid;gap:5px;color:#72869a;font-size:9px}.rt-controls select{height:34px;min-width:170px;padding:0 30px 0 11px;color:#183c58;background:#fff;border:1px solid #cbdbe6;border-radius:3px;font-weight:700}.rt-controls label:last-child select{min-width:128px}.rt-period-switch{display:flex;height:34px;padding:2px;background:#eef4f7;border-radius:3px}.rt-period-switch button{min-width:48px;padding:0 11px;color:#6e8295;background:transparent;border:0;border-radius:2px;font-size:10px}.rt-period-switch button.active{color:#fff;background:#246e9f;box-shadow:0 2px 6px rgba(30,89,130,.2);font-weight:800}
.rt-data-scope{display:flex;align-items:center;flex-wrap:wrap;gap:20px;min-height:38px;margin-top:12px;padding:7px 12px;color:#7890a2;background:#edf5f8;border-left:3px solid #2679a7}.rt-data-scope strong{color:#196f9f}.rt-data-scope .warn{color:#ad6b20}.rt-data-scope .ok{color:#258064}.rt-section{margin-top:14px;padding:18px;background:#fff;border:1px solid #dce6ed;box-shadow:0 3px 11px rgba(40,66,91,.035)}.rt-section-head,.rt-table-head,.rt-subhead{display:flex;align-items:center;justify-content:space-between;gap:16px}.rt-section-head{margin-bottom:14px}.rt-section-head>div{display:flex;align-items:center;gap:9px}.rt-section-head>div>span{width:25px;height:25px;display:grid;place-items:center;color:#fff;background:#2376a5;border-radius:3px;font-size:9px;font-weight:800}.rt-section-head h3,.rt-subhead h4,.rt-table-head h4{margin:0;color:#263f56;font-weight:800}.rt-section-head h3{font-size:14px}.rt-section-head p,.rt-subhead p,.rt-table-head p{margin:0;color:#8798a7;font-size:9px}
.rt-rating-hero{display:grid;grid-template-columns:160px 155px minmax(360px,1fr);align-items:center;gap:20px;padding:20px 24px;background:linear-gradient(105deg,#f3f9fc,#fff);border:1px solid #d5e3eb}.rt-score-ring{--score:0;width:130px;height:130px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#2481b3 calc(var(--score)*1%),#dce8ee 0);box-shadow:inset 0 0 0 1px #c7dbe6}.rt-score-ring:before{content:"";grid-area:1/1;width:100px;height:100px;border-radius:50%;background:#fff}.rt-score-ring>div{position:relative;grid-area:1/1;text-align:center}.rt-score-ring strong{display:block;color:#164c70;font-size:28px}.rt-score-ring span{color:#7e91a0;font-size:9px}.rt-overall{padding-left:20px;border-left:1px solid #d6e2e9}.rt-overall>span,.rt-overall small{display:block;color:#7e91a0}.rt-overall>strong{display:block;margin:5px 0;font-size:38px}.rt-overall>strong.level-优{color:#268269}.rt-overall>strong.level-良{color:#2476a5}.rt-overall>strong.level-中{color:#bd8b28}.rt-overall>strong.level-差{color:#cb703a}.rt-overall>strong.level-危{color:#c84d57}.rt-overall p{margin:3px 0 8px;color:#49657a}.rt-grade-scale{display:grid;grid-template-columns:repeat(5,1fr);height:65px;border:1px solid #d6e1e8}.rt-grade-scale span{display:grid;place-items:center;align-content:center;gap:3px;border-right:1px solid #d6e1e8;background:#fbfdfe}.rt-grade-scale span:last-child{border-right:0}.rt-grade-scale b{font-size:16px}.rt-grade-scale em{color:#8798a6;font-size:8px;font-style:normal}.rt-grade-scale span.active{box-shadow:inset 0 -4px #2476a5;background:#edf7fb}.rt-grade-scale .level-优 b{color:#268269}.rt-grade-scale .level-良 b{color:#2476a5}.rt-grade-scale .level-中 b{color:#bd8b28}.rt-grade-scale .level-差 b{color:#cb703a}.rt-grade-scale .level-危 b{color:#c84d57}
.rt-dimension-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.rt-dimension-grid article{padding:11px 12px;border:1px solid #dbe5eb;border-top:2px solid #2a8a71;background:#fcfefe}.rt-dimension-grid article.warning{border-top-color:#d09a31}.rt-dimension-grid article.danger{border-top-color:#ca5860}.rt-dimension-grid article>div:first-child{display:flex;justify-content:space-between;color:#718697}.rt-dimension-grid em{font-style:normal}.rt-dimension-grid strong{display:block;margin:5px 0;color:#17415e;font-size:19px}.rt-dimension-grid small{color:#8093a2;font-size:8px}.rt-score-bar{height:5px;margin-bottom:5px;background:#e5edf2;border-radius:4px;overflow:hidden}.rt-score-bar i{display:block;height:100%;background:#2a8a71}.rt-dimension-grid .warning .rt-score-bar i{background:#d09a31}.rt-dimension-grid .danger .rt-score-bar i{background:#ca5860}
.rt-model-layout{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.45fr);gap:12px;margin-top:12px}.rt-model-layout>div{padding:12px;border:1px solid #d8e4eb;background:#fbfdfe}.rt-subhead{margin-bottom:7px}.rt-radar svg{display:block;width:100%;height:280px}.rt-radar .grid polygon{fill:none;stroke:#d5e2e9}.rt-radar .grid line{stroke:#d9e4ea}.rt-radar .value{fill:rgba(35,126,168,.2);stroke:#237ea8;stroke-width:2}.rt-radar text{fill:#526d80;font-size:9px;font-weight:700}.rt-trend svg{display:block;width:100%;height:280px}.rt-trend .bands rect{fill:#dff2eb;opacity:.55}.rt-trend .bands rect.warning{fill:#fff2cf}.rt-trend .bands rect.danger{fill:#fbe3e5}.rt-trend .grid line{stroke:#d5e1e8;stroke-width:1}.rt-trend .grid text,.rt-trend .labels text{fill:#7d91a1;font-size:9px}.rt-trend .score-line{fill:none;stroke:#1e739f;stroke-width:2.5}.rt-trend circle{fill:#fff;stroke:#1e739f;stroke-width:2}
.rt-table-head{margin:15px 0 7px}.rt-table-head>div{display:grid;gap:2px}.rt-table-head>span{max-width:55%;color:#71889a;font-size:9px;text-align:right}.rt-table-wrap{width:100%;overflow-x:auto;border:1px solid #d5e2ea}.rt-table{width:100%;border-collapse:collapse;table-layout:fixed}.rt-table th{height:34px;padding:7px 9px;color:#466277;background:#eaf4f7;border-right:1px solid #d3e2e9;font-size:9px;text-align:left}.rt-table td{padding:8px 9px;color:#385269;border-top:1px solid #dce6ec;border-right:1px solid #e1e9ee;vertical-align:middle}.rt-table th:last-child,.rt-table td:last-child{border-right:0}.rt-table td.number{text-align:right}.rt-table td strong{display:block;color:#1f435f}.rt-table td small{display:block;margin-top:2px;color:#8a9ba9;font-size:8px}.rt-table tr.is-selected td{background:#edf7fa}.rt-table tr.is-selected td:first-child{box-shadow:inset 3px 0 #2376a5}.rt-table.dimensions th:nth-child(1){width:13%}.rt-table.dimensions th:nth-child(2),.rt-table.dimensions th:nth-child(3),.rt-table.dimensions th:nth-child(4){width:8%}.rt-table.dimensions th:nth-child(5){width:28%}.rt-metric-chip{display:block;padding:2px 0;color:#587083;font-size:8px}.rt-rating{display:inline-grid;place-items:center;min-width:28px;height:22px;border-radius:11px;font-weight:800}.rt-rating.level-优{color:#247b64;background:#e4f4ee}.rt-rating.level-良{color:#246e9c;background:#e5f0f8}.rt-rating.level-中{color:#9a741d;background:#fff4d8}.rt-rating.level-差{color:#ad5e2b;background:#fff0e0}.rt-rating.level-危{color:#a9434c;background:#fbe7e9}
.rt-config{margin-top:10px;border:1px solid #d7e3e9;background:#f8fbfc}.rt-config summary{padding:10px 12px;color:#2b5570;cursor:pointer;font-weight:800}.rt-config-body{padding:0 12px 12px}.rt-config-body>p{color:#7d91a0}.rt-table.weights th:nth-child(1){width:20%}.rt-table.weights th:nth-child(2){width:130px}.rt-weight{display:flex;align-items:center}.rt-weight input{width:72px;height:28px;padding:0 6px;border:1px solid #cbd9e2;text-align:right}.rt-weight span{padding-left:5px}.rt-config-body>button{margin-top:9px;padding:8px 13px;color:#fff;background:#2376a5;border:0;border-radius:3px;font-weight:700}
.rt-conclusion{display:flex;align-items:center;gap:13px;padding:13px 15px;background:#edf6fa;border-left:3px solid #2376a5}.rt-conclusion>svg{width:25px;color:#2376a5}.rt-conclusion strong{color:#21465f}.rt-conclusion p{margin:4px 0 0;color:#6d8495}.rt-advice-list{display:grid;gap:9px;margin-top:12px}.rt-advice-list>article{display:grid;grid-template-columns:46px 1fr;gap:12px;padding:13px;border:1px solid #d8e3ea}.rt-advice-index{width:38px;height:38px;display:grid;place-items:center;color:#fff;background:#347da7;font-weight:800}.rt-advice-title{display:flex;align-items:center;justify-content:space-between}.rt-advice-title h4{margin:0;color:#294a62}.rt-advice-title span{padding:3px 7px;color:#9a711e;background:#fff4d7;border-radius:9px;font-size:8px}.rt-advice-title span.danger{color:#a8474e;background:#fae8ea}.rt-advice-list p{margin:5px 0;color:#536f82}.rt-advice-list dl{display:grid;grid-template-columns:70px 1fr;gap:4px 8px;margin:7px 0 0;padding-top:7px;border-top:1px dashed #d9e3e9}.rt-advice-list dt{color:#738899;font-weight:700}.rt-advice-list dd{margin:0;color:#425f73}
.rt-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rt-report-grid article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;min-height:100px;padding:14px;border:1px solid #d7e2e9;background:#fbfdfe}.rt-report-grid article>svg{width:30px;color:#2779a6}.rt-report-grid h4{margin:0;color:#284a62}.rt-report-grid p{margin:5px 0;color:#637b8d;line-height:1.5}.rt-report-grid span{color:#8999a7;font-size:8px}.rt-report-grid a,.rt-report-grid button{padding:8px 11px;color:#fff;background:#2376a5;border:0;border-radius:3px;text-decoration:none;font-size:9px;font-weight:700}.rt-report-grid article.warning{border-left:3px solid #d09832;background:#fffaf0}.rt-report-grid article.complete{border-left:3px solid #2a8b70;background:#f4fbf8}.rt-state,.rt-empty{min-height:220px;display:grid;place-items:center;align-content:center;gap:7px;color:#8294a3}.rt-state svg{width:26px;color:#2376a5}.rt-state strong{color:#29495f;font-size:14px}.rt-state button{padding:7px 14px;color:#fff;background:#2376a5;border:0;border-radius:3px}.rt-table.periods{min-width:940px}
.rt-report-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;background:#edf6fa;border:1px solid #d2e2ea}.rt-report-actions>div{display:flex;align-items:center;gap:10px}.rt-report-actions>div:first-child>svg{width:28px;color:#2478a4}.rt-report-actions strong{display:block;color:#21465f;font-size:13px}.rt-report-actions p{margin:3px 0 0;color:#718799;font-size:9px}.rt-report-actions a,.rt-report-actions button{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 13px;color:#fff;background:#2376a5;border:0;border-radius:3px;text-decoration:none;font-size:9px;font-weight:800;cursor:pointer}.rt-report-actions button{background:#16826f}.rt-report-actions a svg,.rt-report-actions button svg{width:13px}
.rt-document-preview{max-width:1050px;margin:18px auto 4px;padding:38px 46px;color:#273c4d;background:#fff;border:1px solid #cfdce4;box-shadow:0 8px 26px rgba(31,65,89,.1)}.rt-document-cover{text-align:center;border-bottom:2px solid #267ba5;padding-bottom:20px}.rt-document-cover>span{color:#26809f;font-size:9px;font-weight:800;letter-spacing:2px}.rt-document-cover h3{margin:8px 0 5px;color:#173c57;font-size:24px}.rt-document-cover>p{margin:0;color:#536f81;font-size:13px}.rt-document-cover>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 22px;margin-top:14px;color:#708595;font-size:9px}.rt-document-cover b{font-weight:600}.rt-document-warning{display:flex;align-items:flex-start;gap:9px;margin:18px 0;padding:11px 13px;background:#fff9ec;border-left:3px solid #d29a32}.rt-document-warning.complete{background:#f1faf6;border-left-color:#29866d}.rt-document-warning>svg{width:17px;flex:0 0 auto;color:#b77a22}.rt-document-warning.complete>svg{color:#29866d}.rt-document-warning strong{color:#354f62}.rt-document-warning p{margin:3px 0 0;color:#6f8494;line-height:1.6}.rt-document-chapter{margin-top:23px}.rt-document-chapter>h4,.rt-document-appendix h4{margin:0 0 7px;padding-bottom:7px;color:#173d59;border-bottom:1px solid #bfcfd9;font-size:15px}.rt-document-chapter>p{margin:0 0 10px;color:#6c8293;line-height:1.7}.rt-document-chapter>table{width:100%;border-collapse:collapse;table-layout:fixed}.rt-document-chapter>table th,.rt-document-chapter>table td{height:33px;padding:7px 10px;border:1px solid #cddae2;text-align:left}.rt-document-chapter>table th{color:#38566d;background:#eaf3f7;font-weight:800}.rt-document-chapter>table th:nth-child(1){width:27%}.rt-document-chapter>table th:nth-child(2){width:22%}.rt-document-chapter>table td.number{color:#153f5d;text-align:right;font-weight:800}.rt-document-advice{margin-top:9px;padding:11px 13px;background:#f7fafc;border-left:3px solid #277ca5}.rt-document-advice>strong{color:#244a64}.rt-document-advice>p{margin:5px 0 8px;color:#5f788a}.rt-document-advice dl{display:grid;grid-template-columns:70px 1fr;gap:5px 9px;margin:0}.rt-document-advice dt{color:#718697;font-weight:800}.rt-document-advice dd{margin:0;color:#3d596d}.rt-document-empty{padding:20px;text-align:center;color:#899ba8;background:#f7fafb}.rt-document-preview .rt-table-wrap{border-color:#cddae2}.rt-document-preview .rt-table.periods{font-size:9px}.rt-document-appendix{margin-top:24px;padding-top:4px}.rt-document-appendix p{margin:0 0 5px;color:#607889}.rt-document-appendix span{color:#8799a7;font-size:9px}
.rt-document-chapter{margin-top:30px}.rt-document-chapter>h2{margin:0 0 9px;padding-bottom:8px;color:#152f44;border-bottom:2px solid #7394aa;font-size:18px}.rt-document-chapter>h2 span{font-weight:900}.rt-document-summary{margin:0 0 14px!important;color:#63798b!important;line-height:1.75!important}.rt-document-subsection{margin:20px 0 0}.rt-document-subsection>h3{margin:0 0 8px;color:#203b50;font-size:14px;font-weight:900}.rt-document-subsection>p{margin:5px 0 10px;color:#425c70;line-height:1.8;text-indent:2em}.rt-document-table-block{margin:9px 0 18px}.rt-document-table-block>h4{margin:0 0 6px;color:#253e53;font-size:11px}.rt-document-table-wrap{width:100%;overflow-x:auto}.rt-document-table-wrap table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}.rt-document-table-wrap th,.rt-document-table-wrap td{height:32px;padding:6px 7px;border:1px solid #c7d4dc;text-align:center;overflow-wrap:anywhere}.rt-document-table-wrap th{color:#3e596d;background:#edf4f7;font-weight:800}.rt-document-table-wrap td:nth-child(n+2){font-variant-numeric:tabular-nums}.rt-document-table-wrap td.empty{height:48px;color:#8798a6}.rt-document-periods{margin-top:25px;padding-top:15px;border-top:1px solid #c5d3dc}.rt-document-periods>p{text-indent:0}
.rt-document-subsection.level-2{margin-top:16px;padding-left:16px}.rt-document-subsection.level-2>h3{font-size:13px}.rt-document-subsection.heading-only{margin-top:24px;padding-bottom:1px;border-bottom:1px dashed #cbd8e0}.rt-document-subsection.heading-only>h3{font-size:15px}.rt-document-subsection.heading-only+ .rt-document-subsection{margin-top:14px}
@media(max-width:1180px){.rt-report-head{align-items:flex-start;flex-direction:column}.rt-controls{width:100%;flex-wrap:wrap}.rt-rating-hero{grid-template-columns:150px 140px 1fr}.rt-dimension-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-model-layout{grid-template-columns:1fr}.rt-report-grid{grid-template-columns:1fr}.rt-document-preview{padding:30px}}
@media(max-width:720px){.rt-report-head,.rt-section{padding:14px}.rt-controls{align-items:stretch;flex-direction:column}.rt-controls label,.rt-controls select{width:100%}.rt-period-switch button{flex:1}.rt-rating-hero{grid-template-columns:1fr;justify-items:center}.rt-overall{padding:0;border:0;text-align:center}.rt-grade-scale{width:100%}.rt-dimension-grid{grid-template-columns:1fr}.rt-section-head,.rt-table-head,.rt-subhead{align-items:flex-start;flex-direction:column}.rt-report-grid article{grid-template-columns:36px 1fr}.rt-report-grid article a,.rt-report-grid article button{grid-column:2;width:max-content}.rt-advice-title{align-items:flex-start;flex-direction:column;gap:5px}.rt-advice-list dl{grid-template-columns:1fr}.rt-table.dimensions{min-width:900px}.rt-report-actions{align-items:flex-start;flex-direction:column}.rt-document-preview{padding:22px 14px}.rt-document-cover h3{font-size:19px}.rt-document-chapter>table{font-size:9px}.rt-document-advice dl{grid-template-columns:1fr}}
