*{box-sizing:border-box}
body{margin:0;font-family:system-ui,sans-serif;font-size:18px;color:#111;background:#f2f4f7;padding-bottom:90px}
main{max-width:640px;margin:0 auto;padding:14px}
h1{font-size:24px;margin:6px 0 12px}
h2{font-size:20px;margin:18px 0 8px}
button,input{font:inherit}
button{min-height:52px;padding:8px 14px;border:2px solid #1f3a5f;background:#fff;color:#1f3a5f;border-radius:10px;cursor:pointer}
button.primary{background:#1f3a5f;color:#fff}
button.danger{border-color:#b00020;color:#b00020}
button.sel{background:#1f3a5f;color:#fff}
button:disabled{opacity:.45}
input[type=text],input[type=search],input[type=date],input:not([type]){width:100%;min-height:50px;padding:8px 12px;border:2px solid #555;border-radius:10px;background:#fff}
input[type=file]{width:100%;min-height:50px;padding:10px;border:2px dashed #555;border-radius:10px;background:#fff}
#nav{position:fixed;bottom:0;left:0;right:0;display:flex;gap:4px;padding:8px;background:#fff;border-top:2px solid #ccc}
#nav button{flex:1;font-size:13px;padding:4px 2px;min-width:0}
#err{background:#b00020;color:#fff;padding:14px;font-weight:600;position:sticky;top:0;z-index:5}
.card{background:#fff;border:2px solid #cfd6df;border-radius:12px;padding:12px;margin:10px 0;display:block;width:100%;text-align:left;color:#111}
.card.u-green{border-left:10px solid #1a7f37}
.card.u-amber{border-left:10px solid #ffbf00}
.card.u-red{border-left:10px solid #b00020}
.card.u-none{border-left:10px solid #9aa5b1}
.panel{background:#fff;border:2px solid #cfd6df;border-radius:12px;padding:12px;margin:10px 0}
.panel button{margin-top:8px;width:100%}
.badge{display:inline-block;padding:4px 10px;border-radius:8px;font-weight:700;font-size:16px;margin:6px 0}
.badge.green{background:#1a7f37;color:#fff}
.badge.amber{background:#ffbf00;color:#111}
.badge.red{background:#b00020;color:#fff}
.badge.none{background:#e1e5ea;color:#111}
.ok{background:#d9f2e0;border:2px solid #1a7f37;border-radius:10px;padding:12px;margin:10px 0;font-weight:600}
.bar{height:14px;background:#dde3ea;border-radius:7px;overflow:hidden;margin:8px 0}
.bar div{height:100%;background:#1a7f37}
.ref{font-size:40px;font-weight:700;text-align:center;padding:10px;background:#fff;border:2px solid #1f3a5f;border-radius:12px;margin-bottom:10px}
.dim{color:#999}.small{font-size:15px;color:#444}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.key{min-height:68px;font-size:28px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.warn{background:#fff3cd;border:2px solid #b58100;border-radius:10px;padding:12px;margin:10px 0}
.bad{background:#fde7ea;border:2px solid #b00020;border-radius:10px;padding:12px;margin:10px 0;font-weight:600}
.step{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid #cfd6df;border-radius:10px;padding:12px;margin:8px 0}
.step input[type=checkbox]{width:30px;height:30px;flex:none}
.done span{text-decoration:line-through;color:#555}
.trow{display:flex;gap:6px;margin:8px 0}
.trow button{min-width:48px;padding:4px}
.gap{margin-top:36px}
.chk{display:flex;align-items:center;gap:12px;margin:12px 0}
.chk input{width:28px;height:28px;flex:none}