/* Approved concept: watercolor edges, white working surfaces, legible compact UI.
   Deliberately last in the tools cascade. Does not style any other service. */
body[data-shell="tools"]{background:#fbfcfe;color:#21374d}
.city-stage{--city-art-gutter:10.4vw;--city-dot:#356d99;font:13px/1.4 "Segoe UI",Arial,sans-serif;background:#fbfcfe;color:#20374d;min-height:100svh}
.city-stage::before{display:none}
.city-illustration{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.city-art-frame{display:block;width:100%;height:100%;object-fit:fill}
.city-global-header,.city-wrap{max-width:1920px;margin:auto;position:relative;z-index:1;padding-left:var(--city-art-gutter);padding-right:22px}
.city-global-header{height:57px;border-bottom:1px solid #dbe5ee70;background:transparent;gap:20px}
.city-brand{color:#203640;font:800 45px/1 "Trebuchet MS","Segoe UI",sans-serif;letter-spacing:-4.5px;transform:rotate(-3deg);padding-right:5px}
.city-brand span{color:transparent;font-size:0;display:inline-block;width:7px;height:7px;background:var(--city-dot);border-radius:50%;margin-left:3px;vertical-align:baseline}
.city-brand-label{display:none}
.city-global-header nav{font-size:13px;gap:28px;font-weight:600}
.city-wrap{padding-top:14px;padding-bottom:92px}
.city-intro{min-height:83px;padding:5px 0 15px;align-items:center}
.city-eyebrow{font-size:10px;letter-spacing:.17em;color:#667d96}
.city-intro h2{font-size:28px;font-weight:650;line-height:1.18;letter-spacing:-.6px;margin:5px 0 4px}
.city-intro p{font-size:13px;color:#6f7f94;line-height:1.35}
.city-intro-note{display:none}
.city-nav{padding:4px;margin:0 0 18px;gap:4px;border-radius:9px;background:#fffffff2;border:1px solid #dbe5ed;box-shadow:0 6px 18px #183f6410;min-height:45px}
.city-nav a{padding:8px 10px;font-size:12.5px;gap:8px;min-height:35px;flex:1 0 auto;color:#294b6a;border-radius:5px}
.city-nav a small{display:none}
.city-nav svg{width:17px;height:17px}
.city-nav a.active,.city-button.is-primary{background:linear-gradient(125deg,#214e71,#2c5c7f);color:#fff;border-color:#2b5574}
.city-section-head{margin:0;height:0;min-height:0}
.city-section-head>div:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.city-section-head .city-actions{position:absolute;right:24px;top:29px;gap:6px}
.city-actions .city-button{background:#ffffffcc;border-color:#dbe5ed;font-size:11px;padding:6px 9px;min-height:30px}
.city-button{font-size:12px;min-height:33px;padding:6px 10px;gap:6px;border-radius:5px}
.city-button svg{width:15px;height:15px}
.city-loan-layout{grid-template-columns:clamp(264px,19.5vw,312px) minmax(0,1fr);gap:13px;align-items:start}
.city-panel{padding:15px 16px;border-radius:10px;border:1px solid #dce5ed;background:linear-gradient(145deg,#fff,#fff 70%,#f9fbfd);box-shadow:0 4px 13px #223e5905}
.city-panel-title{margin:0 0 12px;gap:9px;align-items:center}
.city-panel-title h2,.city-cost-summary h2,.city-brief h2{font-size:14px;font-weight:650;line-height:1.25;letter-spacing:-.25px;color:#142a40;margin:0}
.city-panel-title p{font-size:10px;margin:3px 0 0;color:#73879b}
.city-parameters>.city-panel-title{flex-wrap:wrap;gap:8px;min-height:29px;margin-bottom:14px}
.city-parameters>.city-panel-title h2{font-size:13px;flex:1;white-space:nowrap}
.city-parameters .city-panel-title>.city-segment{margin:0;padding:2px;gap:1px;flex-shrink:0}
.city-segment button{font-size:11px;padding:5px 8px}
.city-parameters .city-panel-title>.city-segment button{font-size:10px;padding:5px 7px}
.city-segment button.active{background:#255577;color:white}
.city-field{margin-bottom:11px}
.city-field>span{font-size:11px;font-weight:500;color:#263f58;margin-bottom:4px;line-height:1.2}
.city-field input,.city-field select{height:34px;font-size:13px;padding:6px 10px;border-radius:5px;line-height:1.25;background:#fcfdff;color:#233d55;border-color:#d4dfeb}
.city-field select{font-size:12px;padding-right:22px}
.city-form-grid{gap:10px}
.city-field-meta,.city-term-note{font-size:10px;color:#698199;margin:-6px 0 9px;line-height:1.3}
.city-field-meta{font-variant-numeric:tabular-nums}
.city-input-wrap em{right:8px;font-size:11px}
.city-field input[readonly]{background:#f0f5fa}
.city-full{min-height:37px;margin-top:7px;font-size:12px;font-weight:600}
.city-details{padding-top:8px;margin-top:2px}
.city-details summary{font-size:11px;margin-bottom:8px}
.city-mini-note{font-size:10px;line-height:1.4;margin-top:10px;padding-top:10px;gap:7px}
.city-fine{font-size:10px;line-height:1.4;margin-top:8px}
.city-number-display{position:absolute;left:10px;right:28px;top:50%;transform:translateY(-50%);font-size:13px;line-height:1.2;pointer-events:none;white-space:nowrap;color:#263d54;font-variant-numeric:tabular-nums}
.city-formatted-number input:not(:focus){color:transparent!important}
.city-formatted-number input:focus~.city-number-display{display:none}
.city-kpis{grid-template-columns:1.14fr 1fr 1fr 1.02fr;gap:10px;margin:0 0 12px}
.city-kpi{min-height:100px;padding:12px 14px;border-radius:9px;box-shadow:0 4px 12px #27496706;justify-content:flex-start;gap:0}
.city-kpi>span{font-size:11px;line-height:1.25;color:#38536e}
.city-kpi strong{font-size:23px;font-weight:650;line-height:1.2;margin:9px 0 7px;letter-spacing:-.5px;overflow-wrap:normal;white-space:nowrap;color:#10263c}
.city-kpi.is-main strong{font-size:28px;letter-spacing:-.6px}
.city-kpi small{font-size:10px;color:#657992;line-height:1.3}
.city-kpi.is-main{background:linear-gradient(130deg,#275d80,#1f3f5e)}
.city-kpi.is-main>span,.city-kpi.is-main small{color:#d3e5f2}
.city-kpi .city-date-value{font-size:18px;margin-top:12px}
.city-kpi .city-positive{color:#268375}
.city-loan-visual{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(220px,1fr);gap:12px;background:none;border:0;box-shadow:none;padding:0;border-radius:0}
.city-chart-card{padding:14px 15px 11px;min-width:0;display:flex;flex-direction:column}
.city-chart-card>.city-panel-title{margin-bottom:8px;align-items:center}
.city-chart-card>.city-panel-title p{display:none}
.city-chart-card .city-panel-title h2{font-size:14px}
.city-segment.is-small{padding:2px}
.city-segment.is-small button{font-size:10px;padding:5px 8px}
.city-chart-card #loan-chart{position:relative;margin-top:3px}
.city-chart-card .city-chart{width:100%;height:208px;max-height:none;min-height:0;display:block}
.city-chart text{font-size:12px;fill:#627c94}
.city-legend{font-size:10px;line-height:1.3;margin-top:4px;gap:10px;color:#5e7890}
.city-legend output{font-size:10px}
.city-chart-tooltip{position:absolute;z-index:4;pointer-events:none;min-width:205px;background:#fffffff7;border:1px solid #d3e0eb;box-shadow:0 5px 16px #26456115;border-radius:7px;padding:8px 10px;display:grid;gap:4px;font-size:11px;color:#39536e}
.city-chart-tooltip strong{color:#152b40;font-size:12px}
.city-cost-summary{display:flex;flex-direction:column;border:1px solid #dce5ed;padding:14px 16px;font-size:11px;min-width:0}
.city-cost-summary h2{margin-bottom:11px}
.city-donut{width:116px;height:116px;padding:10px;margin:0 auto 9px;flex-shrink:0}
.city-donut strong{font-size:18px;color:#142c43;font-weight:650}
.city-donut small{font-size:10px}
.city-cost-summary dl{margin:0}
.city-cost-summary dl>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0;font-size:11px}
.city-cost-summary dt{color:#4b657e}
.city-cost-summary dd{color:#203c55;white-space:nowrap;font-variant-numeric:tabular-nums}
.city-cost-summary .city-cost-total{border-top:1px solid #e0e8f0;margin-top:8px;padding-top:7px;color:#20384e;font-weight:600}
.city-cost-summary p{display:none}
.city-reference-bottom{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:12px;margin-top:12px}
.city-quick-scenarios,.city-brief{padding:12px 14px}
.city-quick-scenarios .city-panel-title{gap:6px;margin-bottom:6px}
.city-quick-scenarios .city-panel-title h2{font-size:13px}
.city-quick-scenarios .city-panel-title button{display:flex;align-items:center;gap:4px;font-size:10px;color:#537591;white-space:nowrap}
.city-quick-scroll{overflow:auto}
.city-quick-scenarios table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}
.city-quick-scenarios th{font-size:10px;color:#5d758d;font-weight:400;padding:3px 5px 5px;text-align:right;white-space:nowrap}
.city-quick-scenarios th:first-child{text-align:left}
.city-quick-scenarios td{border-top:1px solid #e3eaf0;padding:7px 5px;text-align:right;white-space:nowrap;color:#1c364e}
.city-quick-scenarios td:first-child{text-align:left;display:flex;align-items:center;gap:8px;white-space:normal;min-width:140px}
.city-quick-scenarios tr.is-current{background:#f0f5f9}
.city-quick-scenarios td:first-child strong{font-size:11.5px;font-weight:600;display:block}
.city-quick-scenarios small{font-size:10px;display:block;color:#647b90;line-height:1.3;margin-top:2px}
.city-scenario-dot{width:13px;height:13px;flex-shrink:0;border:1px solid #a6b9ca;border-radius:50%}
.is-current .city-scenario-dot{border:4px solid #29769a}
.city-brief h2{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:7px}
.city-brief dl{margin:0}
.city-brief dl>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e6edf3;padding:5px 0;font-size:11px}
.city-brief dl>div:last-child{border-bottom:0}
.city-brief dt{color:#61758b}
.city-brief dd{color:#192f47;font-weight:550;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.city-events{margin-top:12px;padding:0 15px 12px;border-radius:9px}
.city-tabs{gap:20px;margin-bottom:10px}
.city-tabs button{font-size:11px;padding:10px 0 8px}
.city-subhead h3{font-size:12px}.city-subhead p{font-size:10px;line-height:1.3}
.city-event-row{gap:9px;grid-template-columns:1fr 1fr 1.15fr 25px}
.city-icon-button{width:25px;height:30px}
.city-table{font-size:11px}.city-table th{font-size:10px;padding:7px}.city-table td{padding:6px 7px}
.city-repeat summary{font-size:11px}.city-repeat-fields{gap:10px}
.city-method{font-size:11px;max-width:100%;margin-top:12px;color:#556f87}
.city-method summary{font-size:11px}
.city-footer{font-size:10px;background:none;border-top:1px solid #dce6ee70;margin:12px 0 0;padding:8px 0;color:#58768c}
/* Other tools share the same readable corporate surfaces. */
.city-science-layout{grid-template-columns:292px minmax(0,1fr);gap:13px}
.city-science-result{min-height:76px;padding:10px 12px}.city-science-result output{font-size:28px}
.city-field textarea{font-size:13px;line-height:1.5}
.city-engineer-keys{gap:5px}.city-engineer-keys button{min-height:32px;font-size:12px}.city-engineer-keys button.is-digit{font-size:14px}
.city-function input{font-size:13px;min-height:34px}.city-function b{font-size:11px}
.city-science-plot .city-chart{max-height:300px;min-height:220px}
.city-analysis-actions button{font-size:11px;min-height:32px}.city-analysis-result{font-size:13px}
.city-legacy .tools-context-card{font-size:12px!important}.city-legacy .tools-layout{gap:13px}
@media(min-width:1800px){.city-wrap,.city-global-header{padding-left:clamp(170px,10.4vw,210px)}.city-chart-card .city-chart{height:238px}.city-cost-summary{display:grid;grid-template-columns:128px 1fr;gap:10px;align-content:start}.city-cost-summary h2{grid-column:1/-1}.city-cost-summary .city-donut{grid-column:1}.city-cost-summary dl{grid-column:2}.city-cost-summary dl>div{flex-wrap:wrap}}
@media(max-width:1400px) and (min-width:1051px){.city-loan-layout{grid-template-columns:260px minmax(0,1fr)}.city-kpi{padding:10px;min-height:95px}.city-kpi strong{font-size:20px}.city-kpi.is-main strong{font-size:24px}.city-kpi .city-date-value{font-size:15px}.city-kpi>span{font-size:10px}.city-loan-visual{grid-template-columns:minmax(0,1fr) 212px}.city-chart-card{padding:12px}.city-panel-title h2{font-size:13px}.city-reference-bottom{grid-template-columns:minmax(0,1.5fr) minmax(210px,1fr)}.city-quick-scenarios .city-panel-title{flex-wrap:wrap}.city-brief dl>div{font-size:10.5px}.city-nav a{padding:7px;font-size:11px}}
@media(max-width:1050px){.city-stage{--city-art-gutter:100px}.city-wrap,.city-global-header{padding-right:16px}.city-intro h2{font-size:25px}.city-intro{min-height:100px}.city-section-head .city-actions{top:82px;right:16px}.city-loan-layout{grid-template-columns:240px minmax(0,1fr)}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.city-kpi{min-height:89px}.city-loan-visual{grid-template-columns:1fr}.city-cost-summary{display:grid;grid-template-columns:110px 1fr;gap:0 14px;align-items:center}.city-cost-summary h2{grid-column:1/-1;margin-bottom:9px}.city-cost-summary .city-donut{grid-column:1;width:90px;height:90px;margin:0}.city-cost-summary dl{grid-column:2}.city-reference-bottom{grid-template-columns:1fr}.city-science-layout{grid-template-columns:1fr}.city-art-frame{object-fit:cover;object-position:left bottom}.city-nav a{font-size:12px}.city-panel{padding:12px}.city-parameters>.city-panel-title{flex-wrap:wrap}.city-parameters>.city-panel-title h2{flex-basis:100%}}
@media(max-width:780px){.city-stage{--city-art-gutter:18px}.city-art-frame{opacity:.2;object-position:left bottom}.city-wrap{padding-top:10px}.city-global-header{height:52px}.city-brand{font-size:39px}.city-global-header nav{font-size:12px;gap:16px}.city-intro{min-height:98px;align-items:flex-start}.city-intro h2{font-size:23px}.city-intro p{font-size:12px}.city-section-head .city-actions{top:80px;right:16px}.city-nav{margin-bottom:12px}.city-loan-layout{grid-template-columns:1fr}.city-parameters #loan-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.city-property-fields{display:contents}.city-field-meta,.city-term-note,.city-parameters .city-details,.city-parameters .city-full,.city-parameters .city-form-grid{grid-column:1/-1}.city-parameters .city-field{margin-bottom:10px}.city-parameters>.city-panel-title{flex-wrap:nowrap}.city-parameters>.city-panel-title h2{flex-basis:auto}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.city-kpi strong{font-size:22px}.city-reference-bottom{grid-template-columns:1fr}.city-cost-summary{display:grid}.city-event-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 25px}.city-event-row .city-field:nth-child(3){grid-column:1/3;grid-row:2}.city-event-row .city-icon-button{grid-column:3;grid-row:1/3}.city-chart-card .city-chart{height:205px}.city-legend output{flex-basis:100%;margin-left:0}.city-wrap{padding-bottom:45px}.city-functions{grid-template-columns:1fr}}
@media(max-width:420px){.city-stage{--city-art-gutter:12px}.city-global-header,.city-wrap{padding-right:12px}.city-intro h2{font-size:21px}.city-panel{padding:11px}.city-kpi{padding:10px;min-height:98px}.city-kpi strong{font-size:20px}.city-kpi.is-main strong{font-size:24px}.city-kpi .city-date-value{font-size:16px}.city-chart-card .city-panel-title{align-items:flex-start;flex-direction:column}.city-chart-card .city-chart{height:190px}.city-quick-scenarios .city-panel-title{flex-wrap:wrap}.city-field input,.city-field select{font-size:12px}.city-number-display{font-size:12px}}
@media(prefers-reduced-motion:reduce){.city-stage *{scroll-behavior:auto!important;transition:none!important}}
@media print{.city-illustration,.city-global-header,.city-intro,.city-nav,.city-actions{display:none!important}.city-stage{--city-art-gutter:0;font-size:11px}.city-wrap{padding:0;max-width:none}.city-loan-layout{grid-template-columns:240px minmax(0,1fr)}.city-panel{box-shadow:none;break-inside:avoid}.city-kpis{grid-template-columns:repeat(2,1fr)}.city-loan-visual,.city-reference-bottom{grid-template-columns:1fr}.city-formatted-number input:not(:focus){color:transparent!important}}
