.app-shell{margin-top:14px}.app-toolbar{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:9px 11px;display:flex}.plan-picker{flex:220px;align-items:center;gap:7px;min-width:0;display:flex}.plan-picker span{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:700}.plan-picker select{border:1px solid var(--line-2);background:var(--surface);min-width:0;color:var(--ink);border-radius:8px;flex:auto;padding:7px 9px;font-size:13px;font-weight:600}.toolbar-note{text-align:right;min-width:0;color:var(--muted);white-space:nowrap;flex:auto;font-size:10.5px}.menu{position:relative}.menu>summary{white-space:nowrap}.menu-panel{z-index:70;border:1px solid var(--line);background:var(--surface);min-width:232px;box-shadow:var(--shadow-lg);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-panel button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:7px;padding:8px 10px;font-size:12.5px;font-weight:600;display:block}.menu-panel button:hover{background:var(--brand-soft);color:var(--brand-ink)}.menu-panel button.danger-text{color:var(--danger)}.menu-panel button.danger-text:hover{background:var(--danger-soft)}.menu-panel hr{border:none;border-top:1px solid var(--line);margin:5px 6px}.mobile-switch{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:11px;gap:4px;margin-bottom:10px;padding:4px;display:none}.mobile-switch button{color:var(--ink-2);background:0 0;border:0;border-radius:8px;flex:1;padding:10px 8px;font-size:13px;font-weight:700}.mobile-switch button.active{background:var(--brand);color:#fff;box-shadow:0 2px 8px #1d5aa840}.grid{grid-template-columns:380px minmax(0,1fr);align-items:start;gap:12px;display:grid}.grid>*,.col-input,.col-results{min-width:0}.panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px;min-width:0;padding:14px;overflow:hidden}.panel+.panel,.col-input .panel+.panel,.col-results .panel+.panel{margin-top:12px}.panel-title{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;display:flex}.panel-title h2{flex:1;min-width:100px;font-size:15px}.panel-title .icon{background:var(--brand-soft);width:23px;height:23px;color:var(--brand-ink);border-radius:7px;flex:0 0 23px;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.small{color:var(--muted);font-size:11px}.tabs{background:#eef2f9;border-radius:9px;flex-wrap:wrap;gap:2px;margin-bottom:10px;padding:3px;display:flex}.tab{min-width:52px;color:var(--ink-2);white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:1 1 0;padding:8px 6px;font-size:11px;font-weight:700}.tab.active{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow)}.tab-body{display:none}.tab-body.active{display:block}.row{flex-wrap:wrap;align-items:center;gap:6px;margin:7px 0;display:flex}.row>label{min-width:0;color:var(--ink-2);flex:100%;font-size:11.5px;font-weight:600}.row>.unit{color:var(--muted);white-space:nowrap;min-width:30px;font-size:10.5px}.field{flex:100%;align-items:center;gap:7px;min-width:0;display:flex}.field input[type=range]{flex:1;min-width:40px}.field input[type=number]{border:1px solid var(--line-2);background:var(--surface);text-align:right;font-variant-numeric:tabular-nums;border-radius:7px;width:76px;padding:6px 7px;font-size:13px}.field input[type=text],.field select{border:1px solid var(--line-2);background:var(--surface);border-radius:7px;flex:1;min-width:0;padding:6px 7px;font-size:13px}.field input[type=number]:focus,.field input[type=text]:focus,.field select:focus,.mini-row input:focus,.mini-row select:focus,.period input:focus,.period select:focus{border-color:var(--brand-2);outline:none;box-shadow:0 0 0 3px #2b6cb021}.hint{color:var(--muted);margin-top:5px;font-size:10.5px;line-height:1.65}.mini-row{grid-template-columns:1fr 1fr;gap:7px 10px;display:grid}.preset-box{flex-direction:column;gap:3px;margin-bottom:9px;display:flex}.preset-box>label{color:var(--ink-2);font-size:10.5px;font-weight:600}.preset-box select{border:1px solid var(--line-2);background:var(--surface);border-radius:6px;width:100%;padding:6px;font-size:12px}.preset-box select:focus{border-color:var(--brand-2);outline:none;box-shadow:0 0 0 3px #2b6cb021}.preset-box .hint{margin-top:1px}.mini-row label{color:var(--ink-2);flex-direction:column;gap:3px;min-width:0;font-size:10.5px;font-weight:600;display:flex}.mini-row input[type=number],.mini-row input[type=text],.mini-row select{border:1px solid var(--line-2);background:var(--surface);text-align:right;border-radius:7px;width:100%;min-width:0;padding:6px;font-size:13px}.mini-row input[type=text],.mini-row select{text-align:left}input[type=range]{-webkit-appearance:none;appearance:none;background:#dbe3ee;border-radius:3px;outline:none;height:5px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--brand);cursor:pointer;border:2px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #00000040}input[type=range]::-moz-range-thumb{background:var(--brand);cursor:pointer;border:2px solid #fff;border-radius:50%;width:18px;height:18px}input[type=checkbox]{width:16px;height:16px}input[type=number]{font-variant-numeric:tabular-nums}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}.card{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:10px}.card-h{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.card-h .badge{background:var(--brand-soft);color:var(--brand-ink);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:800}.card-h .badge.wife{color:#b3164a;background:#fce7ee}.card-h .badge.husband{color:#1d4ed8;background:#dbeafe}.card-h .badge.child{color:#047857;background:#d1fae5}.card-h h3{flex:1;min-width:80px;font-size:12.5px}.card-h button{color:var(--danger);background:0 0;border:none;padding:2px 4px;font-size:12px}.card h4{color:var(--ink-2);margin:8px 0 5px;font-size:11px}.card hr{border:none;border-top:1px dashed var(--line);margin:9px 0}.period-list{flex-direction:column;gap:6px;display:flex}.period{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(50px,60px) minmax(50px,60px) minmax(0,1fr) 24px;align-items:center;gap:4px;min-width:0;padding:6px;display:grid}.period input,.period select{border:1px solid var(--line-2);background:var(--surface);border-radius:6px;width:100%;min-width:0;padding:5px;font-size:11px}.period button.del{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-size:15px;line-height:1}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:8px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0;padding:10px}.kpi .l{color:var(--muted);min-height:2.9em;font-size:10.5px;line-height:1.45}.kpi .v{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:2px;font-size:20px;font-weight:800;line-height:1.25}.kpi .v.neg{color:var(--danger)}.kpi .v.pos{color:var(--ok)}.kpi .s{color:var(--ink-2);margin-top:2px;font-size:10.5px;line-height:1.5}.kpi.warn{background:var(--warn-soft);border-color:#e7c67a}.kpi.danger{background:var(--danger-soft);border-color:#eaa3a3}.kpi.danger .v{color:var(--danger)}.alert-list{flex-direction:column;gap:6px;display:flex}.alert{border-left:3px solid;border-radius:8px;padding:8px 10px;font-size:11.5px;line-height:1.7}.alert.ok{background:var(--ok-soft);border-color:var(--ok);color:#0b5a39}.alert.warn{background:var(--warn-soft);border-color:var(--warn);color:#7a4b06}.alert.danger{background:var(--danger-soft);border-color:var(--danger);color:#8f1d1d}.alert.info{border-color:var(--brand);color:#1e3a8a;background:#eff6ff}.chart-box{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0;margin-bottom:10px;padding:10px;overflow:hidden}.chart-box:last-child{margin-bottom:0}.chart-title{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.chart-title h3{flex:1;min-width:120px;font-size:12.5px}.chart-canvas{width:100%;max-width:100%;height:280px;display:block}.legend{color:var(--ink-2);flex-wrap:wrap;gap:10px 14px;margin-top:4px;font-size:10.5px;display:flex}.legend .sw{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.compare-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mini-kpi{grid-template-columns:repeat(3,1fr);gap:6px;font-size:10.5px;display:grid}.mini-kpi div{background:var(--surface-2);text-align:center;border-radius:6px;padding:6px;line-height:1.5}.mini-kpi b{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13.5px;display:block}.empty-state{border:1px dashed var(--line-2);background:var(--surface-2);text-align:center;border-radius:11px;padding:26px 18px}.empty-state p{color:var(--ink-2);margin:0 0 6px;font-size:12.5px;line-height:1.8}.empty-state .btn{margin-top:8px}.mstl{max-width:100%;padding:20px 0 6px;position:relative;overflow-x:auto}.mstl-track{border:1px solid var(--line);background:linear-gradient(90deg,#eef2f9,#e4ebf6);border-radius:7px;min-width:620px;height:60px;position:relative}.mstl-tick{color:var(--muted);white-space:nowrap;font-size:9.5px;position:absolute;top:-15px;transform:translate(-50%)}.mstl-item{background:var(--surface);border:1px solid var(--brand);color:var(--brand-ink);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:220px;padding:2px 6px;font-size:9.5px;font-weight:700;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:0 1px 3px #00000014}.mstl-item.neg{border-color:var(--danger);color:var(--danger);background:#fff7f7}.mstl-item.warn{border-color:var(--warn);color:var(--warn);background:#fffdf5}.mstl-item.child{border-color:var(--ok);color:var(--ok);background:#f6fdf9}.whatif-banner{background:var(--warn-soft);color:#7a4b06;border:1px solid #e7c67a;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:9px 12px;font-size:11.5px;line-height:1.6;display:flex}.whatif-banner b{color:#5c3700}.whatif-banner .btn{margin-left:auto}.table-tools{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.segmented{background:#eef2f9;border-radius:8px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);background:0 0;border:0;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:700}.segmented button.active{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow)}.table-wrap{border:1px solid var(--line);background:var(--surface);-webkit-overflow-scrolling:touch;border-radius:8px;max-width:100%;max-height:540px;overflow:auto}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11.5px}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;padding:5px 8px}table.data th{z-index:2;color:var(--ink-2);text-align:right;background:#f0f4fa;font-weight:700;position:sticky;top:0}table.data th:first-child,table.data td:first-child{text-align:left;z-index:1;color:var(--ink);background:#f8fafc;min-width:118px;font-weight:700;position:sticky;left:0}table.data th:first-child{z-index:3;background:#f0f4fa}table.data tr.sub th,table.data tr.sub td{color:var(--ink-2);background:#f8fafc;font-size:10.5px}table.data tr.total td,table.data tr.total th{color:var(--ink);background:#fef9e7;font-weight:800}table.data td.neg{color:var(--danger)}table.data td.pos{color:var(--ok)}table.data td.warn{background:#fef3c7}table.data td.danger{color:var(--danger);background:#fee2e2;font-weight:800}table.data tr.section td{color:var(--brand-ink);text-align:left;background:#e5edf7;font-weight:800;position:sticky;left:0}.share-panel h2{margin-bottom:4px;font-size:14px}.share-panel p{color:var(--muted);margin:0 0 10px;font-size:11.5px;line-height:1.75}.share-actions{flex-wrap:wrap;gap:8px;display:flex}.storage-warn{background:var(--danger-soft);color:#8f1d1d;border:1px solid #eaa3a3;border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:10px;padding:9px 12px;font-size:11.5px;line-height:1.7;display:flex}.modal input[type=text]{border:1px solid var(--line-2);border-radius:8px;width:100%;padding:9px 10px;font-size:16px}.share-url{border:1px solid var(--line-2);width:100%;font-family:var(--mono);border-radius:8px;padding:9px 10px;font-size:11px}@media (width<=1150px){.grid{grid-template-columns:340px minmax(0,1fr)}}@media (width<=960px){.grid{grid-template-columns:1fr}.grid.mobile-ready .col-input{display:none}.grid.mobile-ready.input-active .col-input{display:block}.grid.mobile-ready.input-active .col-results{display:none}.mobile-switch{display:flex}.app-toolbar{gap:6px}.toolbar-note{display:none}.plan-picker{flex:100%}.plan-picker select,.panel-title select{font-size:16px}.app-toolbar #btnShare{flex:1}.app-toolbar .menu{flex:none}.chart-canvas{height:250px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi .l{min-height:2.9em}.compare-grid{grid-template-columns:1fr}.field input[type=number],.field input[type=text],.field select,.mini-row input[type=number],.mini-row input[type=text],.mini-row select,.period input,.period select{font-size:16px}.field input[type=number]{width:88px}input[type=range]::-webkit-slider-thumb{width:24px;height:24px}input[type=range]::-moz-range-thumb{width:24px;height:24px}input[type=range]{height:6px}.table-wrap{max-height:460px}.menu-panel{min-width:250px;max-width:86vw}}@media (width<=560px){.panel{padding:12px}.kpi-grid{grid-template-columns:1fr 1fr}.kpi .v{font-size:18px}.period{grid-template-columns:repeat(2,minmax(0,1fr)) 22px!important}.period>button{grid-area:1/3}.period.period-other{grid-template-columns:repeat(2,minmax(0,1fr)) 22px!important}.period-other .memo-field{grid-column:1/3}.period-other>button.del{grid-area:1/3}.mini-row{grid-template-columns:1fr 1fr}.chart-canvas{height:230px}.share-actions .btn{flex:100%}}.flex{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mt8{margin-top:8px}.mt12{margin-top:12px}hr.sep{border:none;border-top:1px dashed var(--line);margin:10px 0}.spacer{flex:1}.right{text-align:right}.hidden{display:none!important}.privacy-badge.compact{padding:8px 10px;font-size:11.5px}.check-row{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;margin:8px 0 4px;font-size:12px;font-weight:700;display:flex}.check-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);flex:none}.kpi-note{color:var(--muted);margin:8px 0 0;font-size:10.5px;line-height:1.65}@media (width<=560px){.share-url,.modal input[type=text],.modal textarea{font-size:16px}}.period-field{flex-direction:column;gap:2px;min-width:0;display:flex}.period-field>span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:9px;line-height:1.3;overflow:hidden}.period-field input,.period-field select{width:100%}.period>button.del{align-self:center}.period.period-other{grid-template-columns:repeat(4,minmax(0,1fr)) 24px}.period-other .memo-field{grid-column:1/-1}.period-other>button.del{grid-area:1/5}@media (width<=560px){.period.period-other{grid-template-columns:repeat(2,minmax(0,1fr)) 22px!important}.period-other .memo-field{grid-column:1/3}.period-other>button.del{grid-area:1/3}}
