* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 14px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; }
button, input, select { font: inherit; }
button { color: inherit; }
a { color: var(--blue-700); }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--rail-width) minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 22px 14px 16px; color: #edf8ff; background: var(--navy-950); }
.brand { display: flex; gap: 10px; align-items: center; padding: 0 12px 22px; color: white; text-decoration: none; font: 600 18px/1 Georgia, serif; }
.brand-logo { display:block; width:156px; height:auto; max-height:34px; object-fit:contain; object-position:left center; }
.brand-mark { width: 25px; height: 25px; display: inline-grid; place-items: center; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; color: var(--cyan-500); }
.side-caption { padding: 12px 12px 7px; color: #96b2c6; text-transform: uppercase; font-size: 10px; letter-spacing: 1px; }
.navigation { display: grid; gap: 3px; }
.nav-button { display: flex; align-items: center; gap: 11px; width: 100%; min-height: 40px; padding: 8px 12px; border: 0; border-radius: 4px; color: #cadce8; background: transparent; text-align: left; cursor: pointer; }
.nav-button:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav-button.active { color: #fff; background: #123e64; box-shadow: inset 3px 0 var(--cyan-500); }
.nav-icon { width: 18px; color: var(--cyan-500); font-size: 16px; text-align: center; }
.sidebar-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding: 12px; border-top: 1px solid rgba(255,255,255,.13); color: #a8bfce; font-size: 11px; }
.status-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #edc46d; }
.version { margin-left: auto; color: #819aac; }
.main-area { min-width: 0; }
.topbar { min-height: 58px; position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 0 34px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); }
.breadcrumbs { display: flex; align-items: center; gap: 10px; color: var(--slate); font-size: 12px; }
.breadcrumbs span:first-child { font-weight: 700; color: var(--navy-900); }
.crumb-sep { color: #aebbc5; }
.top-actions { display: flex; align-items: center; gap: 16px; }
.draft-chip { padding: 4px 8px; border-left: 2px solid var(--cyan-500); color: var(--slate); font-size: 11px; }
.language-control { display: inline-flex; padding: 2px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); }
.lang-button { min-width: 40px; padding: 4px 7px; border: 0; border-radius: 2px; background: transparent; color: var(--slate); cursor: pointer; font-size: 11px; }
.lang-button.active { color: #fff; background: var(--navy-900); }
.page-content { width: min(1500px, 100%); margin: 0 auto; padding: 28px 34px 52px; }
.page-footer { display: flex; justify-content: space-between; gap: 16px; padding: 14px 34px; border-top: 1px solid var(--line); color: var(--muted); background: var(--white); font-size: 10px; }
.page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 24px; padding: 0 0 18px; border-bottom: 2px solid var(--cyan-500); }
.eyebrow { margin-bottom: 5px; color: var(--blue-700); font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; color: var(--navy-950); font-size: clamp(23px, 2.1vw, 30px); line-height: 1.2; font-weight: 650; }
h2 { margin-bottom: 10px; color: var(--navy-900); font-size: 19px; line-height: 1.3; }
h3 { margin-bottom: 7px; color: var(--navy-900); font-size: 14px; }
.page-intro { max-width: 850px; margin: 0; color: var(--slate); font-size: 13px; }
.section { margin-top: 28px; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 12px; }
.section-head p { margin: 0; color: var(--slate); font-size: 12px; }
.callout { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-left: 3px solid var(--cyan-500); background: #eaf5fa; color: #244660; }
.callout.warning { border-left-color: #d4a343; background: var(--amber-bg); color: #705118; }
.callout.danger { border-left-color: #c65f55; background: var(--red-bg); color: #79332f; }
.tree-panel { margin: 22px 0 30px; padding: 22px; color: #eaf7ff; border: 1px solid #1b5278; border-radius: 8px; background: linear-gradient(135deg,#071d36 0%,#0c2e50 62%,#24144e 100%); box-shadow: 0 18px 42px rgba(7,29,54,.18); }
.tree-panel h2 { color: #fff; margin-bottom: 6px; }
.tree-panel p { color: #a9c6d9; }
.tree-panel .eyebrow { color: #55e0ee; }
.tree-root { display:flex; align-items:center; gap:10px; padding:14px 16px; border:1px solid rgba(101,232,244,.5); border-radius:7px; background:rgba(0,0,0,.18); }
.tree-root small, .tree-branches summary small { margin-left:auto; color:#9bb8cc; font-size:11px; }
.tree-dot { width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 0 5px rgba(255,255,255,.1); flex:none; }
.tree-dot.cyan { background:#57e5ef; }.tree-dot.purple { background:#bd8cff; }.tree-dot.amber { background:#f4c76c; }
.tree-branches { margin: 14px 0 0 18px; border-left:1px solid rgba(130,194,221,.35); }
.tree-branches details { padding: 8px 0 8px 20px; }
.tree-branches summary { display:flex; align-items:center; gap:10px; cursor:pointer; list-style:none; color:#fff; }
.tree-branches summary::-webkit-details-marker { display:none; }
.tree-branches summary::before { content:'+'; color:#62dce9; width:16px; font-size:18px; }.tree-branches details[open] summary::before { content:'−'; }
.tree-node-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:10px 0 2px 27px; }
.tree-node { text-align:left; padding:12px; border:1px solid rgba(142,196,222,.25); border-radius:6px; color:#ecf8ff; background:rgba(255,255,255,.06); cursor:pointer; }.tree-node:hover { border-color:#57e5ef; background:rgba(87,229,239,.11); }.tree-node b,.tree-node span { display:block; }.tree-node span { margin-top:4px; color:#a9c6d9; font-size:11px; line-height:1.4; }.tree-node .fit-mark { margin-top:8px; font-size:9px; font-style:normal; }.tree-node .fit-primary { color:#63ddb1; }.tree-node .fit-conditional { color:#f2cc6e; }.tree-node .fit-trigger { color:#72d7e7; }.tree-node .fit-later { color:#b1bcc4; }
.rating-panel { margin-bottom:14px; padding:20px; border-radius:8px; color:#eaf7ff; background:linear-gradient(135deg,#0b2948,#172c5a 65%,#34225e); box-shadow:0 14px 35px rgba(7,29,54,.18); }
.rating-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }.rating-head h2 { color:#fff; margin-bottom:6px; }.rating-head p { color:#abc6d8; font-size:11px; max-width:650px; }
.rating-badge { display:flex; flex-direction:column; align-items:center; justify-content:center; width:82px; height:82px; border:1px solid rgba(255,255,255,.28); border-radius:50%; background:rgba(255,255,255,.1); }.rating-badge strong { font-size:28px; line-height:1; }.rating-badge span { margin-top:5px; color:#a9c6d9; font-size:11px; }.rating-a strong { color:#62f0c1; }.rating-bbb strong { color:#7fe8f3; }.rating-bb strong { color:#f5d278; }.rating-b strong { color:#ff9b8e; }
.rating-meter { height:7px; margin:10px 0 18px; overflow:hidden; border-radius:9px; background:rgba(255,255,255,.12); }.rating-meter div { height:100%; border-radius:9px; background:linear-gradient(90deg,#ff9b8e,#f5d278,#62f0c1); transition:width .25s ease; }
.rating-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.rating-factor { padding:10px; border:1px solid rgba(168,214,231,.18); border-radius:6px; background:rgba(0,0,0,.13); }.factor-top { display:flex; justify-content:space-between; gap:8px; color:#eaf7ff; font-size:11px; }.factor-top b { color:#62e3ed; }.factor-track { height:4px; margin:8px 0 5px; background:rgba(255,255,255,.12); border-radius:4px; }.factor-track i { display:block; height:100%; background:#57e5ef; border-radius:4px; }.rating-factor small { color:#9bb8cc; font-size:10px; }.rating-footer { display:flex; justify-content:space-between; gap:14px; margin-top:16px; padding-top:12px; border-top:1px solid rgba(255,255,255,.14); color:#a9c6d9; font-size:11px; }.rating-footer b { color:#fff; }
.callout strong { color: inherit; }
.split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 24px; }
.panel { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 4px; background: var(--white); box-shadow: var(--shadow); }
.panel-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.panel-title h2, .panel-title h3 { margin: 0; }
.tag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 7px; border-radius: 2px; background: #e9f2f7; color: #325c77; font-size: 10px; white-space: nowrap; }
.tag.green { background: var(--green-bg); color: var(--green); }
.tag.amber { background: var(--amber-bg); color: var(--amber); }
.tag.red { background: var(--red-bg); color: var(--red); }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.metric { padding: 12px; border-top: 2px solid var(--blue-700); background: var(--white); box-shadow: var(--shadow); }
.metric .value { color: var(--navy-950); font-size: 23px; font-weight: 650; font-variant-numeric: tabular-nums; }
.metric .label { color: var(--slate); font-size: 11px; }
.metric .note { margin-top: 4px; color: var(--muted); font-size: 10px; }
.path-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.path-row { padding: 16px; border: 1px solid var(--line); border-left: 3px solid var(--blue-700); background: var(--white); }
.path-row.primary { border-left-color: var(--cyan-500); }
.path-row h3 { display: flex; align-items: center; gap: 8px; }
.path-row p { margin-bottom: 8px; color: var(--slate); font-size: 12px; }
.path-row .path-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); background: var(--white); }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th, td { padding: 10px 11px; border-bottom: 1px solid #e7edf1; text-align: left; vertical-align: top; }
th { position: sticky; top: 0; z-index: 1; background: #eef5f8; color: var(--navy-800); font-size: 10px; font-weight: 700; }
tr:last-child td { border-bottom: 0; }
td { color: #31485b; }
td strong { color: var(--navy-900); }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.filter-button, .action-button { min-height: 32px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 3px; background: var(--white); color: var(--slate); cursor: pointer; font-size: 11px; }
.filter-button:hover, .action-button:hover { border-color: var(--blue-700); color: var(--navy-900); }
.filter-button.active { border-color: var(--navy-900); color: #fff; background: var(--navy-900); }
.action-button.primary { border-color: var(--navy-900); color: white; background: var(--navy-900); }
.action-button.cyan { border-color: var(--cyan-500); color: var(--navy-900); background: var(--cyan-100); }
.btns { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.doc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.doc-item { padding: 12px; border: 1px solid var(--line); background: var(--white); }
.doc-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.doc-top h3 { margin: 0; font-size: 12px; }
.doc-item p { margin: 7px 0 0; color: var(--slate); font-size: 11px; }
.doc-meta { display: grid; grid-template-columns: 94px 1fr; gap: 4px 8px; margin-top: 8px; font-size: 10px; }
.doc-meta dt { color: var(--muted); }
.doc-meta dd { margin: 0; color: #31485b; }
.owner-mark { color: var(--blue-700); font-weight: 700; }
.legend { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; color: var(--slate); font-size: 10px; }
.legend span { display: inline-flex; align-items: center; gap: 5px; }
.legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--blue-700); }
.legend i.required { background: #ae5548; }
.legend i.substitute { background: #c29232; }
.legend i.conditional { background: #5d9270; }
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr); gap: 18px; align-items: start; }
.control-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.control { min-width: 0; }
.control label { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 5px; color: var(--slate); font-size: 11px; }
.control output { color: var(--navy-900); font-weight: 700; font-variant-numeric: tabular-nums; }
.control input[type=range] { width: 100%; accent-color: var(--blue-700); }
.control input[type=number], .control select { width: 100%; min-height: 34px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 3px; background: white; color: var(--ink); }
.instrument-list { display: grid; gap: 7px; }
.instrument { border: 1px solid var(--line); background: white; }
.instrument-head { display: flex; align-items: flex-start; gap: 9px; padding: 10px; }
.instrument-head input { margin-top: 3px; accent-color: var(--blue-700); }
.instrument-head label { flex: 1; cursor: pointer; }
.instrument-name { display: block; color: var(--navy-900); font-size: 12px; font-weight: 650; }
.instrument-desc { display: block; margin-top: 3px; color: var(--slate); font-size: 10px; }
.instrument-body { display: none; padding: 0 10px 10px 33px; color: var(--slate); font-size: 10px; }
.instrument.on .instrument-body { display: block; }
.instrument-control { display: grid; grid-template-columns: 125px 1fr 45px; align-items: center; gap: 8px; margin: 5px 0; }
.instrument-control input[type=range] { width: 100%; accent-color: var(--blue-700); }
.instrument-control output { text-align: right; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.result-list { display: grid; gap: 7px; }
.result-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #e7edf1; }
.result-row:last-child { border-bottom: 0; }
.result-label { color: var(--slate); font-size: 11px; }
.result-value { color: var(--navy-900); text-align: right; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.gate-list { display: grid; gap: 7px; margin-top: 12px; }
.gate { display: flex; gap: 8px; align-items: flex-start; color: var(--slate); font-size: 10px; }
.gate-status { width: 15px; height: 15px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--amber-bg); color: var(--amber); font-size: 9px; }
.gate-status.pass { background: var(--green-bg); color: var(--green); }
.coverage-chart { display: grid; gap: 7px; margin-top: 14px; }
.coverage-line { display: grid; grid-template-columns: 100px 1fr 45px; gap: 8px; align-items: center; color: var(--slate); font-size: 10px; }
.coverage-track { height: 8px; overflow: hidden; background: #e9eef2; }
.coverage-fill { height: 100%; background: var(--blue-700); }
.coverage-fill.cash { background: var(--cyan-500); }
.coverage-fill.bank { background: #438362; }
.coverage-fill.asset { background: #d8a43d; }
.stack-row { display: grid; grid-template-columns: 110px repeat(3, minmax(0,1fr)); gap: 8px; align-items: start; padding: 10px 0; border-bottom: 1px solid #e7edf1; font-size: 10px; }
.stack-row:last-child { border-bottom: 0; }
.stack-title { color: var(--navy-900); font-weight: 700; }
.stack-cell { color: var(--slate); }
.stack-cell b { display: block; margin-bottom: 3px; color: var(--navy-900); }
.term-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.term-item { padding: 12px; border-bottom: 2px solid var(--cyan-500); background: white; }
.term-item strong { display: block; color: var(--navy-900); }
.term-item span { display: block; margin-top: 4px; color: var(--slate); font-size: 11px; }
.source-list { display: grid; gap: 8px; }
.source-item { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.source-item:last-child { border-bottom: 0; }
.source-item strong { color: var(--navy-900); font-size: 11px; }
.source-item p { margin: 3px 0 0; color: var(--slate); font-size: 10px; }
.source-item a { flex: none; font-size: 10px; }
.channel-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.channel-card{padding:16px;border:1px solid var(--line);border-left:4px solid #c29232;background:#fff;box-shadow:var(--shadow)}.channel-card.primary{border-left-color:var(--cyan-500)}.channel-kicker{color:var(--blue-700);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.channel-card h3{margin:5px 0 10px}.channel-card p{margin:7px 0;color:var(--slate);font-size:11px}.channel-card p b{display:inline-block;min-width:88px;color:var(--navy-900)}.material-legend-callout{display:flex;gap:12px;align-items:baseline;margin:10px 0 14px;padding:12px 14px;border-left:3px solid var(--cyan-500);background:#eef8fb;color:var(--slate);font-size:11px}.material-legend-callout b{color:var(--navy-900);white-space:nowrap}
.scenario-file-table{border:1px solid var(--line);background:#fff;overflow:auto}.scenario-file-head,.scenario-file-row{display:grid;grid-template-columns:1.05fr 1.3fr 1.25fr 1.25fr;min-width:900px}.scenario-file-head{background:var(--navy-900);color:#fff;font-size:11px;font-weight:700}.scenario-file-row{border-top:1px solid var(--line);font-size:10.5px;color:var(--slate)}.scenario-file-head span,.scenario-file-row>*{padding:10px;border-right:1px solid var(--line)}.scenario-file-row>*:last-child,.scenario-file-head span:last-child{border-right:0}.scenario-file-row b{color:var(--navy-900);background:#fbfaf6}.scenario-file-row small,.scenario-file-row em{display:block;margin-top:5px;color:var(--blue-700);font-size:9px;font-style:normal}.cashflow-visual{display:flex;align-items:center;gap:8px;margin-top:22px;padding:16px;overflow:auto;border-top:1px solid rgba(142,196,222,.22);border-bottom:1px solid rgba(142,196,222,.22)}.cashflow-step{min-width:130px;padding:10px;border:1px solid rgba(142,196,222,.28);border-radius:6px;background:rgba(255,255,255,.07)}.cashflow-step b{display:block;color:#5fe0eb;font-size:10px}.cashflow-step span{display:block;margin-top:4px;color:#d8eaf3;font-size:11px}.cashflow-step.final{border-color:#d9b95e;background:rgba(217,185,94,.12)}.cashflow-visual>i{color:#66dce8;font-style:normal;font-size:20px}.pricing-section{margin:16px 0}.discount-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.discount-card{padding:16px;border:1px solid var(--line);border-top:3px solid #b6c2ca;background:#fff}.discount-card.recommended{border-top-color:var(--cyan-500);box-shadow:0 9px 24px rgba(12,62,100,.12)}.discount-label{color:var(--blue-700);font-size:11px;font-weight:700}.discount-card>strong{display:block;margin:6px 0;color:var(--navy-950);font-size:25px}.discount-card p{margin:0;color:var(--slate);font-size:11px}.discount-card small{display:block;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);color:var(--muted);font-size:10px}.discount-note{margin-top:10px;padding:10px 12px;color:#6d5416;background:var(--amber-bg);border-left:3px solid #d4a343;font-size:11px}
.price-reference{margin:8px 0 12px;padding:10px 12px;border-left:3px solid var(--blue-700);background:#eef4f8;color:var(--slate);font-size:11px}.price-reference b{color:var(--navy-900);font-size:13px}.quote-band{margin:0 0 10px;padding:8px 9px;color:#fff;background:var(--navy-900);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.tool-map{padding:24px;border:1px solid var(--line);background:#fff}.tool-map-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.tool-map-head h2{margin:3px 0 5px;color:var(--navy-950);font-size:21px}.tool-map-head p{max-width:760px;color:var(--slate);font-size:12px}.fit-legend{display:flex;flex-wrap:wrap;gap:18px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px;color:var(--slate)}.fit-legend span{display:flex;gap:6px;align-items:center}.fit-legend i{width:8px;height:8px;border-radius:50%;background:#2d9a75}.fit-legend i.fit-check{background:#d39c30}.fit-legend i.fit-trigger{background:#3997ad}.fit-legend i.fit-later{background:#8a9299}.tool-tree{margin-top:12px;border-left:2px solid #c9dce6;padding-left:18px}.tool-branch{margin:8px 0 12px}.tool-branch>summary{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#edf4f7;border-left:3px solid var(--blue-700);cursor:pointer;list-style:none;color:var(--navy-950)}.tool-branch>summary::-webkit-details-marker,.tool-leaf>summary::-webkit-details-marker,.qualification-branch>summary::-webkit-details-marker,.qualification-doc>summary::-webkit-details-marker{display:none}.tool-branch>summary span{color:var(--muted);font-size:10px}.tool-leaves{margin:0 0 0 18px;border-left:1px solid #dce7ed;padding:7px 0 7px 14px}.tool-leaf{margin:5px 0;border:1px solid var(--line);border-left:3px solid #88949d;background:#fff}.tool-leaf.fit-primary{border-left-color:#2d9a75}.tool-leaf.fit-conditional{border-left-color:#d39c30}.tool-leaf.fit-trigger{border-left-color:#3997ad}.tool-leaf>summary{display:grid;grid-template-columns:104px 225px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;cursor:pointer;list-style:none}.tool-leaf>summary b{color:var(--navy-950);font-size:12px}.tool-leaf>summary em{color:var(--slate);font-size:10px;font-style:normal}.fit-mark{font-size:9px;font-weight:700;color:#278365}.fit-conditional .fit-mark{color:#9a6a10}.fit-trigger .fit-mark{color:#247d91}.fit-later .fit-mark{color:#68727a}.tool-detail{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;padding:14px 16px 16px;background:#f8fafb;border-top:1px solid var(--line)}.tool-detail small{color:var(--blue-700);font-weight:700;font-size:10px}.tool-detail p{margin:4px 0;color:var(--slate);font-size:11px;line-height:1.55}.text-link{grid-column:1/-1;width:max-content;padding:0;border:0;background:none;color:var(--blue-700);font-size:10px;font-weight:700;cursor:pointer}.material-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:start}.material-toolbar .filters{margin:0}.owner-filters{justify-content:flex-end}.qualification-tree{position:relative;margin-top:20px;padding-left:22px;border-left:2px solid #bfd4df}.qualification-root{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;color:#fff;background:var(--navy-950);border-left:4px solid var(--cyan-500)}.qualification-root span{color:#bbceda;font-size:10px}.qualification-group{margin:18px 0 24px;padding-left:14px;border-left:1px solid #d2e0e6}.qualification-group h2{margin:0 0 8px;color:var(--blue-700);font-size:14px}.qualification-branch{margin:7px 0;border:1px solid var(--line);background:#fff}.qualification-branch>summary{display:grid;grid-template-columns:minmax(220px,1fr) 90px 150px;gap:10px;align-items:center;padding:11px 13px;cursor:pointer;list-style:none}.qualification-branch>summary b{color:var(--navy-950);font-size:12px}.qualification-branch>summary span,.qualification-branch>summary em{font-size:10px;color:var(--muted);font-style:normal}.qualification-branch>summary em{color:var(--blue-700)}.qualification-docs{padding:0 12px 12px 24px;border-top:1px solid #e4ecef}.qualification-doc{margin-top:8px;border:1px solid #e2e9ed;background:#fbfcfd}.qualification-doc>summary{display:grid;grid-template-columns:95px minmax(0,1fr) 165px;gap:8px;align-items:center;padding:9px 10px;cursor:pointer;list-style:none}.qualification-doc>summary b{font-size:11px;color:var(--navy-950)}.qualification-doc>summary small{font-size:9px;color:var(--blue-700)}.doc-priority{font-size:9px;color:#a84940}.priority-substitute .doc-priority{color:#a17418}.priority-conditional .doc-priority{color:#438462}.qualification-detail{padding:8px 12px 10px;border-top:1px dashed var(--line);background:#fff}.qualification-detail p{margin:5px 0;color:var(--slate);font-size:10px;line-height:1.5}.qualification-detail b{color:var(--navy-900)}.material-count{margin-top:10px;text-align:right;color:var(--muted);font-size:10px}.timeline-panel{padding:16px;border:1px solid var(--line);background:white}.timeline-panel .panel-title p{margin:4px 0;color:var(--slate);font-size:10px}.timeline-legend{display:flex;gap:18px;margin:6px 0 8px;font-size:10px;color:var(--slate)}.timeline-legend span{display:flex;align-items:center;gap:5px}.timeline-legend i{width:9px;height:9px;background:#173e62}.timeline-legend span+span i{background:#43b8c4}.timeline-chart{height:125px;display:flex;align-items:stretch;gap:5px;padding:8px 4px 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,#e9eef1 31px)}.timeline-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}.timeline-bar{position:relative;width:min(20px,80%);height:100%;display:flex;align-items:flex-end;background:transparent}.timeline-bar i,.timeline-bar b{position:absolute;bottom:0;left:0;width:100%;background:#173e62}.timeline-bar b{background:#43b8c4;opacity:.85}.timeline-col small{font-size:8px;color:var(--muted)}
.flow { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 9px; counter-reset: step; }
.flow-step { position: relative; min-height: 110px; padding: 14px 12px; border-top: 2px solid var(--blue-700); background: white; }
.flow-step:before { counter-increment: step; content: "0" counter(step); display: block; margin-bottom: 8px; color: var(--cyan-500); font-size: 12px; font-weight: 800; }
.flow-step strong { display: block; color: var(--navy-900); font-size: 11px; }
.flow-step span { display: block; margin-top: 5px; color: var(--slate); font-size: 10px; }
.segment-tabs { display: flex; gap: 0; overflow-x: auto; border-bottom: 1px solid var(--line); }
.segment-tab { padding: 9px 13px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--slate); white-space: nowrap; cursor: pointer; font-size: 11px; }
.segment-tab.active { border-bottom-color: var(--cyan-500); color: var(--navy-900); font-weight: 700; }
.small-note { color: var(--muted); font-size: 10px; }
ol { padding-left: 21px; }
ol li { margin: 8px 0; padding-left: 4px; color: #31485b; }
.hidden { display: none !important; }
.handbook-hero { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; padding:24px; color:#f4fbff; border-radius:8px; background:linear-gradient(135deg,#071d36,#123e64 65%,#2d1f56); box-shadow:0 18px 40px rgba(7,29,54,.18); }.handbook-hero h2{color:#fff;font-size:28px;margin-bottom:8px}.handbook-hero p{color:#bdd2df;max-width:760px}.hero-stats{display:grid;grid-template-columns:54px 1fr;align-content:center;gap:4px 12px;border-left:1px solid rgba(255,255,255,.2);padding-left:24px}.hero-stats b{font-size:26px;color:#5fe0eb}.hero-stats span{align-self:center;color:#b9cad7;font-size:11px}.scene-list{display:grid;gap:10px}.scene-card{border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.scene-card summary{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none}.scene-card summary::-webkit-details-marker{display:none}.scene-num{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;background:var(--navy-900);font:700 12px Georgia}.scene-card summary b{color:var(--navy-900)}.scene-card summary em{color:var(--blue-700);font-size:11px;font-style:normal}.scene-body{padding:0 16px 16px 72px;color:var(--slate);font-size:12px;border-top:1px dashed var(--line)}.glossary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.glossary-card{padding:14px;border:1px solid var(--line);border-top:3px solid var(--cyan-500);background:#fff}.glossary-card>span{color:var(--blue-700);font-size:11px;font-weight:700;letter-spacing:.04em}.glossary-card h3{margin:6px 0;color:var(--navy-900);font-size:14px}.glossary-card p{margin:0;color:var(--slate);font-size:11px}.glossary-card small{display:block;margin-top:9px;padding-top:7px;border-top:1px dashed var(--line);color:var(--muted);font-size:10px}
@media (max-width: 1040px) { :root { --rail-width: 208px; } .page-content { padding-right: 24px; padding-left: 24px; } .metric-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .two-col, .split { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .app-shell { display: block; } .sidebar { position: relative; width: 100%; height: auto; padding: 10px 12px; } .brand { padding: 3px 4px 11px; } .side-caption, .sidebar-foot { display: none; } .navigation { display: flex; overflow-x: auto; } .nav-button { width: auto; min-width: max-content; min-height: 34px; padding: 7px 9px; font-size: 10px; } .nav-button.active { box-shadow: inset 0 -2px var(--cyan-500); } .nav-icon { width: auto; } .topbar { position: relative; min-height: 48px; padding: 0 14px; } .draft-chip { display: none; } .page-content { padding: 20px 14px 34px; } .page-head { display: block; } .page-head .head-actions { margin-top: 14px; } .path-grid, .doc-grid { grid-template-columns: 1fr; } .control-grid { grid-template-columns: 1fr; } .flow { grid-template-columns: repeat(2,minmax(0,1fr)); } .flow-step:last-child { grid-column: 1/-1; } .stack-row { grid-template-columns: 1fr 1fr; } .stack-title { grid-column: 1/-1; } .page-footer { padding: 12px 14px; flex-direction: column; gap: 4px; } }
@media (max-width: 720px) { .tree-node-grid, .rating-grid { grid-template-columns: 1fr; } .tree-panel { padding: 16px; } .tree-root { align-items:flex-start; flex-wrap:wrap; } .tree-root small, .tree-branches summary small { width:100%; margin-left:20px; } .rating-head { display:block; } .rating-badge { margin-top:12px; } .rating-footer { display:block; } .rating-footer span { display:block; margin-top:5px; } }
@media (max-width:720px){.handbook-hero{grid-template-columns:1fr}.hero-stats{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:14px 0 0}.glossary-grid{grid-template-columns:1fr}.scene-card summary{grid-template-columns:36px 1fr}.scene-card summary em{grid-column:2}.scene-body{padding-left:52px}}
@media (max-width:720px){.channel-grid{grid-template-columns:1fr}.material-legend-callout{display:block}.material-legend-callout span{display:block;margin-top:4px}}
@media (max-width:720px){.discount-grid{grid-template-columns:1fr}.cashflow-visual{align-items:stretch}.cashflow-visual>i{display:none}}
@media (max-width:720px){.tool-map{padding:15px}.tool-map-head{display:block}.tool-map-head .action-button{margin-bottom:10px}.tool-leaf>summary{grid-template-columns:1fr;gap:4px}.tool-leaf>summary em{line-height:1.45}.tool-detail{grid-template-columns:1fr;gap:8px}.tool-branch>summary{gap:8px}.qualification-tree{padding-left:12px}.qualification-root{display:block}.qualification-root span{display:block;margin-top:4px}.qualification-branch>summary{grid-template-columns:1fr auto}.qualification-branch>summary em{grid-column:1/-1}.qualification-docs{padding-left:10px}.qualification-doc>summary{grid-template-columns:1fr;gap:4px}.material-toolbar{display:block}.owner-filters{justify-content:flex-start;margin-top:8px!important}.timeline-chart{gap:2px}.timeline-col small{font-size:7px}}

.empty-evidence{margin:10px 0;padding:12px 14px;border-left:3px solid #d39c30;background:#fff8e8;color:#394c58;font-size:11px;line-height:1.55}.empty-evidence p{margin:5px 0}.empty-evidence b{color:#263c49}
@media (max-width: 420px) { .metric-grid { grid-template-columns: 1fr 1fr; gap: 7px; } .metric { padding: 9px; } .metric .value { font-size: 18px; } .metric .label { font-size: 10px; } .term-list { grid-template-columns: 1fr; } .instrument-control { grid-template-columns: 105px 1fr 38px; gap: 5px; } }

/* Compute-factory handbook: reusable bilingual chapter layout. */
.factory-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:24px 0}.factory-flow>div{position:relative;border:1px solid var(--border,#334155);border-top:3px solid #39bfd0;border-radius:10px;padding:20px 16px;display:flex;flex-direction:column;gap:12px}.factory-flow>div:not(:last-child):after{content:'→';position:absolute;right:-15px;top:40%;color:#39bfd0}.factory-flow small{color:#39bfd0}.factory-chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.factory-chapter{min-width:0;border:1px solid var(--border,#334155);border-radius:14px;padding:26px;margin:0!important}.factory-chapter h2{font-size:22px;line-height:1.5;margin-bottom:18px}.factory-chapter p{line-height:1.85;overflow-wrap:anywhere;margin:14px 0}.factory-chapter:last-child{border-color:#39bfd0}@media(max-width:1000px){.factory-chapters{grid-template-columns:1fr}.factory-flow{grid-template-columns:1fr}.factory-flow>div:not(:last-child):after{content:'↓';right:50%;top:auto;bottom:-20px}}

[hidden]{display:none!important}
.fit-option{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #acbecb;border-radius:6px;background:white;color:#23394b;cursor:pointer;font:inherit;font-size:12px}.fit-option[aria-pressed="true"]{outline:2px solid #1686a0;outline-offset:2px;font-weight:700}.fit-option i{background:var(--fit-color,#637583)!important;flex:none;width:10px;height:10px;border-radius:50%}.fit-enquiry{--fit-color:#237953}.fit-conditional{--fit-color:#956300}.fit-trigger{--fit-color:#216fa4}.fit-later{--fit-color:#8053a9}.fit-outside{--fit-color:#68727a}.fit-mark,.fit-conditional .fit-mark,.fit-trigger .fit-mark,.fit-later .fit-mark,.fit-outside .fit-mark{color:var(--fit-color,#237953)}.tool-leaf{border-left-color:var(--fit-color,#68727a)!important}.tree-node{border-left:3px solid var(--fit-color,#acbecb)}.fit-legend{flex-wrap:wrap;gap:10px}.fit-filter{margin:20px 0}.tree-panel .fit-filter>p{color:#d9e9f4}.delivery-head,.delivery-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:18px}.delivery-head{background:#173e62;color:white}.delivery-row{border:1px solid #d8e2e9;border-top:0;background:#fff;color:#32485a;line-height:1.7}.delivery-row>div:first-child{display:flex;gap:15px}.delivery-row small{color:#267b94}.flow-terms{line-height:1.8;color:#526879}.metric .value{overflow-wrap:anywhere;font-size:24px}@media(max-width:720px){.delivery-head,.delivery-row{gap:14px;padding:12px;font-size:12px}.metric .value{font-size:18px}}
/* Narrow viewport repair: tool cards must shrink before text is clipped. */
.tool-map,.tool-tree,.tool-branch,.tool-leaves,.tool-leaf{min-width:0;max-width:100%;box-sizing:border-box;}
.tool-branch>summary{min-width:0;overflow:hidden;}
.tool-branch>summary b,.tool-branch>summary span{min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.tool-leaf>summary{grid-template-columns:minmax(0,104px) minmax(0,225px) minmax(0,1fr);min-width:0;overflow:hidden;}
.tool-leaf>summary>*{min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.tool-leaf>summary b,.tool-leaf>summary em{white-space:normal;}
.tree-branches,.tree-branches details,.tree-node-grid,.tree-node{min-width:0;max-width:100%;}
.tree-branches summary b,.tree-branches summary small,.tree-node b,.tree-node span{min-width:0;overflow-wrap:anywhere;word-break:break-word;}
@media (max-width:720px){
  .tool-map{overflow:hidden;}
  .tool-tree{padding-left:8px;}
  .tool-leaves{margin-left:6px;padding-left:8px;}
  .tool-leaf>summary{grid-template-columns:minmax(0,1fr)!important;gap:5px;}
  .tool-leaf>summary .fit-mark,.tool-leaf>summary b,.tool-leaf>summary em{display:block;width:100%;}
  .tool-leaf>summary b{font-size:14px;line-height:1.35;}
  .tool-leaf>summary em{font-size:11px;line-height:1.45;}
}

.tool-leaf{scroll-margin-top:90px}.tool-leaf.tool-target{outline:2px solid #1686a0;outline-offset:3px}

/* Equipment finance: evidence, funding mix and application pack. */
.device-cases{margin:18px 0}.device-cases small{color:var(--muted)}.device-cases a{color:var(--blue-700)}.device-sim{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr);gap:22px;margin:20px 0}.device-inputs{padding:20px;background:#f0f4f7;border:1px solid var(--line)}.device-inputs label{display:block;margin-bottom:16px;font-size:12px;font-weight:600}.device-inputs input{display:block;width:100%;margin-top:7px}.device-inputs output{display:block;text-align:right;color:var(--blue-700)}.device-inputs p{font-size:11px;color:var(--slate);line-height:1.7}.device-output{min-width:0;padding:20px;border:1px solid var(--line);background:#fff}.device-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px}.device-metric{padding:12px;border-left:3px solid var(--cyan-500);background:#f3f8fa}.device-metric span{display:block;font-size:11px;color:var(--slate)}.device-metric strong{display:block;font-size:24px;color:var(--navy-950);margin-top:7px;overflow-wrap:anywhere}.device-output p{font-size:12px;line-height:1.7}.device-alert{padding:10px;background:#fff5db;border-left:3px solid #b48622}.device-bar{height:12px;background:#b5c8db;margin:18px 0;overflow:hidden;border-radius:3px}.device-bar span{display:block;height:100%;background:#168c9c}.device-table-scroll{max-width:100%;overflow:auto}.device-table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}.device-table th,.device-table td{text-align:left;vertical-align:top;padding:12px;border:1px solid var(--line);line-height:1.7;overflow-wrap:anywhere}.device-table thead{background:var(--navy-900);color:#fff}.device-table tbody th{min-width:110px;color:var(--navy-900)}.device-table-scroll .device-table{min-width:590px}.contract-additions{margin:22px 0}.contract-additions .path-row{border-top:3px solid var(--cyan-500)}
@media(max-width:950px){.device-sim{grid-template-columns:1fr}.device-metric strong{font-size:21px}}@media(max-width:550px){.device-metrics{grid-template-columns:1fr}.device-inputs,.device-output{padding:14px}}
