*{box-sizing:border-box}body{margin:0;background:#f7f7f7;color:#242424;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;font-size:14px}header{height:70px;background:#fff;border-bottom:1px solid #ddd;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.brand{font-size:18px;font-weight:700}.brand-logo{display:block;height:70px;width:auto}.tab{border:0;background:transparent;padding:12px 18px;font-size:15px}.tab.active{background:#d9edf1;color:#08758d;border-radius:9px;font-weight:700}main{max-width:1180px;margin:auto;padding:30px 20px 70px}.page{display:none}.page.active{display:block}h1{font-size:27px;margin:0 0 4px}h2{font-size:19px;margin:0 0 22px}h2>span:first-child{color:#13829a;margin-right:8px}p{color:#737373;margin:4px 0 0}.title-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e3e3e3;padding-bottom:25px;margin-bottom:28px}.card,.chart-card{background:#fff;border:1px solid #e1e1e1;border-radius:10px;padding:25px;margin-bottom:28px}.accent{border-color:#9fcfd8;box-shadow:0 0 0 1px #dcecef}.card h2{border-bottom:1px solid #eee;padding-bottom:18px}.card h2 small,.section-title .pill{float:right;font-weight:500;font-size:12px;color:#666}.primary{background:#0b8299;color:white;border:0;border-radius:9px;padding:13px 18px;font-weight:700;font-size:14px}.soft{border:0;border-radius:8px;padding:11px 15px;background:#f0f0f0;font-weight:600;color:#333}.grid3,.grid4{display:grid;gap:18px;margin-bottom:18px}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}label{font-weight:600}input,select{width:100%;margin-top:8px;padding:12px 13px;border:1px solid #e6e6e6;background:#f4f4f4;border-radius:6px;font:inherit}.income-list>div,.stage,.event{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid #e4e4e4;border-radius:7px;margin:9px 0;background:#fff}.income-list strong{margin-left:auto}.inline-num{width:120px;padding:4px;text-align:right;margin:0;border:0;background:transparent;font-weight:700}.pill{font-size:11px;padding:4px 8px;border-radius:12px;background:#e8e7ff;color:#5d55c5}.pill.green{background:#dff3e5;color:#16834a}.stage .meta{color:#777;font-size:12px;margin-top:4px}.stage .stage-toggle{margin-left:auto}.add-row{display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:12px;margin-top:20px}.add-row.three{grid-template-columns:1.2fr 1fr 1fr 1fr}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#fafafa;border:1px solid #eee;border-radius:8px;margin-bottom:20px}.summary-strip div{text-align:center;padding:14px}.summary-strip b{display:block;font-size:17px;margin-top:4px}.event{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end}.event label{min-width:0}.bottom-cta{text-align:center;margin:35px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:30px}.stats>div{background:#fff;border:1px solid #e1e1e1;border-radius:9px;padding:24px}.stats span,.stats small{display:block;color:#666}.stats b{display:block;font-size:28px;margin:8px 0}.green-text{color:#09a35e}.count{font-size:12px;color:#777;background:#eee;border-radius:10px;padding:3px 7px}.table-wrap{max-height:510px;overflow:auto;background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:35px}table{width:100%;border-collapse:collapse;min-width:1000px}th{position:sticky;top:0;background:#fff;z-index:1}th,td{padding:12px 14px;text-align:right;border-bottom:1px solid #eee;white-space:nowrap}th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}td:nth-child(8){color:#08a35d;font-weight:700}td:nth-child(9){color:#087e9a}.section-title{margin-top:35px}.chart-card{padding:28px}.chart-card canvas{width:100%;height:auto;max-height:390px}.chart-card h3{margin-top:0}@media(max-width:760px){main{padding:20px 12px}.grid3,.grid4,.stats,.summary-strip{grid-template-columns:1fr 1fr}.title-row{align-items:flex-start;gap:12px}.title-row h1{font-size:22px}.add-row,.add-row.three{grid-template-columns:1fr}.event{grid-template-columns:1fr 1fr}.brand{font-size:15px}header{padding:0 12px}.card{padding:18px}}.family-member{border:1px solid #e4e4e4;border-radius:8px;padding:18px;margin-bottom:14px;background:#fff}.family-member-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.family-member .grid3{margin-bottom:0}.family-member input[readonly]{color:#666}@media(max-width:760px){.family-member .grid3{grid-template-columns:1fr}}
.detail-link{display:block;width:auto;margin-top:8px;padding:0;border:0;background:none;color:#0b8299;font:inherit;font-weight:600;cursor:pointer;text-align:left}.debt-details{border-top:1px solid #eee;padding-top:20px}.debt-details h3{margin:0 0 16px;font-size:17px}.debt-item{border:1px solid #e4e4e4;border-radius:8px;padding:18px;margin-bottom:12px}.debt-item-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.debt-item .grid4{margin-bottom:0}.debt-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px;padding:16px;background:#f7fbfc;border:1px solid #dcecef;border-radius:8px}.debt-summary b{display:block;margin-top:5px;font-size:18px;color:#087e9a}td:nth-child(8){color:inherit;font-weight:normal}td:nth-child(9){color:#08a35d;font-weight:700}td:nth-child(10){color:#087e9a}@media(max-width:760px){.debt-item .grid4{grid-template-columns:1fr}.debt-summary{grid-template-columns:1fr}}
.income-row{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;align-items:end;gap:14px;border:1px solid #e4e4e4;border-radius:8px;padding:16px;margin-bottom:12px;background:#fff}.item-remove{margin-bottom:0}.soft:disabled{opacity:.5;cursor:not-allowed}@media(max-width:760px){.income-row{grid-template-columns:1fr 1fr}.income-row .item-remove{justify-self:end}}@media(max-width:480px){.income-row{grid-template-columns:1fr}.income-row .item-remove{justify-self:stretch}}
.stage-group{margin-bottom:10px}.stage-group>.stage{margin-bottom:0}.stage-details{border:1px solid #e4e4e4;border-top:0;border-radius:0 0 8px 8px;background:#fff;padding:20px}.stage-details h3{font-size:17px;margin:0 0 16px}.stage-details .grid3{margin-bottom:0}.stage-details .summary-strip{background:#fff}@media(max-width:760px){.stage-group .stage{flex-wrap:wrap}.stage-details .grid3{grid-template-columns:1fr 1fr}}@media(max-width:480px){.stage-details .grid3,.stage-details .summary-strip{grid-template-columns:1fr}.stage-group .stage .stage-toggle{margin-left:0}}
body{font-variant-numeric:tabular-nums}
input.money-input,input.percent-input{font-size:16px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
input[type="date"],input[type="month"]{font-variant-numeric:tabular-nums;font-weight:500}
.field-with-unit{display:block;position:relative}
.field-with-unit>input{padding-right:36px}
.field-with-unit>span{position:absolute;right:14px;top:calc(50% + 4px);transform:translateY(-50%);color:#666;font-size:14px;font-weight:600;pointer-events:none}
#netBadge,.summary-strip b,.debt-summary b{font-variant-numeric:tabular-nums;font-weight:600}
.stats>div b{font-size:32px;font-weight:700;line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stats>div:first-child b{font-size:36px}
.stats small{font-size:12px;font-weight:400}
td.money-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
td.money-cell:nth-child(9),td.money-cell:nth-child(10){font-weight:600}
td.month-cell,td.age-cell{font-variant-numeric:tabular-nums;color:#555;font-size:13px;font-weight:500}
td.money-cell.muted{color:#999}
.negative,.stats>div b.negative,td.money-cell.negative{color:#bd3c43}
@media(max-width:760px){.stats>div b{font-size:27px}.stats>div:first-child b{font-size:30px}}
#netBadge.negative{color:#bd3c43}
.stage-details>h3:not(:first-child){margin-top:28px;padding-top:22px;border-top:1px solid #e4e4e4}.stage-income-list{margin-bottom:12px}.stage-details .income-row{background:#fff}
.stage-name-input::placeholder{color:#888;font-weight:500}
.event-group{margin-bottom:12px;transition:box-shadow .3s ease,outline-color .3s ease}.event-group.event-jump-highlight{border-radius:8px;outline:2px solid #76b5bd;outline-offset:3px;box-shadow:0 0 0 6px rgba(11,130,153,.1)}
.event-header{display:flex;align-items:center;gap:12px;margin:0}
.event-info{flex:1;min-width:0;display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(130px,1fr) 160px;gap:8px 16px}
.event-info label{min-width:0}
.event-info input{margin-top:6px}
.event-overview{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 20px;color:#666;font-size:12px}
.event-overview b{margin-left:4px;color:#333;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.event-details{border:1px solid #e4e4e4;border-top:0;border-radius:0 0 8px 8px;background:#fff;padding:20px}
.event-one-time{display:block;width:min(280px,100%)}
.event-details h3{font-size:16px;margin:24px 0 14px;padding-top:20px;border-top:1px solid #e4e4e4}
.event-details h3:first-child{margin-top:0;padding-top:0;border-top:0}
.monthly-change-row{border:1px solid #e4e4e4;border-radius:8px;padding:16px;margin-bottom:12px;background:#fff}
.monthly-change-main{display:grid;grid-template-columns:minmax(160px,1.4fr) minmax(130px,1fr) auto;align-items:end;gap:12px}
.monthly-change-primary{grid-template-columns:minmax(160px,1.4fr) minmax(130px,1fr)}
.monthly-change-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.monthly-change-options label[hidden]{display:none}
.monthly-change-options input,.monthly-change-options select{margin-top:6px}
.monthly-change-total{display:block;margin-top:18px;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
@media(max-width:760px){.event-header{flex-wrap:wrap}.event-info{flex-basis:100%}.event-header .event-toggle{margin-left:auto}.monthly-change-options{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.event-info,.monthly-change-main,.monthly-change-options{grid-template-columns:1fr}.event-overview{grid-column:auto}.monthly-change-main .item-remove{justify-self:end}}
@media(max-width:900px){.event-header{flex-wrap:wrap}.event-info{flex-basis:100%}.event-info{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.event-info label:nth-child(3){grid-column:1/2}}
@media(max-width:600px){.event-info,.monthly-change-main,.monthly-change-primary,.monthly-change-options{grid-template-columns:1fr}.event-info label:nth-child(3){grid-column:auto}}
input::placeholder{color:#9a9a9a;font-weight:400;opacity:1}
.data-management p{margin:0 0 8px}.data-management #storageStatus{font-weight:600;color:#333}.data-management #clearSavedData{margin-top:14px}
.debt-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.debt-fields label{min-width:0}.debt-fields input,.debt-fields select{min-width:0}@media(max-width:900px){.debt-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.debt-fields{grid-template-columns:1fr}}
.stage-group>.stage{display:grid;grid-template-columns:24px minmax(150px,1fr) 199px 108px minmax(265px,1.4fr) 62px;gap:8px;align-items:center;padding:12px 14px}.stage-group>.stage>input{min-width:0;height:40px;margin:0;padding:8px 9px}.stage-group>.stage>.stage-name-input{font-size:14px;font-weight:600}.stage-date-field{display:flex;align-items:center;gap:6px;min-width:0}.stage-date-label{font-size:12px;color:#6b7280;white-space:nowrap}.stage-date-field>.stage-date-entry{width:145px;min-width:0;margin:0}.stage-group>.stage>button{height:40px;margin:0;padding:8px 10px;white-space:nowrap}.stage-group>.stage>.stage-toggle{margin:0}.stage-monthly-summary{min-width:0;white-space:nowrap;font-size:11.5px;color:#555;font-variant-numeric:tabular-nums}#addStage{margin-top:16px}
.stage-income-list .income-row-primary{grid-template-columns:1.3fr 1fr 1fr}
@media(max-width:960px){.stage-group>.stage{grid-template-columns:24px minmax(0,1fr) 199px 108px}.stage-monthly-summary{grid-column:2/4}.stage-group>.stage>.item-remove{grid-column:4;grid-row:2}}
@media(max-width:760px){.stage-income-list .income-row-primary{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.stage-group>.stage{grid-template-columns:24px minmax(0,1fr) auto}.stage-group>.stage>.stage-date-field{grid-column:2;grid-row:2;flex-wrap:wrap}.stage-group>.stage>.stage-toggle{grid-column:3;grid-row:2}.stage-monthly-summary{grid-column:2/4;grid-row:3;white-space:normal}.stage-group>.stage>.item-remove{grid-column:3;grid-row:1}}
@media(max-width:480px){.stage-income-list .income-row-primary{grid-template-columns:1fr}}
.date-entry{display:flex;align-items:stretch;position:relative;width:100%;min-width:0;height:40px;margin-top:8px}.date-entry>.date-text{flex:1;min-width:0;width:100%;height:40px;margin:0;padding:8px 9px;border-radius:6px 0 0 6px;font-variant-numeric:tabular-nums;font-weight:500}.date-entry>.date-text[aria-invalid="true"]{border-color:#bd3c43}.date-picker-button{flex:none;width:36px;height:40px;padding:0;border:1px solid #e6e6e6;border-left:0;border-radius:0 6px 6px 0;background:#f4f4f4;cursor:pointer}.date-picker-native{position:absolute!important;right:0;bottom:0;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.event-info .date-entry,.monthly-change-options .date-entry{margin-top:6px}
.table-wrap table{min-width:1260px}.table-wrap td.money-cell{text-align:right;font-variant-numeric:tabular-nums}.table-wrap td.timeline-household-balance{color:#333;font-weight:600}.table-wrap td.timeline-household-balance.negative,.table-wrap td.timeline-cash.negative{color:#bd3c43}.table-wrap td.timeline-saving{color:#333;font-weight:500}.table-wrap td.timeline-cash{color:#08a35d;font-weight:600}.table-wrap td.timeline-invest{color:#087e9a}.annual-table-wrap table{min-width:1120px}.annual-table-wrap td{color:#333;text-align:right;font-variant-numeric:tabular-nums}.annual-table-wrap td:first-child{text-align:left}.annual-table-wrap tbody tr:nth-child(even){background:#f7f9f9}.annual-table-wrap td.annual-household,.annual-table-wrap td.annual-cash-change,.annual-table-wrap td.annual-total-change{font-weight:600}.annual-table-wrap td.negative{color:#bd3c43}
.table-wrap td.timeline-event-cell{min-width:180px;text-align:left;white-space:normal}.timeline-event-list{display:flex;flex-direction:column;gap:5px}.timeline-event-chip{display:flex;flex-direction:column;gap:2px;padding:5px 7px;background:#f9fbfb;border:1px solid #dce8e9;border-left:2px solid #8ebfc3;border-radius:6px;line-height:1.3}.timeline-event-name{font-size:12px;font-weight:600;color:#333;overflow-wrap:anywhere}.timeline-event-amount{font-size:12px;font-weight:500;color:#555;white-space:nowrap;font-variant-numeric:tabular-nums}.timeline-event-total{padding-top:2px;text-align:right;font-size:11px;font-weight:600;color:#555;font-variant-numeric:tabular-nums;white-space:nowrap}
.timeline-event-chip{width:100%;text-align:left;font:inherit;appearance:none;cursor:grab}.timeline-event-chip:hover{background:#f1f8f8;border-color:#a8cfd2}.timeline-event-chip:focus-visible{outline:2px solid #0b8299;outline-offset:2px}.timeline-event-chip.is-dragging{opacity:.5;cursor:grabbing}.table-wrap tr.event-drop-target td{background:#eaf6f5;box-shadow:inset 0 2px #78b9b5,inset 0 -2px #78b9b5}
.site-footer{padding:24px 20px;background:#fff;border-top:1px solid #ddd;text-align:center}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;max-width:1180px;margin:0 auto}
.footer-links a,.back-link,.info-content a{color:#08758d;text-underline-offset:3px}
.footer-links a{display:inline-block;padding:8px 0;line-height:1.6}
.footer-links a:hover,.back-link:hover,.info-content a:hover{color:#055767}
.site-footer a:focus-visible,.info-page a:focus-visible{outline:2px solid #0b8299;outline-offset:4px;border-radius:3px}
.footer-copyright{margin:16px 0 0;font-size:12px;color:#737373}
.info-page{min-height:100vh;display:flex;flex-direction:column}
.info-main{width:100%;max-width:900px;flex:1;margin:0 auto}
.info-content{line-height:1.9;overflow-wrap:anywhere}
.info-content h1{margin-bottom:20px;line-height:1.5}
.info-content section+section{margin-top:28px}
.info-content h2{margin:24px 0 12px;padding-bottom:10px;line-height:1.6}
.info-content p{color:#555;margin:10px 0}
.info-content ul{padding-left:1.5em;margin:10px 0;color:#555}
.info-content li+li{margin-top:6px}
.back-link{display:inline-block;padding:10px 0;line-height:1.6}
.info-page header{flex-shrink:0;gap:16px}
@media(max-width:600px){.footer-links{flex-direction:column;align-items:center;gap:4px}.info-content h1{font-size:23px}.info-page header .back-link{font-size:12px}.info-main{padding-bottom:32px}}
.simulation-disclaimer{margin:24px 0 0;font-size:13px;line-height:1.8;color:#666;overflow-wrap:anywhere}
.simulation-back{margin-bottom:20px}
.desktop-settings-pane,.desktop-results-title{display:none}
.desktop-results-pane{min-width:0}
.mobile-results-data-management{display:none}
@media(max-width:1099px){
 .mobile-results-data-management{display:block;margin-top:24px}
 .mobile-results-data-management .clear-saved-data{margin-top:6px}
}
.stage-group.is-editing,.event-group.is-editing{background:#f2fbfc;border-radius:8px;outline:2px solid #7ccbd6;box-shadow:0 0 0 4px rgba(20,150,170,.06)}
.stage-group.is-editing>.stage,.stage-group.is-editing>.stage-details,.event-group.is-editing>.event-header,.event-group.is-editing>.event-details{background:#f2fbfc;border-color:#b9dfe4}
.stage-group.is-editing:focus-within,.event-group.is-editing:focus-within{outline-color:#49b0bf;box-shadow:0 0 0 5px rgba(20,150,170,.10)}
.family-member:focus-within,.debt-item:focus-within{background:#f2fbfc;border-color:#7ccbd6;box-shadow:0 0 0 2px rgba(20,150,170,.10)}
[data-editor-section="assets"]>.debt-details{margin-top:12px;padding-top:16px}
.mobile-bottom-nav{display:none}
@media(max-width:1099px){
 .planning-app{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
 .planning-app>header{height:56px;justify-content:center}
 .planning-app>header .brand-logo{height:44px;max-width:100%;object-fit:contain}
 .planning-app>header>nav,#input .goto-sim,#input>.bottom-cta,#sim .goto-input,#sim .simulation-back,#sim .desktop-results-pane>.bottom-cta{display:none}
 .planning-app .simulation-heading{flex-direction:column;align-items:stretch;gap:18px}
 .planning-app .simulation-title h1{white-space:normal}
 .planning-app .simulation-period{flex:0 0 auto;width:100%}
 .mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:1000;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:100%;box-sizing:border-box;padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px));gap:8px;border-top:1px solid #dce5e7;background:#fff;box-shadow:0 -2px 8px rgba(0,0,0,.04)}
 .mobile-bottom-nav button{min-width:0;min-height:56px;border:0;border-radius:8px;background:#fff;color:#444;font:inherit;font-weight:600;white-space:nowrap;cursor:pointer}
 .mobile-bottom-nav button[aria-current="page"]{background:#e3f2f4;color:#08758d}
 .mobile-bottom-nav button:focus-visible{outline:2px solid #08758d;outline-offset:-3px}
}
.header-storage{display:none}
.storage-controls{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:8px}
.danger-outline{padding:8px 12px;background:#fff;color:#b13b43;border:1px solid #dfa5aa;border-radius:8px;font:inherit;font-size:13px;cursor:pointer}
.danger-outline:hover{background:#fff2f3}
.danger-outline:focus-visible{outline:2px solid #b13b43;outline-offset:3px}
.data-management .storage-controls #clearSavedData{margin-top:0}
@media(min-width:1100px){
 .header-storage{display:block;margin-left:auto}
 .header-storage .storage-controls{align-items:flex-end;gap:4px;margin:0}
 .header-storage #storageStatus{font-size:11px;line-height:1.3;color:#687d80;margin:0}
 .header-storage .danger-outline{padding:6px 12px}
}
.column-picker{position:relative;margin-left:auto}
#columnPickerButton{padding:7px 12px;font-size:12px;white-space:nowrap}
.column-picker-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:5;width:min(300px,calc(100vw - 48px));max-height:70vh;overflow:auto;padding:14px;background:#fff;border:1px solid #ddd;border-radius:9px;box-shadow:0 5px 18px rgba(0,0,0,.1)}
.column-picker-presets{display:flex;gap:6px;margin-bottom:10px}
.column-picker-presets button{padding:7px 9px;font-size:12px}
#columnPickerOptions label{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:13px;font-weight:400;cursor:pointer}
#columnPickerOptions input{width:16px;height:16px;margin:0;flex:none;accent-color:#0b8299}
#resultTable .monthly-timeline-hint{flex-basis:100%}
.monthly-table-wrap table{min-width:0;width:100%}
.monthly-table-wrap [data-column][hidden]{display:none}
.monthly-table-wrap td.money-cell{color:#242424;font-weight:500}
.monthly-table-wrap td[data-column="cash"]{color:#08a35d;font-weight:600}
.monthly-table-wrap td[data-column="investment-balance"]{color:#087e9a}
.monthly-table-wrap td[data-column="household-balance"]{color:#333;font-weight:600}
.monthly-table-wrap td.money-cell.negative{color:#bd3c43}
.monthly-table-wrap td.family-ages-cell{min-width:190px;max-width:340px;white-space:normal;line-height:1.5;font-size:12px;color:#555;text-align:left}
.family-ages-cell span{white-space:nowrap}
.result-view-switch,.life-plan-timeline{display:none}
@media(min-width:1100px){
 .result-view-switch{display:flex;gap:8px;width:min(380px,100%);margin-bottom:20px}
 .result-view-switch button{flex:1;cursor:pointer}
 .result-view-switch button[aria-pressed="true"]{background:#0b8299;color:#fff}
 .result-content{display:flex;flex-direction:column;min-width:0}
 .result-content[data-view="chart"]>.result-view-table,.result-content[data-view="table"]>.result-view-chart{display:none}
 .result-view-chart,.result-view-table{order:0;min-width:0}
 .result-view-chart>.section-title{margin-top:0}
 .life-plan-timeline{display:block;order:1;margin:8px 0 24px;min-width:0}
 .result-annual{order:2;min-width:0}
 .life-plan-card{padding:18px 20px;background:#fff;border:1px solid #e1e1e1;border-radius:10px;min-height:300px}
 .life-plan-card h3{font-size:13px;color:#536b70;margin:12px 0}
 .life-plan-range,.life-plan-unscheduled{font-size:12px;color:#687d80;line-height:1.6}
 .life-plan-axis{position:relative;height:34px;margin-top:10px;border-bottom:1px solid #dce5e7;overflow:hidden}
 .life-plan-axis span{position:absolute;top:6px;transform:translateX(-50%);font-size:12px;color:#687d80;border-left:1px solid #dce5e7;padding-left:4px}
 .life-plan-axis span.first{transform:none}
 .life-plan-axis span.last{transform:translateX(-100%)}
 .life-plan-stages{position:relative;height:40px;overflow:hidden;border-radius:6px;background:#f7f9fa}
 .life-plan-stage{position:absolute;top:0;height:40px;min-width:2px;border:1px solid #fff;border-radius:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:inherit;font-size:12px;color:#284e58;cursor:pointer;padding:0 4px}
 .tone-0{background:#dceff0}.tone-1{background:#dfeafa}.tone-2{background:#e3f1e5}.tone-3{background:#ece5f5}
 .life-plan-events{position:relative;min-width:0}
 .life-plan-event{position:absolute;display:flex;flex-direction:column;gap:3px;align-items:center;height:98px;padding:16px 6px 6px;border:0;border-radius:6px;background:#f5fafb;color:#334f55;font:inherit;font-size:12px;cursor:grab}
 .life-plan-event strong{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
 .life-plan-marker{position:absolute;left:var(--marker-offset);top:2px;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:#0b8299}
 .life-plan-event.is-dragging{opacity:.45}
 .life-plan-stage:focus-visible,.life-plan-event:focus-visible{outline:2px solid #08758d;outline-offset:-2px}
 .life-plan-empty{padding:8px;font-size:12px;color:#687d80}
 .life-plan-drop-guide{position:absolute;top:0;bottom:0;border-left:2px solid #08758d;font-size:11px;color:#08758d;pointer-events:none;z-index:1;writing-mode:vertical-rl;background:rgba(232,244,245,.8)}
}
body.modal-open{overflow:hidden}
.editor-modal-dialog{width:min(900px,calc(100vw - 48px));max-height:calc(100vh - 48px);padding:0;border:1px solid #ddd;border-radius:14px;background:#fff;color:#242424;box-shadow:0 16px 48px rgba(0,0,0,.18)}
.editor-modal-dialog[open]{display:flex;flex-direction:column}
.editor-modal-dialog::backdrop{background:rgba(0,0,0,.25)}
.editor-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid #e7eeee;flex-shrink:0}
.editor-modal-header h2{margin:0;color:#08758d;font-size:20px}
.editor-modal-body{overflow-y:auto;min-height:0;padding:20px;overscroll-behavior:contain}
.editor-modal-footer{display:flex;justify-content:flex-end;padding:14px 24px;border-top:1px solid #e7eeee;flex-shrink:0}
.editor-modal-body>.card{margin:0;padding:0;border:0;box-shadow:none}
.editor-modal-body .grid4,.editor-modal-body .debt-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.editor-modal-body .grid3>*{min-width:0}
.editor-modal-body .stage-group>.stage{grid-template-columns:24px minmax(0,1fr) 199px 108px}
.editor-modal-body .stage-monthly-summary{grid-column:2/4;white-space:normal}
.editor-modal-body .stage-group>.stage>.item-remove{grid-column:4;grid-row:2}
.editor-modal-body .event-header{flex-wrap:wrap}
.editor-modal-body .event-info{flex-basis:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.editor-modal-body .event-info label:nth-child(3){grid-column:1/2}
.editor-modal-body .event-toggle{margin-left:auto}
@media(min-width:1100px){
 body>header>nav,#input,#sim .goto-input,#sim>.desktop-workspace>.desktop-results-pane>.bottom-cta{display:none}
 #sim{display:block}
 .desktop-edit-note{color:#687d80}
 .desktop-summary-card h3{display:flex;align-items:center;justify-content:space-between;gap:8px}
 .desktop-edit-button{padding:5px 10px;font-size:12px;white-space:nowrap;justify-self:end}
 .desktop-summary-list .desktop-edit-button{grid-column:2}
 .desktop-summary-events li:focus{outline:2px solid #0b8299;outline-offset:3px;border-radius:6px}
 main:has(#sim.active){max-width:1848px;padding-left:24px;padding-right:24px}
 .desktop-simulation-layout{display:grid;grid-template-columns:clamp(360px,27vw,420px) minmax(0,1fr);gap:20px;align-items:start;width:100%;max-width:1800px;margin:0 auto}
 .desktop-settings-pane{display:block;min-width:0}
 .desktop-results-title{display:inline}
 .mobile-results-title,.desktop-results-pane>.simulation-back{display:none}
 .desktop-settings-heading{margin-bottom:20px}
 .desktop-settings-heading h2{font-size:24px;margin:0 0 8px}
 .desktop-settings-heading p{font-size:13px;line-height:1.8}
 .desktop-settings-heading button{margin-top:14px;color:#08758d;background:#e8f4f5}
 .desktop-summary-card{padding:20px;margin-bottom:16px;background:#fff;border:1px solid #e1e1e1;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.03);overflow-wrap:anywhere}
 .desktop-summary-card h3{margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #e7eeee;color:#08758d;font-size:16px}
 .desktop-summary-card dl{margin:0}
 .desktop-summary-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:10px 0;font-size:13px;line-height:1.7}
 .desktop-summary-row dt{color:#666}
 .desktop-summary-row dd{margin:0;text-align:right}
 .desktop-summary-net{border-top:1px solid #e7eeee;padding-top:14px;margin-top:14px;color:#08758d;font-weight:600}
 .desktop-summary-list{list-style:none;padding:0;margin:0}
 .desktop-summary-list.is-expanded{max-height:360px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
 .desktop-summary-toggle{display:block;width:100%;margin-top:10px;padding:8px;border:0;background:transparent;color:#687d80;font:inherit;font-size:12px;cursor:pointer;text-align:center}
 .desktop-summary-toggle:hover{color:#08758d;background:#f5fafb;border-radius:6px}
 .desktop-summary-toggle:focus-visible{outline:2px solid #08758d;outline-offset:2px}
 .desktop-summary-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:10px 0;line-height:1.6;font-size:13px}
 .desktop-summary-list li+li{border-top:1px solid #eee}
 .desktop-summary-list li>span:last-child{text-align:right}
 .desktop-summary-events li{grid-template-columns:65px minmax(0,1fr)}
 .desktop-summary-month{color:#687d80}
 .desktop-summary-amount{grid-column:2;color:#555}
 .desktop-results-pane .simulation-heading{flex-wrap:wrap;gap:16px}
 .desktop-results-pane .simulation-title{flex-basis:280px}
 .desktop-results-pane .stats>div{min-width:0;padding:20px;overflow-wrap:anywhere}
 .desktop-results-pane .stats b{font-size:clamp(22px,2vw,32px)}
 .desktop-results-pane .table-wrap{max-width:100%;overflow:auto}
}
.simulation-heading{gap:24px;align-items:center}
.simulation-title{flex:1;min-width:0}
.simulation-title h1{font-size:clamp(22px,2.4vw,27px);white-space:nowrap}
.simulation-title p{line-height:1.7}
.simulation-period{flex:0 0 220px;width:220px}
.simulation-period label{display:block;font-size:12px;color:#666}
.simulation-period #period{display:block;width:100%;max-width:100%;margin-top:6px}
@media(max-width:768px){.simulation-heading{flex-direction:column;align-items:stretch;gap:18px}.simulation-title h1{font-size:22px;white-space:normal}.simulation-period{flex:0 0 auto;width:100%}}
.monthly-timeline-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin-bottom:22px}
.monthly-timeline-heading h2{margin:0}
.monthly-timeline-hint{margin:0;font-size:12px;font-weight:400;line-height:1.7;color:#687d80}
.table-wrap th.event-col,.table-wrap td.timeline-event-cell,.timeline-event-cell .timeline-event-total{text-align:left}
.timeline-event-cell .timeline-event-list,.timeline-event-cell .timeline-event-chip{align-items:flex-start;text-align:left}
.monthly-table-wrap :is(th,td){vertical-align:top}
.monthly-table-wrap :is(th,td):is([data-column="year-month"],[data-column="self-age"],[data-column="family-ages"],[data-column="event"]){text-align:left}
.monthly-table-wrap :is(th,td):is([data-column="income"],[data-column="living"],[data-column="loan-payment"],[data-column="household-balance"],[data-column="investment"],[data-column="cash-saving"],[data-column="cash"],[data-column="investment-balance"],[data-column="debt"]){text-align:right}
.table-wrap.monthly-table-wrap{max-height:clamp(520px,65vh,760px)}
@media(max-width:768px){.table-wrap.monthly-table-wrap{max-height:clamp(520px,60vh,640px)}}

.mobile-plan-heading,.mobile-add-entry,#mobilePlanSummary{display:none}
@media(max-width:1099px){
 #input>[data-editor-section],#input>.title-row{display:none}
 #mobilePlanSummary,.mobile-plan-heading{display:block}
 .mobile-plan-heading{margin-bottom:22px}
 .mobile-plan-heading h1{font-size:24px}
 #mobilePlanSummary .desktop-settings-pane{display:block;min-width:0}
 #mobilePlanSummary .desktop-settings-heading,#mobilePlanSummary .desktop-list-entry{display:none}
 .mobile-add-entry{display:inline-block;padding:5px 10px;font-size:12px;white-space:nowrap}
 .modal-open .mobile-bottom-nav{visibility:hidden}
 .editor-modal-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;max-height:92vh;max-height:92dvh;border-radius:20px 20px 0 0;box-sizing:border-box}
 .editor-modal-header{padding:16px;gap:8px}
 .editor-modal-header h2{font-size:17px}
 .editor-modal-body{padding:14px;overflow-x:hidden}
 .editor-modal-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
 .editor-modal-body input,.editor-modal-body select{font-size:16px}
 .editor-modal-body .grid3,.editor-modal-body .grid4,.editor-modal-body .debt-fields,.editor-modal-body .income-row,.editor-modal-body .monthly-change-main,.editor-modal-body .monthly-change-primary,.editor-modal-body .monthly-change-options{grid-template-columns:minmax(0,1fr)}
 .editor-modal-body .stage-group>.stage{grid-template-columns:24px minmax(0,1fr) auto;padding:10px 8px;gap:6px}
 .editor-modal-body .stage-group>.stage>.stage-date-field{grid-column:2;grid-row:2;flex-wrap:wrap}
 .editor-modal-body .stage-group>.stage>.stage-toggle{grid-column:3;grid-row:2;padding:8px 6px;font-size:12px}
 .editor-modal-body .stage-monthly-summary{grid-column:2/4;grid-row:3}
 .editor-modal-body .stage-group>.stage>.item-remove{grid-column:3;grid-row:1}
 .editor-modal-body .stage-details{padding:12px}
 .editor-modal-body .summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .editor-modal-body .event-info{grid-template-columns:minmax(0,1fr)}
 .editor-modal-body .event-info label:nth-child(3){grid-column:auto}
 .editor-modal-body .event-header{padding:12px;gap:8px}
 .editor-modal-body .event-details{padding:12px}
}
@media(max-width:1099px){
 .desktop-summary-card h3{display:flex;align-items:center;justify-content:space-between;gap:8px}
 .desktop-edit-button{padding:5px 10px;font-size:12px;white-space:nowrap;justify-self:end}
 .desktop-summary-list .desktop-edit-button{grid-column:2}
 .desktop-summary-events li:focus{outline:2px solid #0b8299;outline-offset:3px;border-radius:6px}
 .desktop-summary-card{padding:20px;margin-bottom:16px;background:#fff;border:1px solid #e1e1e1;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.03);overflow-wrap:anywhere}
 .desktop-summary-card h3{margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #e7eeee;color:#08758d;font-size:16px}
 .desktop-summary-card dl{margin:0}
 .desktop-summary-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:10px 0;font-size:13px;line-height:1.7}
 .desktop-summary-row dt{color:#666}
 .desktop-summary-row dd{margin:0;text-align:right}
 .desktop-summary-net{border-top:1px solid #e7eeee;padding-top:14px;margin-top:14px;color:#08758d;font-weight:600}
 .desktop-summary-list{list-style:none;padding:0;margin:0}
 .desktop-summary-list.is-expanded{max-height:360px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
 .desktop-summary-toggle{display:block;width:100%;margin-top:10px;padding:8px;border:0;background:transparent;color:#687d80;font:inherit;font-size:12px;cursor:pointer;text-align:center}
 .desktop-summary-toggle:hover{color:#08758d;background:#f5fafb;border-radius:6px}
 .desktop-summary-toggle:focus-visible{outline:2px solid #08758d;outline-offset:2px}
 .desktop-summary-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:10px 0;line-height:1.6;font-size:13px}
 .desktop-summary-list li+li{border-top:1px solid #eee}
 .desktop-summary-list li>span:last-child{text-align:right}
 .desktop-summary-events li{grid-template-columns:65px minmax(0,1fr)}
 .desktop-summary-month{color:#687d80}
 .desktop-summary-amount{grid-column:2;color:#555}
}
