:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#64748b;--line:#dbe3ee;--accent:#2563eb;--good:#047857;--warn:#b45309;--bad:#b42318;--soft:#f8fafc;--shadow:0 8px 24px rgba(15,23,42,.06)}*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;line-height:1.45}.app{width:min(1260px,100%);margin:auto;padding:12px}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.brand{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#2563eb,#0f766e)}h1{font-size:19px;margin:0}h2{font-size:15px;margin:0}h3{font-size:12px;margin:12px 0 7px;color:#334155}.badge,.tag{font-size:10px;border-radius:999px;padding:3px 7px;background:#eff6ff;color:#1d4ed8;font-weight:800}.tag{white-space:nowrap}.actions,.tabs,.rowBtns,.quickEvents,.inline{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.btn,.tab,.quickEvents button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 11px;font:inherit;font-weight:800;cursor:pointer}.btn.small{padding:5px 8px;font-size:10px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.danger{background:#fff1f2;color:#be123c}.tab.active{background:#0f172a;color:#fff;border-color:#0f172a}.tabs{margin-bottom:12px}.view{display:none}.view.active{display:block}.planner{display:grid;grid-template-columns:minmax(0,720px) minmax(300px,1fr);gap:12px;align-items:start;min-width:0}.stack,.card,.toolCard{min-width:0}.card,.toolCard{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:var(--shadow);margin-bottom:11px}.resultCard{position:sticky;top:8px}.head,.subhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.subhead{margin-top:10px}.title{display:flex;align-items:center;gap:8px}.step{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eaf1ff;color:#1d4ed8;font-size:11px;font-weight:900}.mini,.note{font-size:10px;color:var(--muted)}.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.formGrid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.field{min-width:0}.field label{display:block;font-size:11px;font-weight:800;color:#475569;margin-bottom:4px}.field input,.field select,.scenarioNames input{width:100%;min-width:0;border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:8px 9px;font:inherit;color:var(--text)}.field input:focus,.field select:focus,.scenarioNames input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.field.invalid input,.field.invalid select{border-color:#dc2626;background:#fff7f7}.seg{display:flex;gap:6px}.seg button{flex:1;border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:9px;font-weight:800;cursor:pointer}.seg button.active{background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.conditional{display:none}.conditional.show{display:block}.hidden{display:none!important}.preview{margin-top:8px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-size:11px}.preview b{font-size:13px}.summaryStrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:8px}.summaryStrip>div,.metric,.scenario,.toolResult>div,.compareBox{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff}.summaryStrip span,.metric span,.toolResult span{display:block;font-size:10px;color:var(--muted);font-weight:700}.summaryStrip b,.metric b,.toolResult b{font-size:16px;font-weight:900}.advanced{margin-top:9px;border-top:1px solid var(--line);padding-top:7px}.advanced summary,.resultDetails summary{cursor:pointer;font-size:11px;font-weight:800;color:#475569}.advanced .formGrid,.advanced .formGrid3{margin-top:9px}.children,.debts,#events,#educationEditor{display:grid;gap:8px}.childRow,.debtRow,.eventRow,.educationRow{display:grid;gap:7px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.childRow{grid-template-columns:75px minmax(130px,1fr) 90px 36px}.debtRow{grid-template-columns:minmax(120px,1fr) 100px 90px 90px 36px}.eventRow{grid-template-columns:70px minmax(120px,1fr) 90px 86px 100px 90px 36px}.educationRow{grid-template-columns:65px repeat(7,minmax(85px,1fr))}.childRow input,.childRow select,.debtRow input,.debtRow select,.eventRow input,.eventRow select,.educationRow input,.educationRow select{width:100%;min-width:0;border:1px solid #cbd5e1;border-radius:8px;padding:7px;font:inherit;font-size:11px}.delBtn{border:0;border-radius:8px;background:#fff1f2;color:#be123c;font-weight:900;cursor:pointer}.quickEvents{margin-bottom:8px}.quickEvents button{font-size:10px;padding:7px 9px}.progress{height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin:6px 0 10px}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#0f766e);width:0}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.good{color:var(--good)!important}.warn{color:var(--warn)!important}.bad{color:var(--bad)!important}.chartControls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}.chartControls select{border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff;font:inherit;font-size:11px}.chartWrap{position:relative}.chartWrap canvas,#compareChart{display:block;width:100%;height:250px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:7px}.chartTip{display:none;position:absolute;z-index:3;min-width:190px;max-width:245px;padding:9px;border-radius:9px;background:rgba(15,23,42,.95);color:#fff;font-size:10px;line-height:1.5;pointer-events:none}.chartTip.show{display:block}.alerts{display:grid;gap:6px;margin-top:8px}.alert{padding:8px 9px;border-radius:9px;font-size:11px;border:1px solid var(--line);background:#f8fafc}.alert.good{background:#ecfdf5;border-color:#a7f3d0}.alert.warn{background:#fffbeb;border-color:#fde68a}.alert.bad{background:#fef2f2;border-color:#fecaca}.scenarioGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}.scenario b{display:block;font-size:14px}.scenarioNames{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:8px}.tableWrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:9px;margin-top:8px;max-height:430px}table{border-collapse:collapse;width:100%;min-width:1050px;font-size:10px}th,td{padding:7px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:right}th{background:#f8fafc;color:#475569;position:sticky;top:0}th:first-child,td:first-child{text-align:left}.analysisGrid,.toolsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.full{grid-column:1/-1}.mcGrid,.compareGrid,.improveGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.compareBox h3{font-size:13px;margin:0 0 6px}.kv{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed var(--line);font-size:11px}.toolResult{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.assumptionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.assumption{border:1px solid var(--line);border-radius:9px;padding:8px;font-size:10px}.assumption b{display:block;font-size:11px}.validation{margin-top:8px;font-size:10px;color:var(--bad)}.empty{text-align:center;color:var(--muted);font-size:11px;padding:14px}.fileBtn input{display:none}.actionMenu{position:relative}.actionMenuPanel{position:absolute;right:0;top:calc(100% + 7px);z-index:40;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:230px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(15,23,42,.14)}.actionMenuPanel.hidden{display:none!important}.actionMenuPanel .btn,.actionMenuPanel .fileBtn{width:100%;text-align:center;font-size:12px;padding:8px 9px}.footer{text-align:center;color:var(--muted);font-size:10px;padding:10px 0 4px}@media(max-width:980px){.planner{grid-template-columns:1fr}.resultCard{position:static}.analysisGrid,.toolsGrid{grid-template-columns:1fr}.full{grid-column:auto}.educationRow{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.app{padding:7px}.top{align-items:flex-start;flex-direction:column}.formGrid,.formGrid3,.metrics,.summaryStrip,.mcGrid,.improveGrid,.compareGrid,.toolResult,.assumptionGrid,.scenarioNames{grid-template-columns:1fr}.card,.toolCard{padding:11px}.btn,.tab{padding:8px 9px}.childRow,.debtRow,.eventRow,.educationRow{grid-template-columns:1fr 1fr}.childRow>:nth-child(2),.eventRow>[data-k="name"]{grid-column:1/-1}.delBtn{grid-column:1/-1;min-height:38px}.tableWrap{border:0;overflow:visible;max-height:none}table{min-width:0;display:block}thead{display:none}tbody{display:grid;gap:8px}tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}td{display:flex;justify-content:space-between;gap:8px;border:0;border-bottom:1px dashed var(--line);white-space:normal;text-align:right;padding:6px}td:first-child{grid-column:1/-1;font-weight:900;background:var(--soft);border-radius:7px}td::before{content:attr(data-label);font-size:9px;color:var(--muted);text-align:left}.resultCard canvas,#compareChart{height:220px}}
@media(max-width:650px){
  .app{padding:10px 10px calc(16px + env(safe-area-inset-bottom))}
  .top{display:block;margin-bottom:7px}
  .brand{flex-wrap:nowrap;gap:8px;margin:2px 2px 10px;min-width:0}
  .mark{width:28px;height:28px;border-radius:8px;flex:0 0 auto}
  h1{font-size:20px;line-height:1.15;letter-spacing:-.02em;white-space:nowrap}
  .badge{font-size:9px;padding:3px 6px;white-space:nowrap}
  .actions{display:flex;width:100%;gap:6px;flex-wrap:nowrap;overflow:visible;padding:0 1px 4px;align-items:center}
  .tabs::-webkit-scrollbar{display:none}
  .actions>.btn,.actionMenu>#moreActionsBtn{flex:0 0 auto;font-size:12px;line-height:1.2;padding:7px 10px;border-radius:8px;box-shadow:none}
  .actionMenu{margin-left:auto}
  .actionMenuPanel{right:0;left:auto;min-width:min(250px,calc(100vw - 20px));grid-template-columns:repeat(2,minmax(0,1fr))}
  .tabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin:0 -10px 12px;padding:0 10px 3px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tab{flex:0 0 auto;font-size:13px;line-height:1.2;padding:8px 11px;border-radius:9px}
  .card,.toolCard{padding:12px;border-radius:14px;margin-bottom:10px;box-shadow:0 3px 12px rgba(15,23,42,.045)}
  .head{margin-bottom:9px}
  .title{gap:7px}
  .step{width:25px;height:25px;font-size:11px}
  h2{font-size:16px}
  h3{font-size:12px;margin:11px 0 7px}
  .formGrid,.formGrid3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px}
  .field label{font-size:11px;line-height:1.3;margin-bottom:4px}
  .field input,.field select,.scenarioNames input{font-size:16px;min-height:42px;padding:8px 10px;border-radius:9px}
  .seg{gap:7px}
  .seg button{font-size:13px;min-height:40px;padding:8px 7px}
  .preview{padding:9px}
  .metrics,.summaryStrip,.mcGrid,.improveGrid,.compareGrid,.toolResult,.assumptionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summaryStrip{gap:6px}
  .summaryStrip>div,.metric,.scenario,.toolResult>div,.compareBox{padding:8px}
  .summaryStrip b,.metric b,.toolResult b{font-size:15px}
  .scenarioNames{grid-template-columns:1fr}
  .calculateBar{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));z-index:5;padding:8px 0 2px;background:linear-gradient(to bottom,rgba(245,247,251,0),var(--bg) 35%)}
  .calculateBtn{width:100%;min-height:46px;font-size:15px}
  .resultCard canvas,#compareChart{height:220px}
}
@media print{.actions,.tabs,.quickEvents,.rowBtns,.btn,.advanced>summary{display:none!important}.view{display:block!important}.planner,.analysisGrid,.toolsGrid{display:block}.resultCard{position:static}.card,.toolCard{box-shadow:none;break-inside:avoid}.tableWrap{max-height:none;overflow:visible}body{background:#fff}.app{width:100%;padding:0}}
