/* AYYY City · corporate analysis workspace, scoped to tools only. */
body[data-shell="tools"]{--bg:#f2f5f8;--surface:#fff;--surface-2:#edf2f7;--text:#213449;--muted:#748397;--line:#dce4ee;--blue:#325b89;--blue-soft:#e9f0f9;--green:#32877a;--purple:#727a9a;--amber:#ad794b;background:var(--bg);color:var(--text)}
body[data-shell="tools"] .main-content{padding:0!important;max-width:none;margin:0}body[data-shell="tools"] .main-wrap{margin:0}body[data-shell="tools"] #view{animation:none}
.city-stage{font-family:"Segoe UI",Arial,sans-serif;min-height:100svh;position:relative;isolation:isolate;background:#f2f5f8;color:#213449;line-height:1.5;font-size:13px;--city-line:#dce4ee;--city-muted:#748397;--city-navy:#27486c}
.city-stage::before{content:"";position:absolute;inset:0 0 auto;height:440px;z-index:-1;background-image:linear-gradient(90deg,rgba(240,245,249,.94) 0%,rgba(240,245,249,.73) 33%,rgba(240,245,249,.18) 65%,rgba(240,245,249,.13)),linear-gradient(0deg,#f2f5f8 0%,rgba(242,245,248,.22) 70%),var(--city-image);background-size:cover;background-position:center,center,center 44%;pointer-events:none}
.city-stage *{box-sizing:border-box}.city-stage button,.city-stage input,.city-stage select,.city-stage textarea{font:inherit}.city-stage button{cursor:pointer}.city-stage button:disabled{opacity:.45;cursor:not-allowed}.city-stage :is(button,a,input,select,textarea):focus-visible{outline:2px solid #5e89b8;outline-offset:3px}.city-stage [hidden]{display:none!important}
.city-global-header{max-width:1640px;height:70px;margin:auto;padding:0 40px;display:flex;align-items:center;gap:23px;border-bottom:1px solid #7f9bb324}
.city-brand{font:800 37px/1 "Trebuchet MS",sans-serif;letter-spacing:-3px;color:#20374d}.city-brand b{color:#bc885c}.city-brand-label{font-size:11px;font-weight:600;letter-spacing:.03em;border-left:1px solid #9badbd77;padding-left:22px;color:#506276}.city-global-header nav{display:flex;align-items:center;margin-left:auto;gap:26px;font-size:12px}.city-global-header nav a{display:inline-flex;align-items:center;gap:9px;color:#263e56}.city-global-header nav a:hover{text-decoration:underline;text-underline-offset:5px}
.city-wrap{max-width:1640px;margin:auto;padding:26px 40px 0}.city-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;min-height:108px;padding-bottom:23px}.city-eyebrow{display:block;letter-spacing:.16em;font-size:9px;font-weight:600;color:#6d8199}.city-intro h2{font-size:27px;line-height:1.25;font-weight:550;letter-spacing:-.8px;margin:8px 0 6px;max-width:540px;color:#263f58}.city-intro p{font-size:12px;color:#6a7d91}.city-intro-note{display:flex;gap:20px;align-items:center;font-size:10px;color:#384f69;background:#f6f9fcbd;padding:9px 14px;border:1px solid #fff9;border-radius:6px;backdrop-filter:blur(6px)}.city-intro-note>span:first-child{display:flex;align-items:center;gap:7px}.city-intro-note>span:last-child{border-left:1px solid #bdcbd9;padding-left:17px}
.city-nav{display:flex;width:100%;align-items:stretch;gap:5px;padding:6px;border:1px solid #e3e9f1;background:#ffffffeb;backdrop-filter:blur(10px);border-radius:9px;box-shadow:0 6px 20px #203f5d05;overflow:auto;scrollbar-width:thin;margin-bottom:25px}.city-nav a{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 0 auto;padding:12px 13px;font-size:12px;font-weight:500;color:#587087;white-space:nowrap;border-radius:5px;transition:background .15s,color .15s}.city-nav a:hover{background:#edf2f7;color:#2d537c}.city-nav a.active{background:#294f77;color:#fff;box-shadow:0 2px 5px #1e426e24}.city-nav a small{font-size:9px;opacity:.48;margin-left:6px}.city-nav svg{width:17px;height:17px}
.city-section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.city-section-head h1{font-size:25px;font-weight:550;letter-spacing:-.65px;line-height:1.25;margin:7px 0 5px;color:#223b55}.city-section-head p{font-size:12px;color:#76879a}.city-actions{display:flex;align-items:center;gap:8px}.city-button{border:1px solid #d8e1eb;border-radius:5px;padding:9px 13px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#435f7a;font-size:11px;font-weight:500;white-space:nowrap;transition:background .15s}.city-button:hover{background:#f0f4f8;border-color:#bccdde}.city-button.is-primary{background:#2f5883;border-color:#2f5883;color:white}.city-button.is-primary:hover{background:#24476c}.city-button kbd{margin-left:auto;font-size:10px;border:1px solid #7894ad;padding:2px 5px;border-radius:3px}.city-full{width:100%;margin-top:13px;min-height:40px}.city-local{display:flex;align-items:center;gap:8px;color:#708598;font-size:11px}
.city-loan-layout{display:grid;grid-template-columns:308px minmax(0,1fr);gap:21px;align-items:start}.city-panel{border:1px solid #dee6ee;border-radius:9px;background:rgba(255,255,255,.97);box-shadow:0 3px 15px #1c3f5903;padding:21px;min-width:0}.city-panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.city-panel-title h2{font-size:14px;font-weight:600;letter-spacing:-.2px;margin:0}.city-panel-title p{font-size:10px;color:#8290a1;margin:4px 0 0}.city-small-tag{font-size:9px;color:#66827d;background:#f0f6f4;border:1px solid #dfece7;border-radius:4px;padding:3px 6px}.city-segment{display:flex;gap:3px;padding:3px;background:#f1f4f8;border:1px solid #e6ecf2;border-radius:5px;margin-bottom:18px}.city-segment button{flex:1;padding:7px 10px;color:#7e8ca0;font-size:11px;border-radius:3px;background:transparent;border:0;white-space:nowrap}.city-segment button.active{background:#fff;box-shadow:0 1px 4px #18375314;color:#2f547b;font-weight:600}.city-segment.is-small{margin:0;padding:2px}.city-segment.is-small button{padding:6px 10px;font-size:10px}
.city-field{display:block;min-width:0;margin:0 0 13px}.city-field>span{display:block;font-size:10px;font-weight:500;color:#6f8398;margin-bottom:5px}.city-input-wrap{position:relative;display:flex;align-items:center}.city-input-wrap input,.city-field select,.city-field textarea,.city-save-row input,.city-function input{background:#fbfcfe;border:1px solid #dbe4ee;border-radius:5px;width:100%;min-width:0;padding:10px 11px;color:#233c55;outline:none;box-shadow:0 1px 1px #142e4b02}.city-field input{height:39px;letter-spacing:.01em;font-size:13px;font-variant-numeric:tabular-nums}.city-input-wrap input:has(+em){padding-right:42px}.city-input-wrap em{position:absolute;right:11px;font-style:normal;font-size:11px;color:#8a9aac;pointer-events:none}.city-field input[readonly]{background:#eff4f9;color:#5c7690}.city-field input:disabled{background:#f4f6f9;color:#a8b3c0}.city-field select{height:39px;font-size:11px;cursor:pointer;padding-right:24px}.city-field input:focus,.city-field select:focus,.city-field textarea:focus,.city-function input:focus{border-color:#809fbd;background:#fff;box-shadow:0 0 0 3px #658fb710}.city-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.city-field-meta,.city-term-note{font-size:10px;color:#8796a8;margin:-6px 0 13px}.city-details{border-top:1px solid #e7ecf2;margin-top:6px;padding-top:13px}.city-details summary{font-size:11px;color:#586f88;cursor:pointer;margin-bottom:13px;list-style:none;display:flex;align-items:center;justify-content:space-between}.city-details[open] summary{font-weight:600}.city-fine{font-size:10px;line-height:1.7;color:#8998a8;margin:11px 0 0}.city-mini-note{display:flex;gap:8px;font-size:10px;line-height:1.6;color:#8d9ca9;padding-top:16px;margin-top:17px;border-top:1px solid #e8edf2}.city-mini-note svg{flex-shrink:0;color:#739084}.city-analysis{min-width:0}.city-error{background:#fff4f2;color:#a65146;border:1px solid #f0c8bf;border-radius:5px;padding:11px 13px;font-size:12px;margin-bottom:14px}.city-kpis{display:grid;grid-template-columns:1.18fr 1fr 1fr 1fr;gap:10px;margin-bottom:17px}.city-kpi{background:#fff;border:1px solid #e0e7ef;border-radius:7px;padding:16px 16px 14px;display:flex;flex-direction:column;justify-content:space-between;min-height:115px}.city-kpi>span{font-size:10px;color:#8493a6}.city-kpi strong{font-size:21px;font-weight:550;letter-spacing:-.7px;margin:8px 0 5px;font-variant-numeric:tabular-nums;white-space:nowrap}.city-kpi small{font-size:9px;line-height:1.5;color:#95a1af}.city-kpi.is-main{background:linear-gradient(130deg,#294e74,#203d5e);border-color:#244b6e;box-shadow:0 6px 12px #24466a0f}.city-kpi.is-main>span,.city-kpi.is-main small{color:#b4c8dd}.city-kpi.is-main strong{color:#f3f7fc;font-size:28px}.city-kpi .city-positive{color:#348377}.city-kpi .city-date-value{font-size:17px;letter-spacing:-.35px}.city-loan-visual{padding:20px 22px 15px}.city-chart-split{display:grid;grid-template-columns:minmax(0,1fr) 192px;gap:25px}.city-chart{width:100%;height:auto;display:block;overflow:visible}.city-chart text{font:11px "Segoe UI",sans-serif;fill:#90a0b1}.city-gridline{stroke:#e9edf3;stroke-width:1;stroke-dasharray:3 4}.city-axis{stroke:#abb9c8;stroke-width:1}.city-crosshair{stroke:#9cb2c7;stroke-width:1;stroke-dasharray:3 3;pointer-events:none}.city-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:9px;color:#8a9aad;margin-top:8px}.city-legend span{display:flex;align-items:center;gap:6px}.city-legend i{width:15px;height:2px;background:#345f8d}.city-legend .is-base{background:repeating-linear-gradient(90deg,#aab8c7 0 4px,transparent 4px 6px)}.city-legend output{margin-left:auto;font-size:9px}.city-cost-summary{border-left:1px solid #e7edf4;padding-left:23px;font-size:10px}.city-donut{width:116px;height:116px;border-radius:50%;background:conic-gradient(#3d658f 0 var(--principal-share),#b7926b var(--principal-share) var(--interest-share),#96b8b7 var(--interest-share) 100%);padding:9px;margin:15px auto}.city-donut>div{background:white;border-radius:50%;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.city-donut strong{font-size:19px;font-weight:550;color:#3e5872;margin:0;letter-spacing:-.4px}.city-donut small{font-size:9px;color:#96a3b2}.city-cost-summary dl{margin:0}.city-cost-summary dl div{display:flex;justify-content:space-between;gap:5px;margin:8px 0}.city-cost-summary dt{color:#8f9dae}.city-cost-summary dd{margin:0;color:#5a7189;font-variant-numeric:tabular-nums}.city-cost-summary p{font-size:9px;color:#a0acb9;line-height:1.6;margin-top:9px}.city-warning{font-size:10px;color:#99683e;background:#fcf6ee;padding:8px 11px;border-radius:4px;margin-top:14px}
.city-events{margin-top:18px;padding:0 21px 18px}.city-tabs{display:flex;gap:24px;border-bottom:1px solid #e3eaf2;margin:0 0 18px;overflow:auto;scrollbar-width:thin}.city-tabs button{border:0;background:none;padding:15px 0 12px;white-space:nowrap;color:#8192a5;font-size:11px;border-bottom:2px solid transparent}.city-tabs button.active{color:#365e86;border-bottom-color:#406f9e;font-weight:600}.city-subhead{display:flex;justify-content:space-between;align-items:center;gap:13px;margin-bottom:17px}.city-subhead h3{font-size:12px;font-weight:600;margin:0}.city-subhead p{font-size:10px;color:#91a0b0;margin:3px 0 0}.city-event-row{display:grid;grid-template-columns:minmax(125px,1fr) minmax(120px,1.1fr) minmax(150px,1.15fr) 28px;gap:12px;align-items:center}.city-event-row .city-field{margin-bottom:12px}.city-icon-button{border:0;background:none;color:#a1aebc;width:28px;height:30px;display:grid;place-items:center;margin-top:8px}.city-icon-button:hover{color:#a3514b;background:#fbf1ee;border-radius:4px}.city-repeat{border-top:1px solid #e7edf3;padding-top:13px;margin-top:6px}.city-repeat summary{font-size:11px;color:#5a748d;cursor:pointer}.city-repeat-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:13px}.city-repeat-fields .city-field{margin:0}.city-rate-row{display:grid;grid-template-columns:1fr 1fr 28px;gap:12px;align-items:center;max-width:570px}.city-rate-row .city-field{margin-bottom:12px}.city-table-controls{display:flex;align-items:center;gap:15px;font-size:10px;color:#8999ab;margin:12px 0}.city-table-controls>div{display:flex;gap:5px;margin-left:auto}.city-table-controls select{font-size:11px;padding:6px;border:1px solid #d8e2ec;border-radius:4px;color:#5b728a;background:#fff}.city-table-controls .city-button{font-size:10px;min-height:29px;padding:5px 9px}.city-table-scroll{overflow:auto;max-height:510px;scrollbar-width:thin}.city-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}.city-table th{position:sticky;top:0;padding:10px 12px;background:#f4f7fa;color:#8495a8;font-size:10px;font-weight:500;text-align:right;border-bottom:1px solid #e2eaf2;z-index:1}.city-table td{padding:9px 12px;text-align:right;border-bottom:1px solid #edf1f6;color:#536c85}.city-table th:first-child,.city-table td:first-child{text-align:left}.city-table td small{display:block;color:#97a6b6;font-size:9px}.city-table tr.is-extra td{background:#f0f7f5;color:#4e8277}.city-table tr.is-current td{background:#f1f6fb}.city-table td button{border:0;background:none;color:#4e7da9;font-size:11px}.city-save-row{display:flex;gap:10px;margin:0 0 18px}.city-save-row input{max-width:370px;font-size:12px}.city-empty{color:#95a3b4;font-size:11px;padding:15px 0;line-height:1.7}.city-method{border-top:1px solid #dce5ee;padding:17px 2px;margin:23px 0 0;font-size:11px;color:#8494a7;max-width:1250px}.city-method summary{cursor:pointer;color:#6b8198}.city-method p{line-height:1.85;font-size:11px;margin-top:12px}.city-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:10px;color:#91a1b1;margin-top:15px;padding:18px 0 22px;border-top:1px solid #dce5ee}.city-footer span{display:flex;gap:7px;align-items:center}
/* Engineering */
.city-science-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:22px;align-items:start}.city-scientific{padding:21px}.city-scientific .city-panel-title h2{font-size:13px}.city-field textarea{font-family:ui-monospace,Consolas,monospace;font-size:14px;line-height:1.6;resize:vertical;min-height:73px}.city-science-result{position:relative;background:#294e74;border-radius:6px;color:#eaf2fb;padding:13px 15px;min-height:82px;margin:10px 0 16px}.city-science-result>span{font-size:10px;color:#b1c5da;display:block}.city-science-result output{display:block;font-size:29px;line-height:1.4;font-variant-numeric:tabular-nums;letter-spacing:-.5px;overflow-wrap:anywhere;padding-right:24px}.city-science-result button{position:absolute;right:13px;top:15px;background:none;color:#bcd0e3;border:0}.city-engineer-keys{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.city-engineer-keys button{border:1px solid #e0e7ef;border-radius:4px;background:#f4f7fa;color:#54718d;font:12px/1.2 ui-monospace,Consolas,monospace;min-height:35px;padding:6px}.city-engineer-keys button:hover{background:#e2ecf5}.city-engineer-keys button.is-digit{background:#fff;font-size:14px;color:#294967}.city-engineer-keys button.is-clear{background:#faf2ed;color:#a47d5f;border-color:#efdfd2}.city-variable-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.city-slider-label{display:flex;align-items:center;gap:12px;font-size:10px;color:#7e94a8;margin-bottom:18px}.city-slider-label input{flex:1;accent-color:#416b97;min-width:0}.city-history-row{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;font-size:11px;padding:9px 0;border:0;border-bottom:1px solid #e8edf3;color:#667e95;background:none}.city-history-row span{overflow-wrap:anywhere}.city-history-row strong{color:#2d567f;font-weight:500}.city-history-row small{display:block;color:#9babb9;font-size:9px}.city-science-main{min-width:0}.city-plot-panel{padding:21px 23px 16px}.city-functions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.city-function{min-width:0;position:relative}.city-function b{display:block;font:500 12px ui-monospace,Consolas,monospace;margin-bottom:6px}.city-function input{font:12px/1.4 ui-monospace,Consolas,monospace;padding:9px}.city-fn-0{color:#365f90}.city-fn-1{color:#bd8551}.city-fn-2{color:#478d98}.city-function small{display:block;font-size:9px;color:#b06358;margin-top:5px}.city-plot-controls{display:flex;gap:9px;align-items:flex-end;border-block:1px solid #edf1f6;padding:12px 0 3px}.city-plot-controls .city-field{max-width:95px;flex:1;margin-bottom:10px}.city-plot-controls .city-field input{font-size:11px;height:32px;padding:7px 9px}.city-auto{white-space:nowrap;font-size:10px;color:#8d9cad;display:flex;gap:5px;align-items:center;align-self:center;margin-top:10px}.city-auto input{accent-color:#436e98}.city-zoom{margin-left:auto;display:flex;gap:4px;margin-bottom:10px}.city-zoom button{border:1px solid #dce5ee;background:white;border-radius:4px;min-width:29px;height:30px;color:#607d98;display:grid;place-items:center}.city-science-plot{min-height:244px;padding-top:12px;touch-action:pan-y;cursor:crosshair}.city-science-plot .city-chart{min-height:230px}.city-science-plot .city-table-scroll{max-height:300px}.city-plot-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:10px;border-top:1px solid #edf1f6}.city-plot-foot output{font-size:10px;color:#8499ae;font-variant-numeric:tabular-nums}.city-plot-foot>div{display:flex;gap:6px}.city-plot-foot .city-button{font-size:10px;min-height:29px;padding:5px 9px}.city-numerical{margin-top:18px}.city-numerical-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.city-analysis-actions{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 13px}.city-analysis-actions button{font-size:11px;min-height:34px;padding:7px 12px;border:1px solid #dce5ef;color:#587999;background:#f4f8fc;border-radius:4px}.city-analysis-actions button:hover{background:#e5eef8}.city-analysis-result{display:block;border-top:1px solid #e7edf4;padding-top:14px;font-size:12px;color:#477d73;line-height:1.7;overflow-wrap:anywhere}.city-analysis-result.is-error{color:#a25f4d}
/* Existing seven tools keep their behavior but use the same new visual system. */
.city-stage .city-legacy.tools-root{background:none;min-height:0;--tools-card-padding:23px;color:#213449}.city-legacy .tools-layout{grid-template-columns:minmax(0,1fr) 310px;gap:22px}.city-legacy .panel{border:1px solid #dee6ee;border-radius:9px;background:#fff;box-shadow:none}.city-legacy .tools-workspace{min-height:440px}.city-legacy .tools-workspace-head h2{font-size:22px;color:#294765}.city-legacy .tools-overline{color:#8194a9}.city-legacy .tools-context-card{padding:20px!important;background:#fff!important;border:1px solid #dee6ee!important;border-radius:9px!important}.city-legacy .tools-note{padding:18px;background:#edf2f7;border:1px solid #e1e7ef;border-radius:7px}.city-legacy .tools-note-icon{color:#507b9c}.city-legacy .tools-hint{background:#eff4f9;border-color:#9bb4cf}.city-legacy .tools-context h3{color:#3a5877}.city-legacy .field,.city-legacy input,.city-legacy select,.city-legacy textarea{background:#fbfcfe;border-color:#dbe4ee!important;color:#29445e!important;border-radius:5px!important}.city-legacy .tools-result-big{background:linear-gradient(130deg,#eef4fa,#e6eff8);border:1px solid #dbe6f1;border-radius:7px}.city-legacy .tools-result-big output{color:#2f5981;font-size:38px}.city-legacy .tools-tabs{background:#eff4f8}.city-legacy .tools-tabs button.is-active{background:#315d87;color:white}.city-legacy .tools-code-editor,.city-legacy .tools-text-editor{background:#fcfdfe!important;font-family:ui-monospace,Consolas,monospace;border:1px solid #dce5ee;line-height:1.7}.city-legacy .tools-strength span{background:#dae5ef}.city-legacy .tools-strength span.is-filled{background:#507da3}.city-legacy .tools-text-stats>div{background:#edf3f8;border-color:#dce6ef}.city-legacy .tools-password{background:#edf3fa!important;color:#365e85!important}.city-legacy :is(input,select,textarea,button):focus-visible{outline-color:#6d94bc}
@media(min-width:1750px){.city-wrap,.city-global-header{max-width:1740px;padding-inline:55px}.city-loan-layout{grid-template-columns:330px minmax(0,1fr)}.city-kpi strong{font-size:24px}.city-kpi.is-main strong{font-size:31px}.city-science-layout{grid-template-columns:390px minmax(0,1fr)}}
@media(max-width:1280px){.city-wrap,.city-global-header{padding-inline:27px}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.city-kpi{min-height:100px}.city-chart-split{grid-template-columns:minmax(0,1fr)}.city-cost-summary{display:none}.city-loan-layout{grid-template-columns:290px minmax(0,1fr);gap:17px}.city-science-layout{grid-template-columns:320px minmax(0,1fr);gap:17px}.city-nav a{padding-inline:11px}.city-nav a small{display:none}.city-scientific{padding:17px}.city-plot-panel{padding:17px}.city-plot-controls{flex-wrap:wrap}.city-plot-controls .city-field{min-width:64px}.city-repeat-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.city-event-row{grid-template-columns:1fr 1fr 28px}.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-functions{grid-template-columns:1fr}.city-function{display:grid;grid-template-columns:44px 1fr;align-items:center}.city-function b{margin:0}.city-function small{grid-column:2}.city-legacy .tools-layout{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:940px){.city-loan-layout{grid-template-columns:260px minmax(0,1fr);gap:15px}.city-parameters{padding:17px}.city-kpi strong{font-size:18px}.city-kpi.is-main strong{font-size:24px}.city-kpi .city-date-value{font-size:15px}.city-kpi small{font-size:9px}.city-kpis{gap:8px}.city-panel{padding:17px}.city-events{padding:0 17px 17px}.city-tabs{gap:17px}.city-section-head{align-items:flex-start}.city-section-head h1{font-size:22px}.city-section-head p{max-width:360px}.city-actions .city-button{font-size:0;gap:0}.city-actions .city-button svg{width:17px}.city-science-layout{grid-template-columns:285px minmax(0,1fr)}.city-plot-foot{flex-direction:column;align-items:flex-start}.city-numerical-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.city-intro-note{display:none}.city-legacy .tools-layout{grid-template-columns:1fr}.city-legacy .tools-context{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.city-wrap{padding:18px 18px 0}.city-global-header{padding:0 20px;height:62px;gap:15px}.city-brand{font-size:33px}.city-brand-label{font-size:10px;padding-left:15px}.city-global-header nav{gap:13px;font-size:11px}.city-global-header nav a:first-child{display:none}.city-intro{min-height:90px;padding-bottom:20px}.city-intro h2{font-size:23px;max-width:350px}.city-intro p{font-size:11px}.city-stage::before{height:380px;background-position:center,center,60% center}.city-nav{margin-bottom:20px;gap:3px;padding:4px}.city-nav a{padding:11px;font-size:11px}.city-nav a svg{width:16px;height:16px}.city-section-head{gap:12px;margin-bottom:17px}.city-section-head h1{font-size:21px}.city-section-head p{font-size:11px}.city-eyebrow{font-size:8px}.city-loan-layout,.city-science-layout{grid-template-columns:1fr}.city-parameters{padding:19px}.city-parameters #loan-form{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.city-property-fields,.city-parameters .city-details,.city-parameters .city-full,.city-term-note{grid-column:1/-1}.city-property-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.city-field-meta{grid-column:1/-1}.city-parameters .city-form-grid{grid-column:1/-1}.city-parameters .city-mini-note{margin-top:10px;padding-top:12px}.city-parameters .city-details .city-field{margin-bottom:13px}.city-parameters .city-full{margin-top:9px}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:3px}.city-kpi strong{font-size:21px}.city-kpi.is-main strong{font-size:26px}.city-kpi .city-date-value{font-size:17px}.city-kpi{min-height:110px}.city-chart-split{display:block}.city-events{margin-top:15px}.city-event-row{grid-template-columns:1fr 1fr 28px}.city-repeat-fields{grid-template-columns:1fr 1fr}.city-subhead{align-items:flex-start}.city-subhead p{font-size:10px}.city-table-controls{gap:8px;flex-wrap:wrap}.city-table-controls>div{margin-left:0}.city-table-scroll{max-height:380px}.city-science-layout{gap:17px}.city-scientific .city-panel-title h2{font-size:15px}.city-engineer-keys button{min-height:39px}.city-variable-controls{margin-top:17px}.city-plot-panel{padding:18px}.city-function input{font-size:12px}.city-science-plot{min-height:190px}.city-science-plot .city-chart{min-height:0}.city-plot-controls .city-field{max-width:none;flex:1 0 60px}.city-analysis-actions button{flex:1;white-space:nowrap}.city-footer{flex-direction:column;align-items:flex-start;font-size:9px}.city-legacy .tools-workspace{min-height:0}.city-legacy .tools-context{grid-template-columns:1fr}.city-legacy .tools-layout{gap:17px}.city-local{display:none}.city-legend output{width:100%;margin-left:0}}
@media(max-width:400px){.city-wrap{padding-inline:12px}.city-brand-label{display:none}.city-parameters{padding:16px}.city-panel-title h2{font-size:13px}.city-kpi{padding:13px 12px}.city-kpi strong{font-size:18px}.city-kpi.is-main strong{font-size:23px}.city-kpi .city-date-value{font-size:15px}.city-section-head h1{font-size:19px}.city-actions{gap:4px}.city-actions .city-button{padding:7px;min-height:32px}.city-panel{padding:16px}.city-events{padding:0 15px 15px}.city-event-row{gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 23px}.city-repeat-fields{gap:9px}.city-save-row{flex-wrap:wrap}.city-intro h2{font-size:22px}.city-stage input[type=date]{font-size:11px}}
@media(prefers-reduced-motion:reduce){.city-stage *{scroll-behavior:auto!important;transition:none!important}}
@media print{body[data-shell=tools]{background:white}.city-stage{background:white;font-size:10pt}.city-stage::before,.city-global-header,.city-intro,.city-nav,.city-actions,.city-method,.city-footer,.city-mini-note,.city-button,.city-tabs,.city-icon-button,.city-event-row button{display:none!important}.city-wrap{padding:0;max-width:none}.city-loan-layout{grid-template-columns:230px 1fr;gap:15px}.city-panel{break-inside:avoid;border-color:#bbb;box-shadow:none;padding:10px}.city-kpis{grid-template-columns:repeat(2,1fr)}.city-kpi{background:white!important;color:black!important}.city-kpi *{color:black!important}.city-table-scroll{max-height:none;overflow:visible}.city-chart{max-height:240px}.city-events{margin-top:15px}.city-science-layout{grid-template-columns:1fr}.city-field input,.city-field select{border:0;height:auto;padding:3px}.city-details{display:block}.city-legend output{display:none}}

/* Fine-print contrast remains readable over white panels and the city wash. */
.city-field>span,.city-kpi>span,.city-kpi small,.city-panel-title p,.city-subhead p,.city-fine,.city-mini-note,.city-field-meta,.city-term-note,.city-legend,.city-plot-foot output,.city-footer,.city-empty,.city-cost-summary p,.city-cost-summary dt,.city-cost-summary dd,.city-table-controls,.city-table th,.city-table td small{color:#63788f}
.city-kpi.is-main>span,.city-kpi.is-main small{color:#c0d2e5}
.city-chart text{fill:#70849a}

/* 2026-11-06: framed city scene — vector side tower, continuous low skyline.
   Keep the financial work area clear and predominantly white. */
body[data-shell="tools"] {--bg:#f9fbfd;--surface:#fff;--surface-2:#f2f6fa;--text:#1c344a;--blue:#2f638f;--blue-soft:#e9f1f8;background:#f9fbfd}
.city-stage {--city-art-gutter:clamp(136px,11.1vw,204px);--city-dot:#356d99;background:#f9fbfd;color:#20364d;min-height:100svh;isolation:isolate}
.city-stage::before{z-index:0;height:235px;background:radial-gradient(ellipse at 51% 13%,rgba(208,231,240,.58),transparent 44%),radial-gradient(ellipse at 93% 5%,rgba(244,200,156,.45),transparent 32%),linear-gradient(180deg,#f3f8fc 0%,#fff 100%);background-size:auto;background-position:center}
.city-illustration{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:clip}
.city-illustration-side{position:fixed;left:0;top:0;height:100vh;height:100svh;width:var(--city-art-gutter);overflow:hidden;mask-image:linear-gradient(90deg,#000 77%,transparent 100%)}
.city-illustration-side img{width:100%;height:100%;object-fit:fill;display:block}
.city-illustration-horizon{position:fixed;left:0;right:0;bottom:0;height:clamp(70px,11vh,112px);overflow:hidden;opacity:.68;mask-image:linear-gradient(180deg,transparent 0%,#000 35%,#000 100%)}
.city-illustration-horizon img{width:100%;height:100%;object-fit:fill;display:block}
.city-global-header,.city-wrap{position:relative;z-index:1;max-width:none;margin:0;padding-left:var(--city-art-gutter);padding-right:clamp(18px,2.15vw,42px)}
.city-global-header{height:58px;border-bottom:1px solid #9cb5c923;background:rgba(255,255,255,.28)}
.city-brand{font:800 38px/1 "Trebuchet MS","Segoe UI",sans-serif;letter-spacing:-3.8px;color:#203640;transform:rotate(-3deg);padding-right:4px}
.city-brand span{color:var(--city-dot)}
.city-brand-label{color:#5e7284;font-size:10px}
.city-wrap{padding-top:16px;padding-bottom:62px}
.city-intro{min-height:73px;padding-bottom:12px;align-items:center}
.city-intro h2{margin:5px 0 2px;font-size:24px;line-height:1.15;color:#203b55;font-weight:600}
.city-intro p{font-size:11px;color:#687e91}
.city-intro-note{background:#ffffffc7;border-color:#e6edf1;padding:6px 10px}
.city-nav{background:#ffffffef;border:1px solid #e1eaf0;margin-bottom:13px;box-shadow:0 4px 17px rgba(30,60,90,.05)}
.city-panel{background:#fffffffa;border-color:#e0e9ef;box-shadow:0 2px 9px rgba(27,52,73,.035)}
.city-parameters{background:#fff}
.city-footer{position:relative;z-index:2;background:#ffffffba;border-radius:4px}
@media(max-width:1100px){.city-stage{--city-art-gutter:clamp(95px,9.6vw,132px)}}
@media(max-width:760px){.city-stage{--city-art-gutter:0px}.city-illustration-side{width:76px;opacity:.16;mask-image:linear-gradient(90deg,#000,transparent 100%)}.city-illustration-horizon{height:64px;opacity:.3}.city-global-header,.city-wrap{padding-left:18px;padding-right:18px}.city-wrap{padding-top:12px;padding-bottom:36px}.city-global-header{height:53px}.city-brand{font-size:35px}.city-intro{min-height:64px}.city-intro h2{font-size:21px}}
@media(max-width:420px){.city-global-header,.city-wrap{padding-left:12px;padding-right:12px}.city-brand{font-size:33px}.city-intro h2{font-size:19px}}
@media print{.city-illustration{display:none!important}.city-stage::before{display:none!important}.city-stage{--city-art-gutter:0px;background:#fff}.city-global-header,.city-wrap{padding-left:0;padding-right:0}}

/* 2026-11-06: dense corporate UI. Deliberately scoped to the tools route.
   Shrink excessive gaps/frames, not data or accessible controls. */
.city-stage {font-size:12px;line-height:1.38}
.city-global-header {height:52px;gap:16px}
.city-brand {font-size:36px}
.city-brand-label {padding-left:15px;font-size:9px}
.city-global-header nav {font-size:11px;gap:18px}
.city-wrap {padding-top:8px}
.city-intro {min-height:58px;padding-bottom:8px;gap:14px}
.city-intro h2 {font-size:20px;margin:2px 0 1px;letter-spacing:-.45px}
.city-intro p {font-size:10px;margin:0}
.city-eyebrow {font-size:8px;letter-spacing:.14em}
.city-intro-note {font-size:9px;padding:4px 9px;gap:10px}
.city-intro-note>span:last-child {padding-left:10px}
.city-nav {margin-bottom:9px;gap:2px;padding:3px;border-radius:7px}
.city-nav a {gap:5px;padding:8px 6px;font-size:10.5px;border-radius:4px;min-height:34px}
.city-nav a small {font-size:8px;margin-left:2px}
.city-nav svg {width:14px;height:14px;flex-shrink:0}
.city-section-head {gap:10px;margin-bottom:9px}
.city-section-head h1 {font-size:19px;letter-spacing:-.4px;margin:3px 0 2px}
.city-section-head p {font-size:10px;line-height:1.3;margin:0}
.city-actions {gap:5px}
.city-button {padding:5px 9px;min-height:30px;font-size:10px;gap:5px;border-radius:4px}
.city-button svg {width:14px;height:14px;flex-shrink:0}
.city-full {min-height:33px;margin-top:6px}
.city-local {font-size:9px}
.city-loan-layout {grid-template-columns:250px minmax(0,1fr);gap:10px;align-items:start}
.city-panel {padding:12px;border-radius:7px;box-shadow:0 1px 4px #1c3f5909}
.city-panel-title {gap:8px;margin-bottom:9px}
.city-panel-title h2 {font-size:12px}
.city-panel-title p {font-size:9px;margin:1px 0 0}
.city-small-tag {font-size:8px;padding:2px 5px}
.city-segment {margin-bottom:9px;gap:2px;padding:2px}
.city-segment button {padding:5px 7px;font-size:10px}
.city-segment.is-small button {font-size:9px;padding:5px 7px}
.city-field {margin-bottom:7px}
.city-field>span {font-size:9.5px;font-weight:600;color:#546e85;margin-bottom:3px;line-height:1.2}
.city-input-wrap input,.city-field select,.city-field textarea,.city-save-row input,.city-function input {padding:5px 8px;border-radius:4px;background:#fcfdff}
.city-field input {height:31px;font-size:11.5px}
.city-field select {height:31px;font-size:10.5px;padding-right:18px}
.city-input-wrap em {right:7px;font-size:10px}
.city-input-wrap input:has(+em) {padding-right:29px}
.city-form-grid {gap:7px}
.city-field-meta,.city-term-note {font-size:9px;margin:-2px 0 6px;line-height:1.3}
.city-details {margin-top:3px;padding-top:6px}
.city-details summary {font-size:10px;margin-bottom:7px}
.city-details .city-field {margin-bottom:6px}
.city-mini-note {font-size:9px;line-height:1.35;padding-top:8px;margin-top:8px}
.city-fine {font-size:9px;line-height:1.4;margin-top:6px}
.city-error {padding:7px 9px;font-size:11px;margin-bottom:7px}
.city-kpis {gap:7px;margin-bottom:9px;grid-template-columns:1.1fr 1fr 1fr 1fr}
.city-kpi {padding:9px 11px;min-height:79px;border-radius:6px}
.city-kpi>span {font-size:9.3px;line-height:1.25;color:#60778d}
.city-kpi strong {font-size:18px;letter-spacing:-.35px;margin:4px 0 1px;white-space:normal;overflow-wrap:anywhere;line-height:1.2}
.city-kpi.is-main strong {font-size:22px}
.city-kpi .city-date-value {font-size:15px}
.city-kpi small {font-size:9px;line-height:1.25;color:#708599}
.city-loan-visual {padding:10px 12px 9px}
.city-chart-split {grid-template-columns:minmax(0,1fr) 160px;gap:10px}
.city-loan-visual .city-chart {width:100%;height:auto;max-height:197px}
.city-chart text {font-size:10px}
.city-legend {gap:8px;margin-top:1px;font-size:9px}
.city-cost-summary {display:block;border-left:1px solid #e4ebf2;padding-left:11px;font-size:9px}
.city-cost-summary .city-eyebrow {font-size:8px;letter-spacing:.08em}
.city-donut {width:87px;height:87px;padding:7px;margin:6px auto}
.city-donut strong {font-size:14px;letter-spacing:-.2px}
.city-donut small {font-size:8px}
.city-cost-summary dl div {margin:4px 0;gap:3px}
.city-cost-summary p {font-size:8.5px;line-height:1.3;margin-top:6px}
.city-warning {font-size:9px;padding:5px 7px}
.city-events {margin-top:8px;padding:0 12px 10px}
.city-tabs {gap:16px;margin-bottom:9px}
.city-tabs button {font-size:10px;padding:8px 0 7px}
.city-subhead {gap:7px;margin-bottom:8px}
.city-subhead h3 {font-size:11px}
.city-subhead p {font-size:9px;margin:1px 0 0}
.city-event-row {gap:7px;grid-template-columns:minmax(110px,1fr) minmax(90px,1fr) minmax(115px,1fr) 22px}
.city-event-row .city-field {margin-bottom:6px}
.city-icon-button {width:23px;height:26px;margin-top:7px}
.city-repeat {padding-top:7px;margin-top:4px}
.city-repeat summary {font-size:10px}
.city-repeat-fields {gap:7px;margin-top:7px}
.city-rate-row {gap:7px}
.city-rate-row .city-field {margin-bottom:6px}
.city-table-controls {gap:8px;margin:6px 0;font-size:9px}
.city-table-controls select {padding:5px;font-size:10px}
.city-table-controls .city-button {min-height:27px;padding:4px 7px;font-size:9px}
.city-table-scroll {max-height:420px}
.city-table {font-size:10px}
.city-table th {padding:6px 7px;font-size:9px}
.city-table td {padding:5px 7px}
.city-table td small {font-size:8px}
.city-save-row {gap:7px;margin-bottom:8px}
.city-save-row input {font-size:10px}
.city-science-layout {grid-template-columns:275px minmax(0,1fr);gap:10px}
.city-scientific,.city-plot-panel {padding:12px}
.city-scientific .city-panel-title h2 {font-size:12px}
.city-field textarea {font-size:12px;line-height:1.4;min-height:55px}
.city-science-result {min-height:62px;margin:6px 0 9px;padding:8px 10px;border-radius:5px}
.city-science-result output {font-size:23px;line-height:1.25}
.city-science-result>span {font-size:9px}
.city-engineer-keys {gap:3px}
.city-engineer-keys button {min-height:29px;padding:5px 2px;font-size:10px}
.city-engineer-keys button.is-digit {font-size:12px}
.city-variable-controls {gap:7px;margin-top:8px}
.city-slider-label {gap:7px;margin-bottom:8px}
.city-history-row {padding:5px 0;font-size:10px}
.city-functions {gap:7px;margin-bottom:9px}
.city-function b {font-size:10px;margin-bottom:3px}
.city-function input {font-size:11px;padding:6px 7px;height:31px}
.city-plot-controls {gap:6px;padding:7px 0 2px}
.city-plot-controls .city-field {max-width:80px;margin-bottom:6px}
.city-plot-controls .city-field input {height:29px;padding:4px 6px}
.city-auto {font-size:9px;margin-top:5px}
.city-zoom {gap:3px;margin-bottom:6px}
.city-zoom button {min-width:27px;height:28px}
.city-science-plot {min-height:196px;padding-top:6px}
.city-science-plot .city-chart {min-height:0;max-height:235px}
.city-plot-foot {gap:7px;padding-top:5px}
.city-plot-foot>div {gap:4px}
.city-plot-foot .city-button {min-height:26px;padding:4px 7px;font-size:9px}
.city-numerical {margin-top:9px}
.city-numerical-fields {gap:7px}
.city-analysis-actions {gap:5px;margin:0 0 7px}
.city-analysis-actions button {min-height:29px;padding:5px 8px;font-size:10px}
.city-analysis-result {padding-top:7px;font-size:11px}
.city-stage .city-legacy.tools-root {--tools-card-padding:12px}
.city-legacy .tools-layout {grid-template-columns:minmax(0,1fr) 270px;gap:10px}
.city-legacy .tools-workspace {min-height:0}
.city-legacy .tools-workspace-head h2 {font-size:17px}
.city-legacy .tools-context-card {padding:12px!important}
.city-legacy .tools-note {padding:9px}
.city-legacy .tools-result-big output {font-size:26px}
.city-legacy .tools-text-editor,.city-legacy .tools-code-editor {line-height:1.4}
.city-footer {margin-top:8px;padding:7px 0;font-size:9px}
@media(min-width:1650px){.city-loan-layout{grid-template-columns:264px minmax(0,1fr)}.city-science-layout{grid-template-columns:285px minmax(0,1fr)}}
@media(max-width:1220px){.city-loan-layout{grid-template-columns:232px minmax(0,1fr);gap:9px}.city-science-layout{grid-template-columns:248px minmax(0,1fr)}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.city-kpi{min-height:67px}.city-chart-split{grid-template-columns:minmax(0,1fr)}.city-cost-summary{display:grid;grid-template-columns:auto 100px 1fr;align-items:center;gap:7px;border:0;border-top:1px solid #e3ebf2;padding:7px 0 0}.city-cost-summary dl{min-width:0}.city-cost-summary .city-donut{margin:0}.city-cost-summary p{display:none}.city-legacy .tools-layout{grid-template-columns:minmax(0,1fr) 230px}}
@media(max-width:940px){.city-loan-layout{grid-template-columns:226px minmax(0,1fr)}.city-science-layout{grid-template-columns:1fr}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.city-scientific{display:block}.city-panel{padding:10px}.city-events{padding:0 10px 9px}.city-chart-split{grid-template-columns:1fr}.city-legacy .tools-layout{grid-template-columns:1fr}}
@media(max-width:780px){.city-loan-layout,.city-science-layout{grid-template-columns:1fr}.city-parameters #loan-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 9px}.city-property-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 9px}.city-property-fields,.city-parameters .city-details,.city-parameters .city-full,.city-term-note{grid-column:1/-1}.city-field-meta{grid-column:1/-1}.city-parameters .city-form-grid{grid-column:1/-1}.city-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.city-kpi strong{font-size:16px}.city-kpi.is-main strong{font-size:19px}.city-chart-split{grid-template-columns:minmax(0,1fr) 138px}.city-cost-summary{display:block;border:0;border-left:1px solid #e3ebf2;padding:0 0 0 9px}.city-cost-summary p{display:block}.city-event-row{grid-template-columns:repeat(3,minmax(0,1fr)) 22px}.city-event-row .city-field:nth-child(3){grid-column:auto;grid-row:auto}.city-event-row .city-icon-button{grid-column:auto;grid-row:auto}.city-science-layout{gap:9px}.city-functions{grid-template-columns:repeat(3,minmax(0,1fr))}.city-function{display:block}}
@media(max-width:610px){.city-nav{margin-bottom:7px}.city-nav a{min-height:33px;padding:6px 8px}.city-section-head{flex-wrap:wrap}.city-actions{width:100%;justify-content:flex-start}.city-actions .city-button{font-size:10px;gap:5px}.city-loan-layout{gap:8px}.city-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.city-chart-split{grid-template-columns:1fr}.city-cost-summary{display:grid;grid-template-columns:auto 90px 1fr;align-items:center;gap:7px;border:0;border-top:1px solid #e3ebf2;padding:8px 0 0}.city-cost-summary p{display:none}.city-event-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 23px}.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-parameters #loan-form{grid-template-columns:repeat(2,minmax(0,1fr))}.city-panel{padding:10px}.city-functions{grid-template-columns:1fr}.city-function{display:grid;grid-template-columns:39px 1fr}.city-function small{grid-column:2}.city-numerical-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.city-global-header nav{gap:9px;font-size:10px}.city-brand-label{display:none}.city-kpi{padding:8px}.city-kpi strong{font-size:15px}.city-kpi.is-main strong{font-size:18px}.city-panel{padding:9px}.city-event-row{gap:5px}.city-field input,.city-field select{font-size:10px}.city-parameters #loan-form{gap:0 7px}.city-property-fields{gap:0 7px}}
@media print{.city-stage{font-size:10pt}.city-wrap{padding:0}.city-kpis{grid-template-columns:repeat(4,1fr)}.city-panel{background:white;box-shadow:none}.city-loan-layout{grid-template-columns:230px minmax(0,1fr)}}
/* Make the architectural spires meet the top of the viewport. */
.city-illustration-side img{object-fit:cover;object-position:center top}
