:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}body{margin:16px;background:#f6f7fb;color:#111}.wrap{max-width:1040px;margin:0 auto}.card{background:#fff;border:1px solid #e6e6ee;border-radius:14px;padding:12px;margin-bottom:12px;box-shadow:0 1px #00000008}h1{margin:0 0 6px;font-size:18px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}label{display:block;font-size:12px;color:#333;margin:2px 0 4px 2px}select{font-size:16px;padding:10px 12px;border-radius:12px;border:1px solid #d7d7e2;background:#fff;min-width:180px}.targetsLine{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.targetsLine select{min-width:140px}.hint{font-size:12px;color:#555;margin-top:6px;line-height:1.3}.attribution{font-size:11px;color:#666;margin-top:10px;line-height:1.35}.attribution a{color:#2f6efb;text-decoration:none}.attribution a:hover{text-decoration:underline}.btnRow{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}button{border:0;border-radius:14px;padding:12px 14px;font-size:16px;font-weight:700;cursor:pointer}.primary{background:#2f6efb;color:#fff}.ghost{background:#fff;color:#2f6efb;border:1px solid #cfd6ff}.canvasWrap{max-height:78vh;overflow:auto;border-radius:16px}canvas{display:block;width:min(980px,100%);height:auto;background:#fff;border-radius:16px;border:1px solid #e6e6ee}@media print{body{margin:0;background:#fff}.wrap{max-width:none;margin:0}.card{box-shadow:none;border:none;border-radius:0;padding:0;margin:0}.card.controls{display:none}.card.canvasWrap{max-height:none;overflow:visible}canvas{border:none;border-radius:0;width:100%!important;height:auto!important}}
