:root { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif; color:#1d2d3b; background:#f5f7f9; font-synthesis:none; }
*{box-sizing:border-box}
body{margin:0;min-height:100vh}
a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.48}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5dc9b0;outline-offset:2px}
#app{min-height:100vh}.boot{padding:90px;text-align:center;color:#6b7a86}
.layout{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}
.sidebar{background:#112639;color:#e9f3f4;display:flex;flex-direction:column;padding:31px 17px 22px;position:sticky;top:0;height:100vh;z-index:5}
.brand{display:flex;align-items:center;gap:11px;padding:2px 12px 34px}.brand-mark{width:36px;height:36px;border-radius:12px;background:#39bdab;display:grid;place-items:center;color:#0e2830;font-size:20px;font-weight:900}.brand-name{font-size:15px;font-weight:800;letter-spacing:-.3px;line-height:1.3}.brand-sub{display:block;color:#83a0ac;font-size:10px;letter-spacing:1.4px;margin-top:3px;font-weight:700}
.side-label{color:#6e91a1;font-size:10px;font-weight:800;letter-spacing:1.7px;padding:0 13px;margin:0 0 14px}
.nav{display:flex;flex-direction:column;gap:5px}.nav-button{display:flex;align-items:center;text-align:left;gap:13px;border:none;background:transparent;color:#a7bdc8;border-radius:10px;padding:13px 14px;font-size:13px;font-weight:600}.nav-button svg{width:18px;height:18px;stroke-width:1.8}.nav-button.active{background:#244759;color:#fbffff}.nav-button.active svg{color:#47d2be}.nav-button:hover{background:#204154;color:#fff}
.side-bottom{margin-top:auto;border-top:1px solid #2d4956;padding:23px 10px 0}.status-dot{width:7px;height:7px;border-radius:99px;background:#42c7a8;display:inline-block;margin-right:8px}.side-info{font-size:11px;color:#b5c8d0;line-height:1.9}.side-info small{font-size:10px;color:#7798a6}.budget-rail{height:6px;background:#314c5b;border-radius:99px;margin-top:12px;overflow:hidden}.budget-rail span{display:block;background:#47ceb6;height:100%;border-radius:99px;transition:width .2s}.budget-rail span.warning{background:#edb15d}.budget-rail span.danger{background:#ee7979}
.main{min-width:0}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 36px;background:white;border-bottom:1px solid #e9eef0}.breadcrumb{font-size:12px;color:#7d8c99}.top-actions{display:flex;align-items:center;gap:12px}.top-chip{font-size:11px;font-weight:700;display:flex;gap:7px;align-items:center;border:1px solid #e2e9ee;padding:8px 11px;border-radius:30px;color:#547082;background:#f9fbfc}.top-chip strong{color:#1b7e6e}.avatar{width:34px;height:34px;border-radius:50%;background:#e0f2ed;color:#247667;display:grid;place-items:center;font-weight:800;font-size:12px}
.content{max-width:1380px;margin:auto;padding:35px 38px 80px}.page-eyebrow{font-size:11px;color:#369f8e;letter-spacing:1.4px;font-weight:900;margin-bottom:11px;text-transform:uppercase}.page-title{font-size:30px;line-height:1.35;margin:0;letter-spacing:-.8px;color:#162c3c;font-weight:850}.page-description{color:#788a95;font-size:13px;margin:10px 0 0;line-height:1.7}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:27px}.page-header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.btn{border:1px solid #dce7e7;background:#fff;color:#385565;border-radius:10px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:12px;transition:all .15s}.btn:hover:not(:disabled){border-color:#90c8c1;transform:translateY(-1px)}.btn.primary{background:#159b89;color:white;border-color:#159b89}.btn.primary:hover{background:#0f8778}.btn.dark{background:#19374a;color:white;border-color:#19374a}.btn.sm{padding:7px 10px;font-size:11px}.btn-icon{padding:10px}.btn svg{width:15px;height:15px}
.card{background:#fff;border:1px solid #e6ecef;border-radius:17px;box-shadow:0 3px 16px rgba(24,52,63,.025)}.card-pad{padding:23px 25px}.two-cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:19px}.grid-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin:24px 0}.metric-card{padding:22px 23px;min-height:148px}.metric-top{font-size:11px;font-weight:750;color:#7c8e99;display:flex;justify-content:space-between;gap:8px;align-items:center}.tiny-icon{height:30px;width:30px;border-radius:10px;background:#eaf8f3;color:#2caa92;display:grid;place-items:center;font-size:16px}.metric-value{font-size:29px;letter-spacing:-1.1px;color:#1b3341;font-weight:850;margin-top:16px;line-height:1.1}.metric-unit{font-size:12px;color:#91a1a9;font-weight:600;margin-left:4px}.metric-note{font-size:11px;color:#83959e;margin-top:10px}.positive{color:#158c78!important}.negative{color:#c76862!important}
.section-title{font-size:15px;color:#1f3848;font-weight:850;letter-spacing:-.1px}.section-desc{font-size:11px;color:#94a3ab;margin-top:5px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.pill{display:inline-block;border:1px solid #e3edee;border-radius:99px;padding:6px 10px;color:#68808c;font-size:10px;font-weight:800}.pill.success{color:#168d7b;background:#ecf9f5;border-color:#c7eade}.pill.warn{color:#ad6a1d;background:#fff6e9;border-color:#f9deb5}.pill.danger{color:#b34447;background:#fff0f0;border-color:#f1c3c2}.pill.neutral{background:#f4f7f8}
.chart-wrap{height:275px;width:100%;display:flex;align-items:center;justify-content:center}.svg-chart{width:100%;height:100%;overflow:visible}.axis-text{fill:#9aabb4;font-size:11px}.gridline{stroke:#e8eef1;stroke-dasharray:4 5;stroke-width:1}.chart-line{stroke:#21a992;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}.chart-area{fill:rgba(53,189,159,.10)}.chart-dot{fill:white;stroke:#1da88f;stroke-width:3}.legend-row{display:flex;gap:16px;font-size:11px;color:#768f9a;align-items:center;margin-top:10px}.legend-swatch{width:18px;height:3px;background:#1ca78e;border-radius:99px}
.insight-item{padding:14px 0;border-bottom:1px solid #f0f3f4;display:flex;gap:12px}.insight-item:last-child{border-bottom:0}.insight-icon{width:28px;height:28px;border-radius:10px;background:#e4f7ef;color:#179e83;display:grid;place-items:center;flex:none;font-weight:900}.insight-name{font-size:12px;font-weight:800;color:#2b414d}.insight-body{font-size:11px;color:#7b8c96;line-height:1.75;margin-top:5px}
.columns-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.ref-list{display:flex;flex-direction:column;gap:8px}.ref-item{padding:12px 0;border-bottom:1px solid #edf2f3;display:flex;justify-content:space-between;gap:8px;align-items:center}.ref-item:last-child{border:none}.ref-name{font-size:12px;font-weight:750;color:#2d4451;line-height:1.5}.ref-meta{color:#92a2ab;font-size:10px;margin-top:3px}.ref-arrow{color:#39af9c;font-size:18px}
.notice{border-radius:12px;padding:13px 16px;display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;margin-bottom:18px}.notice.info{background:#eaf5f7;color:#366679;border:1px solid #cde9ed}.notice.warning{background:#fff6e8;color:#95651f;border:1px solid #f3dbb3}.notice.danger{background:#fff0ed;color:#a33f38;border:1px solid #f4c4c2}.notice strong{font-size:12px}.notice-icon{font-size:17px}.notice button{margin-left:auto;flex:none;background:none;border:0;color:inherit;font-weight:750}
select,.input,.textarea{border:1px solid #dfe8ec;border-radius:9px;padding:10px 12px;background:white;color:#324b5a;font-size:12px}.input{width:100%}.textarea{resize:vertical;width:100%;min-height:74px}.field-label{display:block;margin-bottom:8px;color:#6f8591;font-size:11px;font-weight:750}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-select{max-width:240px;min-width:160px}
.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table thead{background:#f7fafb}.data-table th{text-align:right;color:#8799a2;font-size:10px;font-weight:750;padding:12px 11px;white-space:nowrap}.data-table td{text-align:right;padding:14px 11px;border-bottom:1px solid #f0f3f4;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table td:first-child{font-weight:750}.table-scroller{overflow-x:auto}
.segment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.segment-box{background:#f7fafb;border:1px solid #ebf0f2;border-radius:12px;padding:15px}.segment-box-label{font-size:11px;color:#8296a0}.segment-box-value{font-size:18px;font-weight:850;margin-top:8px;color:#1c3c4a}
.chat-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(260px,.85fr);gap:20px}.chat-card{display:flex;flex-direction:column;min-height:630px;overflow:hidden}.chat-modes{display:flex;gap:5px;background:#f2f6f7;padding:5px;border-radius:12px}.mode-btn{flex:1;border:none;border-radius:9px;background:transparent;color:#77929d;font-size:11px;font-weight:800;padding:11px 8px}.mode-btn.selected{background:white;color:#158e7f;box-shadow:0 1px 5px #d7e5e5}.chat-scroll{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:18px;min-height:330px}.bubble{max-width:92%;border-radius:15px;padding:14px 16px;font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{background:#e3f5ef;align-self:flex-end;color:#2f6158;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:#f5f8f9;border:1px solid #eef3f4;color:#37515e;border-bottom-left-radius:4px}.bubble .source-tags{margin-top:12px;white-space:normal}.bubble .source-tags a{display:inline-block;margin:3px 5px 0 0;padding:4px 8px;border-radius:5px;border:1px solid #d3e2e4;background:white;color:#288d80;font-weight:800;font-size:10px}.chat-footer{border-top:1px solid #edf1f2;padding:17px 20px;background:#fff}.chat-send{display:flex;gap:8px;align-items:end}.chat-send textarea{min-height:64px;max-height:150px}.prompt-samples{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.prompt-samples button{border:1px solid #e0e9eb;border-radius:20px;background:white;padding:8px 10px;color:#738994;font-size:10px;text-align:left}.prompt-samples button:hover{border-color:#64bba9;color:#1b897d}
.forecast-layout{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.5fr);gap:20px}.slider-group{margin-top:24px}.slider-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#516b78;font-weight:750}.slider-value{font-size:19px;color:#1b3c4a}.range{width:100%;accent-color:#17a38f;margin:17px 0 6px}.range-labels{display:flex;justify-content:space-between;color:#9babb4;font-size:10px}.summary-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.summary-cell{background:#f4f8f8;border-radius:12px;padding:16px}.summary-cell .lbl{color:#849aa6;font-size:10px}.summary-cell .big{font-size:25px;font-weight:850;color:#184351;margin-top:7px}.scenarios{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.scenario{border:1px solid #e6edef;border-radius:13px;padding:15px}.scenario.selected{border-color:#33ba9c;background:#f0fbf6}.scenario .name{font-size:11px;color:#6e8691;font-weight:800}.scenario .value{font-size:21px;color:#284755;font-weight:850;letter-spacing:-.6px;margin-top:8px}.scenario .sub{color:#869aa5;font-size:10px;margin-top:5px}.bar-chart{margin:25px 0 6px}.bar-row{display:grid;grid-template-columns:40px 1fr 65px;gap:10px;align-items:center;font-size:11px;color:#7d929e;margin:14px 0}.bar-bg{height:19px;background:#edf3f4;border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:#9cbdc0;border-radius:5px}.bar-fill.base{background:#26b59b}.bar-fill.high{background:#6a97cf}.bar-value{text-align:right;color:#42636e;font-weight:750}
.report-block{padding:24px 27px}.report-title{font-size:19px;font-weight:850;letter-spacing:-.3px}.report-date{color:#8fa2a9;font-size:11px}.report-section{margin:27px 0}.report-section h3{font-size:13px;color:#203e4c;margin:0 0 13px}.report-section p{font-size:13px;line-height:1.95;color:#526c78;margin:0}.report-section ul{margin:6px 0 0;padding-left:22px;font-size:12px;color:#58717d;line-height:2.0}.report-insight{background:#f8fafb;border-radius:12px;padding:15px;margin-bottom:10px}.report-insight .head{font-size:12px;font-weight:800;color:#2b4b5b}.report-insight p{margin:7px 0 0;font-size:12px}.type-tag{font-size:10px;padding:3px 6px;border-radius:4px;background:#e2f3ea;color:#268c74;margin-right:7px}.type-tag.hypo{background:#fff1d8;color:#a5782b}
.budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.big-budget{font-weight:850;color:#244b59;font-size:37px;letter-spacing:-1px;margin:15px 0}.big-budget small{font-size:14px;color:#a3b2b9}.progress{height:13px;background:#edf2f3;border-radius:30px;overflow:hidden}.progress span{display:block;height:100%;border-radius:30px;background:#21b69b;transition:width .2s}.progress span.warn{background:#eda84b}.progress span.danger{background:#e36c6c}.budget-scale{display:flex;justify-content:space-between;margin-top:10px;color:#98aab2;font-size:10px}
.login-screen{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;background:linear-gradient(145deg,#112637,#204c54)}.login-box{width:100%;max-width:410px;background:white;border-radius:20px;padding:35px;box-shadow:0 20px 80px #071f2f66}.login-box h1{font-size:24px;margin:15px 0 5px}.login-box p{font-size:12px;color:#7e9199;line-height:1.7}.login-box .input{margin:15px 0}.login-error{color:#c55858;font-size:12px;min-height:20px}
.mobile-nav{display:none}.text-link{color:#1b9c89;font-weight:750}.text-link:hover{text-decoration:underline}.spacer{height:18px}.disclaimer{margin-top:18px;font-size:11px;line-height:1.8;color:#91a1a9}.mini-forecast-note{font-size:11px;color:#8ea0a8;line-height:1.8}.source-line{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.source-line a{font-size:10px;color:#188f7d;background:#e8f7f2;border-radius:6px;padding:5px 8px;font-weight:800}
@media(max-width:1150px){.layout{grid-template-columns:205px 1fr}.content{padding:27px 26px 60px}.topbar{padding:0 26px}.grid-cards{grid-template-columns:repeat(2,1fr)}.two-cols{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr}.forecast-layout{grid-template-columns:1fr}}
@media(max-width:760px){.layout{display:block;padding-bottom:71px}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:#132a3b;justify-content:space-around;padding:6px 2px max(5px,env(safe-area-inset-bottom))}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;border:none;background:none;color:#a5bfca;font-size:9px;padding:6px 9px}.mobile-nav button.active{color:#57d2b7}.mobile-nav svg{width:20px;height:20px}.topbar{height:60px;padding:0 17px}.top-chip{font-size:10px}.avatar{display:none}.content{padding:24px 16px 46px}.page-title{font-size:24px}.page-header{flex-direction:column;margin-bottom:14px}.page-header-actions{width:100%}.grid-cards{gap:10px;margin:17px 0}.metric-card{padding:17px 16px;min-height:132px}.metric-value{font-size:23px}.card-pad{padding:18px 16px}.columns-two,.budget-grid{grid-template-columns:1fr}.scenarios{gap:5px}.scenario{padding:10px}.scenario .value{font-size:16px}.filters{width:100%}.filter-select{flex:1;min-width:130px}.report-block{padding:18px}.chat-card{min-height:560px}.chat-scroll{padding:15px}.topbar .breadcrumb{font-size:11px}}
