:root { --ink:#1f2a2e; --muted:#5d6b70; --bg:#f5f3ee; --card:#ffffff; --line:#d9d5cb; --main:#17694f; --main-ink:#ffffff; --warn:#a33b1f; }
* { box-sizing:border-box; }
html,body { margin:0; background:var(--bg); color:var(--ink); font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif; }
main { max-width:480px; margin:0 auto; padding:20px 16px 32px; }
h1 { font-size:20px; margin:0 0 4px; }
.sub { color:var(--muted); font-size:15px; margin:0 0 20px; line-height:1.5; }
.center { text-align:center; }
.screen { display:none; }
.screen.on { display:block; }
button, label.btn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:64px; padding:14px; border:0; border-radius:14px; font:inherit; font-size:20px; font-weight:700; cursor:pointer; }
.main { background:var(--main); color:var(--main-ink); }
button.big, label.big { min-height:128px; font-size:26px; }
button.plain, label.plain { background:var(--card); color:var(--ink); border:1px solid var(--line); margin-top:12px; font-size:18px; font-weight:600; min-height:56px; }
button:disabled { opacity:.55; }
input[type=file] { position:absolute; width:1px; height:1px; opacity:0; }
.score { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-top:20px; font-size:16px; line-height:1.6; }
.score b { font-size:22px; }
.photo { display:block; width:100%; max-height:34vh; object-fit:contain; background:#e9e6de; border-radius:14px; }
.wait { text-align:center; font-size:20px; font-weight:700; margin:24px 0 8px; }
.spin { width:44px; height:44px; margin:20px auto 0; border:5px solid var(--line); border-top-color:var(--main); border-radius:50%; animation:s 1s linear infinite; }
@keyframes s { to { transform:rotate(360deg); } }
.field { display:block; margin-top:16px; }
.field > span { display:block; font-size:15px; color:var(--muted); margin-bottom:6px; }
.amount { display:flex; align-items:center; gap:8px; background:var(--card); border:2px solid var(--main); border-radius:14px; padding:6px 14px; }
.amount input { flex:1; min-width:0; border:0; outline:0; background:transparent; font:inherit; font-size:38px; font-weight:800; text-align:right; color:var(--ink); }
.amount em { font-style:normal; font-size:22px; font-weight:700; }
.facts { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px 16px; margin-top:12px; font-size:16px; line-height:1.7; overflow-wrap:anywhere; }
.notice { color:var(--warn); font-weight:700; font-size:16px; margin:14px 0 0; line-height:1.5; }
.actions { margin-top:18px; }
details { margin-top:16px; color:var(--muted); font-size:14px; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px; max-height:240px; overflow:auto; }
.toast { color:var(--main); font-weight:700; font-size:17px; margin:0 0 14px; min-height:1.4em; }
