*{box-sizing:border-box}body{color:#0f172a;background:linear-gradient(135deg,#e8f5ee,#dbeafe);margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.wrap{max-width:1140px;margin:28px auto;padding:0 18px}.card{background:#fff;border:1px solid #dbe1ea;border-radius:16px;padding:20px;box-shadow:0 14px 30px #0f172a14}.login-card{max-width:440px;margin:48px auto;padding:26px}.logo{width:58px;margin:0 auto 8px;display:block}h1{text-align:center;color:#2563eb;margin:6px 0}.hint{text-align:center;color:#64748b;margin:4px 0 10px;font-size:14px}label{gap:6px;min-width:0;font-size:14px;display:grid}input,select{width:100%;max-width:100%;font:inherit;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px}input:focus,select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}button{color:#fff;cursor:pointer;background:#15803d;border:0;border-radius:10px;padding:10px 14px;font-weight:600;transition:all .2s}button:hover{filter:brightness(1.05)}.login-card button[type=submit]{width:100%;margin-top:10px;display:block}button.secondary{background:#334155}.grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.check-row{align-items:center;gap:10px;padding-top:10px;display:flex}.check-row input[type=checkbox]{width:18px;height:18px;margin:0}pre{color:#e2e8f0;white-space:pre-wrap;word-break:break-word;background:#0f172a;border-radius:10px;max-height:300px;padding:10px;overflow:auto}@media (width<=860px){.grid{grid-template-columns:1fr}}.overlay{z-index:50;background:#02061773;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(460px,100vw - 24px);padding:18px;box-shadow:0 20px 40px #0f172a40}.modal h3{margin:0 0 8px}.modal p{color:#334155;margin:0 0 14px}.ok{color:#166534}.bad{color:#b91c1c}.loader{border:4px solid #cbd5e1;border-top-color:#2563eb;border-radius:50%;width:46px;height:46px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
