:root{font-family:Arial,'Yu Gothic',Meiryo,sans-serif;color:#233c32;background:#f4f8f5;font-size:16px;line-height:1.65;--green:#216548;--line:#c9dace}*{box-sizing:border-box}body{margin:0}header{background:white;border-bottom:1px solid var(--line);padding:18px max(20px,calc((100% - 1180px)/2));display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}a{color:var(--green);text-underline-offset:4px}.brand{font-weight:700;text-decoration:none}nav{display:flex;gap:22px}main{max-width:1220px;margin:auto;padding:28px 20px 50px}.eyebrow{font-size:.88rem;letter-spacing:.06em;color:var(--green);font-weight:bold;margin:0}h1{font-size:clamp(1.7rem,4vw,2.35rem);line-height:1.4;margin:5px 0 12px}h2{font-size:1.25rem;margin:0}h3{font-size:1.05rem}.intro{margin-bottom:26px}.intro>p{margin:8px 0}.workspace{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start}.workspace>section{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.note{font-size:.88rem;color:#51645a}.plan{border:1px solid var(--line);border-radius:12px;padding:18px;margin:20px 0;background:#fbfdfb}.plan legend{font-weight:bold;padding:0 6px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{min-width:0}.field:first-child{grid-column:1/-1}label{display:block;font-size:.88rem;font-weight:bold;margin-bottom:5px}input,select,textarea{font:inherit;color:inherit;border:1px solid #8fa697;border-radius:7px;background:white;width:100%;min-height:46px;padding:9px 10px;min-width:0}input[type=checkbox]{width:22px;min-height:22px;height:22px;flex:none;accent-color:var(--green)}input[aria-invalid=true]{border:2px solid #ac2929}.error{color:#a12626;font-size:.8rem;line-height:1.45;margin:4px 0 0}.error:empty{display:none}button{font:inherit;font-size:.9rem;font-weight:bold;border:1px solid var(--green);border-radius:8px;min-height:46px;padding:9px 15px;cursor:pointer;background:white;color:var(--green);line-height:1.4}button:hover{background:#e6f1e9}button:disabled{opacity:.55;cursor:not-allowed}.primary{color:white;background:var(--green)}.primary:hover{background:#164a34}.add{width:100%;border-style:dashed;margin-bottom:12px}form>.primary{width:100%}.remove{margin-top:14px;border-color:#98a69d;color:#536258}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.actions>button{flex:1 1 170px}.save-box,.rules{margin-top:24px;border-top:1px solid var(--line);padding-top:15px}summary{cursor:pointer;font-weight:bold;min-height:44px}.check{display:flex;gap:10px;align-items:center}.danger{color:#9b3030;border-color:#a76767}:focus-visible{outline:3px solid #be7b17;outline-offset:3px}#results{background:#f0f6f1}.main-total{padding:16px 18px;background:var(--green);color:white;border-radius:10px}.main-total strong{display:block;font-size:2rem;line-height:1.5;overflow-wrap:anywhere}.totals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.total{padding:10px;background:white;border-radius:8px;font-size:.85rem}.total strong{display:block;font-size:1.1rem}.result-item{padding:15px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.result-item h3{margin:0 0 7px}.metrics{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:.9rem}.result-item progress{width:100%;height:8px;accent-color:var(--green)}.warn{color:#8d3c16;background:#fff2e3;padding:10px;border-radius:7px}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}td:last-child,th:last-child{text-align:right}#copy-text{font-size:.85rem;margin-top:8px}#copy-status,#storage-status{font-size:.88rem}.footer{margin-top:26px}@media(max-width:780px){.workspace{grid-template-columns:1fr}main{padding:22px 14px 36px}.workspace>section{padding:18px}header{padding:15px 18px;gap:8px}nav{font-size:.88rem}.plan{padding:14px}.fields{gap:12px}}@media(max-width:350px){.fields{grid-template-columns:1fr}.workspace>section{padding:14px}.totals{grid-template-columns:1fr}.section-head button{width:100%}}
