:root{--blue:#1d4ed8;--ink:#152740;--muted:#59697c;--line:#dbe3ec;--light:#f3f7fc}*{box-sizing:border-box}body{margin:0;background:#f5f7fa;color:var(--ink);font-family:"Yu Gothic UI","Hiragino Sans","Meiryo",sans-serif;font-size:16px;line-height:1.7;font-variant-numeric:tabular-nums}header{background:#fff;border-bottom:1px solid var(--line);padding:18px 4vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;text-decoration:none}.mark{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--blue);color:white;border-radius:8px}.brand>span{border-left:1px solid var(--line);margin-left:6px;padding-left:16px;font-size:14px;font-weight:500}header>small{color:var(--muted);font-size:13px}main{max-width:1296px;margin:auto;padding:32px 32px 44px}.heading{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-bottom:24px}.eyebrow{font-size:14px;font-weight:700;color:var(--blue);margin:0 0 4px}h1{font-size:32px;line-height:1.45;letter-spacing:.02em;margin:0 0 8px}p{margin:8px 0}h2{font-size:18px;line-height:1.5;margin:0}h1+p{font-size:15px;color:var(--muted);margin:0}.year{min-width:232px;font-size:14px;font-weight:600}.year select{display:block;width:100%;margin:6px 0}.year small{font-size:13px;color:var(--muted);font-weight:400}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:16px 0;gap:12px;color:var(--muted);font-size:13px}.toolbar>div{display:flex;gap:8px}button,select,input{font:inherit}button,select{min-height:44px;border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 14px;color:var(--ink)}button{cursor:pointer;font-size:14px;font-weight:600}button:hover{border-color:#94a9c5;background:#f5f9ff}input{width:100%;min-width:0;min-height:44px;border:1px solid #bccadc;border-radius:6px;padding:8px 11px;text-align:right;color:var(--ink);background:white;font-variant-numeric:tabular-nums}input::placeholder{color:#7a879a;font-size:13px}input.invalid{border-color:#dc2626;background:#fff5f5}:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}input:focus{border-color:var(--blue)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 378px;align-items:start;gap:24px}.entry{display:grid;gap:20px}.panel{border:1px solid var(--line);border-radius:12px;background:#fff;padding:24px}.section-head{display:flex;align-items:center;gap:10px;margin-bottom:20px}.step{font-size:13px;font-weight:700;color:var(--blue);background:#eaf1ff;border:1px solid #d6e4ff;border-radius:6px;width:31px;height:30px;display:grid;place-items:center}.tag{margin-left:auto;font-size:12px;color:var(--muted);padding:3px 8px;border-radius:5px;background:var(--light)}.income-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:block;font-size:14px}.field>span{display:block;font-weight:600;margin-bottom:8px}.field small{display:block;font-size:13px;color:var(--muted);line-height:1.65;margin-top:7px}.field em{font-size:12px;font-style:normal;margin-left:5px;color:var(--blue)}.number{display:inline-block;min-width:25px;font-size:12px;line-height:24px;text-align:center;border:1px solid #c6d6eb;color:#325b94;background:#f5f9ff;border-radius:5px;margin-right:9px;font-weight:600}.number.wide{min-width:43px}.money{display:flex;align-items:center;gap:8px}.money>span{font-size:13px;color:var(--muted)}.income-fields input{font-size:21px;min-height:51px}.inline-total{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--light);padding:12px 16px;border-radius:7px;margin-top:20px;font-size:14px}.inline-total small{color:var(--muted);margin-left:5px}.inline-total strong{font-size:18px}.footnote{font-size:13px;color:var(--muted);line-height:1.7;margin-top:14px}.section-note{font-size:14px;color:var(--muted);margin:-6px 0 16px}.deduction-head,.deduction-row{display:grid;grid-template-columns:minmax(190px,1.55fr) minmax(110px,1fr) minmax(110px,1fr);gap:12px;align-items:center}.deduction-head{font-size:13px;color:var(--muted);padding:9px 0;border-bottom:2px solid var(--line)}.deduction-head span:not(:first-child){text-align:right;padding-right:10px}.deduction-head span:last-child{color:#225d4c}.deduction-row{padding:10px 0;border-bottom:1px solid #edf0f5;font-size:14px}.deduction-row input{font-size:16px;padding:7px 9px}.deduction-row output{text-align:right;padding-right:10px;min-height:40px;display:flex;justify-content:flex-end;align-items:center;color:#536678}.deduction-row>input:last-child{background:#f6fbf8;border-color:#b8d1c6}.base-row output{color:var(--ink);font-weight:600}.base-row small{font-size:12px;color:var(--blue);margin-left:4px}.subtotal{font-weight:700;border-bottom:0;margin-top:8px;padding-top:16px}.subtotal output{color:var(--ink);font-size:18px}.helper{border:1px solid var(--line);border-radius:7px;background:#fafcfe;padding:10px 12px;margin:10px 0;font-size:13px;color:var(--muted)}summary{cursor:pointer;min-height:28px;font-size:14px;font-weight:600;color:var(--ink)}details[open]>summary{margin-bottom:10px}a{color:var(--blue);text-underline-offset:3px}.premium-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.premium-grid label{font-size:13px}.premium-grid input{margin-top:4px;font-size:15px}.helper-action{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:12px 0}.helper-action output{font-size:18px;font-weight:700;color:var(--ink)}.row-help{font-size:12px;color:var(--muted);margin:4px 0 10px}.small-table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.65}.small-table td,.small-table th{padding:7px 3px;border-bottom:1px solid var(--line);text-align:right}.small-table td:first-child,.small-table th:first-child{text-align:left}.small-table th{font-weight:600}.small-table tr.active{background:#eaf1ff;color:#1742aa;font-weight:700}.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;padding:14px 0;border-bottom:1px solid var(--line)}.check input{width:18px;height:18px;min-height:18px;flex-shrink:0;margin:4px 0;accent-color:var(--blue)}.check small{display:block;color:var(--muted);font-size:13px;margin-top:4px}.result-column{position:sticky;top:20px;display:grid;gap:18px}.result-card{border:1px solid #c2d3f2;border-top:4px solid var(--blue);background:white;border-radius:12px;padding:24px;box-shadow:0 6px 24px #15325908}.result-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.status{font-size:12px;font-weight:700;color:var(--blue);background:#eaf1ff;padding:3px 9px;border-radius:5px}.status.warning{background:#fff1d5;color:#92400e}#resultYear{font-size:12px;color:var(--muted)}.result-card h2{font-size:16px;font-weight:500}.limit{display:flex;align-items:baseline;gap:9px;line-height:1.35;margin:8px 0}.limit strong{font-size:46px;letter-spacing:-.02em;font-weight:700;color:var(--blue)}.limit>span{font-size:19px}.result-card>p{font-size:13px;color:var(--muted)}.donation-entry{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.donation-entry label{font-size:14px;display:block;margin-bottom:8px}.remaining{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:14px;font-size:14px}.remaining strong{font-size:22px}.message{font-size:13px;line-height:1.65;background:#fff8e9;border-left:3px solid #d97706;padding:10px;margin:12px 0 0;color:#824014}.message.error{background:#fff3f3;color:#a31c1c;border-color:#dc2626}.result-caption{font-size:12px!important;margin-top:18px!important}.calculation h2{font-size:16px;margin-bottom:16px}.calc-line{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #edf0f5;padding:10px 0;font-size:13px}.calc-line small{display:block;color:var(--muted);font-size:12px}.calc-line strong{font-size:15px;white-space:nowrap}.calc-line.emphasize{background:var(--light);padding:12px 9px;margin:10px -9px;border:0}.rates{display:grid;grid-template-columns:1fr 1.7fr;gap:10px;padding:10px 0}.rates small{display:block;font-size:12px;color:var(--muted)}.rates strong{font-size:24px}.formula{border:1px solid var(--line);border-radius:7px;margin:10px 0 18px;padding:13px 15px;background:#fafcfe}.formula>small{font-size:12px;color:var(--muted)}.formula p{font-size:15px;line-height:1.85;margin:5px 0}.formula output{display:block;border-top:1px solid var(--line);padding-top:9px;margin-top:9px;font-size:14px;font-weight:700}.local-note{font-size:12px;color:var(--muted);text-align:center;line-height:1.7;margin:0}footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}footer details{max-width:930px}footer li{margin:5px 0}footer ul{padding-left:20px}@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 330px;gap:18px}.panel,.result-card{padding:18px}.income-fields{grid-template-columns:1fr;gap:18px}.deduction-head,.deduction-row{grid-template-columns:minmax(150px,1.3fr) minmax(85px,1fr) minmax(85px,1fr);gap:7px}.number{margin-right:5px}.limit strong{font-size:39px}main{padding:25px 20px}}@media(max-width:800px){.workspace{grid-template-columns:1fr}.result-column{position:static;grid-row:1}.result-card{padding:22px}.heading{align-items:flex-start}.brand>span,header>small{display:none}.income-fields{grid-template-columns:1fr 1fr}.limit strong{font-size:44px}.heading h1{font-size:26px}.year{min-width:210px}.calculation{display:none}}@media(max-width:540px){main{padding:24px 14px}header{padding:13px 16px}.heading{display:block}.year{display:block;margin-top:18px}.heading h1{font-size:27px}.heading p{font-size:14px}.toolbar{align-items:flex-start;flex-direction:column}.toolbar>div{width:100%}.toolbar button{flex:1}.income-fields{grid-template-columns:1fr}.panel{padding:16px}.deduction-head,.deduction-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:7px}.deduction-row{font-size:12px}.deduction-row .number{display:block;width:max-content;margin-bottom:3px;line-height:18px;min-width:23px}.deduction-row input{font-size:14px;padding:8px 5px}.deduction-row output{font-size:14px;padding-right:4px}.number.wide{min-width:38px}.inline-total{align-items:flex-start;flex-direction:column;gap:3px}.premium-grid{grid-template-columns:1fr}.tag{font-size:12px}h2{font-size:17px}.section-head{gap:7px}.row-help{line-height:1.8}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-width:800px){.result-column{display:contents}.result-card{grid-row:1}.entry{grid-row:2}.calculation{display:block;grid-row:3}.local-note{grid-row:4}}
