*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f5f7;color:#1c2430}.app{min-height:100vh;display:flex;flex-direction:column}header{display:flex;align-items:center;gap:10px;background:#1a2332;color:#fff;padding:10px 14px}.logo{width:34px;height:34px;border-radius:8px;object-fit:cover}.h-title{flex:1;display:flex;flex-direction:column;line-height:1.15}.h-title small{opacity:.75}button.link{background:none;border:none;color:#9fb4d8;font-size:12px;cursor:pointer;padding:4px}.card{background:#fff;border:1px solid #e2e5ea;border-radius:12px;margin:14px;padding:16px}.stack{flex:1}h2{margin:0 0 12px;font-size:17px}label{display:block;font-size:13px;color:#4a5568;margin:12px 0}input,select{display:block;width:100%;margin-top:5px;padding:10px;font-size:16px;color:#1c2430;border:1px solid #ccd2da;border-radius:8px;background:#fff}button.primary{width:100%;margin-top:14px;padding:13px;font-size:16px;font-weight:600;color:#fff;background:#1f5fd6;border:none;border-radius:10px;cursor:pointer}button.primary:disabled{opacity:.45}label.chk{display:flex;gap:8px;align-items:center}label.chk input{width:auto;margin:0}.banner{margin:14px 14px 0;padding:12px;border-radius:10px;font-size:14px}.banner.err{background:#fde8e8;color:#8f1d1d;border:1px solid #f3c2c2}.banner.ok{background:#e5f4e9;color:#1d6b34;border:1px solid #bfe3cb}p{margin:8px 0;line-height:1.5}p small{color:#6b7686}
