:root{--bg:#fff7f7;--card:#fff;--main:#e78b8b;--dark:#c96f6f;--light:#fff0f0;--border:#f0cccc;--text:#333;--muted:#666;--shadow:0 8px 24px rgba(120,60,60,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Hiragino Sans","Yu Gothic",sans-serif;line-height:1.7}.wrap{max-width:820px;margin:0 auto;padding:28px 14px 48px}.card{background:var(--card);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:24px}.header{text-align:center;margin-bottom:22px}h1{margin:0 0 8px;font-size:clamp(1.45rem,5vw,2.25rem);line-height:1.25;white-space:nowrap;letter-spacing:-.02em}.header p{margin:0;color:var(--muted);font-size:clamp(.92rem,3vw,1.05rem);white-space:nowrap}.form{display:grid;gap:10px}label{font-weight:800;margin-top:6px}select,input{width:100%;padding:13px 14px;border:2px solid #e8b8b8;border-radius:14px;background:#fff;font-size:1.08rem}button{cursor:pointer}#calc-button{width:100%;margin-top:12px;padding:14px 16px;border:0;border-radius:14px;background:var(--main);color:#fff;font-size:1.12rem;font-weight:900}#calc-button:hover,.copy-button:hover{filter:brightness(.96)}.result{display:none;margin-top:24px;padding:18px;border-radius:16px;background:var(--light)}.result h2{margin:0 0 6px;font-size:1.45rem}.summary{margin:0 0 14px;font-weight:800;color:var(--dark)}table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:14px;background:#fff}th,td{padding:12px;border-bottom:1px solid #f2d6d6;text-align:left}th{background:#f7caca}.memo-box{display:none;padding:14px;border:1px solid var(--border);border-radius:14px;background:#fff}.top-memo{margin:4px 0 2px}.memo-title{margin:0 0 6px;font-weight:900;color:var(--dark)}.memo-box a{color:var(--dark);font-weight:800;word-break:break-all}.memo-placeholder,.memo-text{margin:0;color:var(--muted)}.note,.base-text{margin:14px 0 0;color:var(--muted);font-size:.95rem}.copy-button{width:100%;margin-top:16px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);font-size:1rem;font-weight:800}@media(max-width:520px){.wrap{padding:16px 10px 36px}.card{padding:18px}h1{font-size:clamp(1.28rem,6.1vw,1.65rem)}.header p{font-size:clamp(.82rem,3.8vw,.95rem)}}@media(max-width:360px){h1,.header p{white-space:normal}}