@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Playfair+Display:wght@600;700&display=swap";.map-editor{background:#fff;border-radius:7px;margin-top:18px;padding:20px}.map-description{margin:0 0 14px}.map-description textarea{min-height:82px}.map-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.map-toolbar button{font-size:12px}.zoom-controls{border:1px solid #b9c9c0;border-radius:5px;align-items:center;margin-left:4px;display:flex;overflow:hidden}.zoom-controls button{border-radius:0;padding:7px 11px}.zoom-controls output{text-align:center;color:#31524b;min-width:48px;font:12px DM Mono}.map-scroll{background:#fbfcfa;border:1px solid #b9c9c0;border-radius:5px;overflow:auto}.map-surface{background-color:#fbfcfa;background-image:linear-gradient(#dde7df 1px,#0000 1px),linear-gradient(90deg,#dde7df 1px,#0000 1px);background-size:20px 20px}.map-canvas{touch-action:none;width:100%;min-width:0;min-height:0;display:block}.map-shape{cursor:move}.map-shape rect:not(.resize-handle),.map-shape polygon{fill:#e7f0eb;stroke:#275d54;stroke-width:2px}.map-shape line{stroke:#275d54;stroke-width:3px}.map-shape text{fill:#193a34;pointer-events:none;font-family:Noto Sans JP,sans-serif;font-size:15px}.map-shape.selected rect:not(.resize-handle),.map-shape.selected polygon{stroke:#d2962f;stroke-width:3px}.resize-handle{cursor:nwse-resize;fill:#d2962f!important;stroke:#fff!important}.map-shape circle.resize-handle{cursor:crosshair}.map-text{margin-top:16px}.map-text textarea{min-height:74px}.text-alignment{gap:12px;margin-top:11px;display:flex}.text-alignment label{font-size:12px}.text-alignment select{font:inherit;color:#1d302c;background:#fff;border:1px solid #cdd8d1;border-radius:4px;padding:7px;font-weight:400}.map-hint{color:#68756f;margin:16px 0 0;font-size:12px}.map-preview .map-shape{cursor:default}.map-preview .map-canvas{background-image:linear-gradient(#dde7df 1px,#0000 1px),linear-gradient(90deg,#dde7df 1px,#0000 1px);background-size:20px 20px;width:1040px;min-width:1040px;height:620px;min-height:620px}@media (width<=800px){.map-editor{padding:14px}.text-alignment{grid-template-columns:1fr 1fr;display:grid}}.refinance-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.refinance-heading h3{margin:0}.refinance-heading button,.apply-refinance{padding:8px 11px;font-size:12px}.refinance-compare table{min-width:680px}.refinance-compare td input,.refinance-compare td select{background:#fff;border:1px solid #cdd8d1;border-radius:4px;width:100%;min-width:82px;padding:6px;font-size:12px}.refinance-compare td input[type=checkbox]{width:auto;min-width:0}.apply-refinance{background:#174c43;margin:16px 0 0 auto;display:block}.refinance-schedule{margin-top:18px}.refinance-schedule h2{margin-bottom:6px}.refinance-schedule p{color:#64716d;margin:0 0 14px;font-size:13px}.refinance-schedule table{min-width:800px}.horizontal-repayment{min-width:1850px}.horizontal-repayment th{white-space:nowrap;text-align:center!important}.horizontal-repayment th:nth-child(-n+3){text-align:left!important}.horizontal-repayment td{vertical-align:middle;text-align:right;min-width:125px}.horizontal-repayment td:nth-child(-n+2){text-align:left;min-width:170px}.horizontal-repayment .metric-label{color:#53625d;background:#f7faf8;min-width:94px}.horizontal-repayment td b,.horizontal-repayment td small{display:block}.horizontal-repayment td b{font:500 12px DM Mono,monospace}.horizontal-repayment td small{color:#236144;white-space:nowrap;margin:3px 0;font-size:10px}.horizontal-repayment input{width:100%;min-width:92px;margin-top:4px}.horizontal-repayment .final-cell{background:#fff8e7}.loan-toolbar{justify-content:space-between;align-items:end;gap:20px;display:flex}.loan-title{margin:32px 0 13px}.loan-toolbar .loan-title{margin:0}.loan-title h2{margin:0 0 5px}.loan-title p{color:#64716d;margin:0;font-size:13px;line-height:1.7}.loan-inputs{padding:0;overflow-x:auto}.loan-head,.loan-row{grid-template-columns:220px 160px 120px 80px 120px 94px 140px 140px 165px 75px 48px;align-items:center;gap:8px;min-width:1370px;padding:12px 16px;display:grid}.loan-head{color:#64716d;background:#f0f5f1;font-size:11px;font-weight:700}.loan-row{border-top:1px solid #edf0ed}.loan-row>div{grid-template-columns:1fr;gap:6px;display:grid}.loan-row>div:nth-child(2){grid-template-columns:1fr 1fr}.loan-row input,.loan-row select{background:#fff;border:1px solid #cdd8d1;border-radius:4px;width:100%;min-width:0;padding:7px;font-size:12px}.year-accordions{gap:10px;display:grid}.year-accordions section{padding:0;overflow:hidden}.year-toggle{color:#1d4d44;text-align:left;background:#fff;border-radius:0;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;display:flex}.year-toggle:hover{background:#f3f7f4}.year-toggle small{color:#68756f;font-weight:400}.table-scroll{overflow-x:auto}.repayment-table{min-width:900px}.repayment-table td:not(:nth-child(2)):not(:nth-child(3)),.repayment-table th:not(:nth-child(2)):not(:nth-child(3)){text-align:right}.repayment-table input{text-align:right;border:1px solid #cdd8d1;border-radius:4px;width:118px;padding:6px;font:12px DM Mono,monospace}.final-row{background:#fff8e7}.month-select{align-items:center;gap:10px;margin:0 0 12px;display:flex}.month-select input{width:auto}.refinance-compare{grid-template-columns:1fr 1fr;gap:16px;display:grid}.refinance-compare section{padding:18px}.refinance-compare h3{margin:0 0 8px;font-size:15px}.compare-total{color:#1e594f;margin:0 0 13px;font-size:13px;font-weight:700}@media (width<=800px){.loan-toolbar{align-items:start;display:grid}.refinance-compare{grid-template-columns:1fr}.loan-inputs{margin-left:-18px;margin-right:-18px}.year-toggle{flex-direction:column;align-items:flex-start;gap:5px}}.profitability-comment{width:100%;min-width:0;min-height:150px;margin:0;display:block}.generate-actions{margin-top:14px;display:block}.profitability-toolbar{color:#64716d;justify-content:space-between;align-items:center;gap:16px;font-size:12px;display:flex}.profitability-toolbar .danger{border:1px solid #dfa7a0;padding:7px 10px}@media (width<=800px){.profitability-toolbar{flex-direction:column;align-items:flex-start;gap:8px}}.profitability-flow{gap:18px;display:grid}.profitability-flow section{margin:0}.profitability-flow section>p{color:#64716d;font-size:13px}.header-checks{flex-wrap:wrap;gap:9px 16px;margin:15px 0 19px;display:flex}.header-checks label,.generated-actions label{align-items:center;gap:6px;font-weight:500;display:flex}.header-checks input,.generated-actions input{width:auto}.import-meta,.valid{font-size:13px}.valid{color:#236144}.profit-kpis{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;display:grid}.profit-kpis>div{background:#f4f7f4;border-radius:5px;padding:14px}.profit-kpis span,.profit-kpis b{display:block}.profit-kpis span{color:#64716d;font-size:11px}.profit-kpis b{color:#174c43;margin-top:5px;font:700 16px DM Mono,monospace}.axis-select{align-items:center;gap:10px;margin:12px 0;display:flex}.axis-select select{font:inherit;background:#fff;border:1px solid #cdd8d1;border-radius:4px;padding:7px}.profit-table td:not(:first-child),.profit-table th:not(:first-child){text-align:right;font-family:DM Mono,monospace}.chat{gap:9px;max-height:330px;padding:4px 0;display:grid;overflow:auto}.chat-message{white-space:pre-wrap;border-radius:7px;max-width:82%;padding:11px 13px;font-size:13px;line-height:1.65}.chat-message.assistant{color:#29483f;background:#eef3ef}.chat-message.user{background:#dcebe6;margin-left:auto}.chat-compose{grid-template-columns:1fr auto;gap:10px;margin-top:14px;display:grid}.chat-compose textarea{min-height:74px}.generated-actions{border-top:1px solid #e2e8e3;gap:12px;margin-top:18px;padding-top:15px;display:grid}.generated-actions label{background:#f7f9f7;border-radius:5px;align-items:flex-start;padding:10px}.generated-actions span{font-size:13px;line-height:1.6}.generated-actions small{color:#7d692c;margin-left:8px}.generated-actions button{justify-self:start}@media (width<=800px){.profit-kpis{grid-template-columns:1fr 1fr}.chat-compose{grid-template-columns:1fr}.profit-table{white-space:nowrap;display:block;overflow-x:auto}}.period-card{margin-top:18px}.period-heading{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.period-heading h2{margin:0}.period-heading label{min-width:180px}.period-status{color:#825d0f;background:#fff4dc;border-radius:15px;padding:5px 10px;font-size:11px}.period-status.confirmed{color:#286046;background:#e4f2e8}.file-input{margin:14px 0}.import-warning{color:#9a5a14;font-size:12px}.statement-editor{grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 18px;display:grid}.statement-editor label{font-size:11px}.json-preview{white-space:pre-wrap;background:#f2f5f2;max-height:240px;padding:12px;font:11px/1.5 DM Mono;overflow:auto}@media (width<=800px){.statement-editor{grid-template-columns:1fr}}.account-editor{margin:10px 0 22px}.account-editor td:last-child{width:180px}.account-editor input{text-align:right;width:100%;font-family:DM Mono,monospace}.account-table{margin-top:18px}.account-table h4{margin:18px 0 4px;font-size:14px}.account-table td:last-child{text-align:right;font-family:DM Mono,monospace}.period-summary>div{background:#f8faf8;border-radius:5px;margin-top:16px;padding:18px}.comparison{margin:16px 0}.comparison h3{margin-bottom:8px}.financial-unit{align-items:center;gap:20px;display:flex}.financial-unit h2{margin:0}.financial-unit label{align-items:center;gap:8px;display:flex}.financial-unit select{font:inherit;background:#fff;border:1px solid #cdd8d1;border-radius:4px;padding:7px}.period-detail{background:#f8faf8;border-radius:5px;margin-top:16px;padding:18px}.period-detail summary{cursor:pointer;list-style:none}.period-detail summary::-webkit-details-marker{display:none}.period-detail summary>div{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.period-detail h3{margin:0 0 12px}.period-detail summary small{color:#24665d;white-space:nowrap}.period-keyfigures{grid-template-columns:repeat(3,minmax(140px,1fr));gap:9px 18px;display:grid}.period-keyfigures span{gap:8px;font:12px DM Mono,monospace;display:flex}.period-keyfigures b{color:#53625d;font-family:Noto Sans JP,sans-serif}.period-detail-body{border-top:1px solid #dce5df;margin-top:20px;padding-top:8px}@media (width<=800px){.financial-unit{flex-direction:column;align-items:flex-start}.period-detail summary>div{display:block}.period-keyfigures{grid-template-columns:1fr 1fr}.period-keyfigures span{gap:2px;display:grid}}.comparison-detail{background:#f8faf8;border-radius:5px;margin-top:14px;padding:0}.comparison-detail summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:18px;list-style:none;display:flex}.comparison-detail summary::-webkit-details-marker{display:none}.comparison-detail summary h3{margin:0}.comparison-detail summary small{color:#24665d}.comparison-detail-body{border-top:1px solid #dce5df;padding:0 18px 18px}@media (width<=800px){.comparison-detail summary{flex-direction:column;align-items:flex-start}}.financial-toolbar{justify-content:space-between;align-items:center;gap:18px;display:flex}.financial-toolbar>div:first-child{align-items:center;gap:18px;display:flex}.financial-toolbar h2{margin:0}.financial-toolbar label{align-items:center;gap:8px;display:flex}.financial-toolbar select{font:inherit;background:#fff;border:1px solid #cdd8d1;border-radius:4px;padding:7px}.viewer-switch{gap:6px;display:flex}.viewer-switch button{color:#28564e;background:#e1ebe5}.viewer-switch button.active{color:#fff;background:#24665d}.analysis-comment{z-index:3;background:#fff;border:1px solid #c8d7cf;border-radius:7px;margin:16px 0;padding:0;position:sticky;top:12px;box-shadow:0 4px 16px #173b3020}.analysis-comment summary{cursor:pointer;color:#1e594f;padding:12px 16px;font-weight:700}.analysis-comment textarea{border:0;border-top:1px solid #dbe5df;border-radius:0 0 7px 7px;width:100%;min-height:112px;display:block}.comparison-detail summary>div{gap:12px;min-width:0;display:grid}.comparison-keyfigures{grid-template-columns:repeat(3,minmax(230px,1fr));gap:7px 14px;display:grid}.comparison-keyfigures span{white-space:nowrap;align-items:baseline;gap:6px;font:11px DM Mono,monospace;display:flex}.comparison-keyfigures b{color:#53625d;font-family:Noto Sans JP,sans-serif}.comparison-keyfigures i{color:#6a7772;font-style:normal}.comparison-keyfigures em{color:#8a9b93;font-style:normal}.comparison-keyfigures strong{color:#174c43}.print-viewer{background:#dfe6e1;overflow:auto}.print-viewer>h2{margin:0 0 16px}.a3-sheet{background:#fff;width:max(1450px,100%);min-height:790px;margin:0 auto 24px;padding:32px;box-shadow:0 2px 12px #1b392a20}.a3-sheet>h3{margin:0 0 18px;font-size:18px}.a3-columns{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.a3-columns .comparison{margin:0}.a3-columns .comparison h3{font-size:14px}.a3-columns table{font-size:10px}.a3-columns td,.a3-columns th{padding:5px}.a3-columns td:not(:first-child){white-space:nowrap}.multi-period-table .total-row td{color:#233c36;background:#eef1ef;font-weight:700}.multi-period-table .total-row td:first-child{border-left:3px solid #bdc8c2}.report-section{background:0 0;margin:20px 0;padding:0}.report-section.toc{background:#f1f5f0;padding:22px}.toc ol{columns:2;line-height:1.9}.missing{color:#a66a2a;font-style:italic}@media print{.report-section{break-before:page;page-break-before:always}.report-section.toc{break-before:auto;page-break-before:auto}}@media (width<=800px){.toc ol{columns:1}}.swot-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.swot-grid .note{margin-top:0}@media (width<=800px){.swot-grid{grid-template-columns:1fr}}:root{color:#1c2725;background:#f4f3ee;font-family:Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0}.app{grid-template-columns:250px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}aside{color:#dbe6dc;background:#153e38;flex-direction:column;height:100vh;padding:32px 17px;display:flex;overflow:hidden}.brand{letter-spacing:2px;padding:0 13px 36px;font:700 28px Playfair Display}.brand span{color:#d4a64a}.brand small{letter-spacing:0;color:#9cb6ac;margin-top:6px;font:11px Noto Sans JP;display:block}nav{gap:5px;min-height:0;display:grid;overflow-y:auto}button{font:inherit;color:#fff;cursor:pointer;background:#24665d;border:0;border-radius:5px;padding:10px 14px;font-weight:700}button:hover{background:#1b514a}nav button{color:#d1dfd6;text-align:left;background:0 0;padding:11px 13px;font-size:14px;font-weight:500}nav button.active{color:#fff;background:#2c665d}.local{color:#a9c3ba;border-top:1px solid #47736c;margin-top:auto;padding:17px 13px 0;font-size:11px;line-height:1.8}main{max-width:1450px;height:100vh;padding:0 7vw 60px;overflow-y:auto}header{color:#5e6d67;justify-content:space-between;align-items:center;height:72px;font-size:13px;display:flex}.status{color:#245d52;background:#e5eee8;border-radius:20px;padding:6px 12px;font-size:11px}.hero{background:#e2e9df linear-gradient(120deg,#e6eee4,#c7d8d0);border-radius:8px;margin:22px 0 25px;padding:75px 7% 62px}.hero p:first-child{color:#a47a2c;letter-spacing:.14em;font-size:12px;font-weight:700}.hero h1,.title h1{margin:9px 0 17px;font:700 clamp(30px,5vw,55px)/1.2 Playfair Display,Noto Sans JP}.hero p{color:#4f5d58;max-width:590px;line-height:1.9}.hero button{margin-top:15px}.cards,.two{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.two{grid-template-columns:1.2fr .8fr;margin-top:24px}.card,section{background:#fff;border-radius:7px;padding:22px}.card span{color:#6b7873;font-size:12px;display:block}.card strong{color:#164b42;margin-top:11px;font:700 25px DM Mono;display:block}.title{border-bottom:1px solid #d9dfda;margin:42px 0 26px;padding-bottom:18px}.title h1{margin:0 0 8px;font-size:37px}.title p{color:#64716d;margin:0;font-size:14px}.checks{margin-top:24px}.checks h2,section h2{margin:0 0 15px;font:700 16px Noto Sans JP}.check{border-radius:4px;gap:13px;margin-top:7px;padding:12px;font-size:13px;display:flex}.check b{min-width:55px}.check.error{color:#9b392f;background:#fbedeb}.check.warning{color:#795b16;background:#fff6df}.check.info{color:#236144;background:#eaf4ed}.form{background:#fff;border-radius:7px;padding:25px}.grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}label{color:#53625d;gap:7px;font-size:12px;font-weight:700;display:grid}input,textarea{font:inherit;color:#1d302c;background:#fff;border:1px solid #cdd8d1;border-radius:4px;padding:10px;font-weight:400}input:focus,textarea:focus{border-color:#0000;outline:2px solid #84afa5}textarea{resize:vertical;min-height:130px}.note{background:#fff;border-radius:7px;margin-top:18px;padding:20px}.statement>div,.ratios>div{border-bottom:1px solid #edf0ed;justify-content:space-between;padding:9px 0;font-size:13px;display:flex}.statement b,.ratios b{font-family:DM Mono;font-size:12px}.statement hr{border:0;border-top:1px solid #bdc9c1}.event-buttons{flex-wrap:wrap;gap:9px;display:flex}.actions{gap:10px;margin-top:16px;display:grid}.action{background:#fff;border-radius:6px;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:10px;padding:14px;display:grid}.empty{color:#68756f;background:#fff;border-radius:6px;padding:22px;font-size:13px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#68756f;font-weight:500}td,th{border-bottom:1px solid #edf0ed;padding:10px}.text{color:#237063;background:0 0;padding:0;font-size:12px}.text:hover{color:#164b42;background:0 0}.danger{color:#b1453a}.ai{border-left:4px solid #d4a64a}.ai span{color:#9a7328;font-weight:700}.ai p{line-height:1.9}.ai small{color:#6b7773}.report{max-width:800px;line-height:1.85}.report h1{margin-bottom:35px;font:700 28px Playfair Display,Noto Sans JP}.report h2{border-bottom:1px solid #ced8d1;margin-top:32px;padding-bottom:6px}@media print{@page{size:A3 landscape;margin:10mm}aside,header,button,.checks{display:none!important}.app{height:auto;display:block;overflow:visible}main{height:auto;padding:0;overflow:visible}.report{max-width:none}.print-viewer{background:#fff;overflow:visible}.a3-sheet{width:100%;min-height:0;box-shadow:none;break-after:page;padding:0}.a3-columns{gap:9px}}@media (width<=800px){.app{grid-template-columns:1fr;height:auto;overflow:visible}aside{z-index:5;height:auto;padding:16px;position:sticky;top:0;overflow:visible}.brand{padding:0 0 10px;font-size:21px}.brand small,.local{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap;padding:7px 9px;font-size:11px}main{height:auto;padding:0 18px 35px;overflow:visible}.hero{padding:35px 24px}.cards,.two,.grid,.action{grid-template-columns:1fr}.title{margin-top:28px}.financial-toolbar,.financial-toolbar>div:first-child{flex-direction:column;align-items:flex-start}.comparison-keyfigures{grid-template-columns:1fr}.a3-sheet{width:980px}}
