:root{--ta:#1d5fd1;--tb:#c2570c;--bg:#e4ebe5;--card:#fff;--ink:#14291c;--mut:#62776a;--acc:#1b6b3a;--acc2:#e3f1e7;--flag:#c8352b;--line:#d3ddd5;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ta:#6aa6ff;--tb:#ff9a52;--bg:#0d1510;--card:#17231b;--ink:#e5efe7;--mut:#94a99a;--acc:#4dc47c;--acc2:#1c3125;--flag:#ff6b5e;--line:#294032;color-scheme:dark}}
:root[data-theme="dark"]{--ta:#6aa6ff;--tb:#ff9a52;--bg:#0d1510;--card:#17231b;--ink:#e5efe7;--mut:#94a99a;--acc:#4dc47c;--acc2:#1c3125;--flag:#ff6b5e;--line:#294032;color-scheme:dark}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 "Trebuchet MS",Verdana,sans-serif;display:flex;justify-content:center}
#app{width:100%;max-width:420px;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
header{padding:16px 16px 8px}
header h1{margin:0;font:700 22px/1.2 Georgia,"Times New Roman",serif}
header p{margin:2px 0 0;color:var(--mut);font-size:14px}
main{flex:1;padding:8px 16px 88px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
.card h2{margin:0 0 8px;font:700 17px Georgia,serif}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.row:first-of-type{border-top:0}
.mut{color:var(--mut);font-size:13px}
button,select,input{font:inherit;color:inherit}
.btn{background:var(--acc);color:#fff;border:0;border-radius:10px;padding:12px 16px;width:100%;font-weight:700;cursor:pointer}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn{color:#06210f}}
html[data-theme="dark"] .btn{color:#06210f}
.btn.sec{background:var(--acc2);color:var(--acc)}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
label{display:block;font-size:13px;color:var(--mut);margin:10px 0 4px}
.pl{display:grid;grid-template-columns:1fr 64px 84px;gap:8px;margin-bottom:8px}
nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:420px;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
nav button{flex:1;background:none;border:0;padding:12px 4px;color:var(--mut);font-size:13px;cursor:pointer}
nav button.on{color:var(--acc);font-weight:700;box-shadow:inset 0 3px 0 var(--acc)}
.hole{display:flex;align-items:center;justify-content:space-between}
.hole b{font:700 30px Georgia,serif}
.hole button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:20px;cursor:pointer}
.step{display:flex;align-items:center;gap:10px}
.step button{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:var(--acc2);color:var(--acc);font-size:22px;font-weight:700;cursor:pointer}
.step span{min-width:28px;text-align:center;font:700 24px Georgia,serif}
.pts{min-width:52px;text-align:right}
.pts b{font-size:20px}
.dots{color:var(--flag);letter-spacing:2px}
.seg{display:flex;gap:6px;margin-bottom:10px}
.seg button{flex:1;padding:9px;border-radius:8px;border:1px solid var(--line);background:var(--card);cursor:pointer}
.seg button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.banner{background:var(--acc2);border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:14px}
.me{background:var(--acc2);border-radius:8px;padding-left:8px;padding-right:8px}
.pos{width:24px;color:var(--mut)}
.grow{flex:1}
.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th,.tbl td{padding:6px 4px;border-top:1px solid var(--line);text-align:left;vertical-align:top}.tbl th{font-weight:700}
:focus-visible{outline:3px solid var(--flag);outline-offset:2px}
input[type=number]{min-width:0}.codebox{font:700 30px Georgia,serif;letter-spacing:4px;text-align:center;margin:6px 0}.lnk{background:none;border:0;color:var(--acc);text-decoration:underline;cursor:pointer;padding:8px 0}.sync{font-size:12px;color:var(--mut);padding:0 16px}.sync.warn{color:var(--flag)}.pl5{display:grid;grid-template-columns:1fr 58px 70px 50px;gap:6px;margin-bottom:6px}
.stack{display:grid;gap:8px}.chk{display:flex;align-items:center;gap:8px;margin:0;padding:8px 0;color:var(--ink);font-size:16px}.chk input{width:auto}
.logo{display:block;width:100%;max-width:320px;margin:12px auto;border-radius:20px}.banner.ok{border-left:4px solid var(--acc)}.pl5{grid-template-columns:1fr 64px 84px}button:disabled{opacity:.6}
