*{box-sizing:border-box}body{color:#2e2520;background:#faf7f2;margin:0;font-family:Nunito,system-ui,sans-serif}.wrap{max-width:860px;margin:0 auto;padding:24px 16px 48px}.wrap.narrow{max-width:420px;padding-top:12vh}h1{margin:0 0 16px;font-family:"Baloo 2",sans-serif;font-size:28px}h2{margin:0 0 10px;font-size:17px}h3{margin:16px 0 6px;font-size:15px}.head{justify-content:space-between;align-items:center;display:flex}.card{background:#fff;border:1px solid #ece4d9;border-radius:16px;flex-direction:column;gap:8px;margin-bottom:16px;padding:18px;display:flex}.card.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.card.grid h2{grid-column:1/-1}label{font-size:14px;font-weight:700}label small{color:#6b5d52;font-weight:400}.field{flex-direction:column;gap:6px;display:flex}input{height:44px;font:inherit;background:#fff;border:1px solid #dcd2c5;border-radius:10px;padding:0 12px;font-size:15px}input:focus{border-color:#1f5fa8;outline:3px solid #7cc6fe}button{height:44px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfc4b6;border-radius:10px;padding:0 18px;font-weight:700}button.primary{color:#fff;background:#2e2520;border-color:#2e2520}button:disabled{opacity:.5;cursor:default}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.msg{color:#1f6b45;font-size:14px}.hint{color:#6b5d52;margin:0 0 4px;font-size:13px;line-height:1.5}.badge{border-radius:999px;margin-left:4px;padding:2px 8px;font-size:12px}.badge.on{color:#1f6b45;background:#e3f4e9}.badge.off{color:#8a2d52;background:#fde6ee}.ok{color:#1f6b45;word-break:break-word;margin:0}.err{color:#b3261e;word-break:break-word;margin:0}.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.stat{background:#fff6e9;border-radius:12px;flex-direction:column;padding:10px 12px;display:flex}.stat b{font-family:"Baloo 2",sans-serif;font-size:26px;line-height:1.1}.stat span{color:#6b5d52;font-size:12px}.errors{flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.errors time{color:#6b5d52}code{background:#f3eee7;border-radius:5px;padding:1px 5px;font-size:12px}
