:root{--ink: #1A2421;--field: #EEF1EF;--paper: #fff;--primary: #0E5548;--save: #C96A1B;--line: #C9D2CD;--mono: "SF Mono", ui-monospace, "Cascadia Mono", Menlo, monospace}*{box-sizing:border-box;margin:0}body{font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,sans-serif;background:var(--field);color:var(--ink);line-height:1.7;padding:20px 16px 64px}.wrap{max-width:560px;margin:0 auto}header h1{font-size:1.35rem;letter-spacing:.02em}header .lede{font-size:.85rem;color:#47554f;margin-top:4px}.demo-badge{display:inline-block;font-size:.7rem;background:#fbe9d0;color:#8a4b0f;border:1px solid #E8C9A0;border-radius:3px;padding:1px 8px;margin-top:8px}.tabs{display:flex;gap:6px;margin:22px 0 0}.tabs button{flex:1;padding:10px 4px;font-size:.8rem;line-height:1.35;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-bottom:3px solid transparent;border-radius:6px 6px 0 0;cursor:pointer}.tabs button[aria-selected=true]{border-bottom-color:var(--primary);font-weight:700;color:var(--primary)}.tabs button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.panel{background:var(--paper);border:1px solid var(--line);border-top:none;border-radius:0 0 8px 8px;padding:20px 18px}.panel[hidden]{display:none}label{display:block;font-size:.8rem;font-weight:700;margin:14px 0 4px}label:first-child{margin-top:0}select,input[type=number]{width:100%;padding:10px 12px;font-size:1rem;border:1px solid var(--line);border-radius:6px;font-family:var(--mono);background:#fbfcfb}.hint{font-size:.74rem;color:#5b6963;margin-top:3px}.run{display:block;width:100%;margin-top:20px;padding:14px;background:var(--primary);color:#fff;font-size:1rem;font-weight:700;border:none;border-radius:6px;cursor:pointer}.run:hover{background:#0b463b}.run:focus-visible{outline:3px solid #7FB8AC;outline-offset:2px}#result{margin-top:28px}.slip-head{font-size:.8rem;color:#47554f;margin-bottom:10px}.slip-head strong{font-family:var(--mono)}.slip{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:10px;position:relative}.slip:before{content:"";position:absolute;left:12px;right:12px;top:44px;border-top:1.5px dashed var(--line)}.slip .rank{font-family:var(--mono);font-size:.72rem;color:#5b6963;letter-spacing:.08em}.slip h3{font-size:1rem;display:inline;margin-left:8px}.slip .plan-name{font-size:.78rem;color:#47554f;margin-left:8px}.slip .amounts{display:flex;align-items:baseline;gap:14px;margin-top:18px;flex-wrap:wrap}.yen{font-family:var(--mono);font-variant-numeric:tabular-nums}.slip .total{font-size:1.55rem;font-weight:700}.slip .total small{font-size:.72rem;font-weight:400;color:#5b6963;margin-left:2px}.slip .saving{font-size:.95rem;font-weight:700;color:var(--save)}.slip .saving.zero{color:#5b6963;font-weight:400}.slip .flags{font-size:.72rem;color:#5b6963;margin-top:6px}.slip .cta{display:inline-block;margin-top:12px;padding:9px 18px;background:#fff;color:var(--primary);font-size:.85rem;font-weight:700;border:1.5px solid var(--primary);border-radius:6px;text-decoration:none;cursor:pointer}.slip .cta:hover{background:#e8f1ee}.slip.best{border:2px solid var(--primary)}.slip.best .cta{background:var(--primary);color:#fff}.note{font-size:.72rem;color:#5b6963;margin-top:18px}.error{color:#a33;font-size:.85rem;margin-top:12px}.ad-disc{font-size:.72rem;color:#5b6963;margin-top:6px}.ref{margin-top:34px}.ref h2{font-size:1.05rem}.ref-lede{font-size:.8rem;color:#47554f;margin-top:6px}.ref-wrap{overflow-x:auto;margin-top:12px}table.ref-tbl{width:100%;border-collapse:collapse;font-size:.86rem}table.ref-tbl th,table.ref-tbl td{border:1px solid var(--line);padding:7px 12px;text-align:right}table.ref-tbl th:first-child,table.ref-tbl td:first-child{text-align:left}table.ref-tbl th{background:var(--paper);color:#47554f}table.ref-tbl td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.ref-src{font-size:.74rem;color:#5b6963;margin-top:12px}.ref-src b{font-family:var(--mono);color:var(--ink)}.ref-src a{color:var(--primary)}footer{margin-top:30px;padding-top:16px;border-top:1px solid var(--line);font-size:.78rem;color:#5b6963;text-align:center}footer nav a{color:#47554f;text-decoration:none;margin:0 8px}footer nav a:hover{text-decoration:underline}@media(prefers-reduced-motion:no-preference){.slip{animation:rise .35s ease both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}}
